MDX-20用の改造

Dependencies:   FatFileSystemCpp

usbMemory.cpp

Committer:
suupen
Date:
2016-11-23
Revision:
4:dc14f62cb09f
Child:
5:0ee37dbafd9a

File content as of revision 4:dc14f62cb09f:

#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];

int32_t fileDetect(char *fileName, uint32_t *numberLine)
{
    static 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")) {
                strcpy(fileName, p->d_name);
                DEBUG_PRINT("detect = %s\n",fileName);
                ans = true;
                continue;
            }
        }
        // file check
        if (ans == true) {
            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);

            } else {
                // Don't file open 
                // nothing
            }
        } else {
            // nothing Directory
        }
    }
        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;
}