UART Command Parser Time Manager Data Store for SD Card for stm32l476 [it's not Licensed as BSD/GPLx]
Dependencies: mbed SDFileSystem
Diff: event.cpp
- Revision:
- 5:a37e3a15444b
- Parent:
- 2:a694440145e9
- Child:
- 7:9ab8809f9693
diff -r bec3f80dc49c -r a37e3a15444b event.cpp --- a/event.cpp Wed Apr 24 00:40:42 2019 +0000 +++ b/event.cpp Wed Apr 24 02:34:51 2019 +0000 @@ -9,11 +9,18 @@ static int sampleHanlder(CommandParser *pC, char *arg, int exarg); static int setTimeHanlder(CommandParser *pC, char *arg, int exarg); static int getTimeHanlder(CommandParser *pC, char *arg, int exarg); +static int startSDStore(CommandParser *pC, char *arg, int exarg); +static int endSDStore(CommandParser *pC, char *arg, int exarg); +static int writeSDStore(CommandParser *pC, char *arg, int exarg); /* Event Hankder */ CmdParseRule rules[] = { /* サンプルコマンド */ {"CMD", sampleHanlder, 0}, + /* SDカード記録 */ + {"SDS", startSDStore, 0}, + {"SDE", endSDStore, 0}, + {"SDW", writeSDStore, 0}, /* for TEST */ /* 時刻取得 */ {"GTS", getTimeHanlder, 0}, /* 時刻設定 */ @@ -38,6 +45,54 @@ return 0; } +/****************************************************/ +/* Event Handlers (SD Control) */ +/****************************************************/ +static int startSDStore(CommandParser *pC, char *arg, int exarg) +{ + if (pSds->startFileWithTimeStamp("","txt") != true) { + pC->reply(false, 1); + return 1; + } + pC->reply(); + return 0; +} + +static int endSDStore(CommandParser *pC, char *arg, int exarg) +{ + FILE *fp; + if ((fp = pSds->getFilePointer()) == NULL) { + /* NOP */ + pC->reply(false, 2); + return 2; + } + fprintf(fp, "call endSDStore(%s)\n", pSds->getFileName()); + pSds->syncFile(); + pSds->closeFile(); + pC->reply(); + return 0; +} + +static int writeSDStore(CommandParser *pC, char *arg, int exarg) +{ + FILE *fp; + char curr[TimeManager::TimeStampLength + 1] = {0}; + + if ((fp = pSds->getFilePointer()) == NULL) { + /* NOP */ + pC->reply(false, 2); + return 2; + } + pTM->getTimeStamp(curr); + fprintf(fp, "call writeSDStore at %s\n", curr); + pSds->syncFile(); + pC->reply(); + return 0; +} + +/****************************************************/ +/* Event Handlers (Time Control) */ +/****************************************************/ /* Time Set Command */ static int setTimeHanlder(CommandParser *pC, char *arg, int exarg) {