MDX-20用の改造
Dependencies: FatFileSystemCpp
usbMemory.cpp@4:dc14f62cb09f, 2016-11-23 (annotated)
- Committer:
- suupen
- Date:
- Wed Nov 23 09:12:30 2016 +0000
- Revision:
- 4:dc14f62cb09f
- Child:
- 5:0ee37dbafd9a
usbmemory???prn?????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suupen | 4:dc14f62cb09f | 1 | #include "mbed.h" |
suupen | 4:dc14f62cb09f | 2 | #include "MSCFileSystem.h" |
suupen | 4:dc14f62cb09f | 3 | //#include <stat.h> |
suupen | 4:dc14f62cb09f | 4 | #include "string.h" |
suupen | 4:dc14f62cb09f | 5 | |
suupen | 4:dc14f62cb09f | 6 | /* |
suupen | 4:dc14f62cb09f | 7 | ************************************************************************************************************** |
suupen | 4:dc14f62cb09f | 8 | * PRINT CONFIGURATION |
suupen | 4:dc14f62cb09f | 9 | ************************************************************************************************************** |
suupen | 4:dc14f62cb09f | 10 | */ |
suupen | 4:dc14f62cb09f | 11 | |
suupen | 4:dc14f62cb09f | 12 | //#define DEBUG |
suupen | 4:dc14f62cb09f | 13 | #ifdef DEBUG |
suupen | 4:dc14f62cb09f | 14 | #define DEBUG_PRINT(...) printf(__VA_ARGS__) |
suupen | 4:dc14f62cb09f | 15 | #else |
suupen | 4:dc14f62cb09f | 16 | #define DEBUG_PRINT(...) |
suupen | 4:dc14f62cb09f | 17 | #endif // DEBUG |
suupen | 4:dc14f62cb09f | 18 | |
suupen | 4:dc14f62cb09f | 19 | |
suupen | 4:dc14f62cb09f | 20 | #define FSNAME "msc" |
suupen | 4:dc14f62cb09f | 21 | MSCFileSystem msc(FSNAME); |
suupen | 4:dc14f62cb09f | 22 | FILE *fp; |
suupen | 4:dc14f62cb09f | 23 | |
suupen | 4:dc14f62cb09f | 24 | |
suupen | 4:dc14f62cb09f | 25 | |
suupen | 4:dc14f62cb09f | 26 | char fileName[20]; |
suupen | 4:dc14f62cb09f | 27 | char buffer[50]; |
suupen | 4:dc14f62cb09f | 28 | |
suupen | 4:dc14f62cb09f | 29 | int32_t fileDetect(char *fileName, uint32_t *numberLine) |
suupen | 4:dc14f62cb09f | 30 | { |
suupen | 4:dc14f62cb09f | 31 | static uint32_t numMax = 0; |
suupen | 4:dc14f62cb09f | 32 | int32_t ans = false; |
suupen | 4:dc14f62cb09f | 33 | |
suupen | 4:dc14f62cb09f | 34 | DIR *d; |
suupen | 4:dc14f62cb09f | 35 | struct dirent *p; |
suupen | 4:dc14f62cb09f | 36 | |
suupen | 4:dc14f62cb09f | 37 | d = opendir("/" FSNAME); |
suupen | 4:dc14f62cb09f | 38 | |
suupen | 4:dc14f62cb09f | 39 | // directory check |
suupen | 4:dc14f62cb09f | 40 | if ( d != NULL ) { |
suupen | 4:dc14f62cb09f | 41 | while ( (p = readdir(d)) != NULL ) { |
suupen | 4:dc14f62cb09f | 42 | if(NULL != strstr(p->d_name, ".prn")) { |
suupen | 4:dc14f62cb09f | 43 | strcpy(fileName, p->d_name); |
suupen | 4:dc14f62cb09f | 44 | DEBUG_PRINT("detect = %s\n",fileName); |
suupen | 4:dc14f62cb09f | 45 | ans = true; |
suupen | 4:dc14f62cb09f | 46 | continue; |
suupen | 4:dc14f62cb09f | 47 | } |
suupen | 4:dc14f62cb09f | 48 | } |
suupen | 4:dc14f62cb09f | 49 | // file check |
suupen | 4:dc14f62cb09f | 50 | if (ans == true) { |
suupen | 4:dc14f62cb09f | 51 | sprintf(buffer,"/msc/%s",fileName); |
suupen | 4:dc14f62cb09f | 52 | fp = fopen( buffer, "r"); |
suupen | 4:dc14f62cb09f | 53 | if ( fp != NULL ) { |
suupen | 4:dc14f62cb09f | 54 | char buf[256]; |
suupen | 4:dc14f62cb09f | 55 | while ( NULL != fgets(buf, sizeof(buf), fp) ) { |
suupen | 4:dc14f62cb09f | 56 | DEBUG_PRINT("%s", buf); |
suupen | 4:dc14f62cb09f | 57 | numMax++; |
suupen | 4:dc14f62cb09f | 58 | } |
suupen | 4:dc14f62cb09f | 59 | *numberLine = numMax; |
suupen | 4:dc14f62cb09f | 60 | fclose(fp); |
suupen | 4:dc14f62cb09f | 61 | |
suupen | 4:dc14f62cb09f | 62 | } else { |
suupen | 4:dc14f62cb09f | 63 | // Don't file open |
suupen | 4:dc14f62cb09f | 64 | // nothing |
suupen | 4:dc14f62cb09f | 65 | } |
suupen | 4:dc14f62cb09f | 66 | } else { |
suupen | 4:dc14f62cb09f | 67 | // nothing Directory |
suupen | 4:dc14f62cb09f | 68 | } |
suupen | 4:dc14f62cb09f | 69 | } |
suupen | 4:dc14f62cb09f | 70 | return ans; |
suupen | 4:dc14f62cb09f | 71 | |
suupen | 4:dc14f62cb09f | 72 | } |
suupen | 4:dc14f62cb09f | 73 | |
suupen | 4:dc14f62cb09f | 74 | uint32_t fileOneLineRead(char *fileName, char *data, uint32_t dataNumber, uint32_t numberLine) |
suupen | 4:dc14f62cb09f | 75 | { |
suupen | 4:dc14f62cb09f | 76 | // static FILE *fp; |
suupen | 4:dc14f62cb09f | 77 | int32_t ans = false; |
suupen | 4:dc14f62cb09f | 78 | #define bufferNumber 100 |
suupen | 4:dc14f62cb09f | 79 | char buffer[bufferNumber]; |
suupen | 4:dc14f62cb09f | 80 | |
suupen | 4:dc14f62cb09f | 81 | sprintf(buffer,"/msc/%s",fileName); |
suupen | 4:dc14f62cb09f | 82 | |
suupen | 4:dc14f62cb09f | 83 | fp = fopen( buffer, "r"); |
suupen | 4:dc14f62cb09f | 84 | if ( fp != NULL ) { |
suupen | 4:dc14f62cb09f | 85 | for(uint32_t i = 0; i < numberLine; i++){ |
suupen | 4:dc14f62cb09f | 86 | fgets(buffer, sizeof(buffer), fp); |
suupen | 4:dc14f62cb09f | 87 | } |
suupen | 4:dc14f62cb09f | 88 | |
suupen | 4:dc14f62cb09f | 89 | if(NULL != fgets(data, dataNumber, fp)){ |
suupen | 4:dc14f62cb09f | 90 | DEBUG_PRINT("line = %s\r\n", data); |
suupen | 4:dc14f62cb09f | 91 | fclose(fp); |
suupen | 4:dc14f62cb09f | 92 | ans = true; |
suupen | 4:dc14f62cb09f | 93 | } |
suupen | 4:dc14f62cb09f | 94 | else{ |
suupen | 4:dc14f62cb09f | 95 | // nothing |
suupen | 4:dc14f62cb09f | 96 | } |
suupen | 4:dc14f62cb09f | 97 | } else { |
suupen | 4:dc14f62cb09f | 98 | // Don't file open |
suupen | 4:dc14f62cb09f | 99 | // nothing |
suupen | 4:dc14f62cb09f | 100 | } |
suupen | 4:dc14f62cb09f | 101 | |
suupen | 4:dc14f62cb09f | 102 | return ans; |
suupen | 4:dc14f62cb09f | 103 | } |
suupen | 4:dc14f62cb09f | 104 |