Repetier-Firmware 0.2
SdFile Class Reference

Access FAT16 and FAT32 files on SD and SDHC cards. More...

#include <SdFat.h>

Public Member Functions

 SdFile (void)
void clearUnbufferedRead (void)
uint8_t close (void)
uint8_t contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock)
uint8_t createContiguous (SdFile *dirFile, const char *fileName, uint32_t size)
uint32_t curCluster (void) const
uint32_t curPosition (void) const
uint32_t dirBlock (void) const
uint8_t dirEntry (dir_t *dir)
uint8_t dirIndex (void) const
uint32_t fileSize (void) const
uint32_t firstCluster (void) const
uint8_t isDir (void) const
uint8_t isFile (void) const
uint8_t isOpen (void) const
uint8_t isSubDir (void) const
uint8_t isRoot (void) const
void ls (uint8_t flags=0, uint8_t indent=0)
uint8_t makeDir (SdFile *dir, const char *dirName)
uint8_t open (SdFile *dirFile, uint16_t index, uint8_t oflag)
uint8_t open (SdFile *dirFile, const char *fileName, uint8_t oflag)
uint8_t openRoot (SdVolume *vol)
int16_t read (void)
int16_t read (void *buf, uint16_t nbyte)
int8_t readDir (dir_t *dir)
uint8_t remove (void)
void rewind (void)
uint8_t rmDir (void)
uint8_t rmRfStar (void)
uint8_t seekCur (uint32_t pos)
uint8_t seekEnd (void)
uint8_t seekSet (uint32_t pos)
void setUnbufferedRead (void)
uint8_t timestamp (uint8_t flag, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
uint8_t sync (void)
uint8_t type (void) const
uint8_t truncate (uint32_t size)
uint8_t unbufferedRead (void) const
SdVolumevolume (void) const
void write (uint8_t b)
int16_t write (const void *buf, uint16_t nbyte)
void write (const char *str)
void write_P (PGM_P str)
void writeln_P (PGM_P str)
uint8_t contiguousRange (uint32_t &bgnBlock, uint32_t &endBlock)
uint8_t createContiguous (SdFile &dirFile, const char *fileName, uint32_t size)
uint8_t dirEntry (dir_t &dir)
uint8_t makeDir (SdFile &dir, const char *dirName)
uint8_t open (SdFile &dirFile, const char *fileName, uint8_t oflag)
uint8_t open (SdFile &dirFile, const char *fileName)
uint8_t open (SdFile &dirFile, uint16_t index, uint8_t oflag)
uint8_t openRoot (SdVolume &vol)
int8_t readDir (dir_t &dir)

Static Public Member Functions

static void dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time))
static void dateTimeCallbackCancel (void)
static void dirName (const dir_t &dir, char *name)
static void printDirName (const dir_t &dir, uint8_t width)
static void printFatDate (uint16_t fatDate)
static void printFatTime (uint16_t fatTime)
static void printTwoDigits (uint8_t v)
static uint8_t remove (SdFile *dirFile, const char *fileName)
static void dateTimeCallback (void(*dateTime)(uint16_t &date, uint16_t &time))
static uint8_t remove (SdFile &dirFile, const char *fileName)

Data Fields

bool writeError

Private Member Functions

uint8_t addCluster (void)
uint8_t addDirCluster (void)
dir_tcacheDirEntry (uint8_t action)
uint8_t openCachedEntry (uint8_t cacheIndex, uint8_t oflags)
dir_treadDirCache (void)

Static Private Member Functions

static void oldToNew (uint16_t *date, uint16_t *time)
static uint8_t make83Name (const char *str, uint8_t *name)

Private Attributes

uint8_t flags_
uint8_t type_
uint32_t curCluster_
uint32_t curPosition_
uint32_t dirBlock_
uint8_t dirIndex_
uint32_t fileSize_
uint32_t firstCluster_
SdVolumevol_

Static Private Attributes

