Prusa MINI Firmware overview
directoryEntry Struct Reference

FAT short directory entry. More...

#include <SdFatStructs.h>

Collaboration diagram for directoryEntry:

Public Attributes

uint8_t name [11]
 
uint8_t attributes
 
uint8_t reservedNT
 
uint8_t creationTimeTenths
 
uint16_t creationTime
 
uint16_t creationDate
 
uint16_t lastAccessDate
 
uint16_t firstClusterHigh
 
uint16_t lastWriteTime
 
uint16_t lastWriteDate
 
uint16_t firstClusterLow
 
uint32_t fileSize
 

Detailed Description

FAT short directory entry.

Short means short 8.3 name, not the entry size.

Date Format. A FAT directory entry date stamp is a 16-bit field that is basically a date relative to the MS-DOS epoch of 01/01/1980. Here is the format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the 16-bit word):

Bits 9-15: Count of years from 1980, valid value range 0-127 inclusive (1980-2107).

Bits 5-8: Month of year, 1 = January, valid value range 1-12 inclusive.

Bits 0-4: Day of month, valid value range 1-31 inclusive.

Time Format. A FAT directory entry time stamp is a 16-bit field that has a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the 16-bit word).

Bits 11-15: Hours, valid value range 0-23 inclusive.

Bits 5-10: Minutes, valid value range 0-59 inclusive.

Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds).

The valid time range is from Midnight 00:00:00 to 23:59:58.

Member Data Documentation

◆ name

uint8_t directoryEntry::name[11]

Short 8.3 name.

The first eight bytes contain the file name with blank fill. The last three bytes contain the file extension with blank fill.

◆ attributes

uint8_t directoryEntry::attributes

Entry attributes.

The upper two bits of the attribute byte are reserved and should always be set to 0 when a file is created and never modified or looked at after that. See defines that begin with DIR_ATT_.

◆ reservedNT

uint8_t directoryEntry::reservedNT

Reserved for use by Windows NT. Set value to 0 when a file is created and never modify or look at it after that.

◆ creationTimeTenths

uint8_t directoryEntry::creationTimeTenths

The granularity of the seconds part of creationTime is 2 seconds so this field is a count of tenths of a second and it's valid value range is 0-199 inclusive. (WHG note - seems to be hundredths)

◆ creationTime

uint16_t directoryEntry::creationTime

◆ creationDate

uint16_t directoryEntry::creationDate

◆ lastAccessDate

uint16_t directoryEntry::lastAccessDate

Last access date. Note that there is no last access time, only a date. This is the date of last read or write. In the case of a write, this should be set to the same date as lastWriteDate.

◆ firstClusterHigh

uint16_t directoryEntry::firstClusterHigh

High word of this entry's first cluster number (always 0 for a FAT12 or FAT16 volume).

◆ lastWriteTime

uint16_t directoryEntry::lastWriteTime

◆ lastWriteDate

uint16_t directoryEntry::lastWriteDate

◆ firstClusterLow

uint16_t directoryEntry::firstClusterLow

◆ fileSize

uint32_t directoryEntry::fileSize