Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Revision:
0:664899e0b988
Child:
1:e392595b4b76
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SnCommWin.cpp	Sat Jun 30 02:03:51 2012 +0000
@@ -0,0 +1,57 @@
+#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 evtBuf,
+                                              char* const confBuf) {
+    ECommWinResult res = kUndefFail;
+    if (conf.IsSendingAllFiles()) {
+        res = SnSDUtils::SendAllFiles(this, conf.IsDeletingFiles());
+    } else {
+        if (conf.GetCommSendData()==0) {
+            res = kOkNoMsg;
+        } else {
+            res = SendData(SnSDUtils::GetCurFileName(), conf, evt,
+                           evtBuf, confBuf, conf.GetCommSendData());
+        }
+    }
+    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
+    
+    ECommWinResult res = kUndefFail;
+    FILE* inf = fopen(infn, "rb");
+    if (inf!=0) {
+        if (nevts==0) {
+            res = SendData(inf);
+            if (curConf.IsDeletingFiles() && res>=kOkMsgSent) {
+                SnSDUtilsWhisperer::DeleteFile(inf, infn);
+            }
+        } else {
+            if (evtBuf!=0) {
+                res = SendConfAndEvents(inf, curConf, evt, evtBuf, confBuf, nevts, firstEvt);
+            }
+        }
+        if (inf!=0) {
+            fclose(inf);
+        }
+    }
+    return res;
+}