MDX-20用の改造
Dependencies: FatFileSystemCpp
usbMemory.cpp@7:a6b950d25e29, 2016-12-12 (annotated)
- Committer:
- suupen
- Date:
- Mon Dec 12 02:02:11 2016 +0000
- Revision:
- 7:a6b950d25e29
- Parent:
- 6:d407fe3e0c97
- Child:
- 8:6e23bf867e38
int MSCFileSystem::disk_initialize() ?????????????????????????????
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 | 5:0ee37dbafd9a | 29 | |
suupen | 5:0ee37dbafd9a | 30 | void usbMemoryInitialize(void) |
suupen | 5:0ee37dbafd9a | 31 | { |
suupen | 5:0ee37dbafd9a | 32 | msc.disk_initialize(); |
suupen | 6:d407fe3e0c97 | 33 | } |
suupen | 6:d407fe3e0c97 | 34 | |
suupen | 6:d407fe3e0c97 | 35 | /** File check |
suupen | 6:d407fe3e0c97 | 36 | * @para fileNumber : This number get filename 0,1:first 2: second ... |
suupen | 6:d407fe3e0c97 | 37 | * @para *fileName : get filename |
suupen | 6:d407fe3e0c97 | 38 | * @para *fileNumberMax : .prn file number |
suupen | 6:d407fe3e0c97 | 39 | * @return |
suupen | 6:d407fe3e0c97 | 40 | * false: non file true: file exists |
suupen | 6:d407fe3e0c97 | 41 | */ |
suupen | 6:d407fe3e0c97 | 42 | int32_t fileDetect(int32_t fileNumber, char *fileName, int32_t *fileNumberMax) |
suupen | 6:d407fe3e0c97 | 43 | { |
suupen | 6:d407fe3e0c97 | 44 | uint32_t numMax = 0; |
suupen | 6:d407fe3e0c97 | 45 | int32_t ans = false; |
suupen | 6:d407fe3e0c97 | 46 | |
suupen | 6:d407fe3e0c97 | 47 | DIR *d; |
suupen | 6:d407fe3e0c97 | 48 | struct dirent *p; |
suupen | 6:d407fe3e0c97 | 49 | |
suupen | 6:d407fe3e0c97 | 50 | d = opendir("/" FSNAME); |
suupen | 5:0ee37dbafd9a | 51 | |
suupen | 6:d407fe3e0c97 | 52 | // directory check |
suupen | 6:d407fe3e0c97 | 53 | if ( d != NULL ) { |
suupen | 6:d407fe3e0c97 | 54 | while ( (p = readdir(d)) != NULL ) { |
suupen | 6:d407fe3e0c97 | 55 | if(NULL != strstr(p->d_name, ".prn")) { |
suupen | 6:d407fe3e0c97 | 56 | numMax++; |
suupen | 6:d407fe3e0c97 | 57 | if(numMax == fileNumber) { |
suupen | 6:d407fe3e0c97 | 58 | strcpy(fileName, p->d_name); |
suupen | 6:d407fe3e0c97 | 59 | } |
suupen | 6:d407fe3e0c97 | 60 | DEBUG_PRINT("detect = %s\n",fileName); |
suupen | 6:d407fe3e0c97 | 61 | ans = true; |
suupen | 6:d407fe3e0c97 | 62 | } |
suupen | 6:d407fe3e0c97 | 63 | } |
suupen | 6:d407fe3e0c97 | 64 | *fileNumberMax = numMax; |
suupen | 6:d407fe3e0c97 | 65 | } |
suupen | 6:d407fe3e0c97 | 66 | return ans; |
suupen | 6:d407fe3e0c97 | 67 | } |
suupen | 6:d407fe3e0c97 | 68 | |
suupen | 6:d407fe3e0c97 | 69 | |
suupen | 7:a6b950d25e29 | 70 | int32_t fileSelect(char *fileName, uint32_t *numberLine) |
suupen | 4:dc14f62cb09f | 71 | { |
suupen | 5:0ee37dbafd9a | 72 | uint32_t numMax = 0; |
suupen | 4:dc14f62cb09f | 73 | int32_t ans = false; |
suupen | 4:dc14f62cb09f | 74 | |
suupen | 4:dc14f62cb09f | 75 | DIR *d; |
suupen | 4:dc14f62cb09f | 76 | struct dirent *p; |
suupen | 4:dc14f62cb09f | 77 | |
suupen | 4:dc14f62cb09f | 78 | d = opendir("/" FSNAME); |
suupen | 4:dc14f62cb09f | 79 | |
suupen | 7:a6b950d25e29 | 80 | // file check |
suupen | 7:a6b950d25e29 | 81 | sprintf(buffer,"/msc/%s",fileName); |
suupen | 7:a6b950d25e29 | 82 | fp = fopen( buffer, "r"); |
suupen | 7:a6b950d25e29 | 83 | if ( fp != NULL ) { |
suupen | 7:a6b950d25e29 | 84 | char buf[256]; |
suupen | 7:a6b950d25e29 | 85 | while ( NULL != fgets(buf, sizeof(buf), fp) ) { |
suupen | 7:a6b950d25e29 | 86 | DEBUG_PRINT("%s", buf); |
suupen | 7:a6b950d25e29 | 87 | numMax++; |
suupen | 4:dc14f62cb09f | 88 | } |
suupen | 7:a6b950d25e29 | 89 | *numberLine = numMax; |
suupen | 7:a6b950d25e29 | 90 | fclose(fp); |
suupen | 7:a6b950d25e29 | 91 | ans = true; |
suupen | 7:a6b950d25e29 | 92 | |
suupen | 7:a6b950d25e29 | 93 | } else { |
suupen | 7:a6b950d25e29 | 94 | // Don't file open |
suupen | 7:a6b950d25e29 | 95 | // nothing |
suupen | 4:dc14f62cb09f | 96 | } |
suupen | 6:d407fe3e0c97 | 97 | return ans; |
suupen | 4:dc14f62cb09f | 98 | } |
suupen | 4:dc14f62cb09f | 99 | |
suupen | 4:dc14f62cb09f | 100 | uint32_t fileOneLineRead(char *fileName, char *data, uint32_t dataNumber, uint32_t numberLine) |
suupen | 4:dc14f62cb09f | 101 | { |
suupen | 4:dc14f62cb09f | 102 | // static FILE *fp; |
suupen | 4:dc14f62cb09f | 103 | int32_t ans = false; |
suupen | 6:d407fe3e0c97 | 104 | #define bufferNumber 100 |
suupen | 4:dc14f62cb09f | 105 | char buffer[bufferNumber]; |
suupen | 6:d407fe3e0c97 | 106 | |
suupen | 6:d407fe3e0c97 | 107 | sprintf(buffer,"/msc/%s",fileName); |
suupen | 6:d407fe3e0c97 | 108 | |
suupen | 6:d407fe3e0c97 | 109 | fp = fopen( buffer, "r"); |
suupen | 6:d407fe3e0c97 | 110 | if ( fp != NULL ) { |
suupen | 6:d407fe3e0c97 | 111 | for(uint32_t i = 0; i < numberLine; i++) { |
suupen | 6:d407fe3e0c97 | 112 | fgets(buffer, sizeof(buffer), fp); |
suupen | 6:d407fe3e0c97 | 113 | } |
suupen | 4:dc14f62cb09f | 114 | |
suupen | 6:d407fe3e0c97 | 115 | if(NULL != fgets(data, dataNumber, fp)) { |
suupen | 6:d407fe3e0c97 | 116 | DEBUG_PRINT("line = %s\r\n", data); |
suupen | 6:d407fe3e0c97 | 117 | fclose(fp); |
suupen | 6:d407fe3e0c97 | 118 | ans = true; |
suupen | 6:d407fe3e0c97 | 119 | } else { |
suupen | 6:d407fe3e0c97 | 120 | // nothing |
suupen | 6:d407fe3e0c97 | 121 | } |
suupen | 6:d407fe3e0c97 | 122 | } else { |
suupen | 6:d407fe3e0c97 | 123 | // Don't file open |
suupen | 6:d407fe3e0c97 | 124 | // nothing |
suupen | 6:d407fe3e0c97 | 125 | } |
suupen | 4:dc14f62cb09f | 126 | |
suupen | 4:dc14f62cb09f | 127 | return ans; |
suupen | 4:dc14f62cb09f | 128 | } |
suupen | 4:dc14f62cb09f | 129 |