FUNCIONES
available()
Descripción:
Comprueba si hay bytes disponibles para leer en el archivo.
available() hereda de la clase Stream.
Sintaxis:
file.available()
Parámetros:
file: una instancia de la clase File (devuelto por SD.open())
Retornos:
el número de bytes disponibles (int)
________________________________________________________________________
close()
Descripción:
Cierra el archivo, y asegura que los datos que se escriben en el se guardan físicamente en la tarjeta SD.
Sintaxis:
file.close()
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
Retornos:
Ninguno
________________________________________________________________________
flush()
Descripción:
Se asegura de que todos los bytes escritos en el archivo se guardan físicamente en la tarjeta SD. Esto se hace automáticamente cuando se cierra el archivo.
flush () hereda de la clase Stream.
Sintaxis:
file.flush()
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
Retornos:
Ninguno.
________________________________________________________________________
peek()
Descripción:
Lee un byte del archivo sin avanzar al siguiente. Es decir, las llamadas sucesivas a peek() devolverán el mismo valor, al igual que la siguiente llamada a read ().
file.peek()
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
Retornos:
El siguiente byte (o carácter), o -1 si no hay ninguno disponible.
________________________________________________________________________
position()
Descripción:
Obtiene la posición actual dentro del archivo (por ejemplo, la ubicación en la que el siguiente byte se lee o se escribe).
Sintaxis:
file.position()
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
Retornos:
la posición dentro del archivo (unsigned long)
________________________________________________________________________
Descripción:
Imprime datos en el archivo, que debe haber sido abierto en modo escritura. Los números se imprimen como una secuencia de dígitos, cada uno uno es un carácter ASCII (por ejemplo, el número 123 es enviado como los tres caracteres '1', '2', '3').
file.print(data)
file.print(data, BASE)
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
data: los datos a imprimir (char, byte, int, long o string)
BASE (opcional): la base en la que imprimir números: BIN para binario (base 2), DEC para decimal (base 10), OCT para octal (base 8), HEX para hexadecimal (base 16).
Retornos:
byte
print () devolverá el número de bytes escritos, la lectura de ese número es opcional
________________________________________________________________________
Descripción:
Imprime datos seguidos de un retorno de carro y salto de línea en el archivo, que debe haber sido abierto en modo escritura. Los números se imprimen como una secuencia de dígitos, cada uno uno es un carácter ASCII (por ejemplo, el número 123 es enviado como los tres caracteres '1', '2', '3').
Sintaxis:
file.println()
file.println(data)
file.print(data, BASE)
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
data: los datos a imprimir (char, byte, int, long o string)
BASE (opcional): la base en la que imprimir números: BIN para binario (base 2), DEC para decimal (base 10), OCT para octal (base 8), HEX para hexadecimal (base 16).
Retornos:
byte
println () devolverá el número de bytes escritos, la lectura de ese número es opcional
________________________________________________________________________
Descripción:
Busca a una nueva posición en el archivo, la cual debe estar entre 0 y el tamaño del archivo (inclusive).
Sintaxis:
file.seek(pos)
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
pos: la posición que se quiere gestionar (long sin signo)
Retornos:
true si ha tenido éxito, false si ha fracasado (booleano)
________________________________________________________________________
Descripción:
Obtiene el tamaño del archivo.
Sintaxis:
file.size()
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
Retornos:
El tamaño del archivo en bytes (long sin signo)
________________________________________________________________________
Descripción:
Lee un byte del archivo.
peek() hereda de la clase Stream.
Sintaxis:
file.read
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
Retornos:
El siguiente byte (o carácter), o -1 si no hay ninguno disponible.
________________________________________________________________________
Descripción:
Escribe datos en el archivo.
Sintaxis:
file.write(data)
file.write(buf, len)
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
data: el byte, char, o string (char *) a escribir
buf: una matriz de caracteres o bytes
len: el número de elementos en el buffer
Retornos:
byte
write() devolverá el número de bytes escritos, la lectura de ese número es opcional
________________________________________________________________________
Descripción:
Los directorios (o carpetas) son tipos especiales de archivos, esta función informa si el archivo actual es un directorio o no.
file.isDirectory()
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
Retornos:
boolean
Ejemplo:
#include <SD.h>
File root;
void setup()
{
Serial.begin(9600);
pinMode(10, OUTPUT);
SD.begin(10);
root = SD.open("/");
printDirectory(root, 0);
Serial.println("Terminado!");
}
void loop()
{
//no pasa nada después de finalizada la instalación.
}
void printDirectory(File dir, int numTabs) {
while(true) {
File entry = dir.openNextFile();
if (! entry) {
// no hay mas atchivos
//Serial.println("**No hay mas archivos**");
break;
}
for (uint8_t i=0; i<numTabs; i++) {
Serial.print('\t');
}
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println("/");
printDirectory(entry, numTabs+1);
} else {
// los archivos tienen tamaño, los directorios no
Serial.print("\t\t");
Serial.println(entry.size(), DEC);
}
}
}
__________________________________________________________________
Descripción:
Informa del archivo o carpeta siguiente en un directorio.
Sintaxis:
file.openNextFile()
Parámetros:
file: una instancia de la clase File (devuelto por SD.open ())
Retornos:
char: el archivo o carpeta siguiente en la ruta
Ejemplo:
#include <SD.h> File root; void setup() { Serial.begin(9600); pinMode(10, OUTPUT); SD.begin(10); root = SD.open("/"); printDirectory(root, 0); delay(2000); Serial.println(); Serial.println("Rebobinado, y repitiendo a continuación:" ); Serial.println(); delay(2000); root.rewindDirectory(); printDirectory(root, 0); root.close(); } void loop() { // no pasa nada después de finalizada la instalación. } void printDirectory(File dir, int numTabs) { while (true) { File entry = dir.openNextFile(); if (! entry) { if (numTabs == 0) Serial.println("** Terminado **"); return; } for (uint8_t i = 0; i < numTabs; i++) Serial.print('\t'); Serial.print(entry.name()); if (entry.isDirectory()) { Serial.println("/"); printDirectory(entry, numTabs + 1); } else { Serial.print("\t\t"); Serial.println(entry.size(), DEC); } entry.close(); } }________________________________________________________________________
Descripción:
rewinDirectorio () le llevará de vuelta al primer archivo en el directorio, se utiliza junto con OpenTextFile ().
Sintaxis:
file.rewindDirectory()
Parámetros:
file: una instancia de la clase File.
Retornos:
Ninguno.
Ejemplo:
#include <SD.h>
File root;
void setup()
{
Serial.begin(9600);
pinMode(10, OUTPUT);
SD.begin(10);
root = SD.open("/");
printDirectory(root, 0);
Serial.println("Terminado!");
}
void loop()
{
// no pasa nada después de finalizada la instalación.
}
void printDirectory(File dir, int numTabs) {
while(true) {
File entry = dir.openNextFile();
if (! entry) {
// no hay mas archivos
// retorna al primer archivo del directorio
dir.rewindDirectory();
break;
}
for (uint8_t i=0; i<numTabs; i++) {
Serial.print('\t');
}
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println("/");
printDirectory(entry, numTabs+1);
} else {
// los archivos tienen tamaño, los directorios no
Serial.print("\t\t");
Serial.println(entry.size(), DEC);
}
}
}
Hola exelente trabajo muy profesional!!
ResponderEliminarBuena información, gracias.
ResponderEliminarMuito obrigado
ResponderEliminar