MDX-20用の改造
Dependencies: FatFileSystemCpp
usbMemory.cpp
- Committer:
- suupen
- Date:
- 2016-12-12
- Revision:
- 7:a6b950d25e29
- Parent:
- 6:d407fe3e0c97
- Child:
- 8:6e23bf867e38
File content as of revision 7:a6b950d25e29:
#include "mbed.h" #include "MSCFileSystem.h" //#include <stat.h> #include "string.h" /* ************************************************************************************************************** * PRINT CONFIGURATION ************************************************************************************************************** */ //#define DEBUG #ifdef DEBUG #define DEBUG_PRINT(...) printf(__VA_ARGS__) #else #define DEBUG_PRINT(...) #endif // DEBUG #define FSNAME "msc" MSCFileSystem msc(FSNAME); FILE *fp; char fileName[20]; char buffer[50]; void usbMemoryInitialize(void) { msc.disk_initialize(); } /** File check * @para fileNumber : This number get filename 0,1:first 2: second ... * @para *fileName : get filename * @para *fileNumberMax : .prn file number * @return * false: non file true: file exists */ int32_t fileDetect(int32_t fileNumber, char *fileName, int32_t *fileNumberMax) { uint32_t numMax = 0; int32_t ans = false; DIR *d; struct dirent *p; d = opendir("/" FSNAME); // directory check if ( d != NULL ) { while ( (p = readdir(d)) != NULL ) { if(NULL != strstr(p->d_name, ".prn")) { numMax++; if(numMax == fileNumber) { strcpy(fileName, p->d_name); } DEBUG_PRINT("detect = %s\n",fileName); ans = true; } } *fileNumberMax = numMax; } return ans; } int32_t fileSelect(char *fileName, uint32_t *numberLine) { uint32_t numMax = 0; int32_t ans = false; DIR *d; struct dirent *p; d = opendir("/" FSNAME); // file check sprintf(buffer,"/msc/%s",fileName); fp = fopen( buffer, "r"); if ( fp != NULL ) { char buf[256]; while ( NULL != fgets(buf, sizeof(buf), fp) ) { DEBUG_PRINT("%s", buf); numMax++; } *numberLine = numMax; fclose(fp); ans = true; } else { // Don't file open // nothing } return ans; } uint32_t fileOneLineRead(char *fileName, char *data, uint32_t dataNumber, uint32_t numberLine) { // static FILE *fp; int32_t ans = false; #define bufferNumber 100 char buffer[bufferNumber]; sprintf(buffer,"/msc/%s",fileName); fp = fopen( buffer, "r"); if ( fp != NULL ) { for(uint32_t i = 0; i < numberLine; i++) { fgets(buffer, sizeof(buffer), fp); } if(NULL != fgets(data, dataNumber, fp)) { DEBUG_PRINT("line = %s\r\n", data); fclose(fp); ans = true; } else { // nothing } } else { // Don't file open // nothing } return ans; }