Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
Diff: SnCommWin.cpp
- Revision:
- 1:e392595b4b76
- Parent:
- 0:664899e0b988
- Child:
- 2:e67f7c158087
diff -r 664899e0b988 -r e392595b4b76 SnCommWin.cpp --- a/SnCommWin.cpp Sat Jun 30 02:03:51 2012 +0000 +++ b/SnCommWin.cpp Fri Jul 20 19:04:02 2012 +0000 @@ -11,7 +11,8 @@ SnCommWin::ECommWinResult SnCommWin::SendData(SnConfigFrame& conf, SnEventFrame& evt, char* const evtBuf, - char* const confBuf) { + char* const confBuf, + const uint32_t timeout) { ECommWinResult res = kUndefFail; if (conf.IsSendingAllFiles()) { res = SnSDUtils::SendAllFiles(this, conf.IsDeletingFiles()); @@ -19,14 +20,17 @@ if (conf.GetCommSendData()==0) { res = kOkNoMsg; } else { - res = SendData(SnSDUtils::GetCurFileName(), conf, evt, - evtBuf, confBuf, conf.GetCommSendData()); + const uint32_t nev = (conf.GetCommSendData()>0) ? + conf.GetCommSendData() + : 0u; // send all events in file + res = SendData(SnSDUtils::GetCurFile(), SnSDUtils::GetCurFileName(), + conf, evt, evtBuf, confBuf, nev); } } return res; } -SnCommWin::ECommWinResult SnCommWin::SendData(const char* infn, +SnCommWin::ECommWinResult SnCommWin::SendData(FILE* inf, const char* infn, const SnConfigFrame& curConf, SnEventFrame& evt, char* const evtBuf, @@ -35,9 +39,10 @@ const uint32_t firstEvt) { // nevts==0 ==> send all events // evtBuf should be 0 only if nevts==0 + // + // this version should be used to send the current file (avoid fopen/fclose) ECommWinResult res = kUndefFail; - FILE* inf = fopen(infn, "rb"); if (inf!=0) { if (nevts==0) { res = SendData(inf); @@ -49,6 +54,27 @@ res = SendConfAndEvents(inf, curConf, evt, evtBuf, confBuf, nevts, firstEvt); } } + } + return res; +} + + +SnCommWin::ECommWinResult SnCommWin::SendData(const char* infn, + const SnConfigFrame& curConf, + SnEventFrame& evt, + char* const evtBuf, + char* const confBuf, + const uint32_t nevts, + const uint32_t firstEvt) { + // nevts==0 ==> send all events + // evtBuf should be 0 only if nevts==0 + // + // this version can send existing files that were previous closed + + ECommWinResult res = kUndefFail; + FILE* inf = fopen(infn, "rb"); + if (inf!=0) { + SendData(inf, infn, curConf, evt, evtBuf, confBuf, nevts, firstEvt); if (inf!=0) { fclose(inf); }