static void(* oldDateTime_ )(uint16_t &date, uint16_t &time)
static uint8_t const F_OFLAG = (O_ACCMODE | O_APPEND | O_SYNC)
static uint8_t const F_UNUSED = 0X30
static uint8_t const F_FILE_UNBUFFERED_READ = 0X40
static uint8_t const F_FILE_DIR_DIRTY = 0X80
static void(* dateTime_ )(uint16_t *date, uint16_t *time)

Detailed Description

Access FAT16 and FAT32 files on SD and SDHC cards.


Constructor & Destructor Documentation

SdFile ( void  ) [inline]

Create an instance of SdFile.


Member Function Documentation

uint8_t addCluster ( void  ) [private]
uint8_t addDirCluster ( void  ) [private]
dir_t* cacheDirEntry ( uint8_t  action) [private]
void clearUnbufferedRead ( void  ) [inline]

Cancel unbuffered reads for this file. See setUnbufferedRead()

uint8_t close ( void  )
uint8_t contiguousRange ( uint32_t *  bgnBlock,
uint32_t *  endBlock 
)
uint8_t contiguousRange ( uint32_t &  bgnBlock,
uint32_t &  endBlock 
) [inline]
uint8_t createContiguous ( SdFile dirFile,
const char *  fileName,
uint32_t  size 
)
uint8_t createContiguous ( SdFile dirFile,
const char *  fileName,
uint32_t  size 
) [inline]
Deprecated:
Use: uint8_t SdFile::createContiguous(SdFile* dirFile, const char* fileName, uint32_t size)
uint32_t curCluster ( void  ) const [inline]
Returns:
The current cluster number for a file or directory.
uint32_t curPosition ( void  ) const [inline]
Returns:
The current position for a file or directory.
static void dateTimeCallback ( void(*)(uint16_t &date, uint16_t &time)  dateTime) [inline, static]
Deprecated:
Use: static void SdFile::dateTimeCallback( void (*dateTime)(uint16_t* date, uint16_t* time));
static void dateTimeCallback ( void(*)(uint16_t *date, uint16_t *time)  dateTime) [inline, static]

Set the date/time callback function

Parameters:
[in]dateTimeThe user's call back function. The callback function is of the form:
 void dateTime(uint16_t* date, uint16_t* time) {
   uint16_t year;
   uint8_t month, day, hour, minute, second;

   // User gets date and time from GPS or real-time clock here

   // return date using FAT_DATE macro to format fields
   *date = FAT_DATE(year, month, day);

   // return time using FAT_TIME macro to format fields
   *time = FAT_TIME(hour, minute, second);
 }

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.

static void dateTimeCallbackCancel ( void  ) [inline, static]

Cancel the date/time callback function.

uint32_t dirBlock ( void  ) const [inline]
Returns:
Address of the block that contains this file's directory.
uint8_t dirEntry ( dir_t dir)
uint8_t dirEntry ( dir_t dir) [inline]
uint8_t dirIndex ( void  ) const [inline]
Returns:
Index of this file's directory in the block dirBlock.
static void dirName ( const dir_t dir,
char *  name 
) [static]
uint32_t fileSize ( void  ) const [inline]
Returns:
The total number of bytes in a file or directory.
uint32_t firstCluster ( void  ) const [inline]
Returns:
The first cluster number for a file or directory.
uint8_t isDir ( void  ) const [inline]
Returns:
True if this is a SdFile for a directory else false.
uint8_t isFile ( void  ) const [inline]
Returns:
True if this is a SdFile for a file else false.
uint8_t isOpen ( void  ) const [inline]
Returns:
True if this is a SdFile for an open file/directory else false.
uint8_t isRoot ( void  ) const [inline]
Returns:
True if this is a SdFile for the root directory.
uint8_t isSubDir ( void  ) const [inline]
Returns:
True if this is a SdFile for a subdirectory else false.
void ls ( uint8_t  flags = 0,
uint8_t  indent = 0 
)
static uint8_t make83Name ( const char *  str,
uint8_t *  name 
) [static, private]
uint8_t makeDir ( SdFile dir,
const char *  dirName 
)
uint8_t makeDir ( SdFile dir,
const char *  dirName 
) [inline]
static void oldToNew ( uint16_t *  date,
uint16_t *  time 
) [inline, static, private]
uint8_t open ( SdFile dirFile,
const char *  fileName,
uint8_t  oflag 
) [inline]
uint8_t open ( SdFile dirFile,
uint16_t  index,
uint8_t  oflag 
)
uint8_t open ( SdFile dirFile,
const char *  fileName,
uint8_t  oflag 
)
uint8_t open ( SdFile dirFile,
uint16_t  index,
uint8_t  oflag 
) [inline]
uint8_t open ( SdFile dirFile,
const char *  fileName 
) [inline]
Deprecated:
Do not use in new apps
uint8_t openCachedEntry ( uint8_t  cacheIndex,
uint8_t  oflags 
) [private]
uint8_t openRoot ( SdVolume vol)
uint8_t openRoot ( SdVolume vol) [inline]
static void printDirName ( const dir_t dir,
uint8_t  width 
) [static]
static void printFatDate ( uint16_t  fatDate) [static]
static void printFatTime ( uint16_t  fatTime) [static]
static void printTwoDigits ( uint8_t  v) [static]
int16_t read ( void  ) [inline]

