Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed MODSERIAL FATFileSystem
Diff: MbedLogger/MbedLogger.cpp
- Revision:
- 49:47ffa4feb6db
- Parent:
- 48:20e681885161
--- a/MbedLogger/MbedLogger.cpp Thu Feb 15 04:01:57 2018 +0000 +++ b/MbedLogger/MbedLogger.cpp Thu Feb 15 23:07:25 2018 +0000 @@ -4,7 +4,7 @@ MbedLogger::MbedLogger(string file_system_input_string) { _file_system_string = file_system_input_string; - _full_file_path_string = _file_system_string + "LOG000.csv"; + _full_file_path_string = _file_system_string + "LOG000.csv"; //use multiple logs in the future? (after file size is too large) _f = 0; _file_number = 0; @@ -21,8 +21,6 @@ _mbed_transmit_loop = false; - _SD_file_name_string = ""; - _file_transmission_complete = false; } @@ -39,30 +37,6 @@ return seconds; } -//idea to copy SD file on system down-time -void MbedLogger::copySDFile() { -} - -//function is a work in progress -void MbedLogger::openSDFile() { - //create a file for writing to it (overwrites existing file) (do not close it until other operations are complete) - - //write this as a string... - char char_buffer[50]; - sprintf(char_buffer, "L%d.csv", getSystemTime()); - - - _SD_file_name_string = _file_system_string + char_buffer; - _fp = fopen(_SD_file_name_string.c_str(), "w"); - - //write the header - fprintf(_fp,"state_string,state_ID,timer,depth_cmd,depth_ft,pitch_cmd,pitch_deg,bce_cmd,bce_mm,batt_cmd,batt_mm,pitchRate_degs,depthRate_fps\n"); - - // added pitchRate_degs (degrees per second) - // added depthRate_fps (feet per second) - - pc().printf("SD CARD FILE IS %s\n\r", _SD_file_name_string.c_str()); -} void MbedLogger::recordData(int current_state) { int data_log_int = mbedLogger().getSystemTime(); //read the system timer to get unix timestamp //_data_log[0] = mbedLogger().getSystemTime(); //read the system timer to get unix timestamp @@ -98,7 +72,9 @@ else if (current_state == MULTI_RISE) string_state = "MULTI_RISE"; else if (current_state == KEYBOARD) - string_state = "KEYBOARD"; + string_state = "KEYBOARD"; + else if (current_state == CHECK_TUNING) + string_state = "CHECK_TUNING"; //record the string state, integer state, and then the data fprintf(_fp, "%s,%d,",string_state.c_str(),current_state); @@ -1105,21 +1081,6 @@ } } -void MbedLogger::closeSDLogFile() { - if (_fp == NULL){ - pc().printf("MbedLogger: (%s) SD LOG FILE WAS ALREADY CLOSED!\n\r", _SD_file_name_string.c_str()); - } - - else { - pc().printf("MbedLogger: (%s) CLOSING SD LOG FILE!\n\r", _SD_file_name_string.c_str()); - - //close file - fclose(_fp); - - _fp = NULL; //set pointer to zero - } -} - void MbedLogger::activateReceivePacket() { _mbed_receive_loop = true; } @@ -1201,4 +1162,14 @@ int MbedLogger::currentPacketNumber() { return _packet_number; +} + +//only do this for the MBED because of the limited file size +//write one line to the file (open to write, this will erase all other data) and close it. +void MbedLogger::eraseFile() { + _fp = fopen(_full_file_path_string.c_str(), "w"); // LOG000.csv + + fprintf(_fp,"state_string,state_ID,timer,depth_cmd,depth_ft,pitch_cmd,pitch_deg,bce_cmd,bce_mm,batt_cmd,batt_mm,pitchRate_degs,depthRate_fps\n(file erased)\n"); + + closeLogFile(); } \ No newline at end of file