MDX-20用の改造

Dependencies:   FatFileSystemCpp

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?

UserRevisionLine numberNew 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