Read the next byte from a file.

Returns:
For success read returns the next byte in the file as an int. If an error occurs or end of file is reached -1 is returned.
int16_t read ( void *  buf,
uint16_t  nbyte 
)
int8_t readDir ( dir_t dir) [inline]
int8_t readDir ( dir_t dir)
dir_t* readDirCache ( void  ) [private]
uint8_t remove ( void  )
static uint8_t remove ( SdFile dirFile,
const char *  fileName 
) [static]
static uint8_t remove ( SdFile dirFile,
const char *  fileName 
) [inline, static]
void rewind ( void  ) [inline]

Set the file's current position to zero.

uint8_t rmDir ( void  )
uint8_t rmRfStar ( void  )
uint8_t seekCur ( uint32_t  pos) [inline]

Set the files position to current position + pos. See seekSet().

uint8_t seekEnd ( void  ) [inline]

Set the files current position to end of file. Useful to position a file for append. See seekSet().

uint8_t seekSet ( uint32_t  pos)
void setUnbufferedRead ( void  ) [inline]

Use unbuffered reads to access this file. Used with Wave Shield ISR. Used with Sd2Card::partialBlockRead() in WaveRP.

Not recommended for normal applications.

uint8_t sync ( void  )
uint8_t timestamp ( uint8_t  flag,
uint16_t  year,
uint8_t  month,
uint8_t  day,
uint8_t  hour,
uint8_t  minute,
uint8_t  second 
)
uint8_t truncate ( uint32_t  size)
uint8_t type ( void  ) const [inline]

Type of this SdFile. You should use isFile() or isDir() instead of type() if possible.

Returns:
The file or directory type.
uint8_t unbufferedRead ( void  ) const [inline]
Returns:
Unbuffered read flag.
SdVolume* volume ( void  ) const [inline]
Returns:
SdVolume that contains this file.
void write ( const char *  str)
int16_t write ( const void *  buf,
uint16_t  nbyte 
)
void write ( uint8_t  b)
void write_P ( PGM_P  str)
void writeln_P ( PGM_P  str)

Field Documentation

uint32_t curCluster_ [private]
uint32_t curPosition_ [private]
void(* dateTime_)(uint16_t *date, uint16_t *time) [static, private]
uint32_t dirBlock_ [private]
uint8_t dirIndex_ [private]
uint8_t const F_FILE_DIR_DIRTY = 0X80 [static, private]
uint8_t const F_FILE_UNBUFFERED_READ = 0X40 [static, private]
uint8_t const F_OFLAG = (O_ACCMODE | O_APPEND | O_SYNC) [static, private]
uint8_t const F_UNUSED = 0X30 [static, private]
uint32_t fileSize_ [private]
uint32_t firstCluster_ [private]
uint8_t flags_ [private]
void(* oldDateTime_)(uint16_t &date, uint16_t &time) [static, private]
uint8_t type_ [private]
SdVolume* vol_ [private]
bool writeError

writeError is set to true if an error occurs during a write(). Set writeError to false before calling print() and/or write() and check for true after calls to print() and/or write().


The documentation for this class was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Friends Defines