Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Revision:
37:ff95e7070f26
Parent:
36:87865913ae6f
Child:
40:1324da35afd4
--- a/SnCommWin.h	Thu May 23 22:26:39 2013 +0000
+++ b/SnCommWin.h	Wed May 29 00:20:31 2013 +0000
@@ -8,11 +8,11 @@
 #include "SnConfigFrame.h"
 class SnEventFrame;
 class SnPowerFrame;
+class SnCommPeripheral;
 
-// ABC for communication types
+// DAQ station communication utilities
 
 class SnCommWin {
-/*
  public:
     enum ECommWinResult {
         kUndefFail,     // undefined fail type
@@ -30,8 +30,7 @@
         kOkWithMsg,     // successfully received message
         kOkWthMsgNoConf // successfully received message and it says to stick with the same config
     };
-*/
-    static const size_t   kMaxStrLen = 512;   // max bytes for a string send. prevent something crazy
+
     static const char*    kLocalDir;          // the local mbed directory
     static const char*    kDelAllConfCodeStr; // a magic string to confirm deletion of all files on the SD card
     static const uint8_t  kDelAllConfCodeLen; // the length of the magic string
@@ -54,6 +53,8 @@
 
 
  protected:
+    SnCommPeripheral*           fComm; // the communication peripheral. deleted in dtor!!
+
     virtual int SendFileBlock(FILE* inf, 
                               const uint8_t blockHeaderCode,
                               const uint32_t blockSize,
@@ -68,24 +69,22 @@
                                             uint32_t nevts,
                                             const uint32_t timeout_clock);
     
-    // send and receive must not kick the watchdog, or a bad timeout
-    // could block a station forever!
-    virtual int32_t ReceiveAll(char* const buf, const uint32_t mlen,
-                               const uint32_t timeout_clock)=0;
-    virtual int32_t SendAll(char* const data, const uint32_t length,
-                            const uint32_t timeout_clock)=0;
+ public:
+    SnCommWin(SnCommPeripheral* p);
+    virtual ~SnCommWin();
     
-    bool            IsTimedOut(const uint32_t timeout_clock) const;
-
-    
- public:
-    virtual ~SnCommWin() {}
+    // probably no need to overload
+    virtual bool            TrySetSysTimeUnix(const uint32_t timeout);
+    virtual bool            Connect(const uint32_t timeout);
+    virtual bool            CloseConn(const uint32_t timeout);
     
-    virtual SnConfigFrame::EDatPackBit GetCommType() const=0;
+    // optional overloads
+    virtual uint32_t        GetConnectTimeout() const;
+    virtual uint32_t        GetListenTimeout() const;
+    virtual void Set(const SnConfigFrame& conf) {}
     
-    virtual bool TrySetSysTimeUnix(const uint32_t timeout) { return 0; }
-    
-    virtual void Set(const SnConfigFrame& conf)=0;
+    // mandatory overloads
+    virtual SnConfigFrame::EDatPackBit GetCommType() const=0;
     
     virtual ECommWinResult  OpenWindow(const uint32_t timeout,
                                        const bool sendStatus,
@@ -97,10 +96,6 @@
                                        const float evtrate,
                                        char* const genBuf)=0;
     
-    virtual bool            Connect(const uint32_t timeout)=0;
-    virtual bool            CloseConn(const uint32_t timeout)=0;
-    virtual uint32_t        GetConnectTimeout() const;
-    virtual uint32_t        GetListenTimeout() const;
     virtual bool            GetDeleteAllConfirmCode(const SnConfigFrame& conf,
                                                     const uint32_t length,
                                                     const uint32_t timeout,
@@ -152,22 +147,6 @@
                              const uint32_t bsize,
                              const uint32_t timeout,
                              const uint32_t handshakeTimeout);
-
-    static
-    void CapitalizeInPlace(std::string::iterator s,
-                           const std::string::const_iterator send);
-
-    // for debugging
-    void dispStrBytes(const char* const s, const uint32_t len) const {
-        const char* c = s;
-        for (uint32_t i=0; i<len; ++i, ++c) {
-            if (*c>0x1F && *c<0x7F) {
-                printf("%c", *c);
-            } else {
-                printf(".x%02x.", *c);
-            }
-        }
-    }
     
 };