SdFat
|
Base class for SD streams. More...
#include <SdStream.h>
Public Types | |
typedef unsigned int | fmtflags |
typedef unsigned char | iostate |
typedef int32_t | off_type |
typedef uint8_t | openmode |
typedef uint32_t | pos_type |
enum | seekdir { beg, cur, end } |
typedef uint32_t | streamsize |
Public Member Functions | |
bool | bad () const |
void | clear (iostate state=goodbit) |
bool | eof () const |
bool | fail () const |
char | fill () |
char | fill (char c) |
fmtflags | flags () const |
fmtflags | flags (fmtflags fl) |
bool | good () const |
operator const void * () const | |
bool | operator! () const |
int | precision () const |
int | precision (unsigned int n) |
iostate | rdstate () const |
fmtflags | setf (fmtflags fl) |
fmtflags | setf (fmtflags fl, fmtflags mask) |
void | setstate (iostate state) |
void | unsetf (fmtflags fl) |
unsigned | width () |
unsigned | width (unsigned n) |
Static Public Attributes | |
static const fmtflags | adjustfield = left | right | internal |
static const openmode | app = 0X4 |
static const openmode | ate = 0X8 |
static const iostate | badbit = 0X01 |
static const fmtflags | basefield = dec | hex | oct |
static const openmode | binary = 0X10 |
static const fmtflags | boolalpha = 0x0100 |
static const fmtflags | dec = 0x0008 |
static const iostate | eofbit = 0x02 |
static const iostate | failbit = 0X04 |
static const iostate | goodbit = 0x00 |
static const fmtflags | hex = 0x0010 |
static const openmode | in = 0X20 |
static const fmtflags | internal = 0x0004 |
static const fmtflags | left = 0x0001 |
static const fmtflags | oct = 0x0020 |
static const openmode | out = 0X40 |
static const fmtflags | right = 0x0002 |
static const fmtflags | showbase = 0x0200 |
static const fmtflags | showpoint = 0x0400 |
static const fmtflags | showpos = 0x0800 |
static const fmtflags | skipws = 0x1000 |
static const openmode | trunc = 0X80 |
static const fmtflags | uppercase = 0x4000 |
Protected Member Functions | |
uint32_t | available () |
void | clearWriteError () |
bool | close () |
bool | contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock) |
bool | createContiguous (SdBaseFile *dirFile, const char *path, uint32_t size) |
uint32_t | curCluster () const |
uint32_t | curPosition () const |
bool | dirEntry (dir_t *dir) |
bool | exists (const char *name) |
int16_t | fgets (char *str, int16_t num, char *delim=0) |
uint32_t | fileSize () const |
uint32_t | firstCluster () const |
uint8_t | flagsToBase () |
bool | getFilename (char *name) |
void | getpos (FatPos_t *pos) |
bool | getWriteError () |
bool | isDir () const |
bool | isFile () const |
bool | isOpen () const |
bool | isRoot () const |
bool | isSubDir () const |
void | ls (Print *pr, uint8_t flags=0, uint8_t indent=0) |
void | ls (uint8_t flags=0) |
bool | mkdir (SdBaseFile *dir, const char *path, bool pFlag=true) |
bool | open (SdBaseFile *dirFile, uint16_t index, uint8_t oflag) |
bool | open (SdBaseFile *dirFile, const char *path, uint8_t oflag) |
bool | open (const char *path, uint8_t oflag=O_READ) |
bool | openNext (SdBaseFile *dirFile, uint8_t oflag) |
bool | openRoot (SdVolume *vol) |
int | peek () |
bool | printCreateDateTime (Print *pr) |
int | printField (int16_t value, char term) |
int | printField (uint16_t value, char term) |
int | printField (int32_t value, char term) |
int | printField (uint32_t value, char term) |
size_t | printFileSize (Print *pr) |
bool | printModifyDateTime (Print *pr) |
size_t | printName () |
size_t | printName (Print *pr) |
int16_t | read () |
int | read (void *buf, size_t nbyte) |
int8_t | readDir (dir_t *dir) |
bool | remove () |
bool | rename (SdBaseFile *dirFile, const char *newPath) |
void | rewind () |
bool | rmdir () |
bool | rmRfStar () |
bool | seekCur (int32_t offset) |
bool | seekEnd (int32_t offset=0) |
bool | seekSet (uint32_t pos) |
void | setpos (FatPos_t *pos) |
bool | sync () |
bool | timestamp (SdBaseFile *file) |
bool | timestamp (uint8_t flag, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second) |
bool | truncate (uint32_t size) |
uint8_t | type () const |
SdVolume * | volume () const |
int | write (const void *buf, size_t nbyte) |
Static Protected Member Functions | |
static SdBaseFile * | cwd () |
static void | dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time)) |
static void | dateTimeCallbackCancel () |
static void | dirName (const dir_t &dir, char *name) |
static void | printFatDate (uint16_t fatDate) |
static void | printFatDate (Print *pr, uint16_t fatDate) |
static void | printFatTime (uint16_t fatTime) |
static void | printFatTime (Print *pr, uint16_t fatTime) |
static bool | remove (SdBaseFile *dirFile, const char *path) |
Protected Attributes | |
bool | writeError |
Base class for SD streams.
|
inherited |
type for format flags
|
inherited |
typedef for iostate bitmask
|
inherited |
type for relative seek offset
|
inherited |
typedef for iostream open mode
|
inherited |
type for absolute seek position
|
inherited |
unsigned size that can represent maximum file size. (violates spec - should be signed)
|
inherited |
|
inlineinherited |
|
inlineinherited |
Clear iostate bits.
[in] | state | The flags you want to set after clearing all flags. |
|
inlineinherited |
Set writeError to zero
|
inherited |
Close a file and force cached data and directory information to be written to the storage device.
|
inherited |
Check for contiguous file and return its raw block range.
[out] | bgnBlock | the first block address for the file. |
[out] | endBlock | the last block address for the file. |
|
inherited |
Create and open a new contiguous file of a specified size.
[in] | dirFile | The directory where the file will be created. |
[in] | path | A path with a valid DOS 8.3 file name. |
[in] | size | The desired file size. |
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inlinestaticinherited |
Set the date/time callback function
[in] | dateTime | The user's call back function. The callback function is of the form: |
Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.
See the timestamp() function.
|
inlinestaticinherited |
Cancel the date/time callback function.
|
inherited |
Return a file's directory entry.
[out] | dir | Location for return of the file's directory entry. |
|
staticinherited |
Format the name field of dir into the 13 byte array name in standard 8.3 short name format.
[in] | dir | The directory structure containing the name. |
[out] | name | A 13 byte char array for the formatted name. |
|
inlineinherited |
|
inherited |
Test for the existence of a file in a directory
[in] | name | Name of the file to be tested for. |
The calling instance must be an open directory file.
dirFile.exists("TOFIND.TXT") searches for "TOFIND.TXT" in the directory dirFile.
|
inlineinherited |
|
inherited |
Get a string from a file.
fgets() reads bytes from a file into the array pointed to by str, until num - 1 bytes are read, or a delimiter is read and transferred to str, or end-of-file is encountered. The string is then terminated with a null byte.
fgets() deletes CR, '\r', from the string. This insures only a '\n' terminates the string for Windows text files which use CRLF for newline.
[out] | str | Pointer to the array where the string is stored. |
[in] | num | Maximum number of characters to be read (including the final null byte). Usually the length of the array str is used. |
[in] | delim | Optional set of delimiters. The default is "\n". |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Set fill character
[in] | c | new fill character |
|
inlineinherited |
|
inlineinherited |
set format flags
[in] | fl | new flag |
|
inlineprotectedinherited |
|
inherited |
Get a file's name
[out] | name | An array of 13 characters for the file's name. |
|
inherited |
get position for streams
[out] | pos | struct to receive position |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inherited |
List directory contents.
[in] | pr | Print stream for list. |
[in] | flags | The inclusive OR of |
LS_DATE - Print file modification date
LS_SIZE - Print file size.
LS_R - Recursive list of subdirectories.
[in] | indent | Amount of space before file name. Used for recursive list to indicate subdirectory level. |
|
inherited |
List directory contents to stdOut.
[in] | flags | The inclusive OR of |
LS_DATE - Print file modification date
LS_SIZE - Print file size.
LS_R - Recursive list of subdirectories.
|
inherited |
Make a new directory.
[in] | parent | An open SdFat instance for the directory that will contain the new directory. |
[in] | path | A path with a valid 8.3 DOS name for the new directory. |
[in] | pFlag | Create missing parent directories if true. |
|
inherited |
Open a file by index.
[in] | dirFile | An open SdFat instance for the directory. |
[in] | index | The index of the directory entry for the file to be opened. The value for index is (directory file position)/32. |
[in] | oflag | Values for oflag are constructed by a bitwise-inclusive OR of flags O_READ, O_WRITE, O_TRUNC, and O_SYNC. |
See open() by path for definition of flags.
|
inherited |
Open a file or directory by name.
[in] | dirFile | An open SdFat instance for the directory containing the file to be opened. |
[in] | path | A path with a valid 8.3 DOS name for a file to be opened. |
[in] | oflag | Values for oflag are constructed by a bitwise-inclusive OR of flags from the following list |
O_READ - Open for reading.
O_RDONLY - Same as O_READ.
O_WRITE - Open for writing.
O_WRONLY - Same as O_WRITE.
O_RDWR - Open for reading and writing.
O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.
O_AT_END - Set the initial position at the end of the file.
O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created
O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.
O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t), write_P(PGM_P), writeln_P(PGM_P), or the Arduino Print class. These functions do character at a time writes so sync() will be called after each byte.
O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.
WARNING: A given file must not be opened by more than one SdBaseFile object of file corruption may occur.
|
inherited |
Open a file in the current working directory.
[in] | path | A path with a valid 8.3 DOS name for a file to be opened. |
[in] | oflag | Values for oflag are constructed by a bitwise-inclusive OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t). |
|
inherited |
Open the next file or subdirectory in a directory.
[in] | dirFile | An open SdFat instance for the directory containing the file to be opened. |
[in] | oflag | Values for oflag are constructed by a bitwise-inclusive OR of flags O_READ, O_WRITE, O_TRUNC, and O_SYNC. |
See open() by path for definition of flags.
|
inherited |
Open a volume's root directory.
[in] | vol | The FAT volume containing the root directory to be opened. |
|
inlineinherited |
|
inlineinherited |
|
inherited |
Return the next available byte without consuming it.
|
inlineinherited |
|
inlineinherited |
set precision
[in] | n | new precision |
|
inherited |
Print a file's creation date and time
[in] | pr | Print stream for output. |
|
staticinherited |
Print a directory date field to stdOut.
Format is yyyy-mm-dd.
[in] | fatDate | The date field from a directory entry. |
|
staticinherited |
Print a directory date field.
Format is yyyy-mm-dd.
[in] | pr | Print stream for output. |
[in] | fatDate | The date field from a directory entry. |
|
staticinherited |
Print a directory time field to stdOut.
Format is hh:mm:ss.
[in] | fatTime | The time field from a directory entry. |
|
staticinherited |
Print a directory time field.
Format is hh:mm:ss.
[in] | pr | Print stream for output. |
[in] | fatTime | The time field from a directory entry. |
|
inherited |
Print a number followed by a field terminator.
[in] | value | The number to be printed. |
[in] | term | The field terminator. Use '\n' for CR LF. |
|
inherited |
Print a number followed by a field terminator.
[in] | value | The number to be printed. |
[in] | term | The field terminator. Use '\n' for CR LF. |
|
inherited |
Print a number followed by a field terminator.
[in] | value | The number to be printed. |
[in] | term | The field terminator. Use '\n' for CR LF. |
|
inherited |
Print a number followed by a field terminator.
[in] | value | The number to be printed. |
[in] | term | The field terminator. Use '\n' for CR LF. |
|
inherited |
|
inherited |
Print a file's modify date and time
[in] | pr | Print stream for output. |
|
inherited |
Print a file's name to stdOut
|
inherited |
Print a file's name
[in] | pr | Print stream for output. |
|
inlineinherited |
|
inherited |
Read the next byte from a file.
|
inherited |
Read data from a file starting at the current position.
[out] | buf | Pointer to the location that will receive the data. |
[in] | nbyte | Maximum number of bytes to read. |
|
inherited |
Read the next directory entry from a directory file.
[out] | dir | The dir_t struct that will receive the data. |
|
staticinherited |
Remove a file.
The directory entry and all data for the file are deleted.
[in] | dirFile | The directory that contains the file. |
[in] | path | Path for the file to be removed. |
|
inherited |
Remove a file.
The directory entry and all data for the file are deleted.
|
inherited |
Rename a file or subdirectory.
[in] | dirFile | Directory for the new path. |
[in] | newPath | New path name for the file/directory. |
|
inlineinherited |
Set the file's current position to zero.
|
inherited |
Remove a directory file.
The directory file will be removed only if it is empty and is not the root directory. rmdir() follows DOS and Windows and ignores the read-only attribute for the directory.
|
inherited |
Recursively delete a directory and all contained files.
This is like the Unix/Linux 'rm -rf *' if called with the root directory hence the name.
Warning - This will remove all contents of the directory including subdirectories. The directory will then be removed if it is not root. The read-only attribute for files will be ignored.
|
inlineinherited |
Set the files position to current position + pos. See seekSet().
[in] | offset | The new position in bytes from the current position. |
|
inlineinherited |
Set the files position to end-of-file + offset. See seekSet().
[in] | offset | The new position in bytes from end-of-file. |
|
inherited |
Sets a file's position.
[in] | pos | The new position in bytes from the beginning of the file. |
set format flags
[in] | fl | new flags to be or'ed in |
modify format flags
[in] | mask | flags to be removed |
[in] | fl | flags to be set after mask bits have been cleared |
|
inherited |
set position for streams
[out] | pos | struct with value for new position |
|
inlineinherited |
Set iostate bits.
[in] | state | Bitts to set. |
|
inherited |
|
inherited |
Copy a file's timestamps
[in] | file | File to copy timestamps from. |
|
inherited |
Set a file's timestamps in its directory entry.
[in] | flags | Values for flags are constructed by a bitwise-inclusive OR of flags from the following list |
T_ACCESS - Set the file's last access date.
T_CREATE - Set the file's creation date and time.
T_WRITE - Set the file's last write/modification date and time.
[in] | year | Valid range 1980 - 2107 inclusive. |
[in] | month | Valid range 1 - 12 inclusive. |
[in] | day | Valid range 1 - 31 inclusive. |
[in] | hour | Valid range 0 - 23 inclusive. |
[in] | minute | Valid range 0 - 59 inclusive. |
[in] | second | Valid range 0 - 59 inclusive |
|
inherited |
Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.
[in] | length | The desired length for the file. |
|
inlineinherited |
|
inlineinherited |
clear format flags
[in] | fl | flags to be cleared |
|
inlineinherited |
|
inlineinherited |
set width
[in] | n | new width |
|
inherited |
Write data to an open file.
[in] | buf | Pointer to the location of the data to be written. |
[in] | nbyte | Number of bytes to write. |
|
staticinherited |
seek to end before each write
|
staticinherited |
open and seek to end immediately after opening
|
staticinherited |
iostate bad bit for a nonrecoverable error.
|
staticinherited |
perform input and output in binary mode (as opposed to text mode)
|
staticinherited |
use strings true/false for bool
|
staticinherited |
base 10 flag
|
staticinherited |
iostate bit for end of file reached
|
staticinherited |
iostate fail bit for nonfatal error
|
staticinherited |
iostate for no flags
|
staticinherited |
base 16 flag
|
staticinherited |
open for input
|
staticinherited |
fill between sign/base prefix and number
|
staticinherited |
left adjust fields
|
staticinherited |
base 8 flag
|
staticinherited |
open for output
|
staticinherited |
right adjust fields
|
staticinherited |
use prefix 0X for hex and 0 for oct
|
staticinherited |
always show '.' for floating numbers
|
staticinherited |
show + sign for nonnegative numbers
|
staticinherited |
skip initial white space
|
staticinherited |
truncate an existing stream when opening
|
staticinherited |
use uppercase letters in number representations
|
inherited |