forked from prusa3d/Prusa-Firmware
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
21 changed files
with
12,730 additions
and
13,089 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,107 +1,106 @@ | ||
#ifndef CARDREADER_H | ||
#define CARDREADER_H | ||
|
||
#ifdef SDSUPPORT | ||
|
||
#define MAX_DIR_DEPTH 10 | ||
|
||
#include "SdFile.h" | ||
enum LsAction {LS_SerialPrint,LS_Count,LS_GetFilename}; | ||
class CardReader | ||
{ | ||
public: | ||
CardReader(); | ||
|
||
void initsd(); | ||
void write_command(char *buf); | ||
void write_command_no_newline(char *buf); | ||
//files auto[0-9].g on the sd card are performed in a row | ||
//this is to delay autostart and hence the initialisaiton of the sd card to some seconds after the normal init, so the device is available quick after a reset | ||
|
||
void checkautostart(bool x); | ||
void openFile(char* name,bool read,bool replace_current=true); | ||
void openLogFile(char* name); | ||
void removeFile(char* name); | ||
void closefile(bool store_location=false); | ||
void release(); | ||
void startFileprint(); | ||
void pauseSDPrint(); | ||
void getStatus(); | ||
void printingHasFinished(); | ||
|
||
void getfilename(uint16_t nr, const char* const match=NULL); | ||
uint16_t getnrfilenames(); | ||
|
||
void getAbsFilename(char *t); | ||
|
||
|
||
void ls(); | ||
void chdir(const char * relpath); | ||
void updir(); | ||
void setroot(); | ||
|
||
|
||
FORCE_INLINE bool isFileOpen() { return file.isOpen(); } | ||
FORCE_INLINE bool eof() { return sdpos>=filesize ;}; | ||
FORCE_INLINE int16_t get() { sdpos = file.curPosition();return (int16_t)file.read();}; | ||
FORCE_INLINE void setIndex(long index) {sdpos = index;file.seekSet(index);}; | ||
FORCE_INLINE uint8_t percentDone(){if(!isFileOpen()) return 0; if(filesize) return sdpos/((filesize+99)/100); else return 0;}; | ||
FORCE_INLINE char* getWorkDirName(){workDir.getFilename(filename);return filename;}; | ||
FORCE_INLINE uint32_t get_sdpos() { if (!isFileOpen()) return 0; else return(sdpos); }; | ||
|
||
bool ToshibaFlashAir_isEnabled() const { return card.getFlashAirCompatible(); } | ||
void ToshibaFlashAir_enable(bool enable) { card.setFlashAirCompatible(enable); } | ||
bool ToshibaFlashAir_GetIP(uint8_t *ip); | ||
|
||
public: | ||
bool saving; | ||
bool logging; | ||
bool sdprinting ; | ||
bool cardOK ; | ||
char filename[13]; | ||
char longFilename[LONG_FILENAME_LENGTH]; | ||
bool filenameIsDir; | ||
int lastnr; //last number of the autostart; | ||
private: | ||
SdFile root,*curDir,workDir,workDirParents[MAX_DIR_DEPTH]; | ||
uint16_t workDirDepth; | ||
Sd2Card card; | ||
SdVolume volume; | ||
SdFile file; | ||
#define SD_PROCEDURE_DEPTH 1 | ||
#define MAXPATHNAMELENGTH (13*MAX_DIR_DEPTH+MAX_DIR_DEPTH+1) | ||
uint8_t file_subcall_ctr; | ||
uint32_t filespos[SD_PROCEDURE_DEPTH]; | ||
char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH]; | ||
uint32_t filesize; | ||
//int16_t n; | ||
unsigned long autostart_atmillis; | ||
uint32_t sdpos ; | ||
|
||
bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware. | ||
|
||
LsAction lsAction; //stored for recursion. | ||
int16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory. | ||
char* diveDirName; | ||
void lsDive(const char *prepend, SdFile parent, const char * const match=NULL); | ||
}; | ||
extern CardReader card; | ||
#define IS_SD_PRINTING (card.sdprinting) | ||
|
||
#if (SDCARDDETECT > -1) | ||
# ifdef SDCARDDETECTINVERTED | ||
# define IS_SD_INSERTED (READ(SDCARDDETECT)!=0) | ||
# else | ||
# define IS_SD_INSERTED (READ(SDCARDDETECT)==0) | ||
# endif //SDCARDTETECTINVERTED | ||
#else | ||
//If we don't have a card detect line, aways asume the card is inserted | ||
# define IS_SD_INSERTED true | ||
#endif | ||
|
||
#else | ||
|
||
#define IS_SD_PRINTING (false) | ||
|
||
#endif //SDSUPPORT | ||
#endif | ||
#ifndef CARDREADER_H | ||
#define CARDREADER_H | ||
|
||
#ifdef SDSUPPORT | ||
|
||
#define MAX_DIR_DEPTH 10 | ||
|
||
#include "SdFile.h" | ||
enum LsAction {LS_SerialPrint,LS_Count,LS_GetFilename}; | ||
class CardReader | ||
{ | ||
public: | ||
CardReader(); | ||
|
||
void initsd(); | ||
void write_command(char *buf); | ||
void write_command_no_newline(char *buf); | ||
//files auto[0-9].g on the sd card are performed in a row | ||
//this is to delay autostart and hence the initialisaiton of the sd card to some seconds after the normal init, so the device is available quick after a reset | ||
|
||
void checkautostart(bool x); | ||
void openFile(char* name,bool read,bool replace_current=true); | ||
void openLogFile(char* name); | ||
void removeFile(char* name); | ||
void closefile(bool store_location=false); | ||
void release(); | ||
void startFileprint(); | ||
void pauseSDPrint(); | ||
void getStatus(); | ||
void printingHasFinished(); | ||
|
||
void getfilename(uint16_t nr, const char* const match=NULL); | ||
uint16_t getnrfilenames(); | ||
|
||
void getAbsFilename(char *t); | ||
|
||
|
||
void ls(); | ||
void chdir(const char * relpath); | ||
void updir(); | ||
void setroot(); | ||
|
||
|
||
FORCE_INLINE bool isFileOpen() { return file.isOpen(); } | ||
FORCE_INLINE bool eof() { return sdpos>=filesize ;}; | ||
FORCE_INLINE int16_t get() { sdpos = file.curPosition();return (int16_t)file.read();}; | ||
FORCE_INLINE void setIndex(long index) {sdpos = index;file.seekSet(index);}; | ||
FORCE_INLINE uint8_t percentDone(){if(!isFileOpen()) return 0; if(filesize) return sdpos/((filesize+99)/100); else return 0;}; | ||
FORCE_INLINE char* getWorkDirName(){workDir.getFilename(filename);return filename;}; | ||
|
||
bool ToshibaFlashAir_isEnabled() const { return card.getFlashAirCompatible(); } | ||
void ToshibaFlashAir_enable(bool enable) { card.setFlashAirCompatible(enable); } | ||
bool ToshibaFlashAir_GetIP(uint8_t *ip); | ||
|
||
public: | ||
bool saving; | ||
bool logging; | ||
bool sdprinting ; | ||
bool cardOK ; | ||
char filename[13]; | ||
char longFilename[LONG_FILENAME_LENGTH]; | ||
bool filenameIsDir; | ||
int lastnr; //last number of the autostart; | ||
private: | ||
SdFile root,*curDir,workDir,workDirParents[MAX_DIR_DEPTH]; | ||
uint16_t workDirDepth; | ||
Sd2Card card; | ||
SdVolume volume; | ||
SdFile file; | ||
#define SD_PROCEDURE_DEPTH 1 | ||
#define MAXPATHNAMELENGTH (13*MAX_DIR_DEPTH+MAX_DIR_DEPTH+1) | ||
uint8_t file_subcall_ctr; | ||
uint32_t filespos[SD_PROCEDURE_DEPTH]; | ||
char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH]; | ||
uint32_t filesize; | ||
//int16_t n; | ||
unsigned long autostart_atmillis; | ||
uint32_t sdpos ; | ||
|
||
bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware. | ||
|
||
LsAction lsAction; //stored for recursion. | ||
int16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory. | ||
char* diveDirName; | ||
void lsDive(const char *prepend, SdFile parent, const char * const match=NULL); | ||
}; | ||
extern CardReader card; | ||
#define IS_SD_PRINTING (card.sdprinting) | ||
|
||
#if (SDCARDDETECT > -1) | ||
# ifdef SDCARDDETECTINVERTED | ||
# define IS_SD_INSERTED (READ(SDCARDDETECT)!=0) | ||
# else | ||
# define IS_SD_INSERTED (READ(SDCARDDETECT)==0) | ||
# endif //SDCARDTETECTINVERTED | ||
#else | ||
//If we don't have a card detect line, aways asume the card is inserted | ||
# define IS_SD_INSERTED true | ||
#endif | ||
|
||
#else | ||
|
||
#define IS_SD_PRINTING (false) | ||
|
||
#endif //SDSUPPORT | ||
#endif |
Oops, something went wrong.