Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
SnCommWin.cpp
- Committer:
- uci1
- Date:
- 2012-07-31
- Revision:
- 3:24c5f0f50bf1
- Parent:
- 2:e67f7c158087
- Child:
- 6:6f002d202f59
File content as of revision 3:24c5f0f50bf1:
#include "SnCommWin.h" #include "SnConfigFrame.h" #include "SnSDUtils.h" /* bool SnCommWin::fgCommEst = false; bool SnCommWin::fgWinOpen = false; */ SnCommWin::ECommWinResult SnCommWin::SendData(SnConfigFrame& conf, SnEventFrame& evt, char* const genBuf, const uint32_t bsize, const uint32_t timeout) { printf("SnCommWin::SendData\r\n"); ECommWinResult res = kUndefFail; if (conf.IsSendingAllFiles()) { printf("sending all files\r\n"); const uint32_t to = (conf.IsObeyingTimeout()) ? timeout : kSecsPerYear; res = SnSDUtils::SendAllFiles(this, conf.IsDeletingFiles(), to, genBuf, bsize); } else { if (conf.GetCommSendData()==0) { printf("no data to send\r\n"); res = kOkNoMsg; } else { const uint32_t nev = (conf.GetCommSendData()>0) ? conf.GetCommSendData() // send N events : 0u; // send all events in last file res = SendData(SnSDUtils::GetCurFile(), SnSDUtils::GetCurFileName(), conf, evt, genBuf, nev); printf("after send data cur file, res=%d\r\n",(int)res); if (res>kAllFails) { printf("waiting for handshake\r\n"); res = WaitHandshake(timeout, genBuf, bsize); } } } return res; } SnCommWin::ECommWinResult SnCommWin::SendData(FILE* inf, const char* infn, const SnConfigFrame& curConf, SnEventFrame& evt, char* const genBuf, const uint32_t nevts, const uint32_t firstEvt) { // nevts==0 ==> send all events // evtBuf should be 0 only if nevts==0 printf("SnCommWin::SendData cur file\r\n"); ECommWinResult res = kUndefFail; if (inf!=0) { res = SendFilename(infn, genBuf); if (res>kAllFails) { if (nevts==0) { res = SendData(inf); if (curConf.IsDeletingFiles() && res>=kOkMsgSent) { SnSDUtilsWhisperer::DeleteFile(inf, infn); } } else { if (genBuf!=0) { res = SendConfAndEvents(inf, curConf, evt, genBuf, nevts, firstEvt); } } } } return res; } /* SnCommWin::ECommWinResult SnCommWin::SendData(const char* infn, const SnConfigFrame& curConf, SnEventFrame& evt, char* const genBuf, 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, genBuf, nevts, firstEvt); if (inf!=0) { fclose(inf); } } return res; } */