Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
Diff: SnCommWin.cpp
- Revision:
- 10:3c93db1cfb12
- Parent:
- 8:95a325df1f6b
- Child:
- 12:d472f9811262
--- a/SnCommWin.cpp Thu Aug 09 02:16:08 2012 +0000 +++ b/SnCommWin.cpp Fri Aug 10 18:35:43 2012 +0000 @@ -139,13 +139,21 @@ SnCommWin::ECommWinResult SnCommWin::SendStatus(const SnConfigFrame& conf, const SnEventFrame& evt, const SnPowerFrame& pow, + const uint16_t seq, + const float thmrate, + const float evtrate, char* const genBuf, const uint32_t timeout_clock) { // TODO: check if connected? const uint32_t ssize = SnStatusFrame::SizeOf(SnStatusFrame::kIOVers, conf); char* b = genBuf; SnHeaderFrame::WriteTo(b, SnHeaderFrame::kStatusCode, ssize); - SnStatusFrame::WriteTo(b, GetCommType(), conf, evt, genBuf); + SnStatusFrame::WriteTo(b, GetCommType(), conf, evt, genBuf, seq, thmrate, evtrate); + SnHeaderFrame::WriteTo(b, SnHeaderFrame::kPowerCode, + pow.SizeOf(SnPowerFrame::kIOvers)); + pow.WriteTo(b); + int msiz = b-genBuf; + int mlen = SendAll(genBuf, msiz, timeout_clock); #ifdef DEBUG printf("status frame:\r\n"); for (uint32_t i=0; i<msize; i++) { @@ -153,20 +161,17 @@ } printf("\r\n"); #endif - int msiz = b-genBuf; - int mlen = SendAll(genBuf, msiz, timeout_clock); + msiz = b-genBuf; + mlen = SendAll(genBuf, msiz, timeout_clock); if (mlen==msiz) { - printf("status sent\r\n"); + printf("status+power sent\r\n"); b = genBuf; - SnHeaderFrame::WriteTo(b, SnHeaderFrame::kPowerCode, - pow.SizeOf(SnPowerFrame::kIOvers)); - //SnPowerFrame::WriteTo(b, pow.GetAveV1(), pow.GetAveV2(), pow.GetTime()); - pow.WriteTo(b); - msiz = b-genBuf; - mlen = SendAll(genBuf, msiz, timeout_clock); - if (mlen==msiz) { - return SnCommWin::kOkMsgSent; - } + SnHeaderFrame::WriteTo(b, SnHeaderFrame::kEventCode, + evt.SizeOf(SnEventFrame::kIOVers, + conf.GetWvLoseLSB(), conf.GetWvLoseMSB())); + evt.WriteTo(b, conf.GetWvLoseLSB(), conf.GetWvLoseMSB(), + conf.GetWvBaseline()); + return SnCommWin::kOkMsgSent; } return SnCommWin::kFailPartSent; }