Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Revision:
67:ec999336fcd1
Parent:
59:21128cc24b04
Child:
69:357135e9b5b3
--- a/SnConfigFrame.cpp	Tue Dec 02 21:55:27 2014 +0000
+++ b/SnConfigFrame.cpp	Tue Feb 03 00:04:30 2015 +0000
@@ -16,12 +16,16 @@
 #else // SST
 const uint8_t     SnConfigFrame::kIOVers               = 10;
 #endif
+
+#ifdef USE_INTERFACE_CHIP
 const char* const SnConfigFrame::kDefConfFile          = "/local/DEFCONF.DAT";
 const char* const SnConfigFrame::kDefRemIpFilen        = "/local/REMOTIP.TXT";
 const char* const SnConfigFrame::kDefRemPortFilen      = "/local/REMOTPRT.TXT";
 const char* const SnConfigFrame::kDefMbedIPFilen       = "/local/MBEDIP.TXT";
 const char* const SnConfigFrame::kDefMbedMaskFilen     = "/local/MBEDMASK.TXT";
 const char* const SnConfigFrame::kDefMbedGateFilen     = "/local/MBEDGATE.TXT";
+#endif
+
 const char* const SnConfigFrame::kDefIPflag            = "DEF";
 const uint32_t    SnConfigFrame::kMinCommWinPrdLowPwr  = 14400;    // exclusive min low power comm win period (s)
 const uint32_t    SnConfigFrame::kMaxCommWinPrdLowPwr  = 259200;   // exclusive max low power comm win period (s)
@@ -34,6 +38,8 @@
 void SnConfigFrame::SetMacAddress() {
     static const uint8_t b64 = sizeof(uint64_t);
     static char c[b64];
+    // NOTE: the function below may not be the one provided by MBED!
+    // see main.cpp
     mbed_mac_address(&(c[0]));
     // like a big endian union
     fgMacAdr = 0;
@@ -41,22 +47,27 @@
     for (uint8_t i=0; i<b64; i++, a--) {
         fgMacAdr |= static_cast<uint64_t>(*a) << (i<<3);
     }
+#ifdef DEBUG
+    printf("MAC=%012llX\r\n", fgMacAdr>>16); // 64 -> 48 bits
+#endif
 }
 
 void SnConfigFrame::SetHardDefaults() {
-    sprintf(fLabel,"HardDefaults");
+    sprintf(fLabel,"Stn20HardDefaults");
     fConfTime           = 1338854400u; // Tue, 05 Jun 2012 00:00:00 GMT
     fRun                = 0;
     fFirstSeq           = 0;
     fEvtsPerSeq         = 300;
-    fRunMode            = 0;
 #if CHIPBOARD==ATWD4CH
+    fRunMode            = kRSListOneCW;
     fStreamHiLoPlas     = 0;
+#else // not ATWD4CH
+    fRunMode            = kDualThreshBit | kDiffTrigBit | kRSListOneCW;
 #endif
     fWvLoseLSB          = 0;
     fWvLoseMSB          = 4;
     fWvBaseline         = 0;
-    fDatPackType        = ~0;
+    fDatPackType        = kSDcard | kIrid | kAfar | kUSB;
     uint16_t* dc = &(fDAC[0][0]);
     for (uint16_t i=0; i<kTotDacs; i++, dc++) {
         *dc             = 3072u;
@@ -70,14 +81,14 @@
 #endif
     fNumCardsMajLog     = 2;
     fEnableThermTrig    = 0;
-    fForceTrigPeriod    = 67u;
+    fForceTrigPeriod    = 0;
     fHeartBeatPeriod    = 0;
     fAmpsOn             = 0x0Fu;
-    fEvtThrtlPeriodMs   = 50u;
-    fPowerMode          = kAmpsDatTak|kCardDatTak|kAmpsComWin|kCardComWin|kIridComWin|kAfarComWin;
+    fEvtThrtlPeriodMs   = 0;
+    fPowerMode          = kIridComWin;
     fBatVoltToLowPwr    = 0;
     fBatVoltFromLowPwr  = 0;
-    fVoltCheckPeriod    = 600u;
+    fVoltCheckPeriod    = 127u; 
     fCommWinPeriod      = 600u;
     fCommWinDuration    = 600u;
     fCommSendData       = static_cast<int16_t>(kUseBits);
@@ -86,7 +97,11 @@
     fCommWinConnectTOMin = 3u;
     fCommWinListenTOMin = 3u;
     fWatchDogPeriod     = WDFAILSAFE;
+#if CHIPBOARD==ATWD4CH
     fTempCheckPeriod    = 0;
+#else // note ATWD4CH
+    fTempCheckPeriod    = 8;
+#endif
     SetDefaultIPs();
     fIsLowPower         = false;
     memcpy(fNormLabel, fLabel, kConfLblLen);
@@ -117,29 +132,36 @@
     const uint64_t ip = GetMacAddress();
     if (false==ReadDefaultMbedIP()) {
         switch (ip) {
+            case 0x0002F7F0AEE00000: // stn 20, atwd mb 1
+                sprintf(fMbedIP,"%s","157.132.94.30");
+                break;
             case 0x0002F7F2244B0000: // stn 13, board 102
                 sprintf(fMbedIP,"%s","157.132.94.31");
                 break;
             case 0x0002F7F20A9C0000: // stn 14, board 104
                 sprintf(fMbedIP,"%s","157.132.94.33");
                 break;
-            case 0x0002F7F0C3B60000: // station 3
-            case 0x0002F7F224440000: // board 105
+            case 0x0002F7F21A8A0000: // board 111
+                sprintf(fMbedIP,"%s","157.132.94.34");
+                break;                
+            case 0x0002F7F0C3B60000: // station 3, atwd mb 5
                 sprintf(fMbedIP,"%s","157.132.94.35");
                 break;
             case 0x0002F7F0C41C0000: // station 4
+            case 0x0002F7F1F7A80000: // stn 15, board 110
                 sprintf(fMbedIP,"%s","157.132.94.37");
                 break;
-            case 0x0002F7F0C61A0000: // station 10
-            case 0x0002F7F21A8A0000: // board 111
+            case 0x0002F7F0C61A0000: // station 10, atwd mb 8
                 sprintf(fMbedIP,"%s","157.132.94.39");
                 break;
             case 0x0002F7F0C4450000: // station 6
             case 0x0002F7F1E9ED0000: // board 108
+            case 0x0002F7F224440000: // stn 19, board 105
                 sprintf(fMbedIP,"%s","157.132.94.41");
                 break;
             case 0x0002F7F175B70000: // station 11
             case 0x0002F7F1F2120000: // board 113
+            case 0x0002F7F202C10000: // stn 17, board 109
                 sprintf(fMbedIP,"%s","157.132.94.43");
                 break;
             default: // what??
@@ -161,6 +183,7 @@
     }
 }
 
+#ifdef USE_INTERFACE_CHIP
 bool SnConfigFrame::ReadOneIPFrom(const char* ipfname,
                                   char* ipstr) {
     bool ok = false;
@@ -185,16 +208,22 @@
 #endif
     return ok;
 }
+#endif
 
 bool SnConfigFrame::ReadDefaultRemoteServer() {
+#ifdef USE_INTERFACE_CHIP
     const bool ok = ReadOneIPFrom(kDefRemIpFilen, fRemoteServer);    
 #ifdef DEBUG
     printf("remote = %s\r\n", fRemoteServer);
 #endif
     return ok;
+#else // do not USE_INTERFACE_CHIP
+    return false;
+#endif // USE_INTERFACE_CHIP
 }
 
 bool SnConfigFrame::ReadDefaultRemotePort() {
+#ifdef USE_INTERFACE_CHIP
     bool ok = false;
     FILE* pf = fopen(kDefRemPortFilen, "r"); 
     if (pf!=0) {
@@ -205,50 +234,55 @@
     printf("port   = %hu\r\n", fRemotePort);
 #endif
     return ok;
+#else // do not USE_INTERFACE_CHIP
+    return false;
+#endif // USE_INTERFACE_CHIP
 }
 
 bool SnConfigFrame::ReadDefaultMbedIP() {
+#ifdef USE_INTERFACE_CHIP
     const bool ok = ReadOneIPFrom(kDefMbedIPFilen, fMbedIP);    
 #ifdef DEBUG
     printf("mbed   = %s\r\n", fMbedIP);
 #endif
     return ok;
+#else // do not USE_INTERFACE_CHIP
+    return false;
+#endif // USE_INTERFACE_CHIP
 }
 
 bool SnConfigFrame::ReadDefaultMbedMask() {
+#ifdef USE_INTERFACE_CHIP
     const bool ok = ReadOneIPFrom(kDefMbedMaskFilen, fMbedMask);    
 #ifdef DEBUG
     printf("mask   = %s\r\n", fMbedMask);
 #endif
     return ok;
+#else // do not USE_INTERFACE_CHIP
+    return false;
+#endif // USE_INTERFACE_CHIP
 }
 
 bool SnConfigFrame::ReadDefaultMbedGate() {
+#ifdef USE_INTERFACE_CHIP
     const bool ok = ReadOneIPFrom(kDefMbedGateFilen, fMbedGate);
 #ifdef DEBUG
     printf("gate   = %s\r\n", fMbedGate);
 #endif
     return ok;
+#else // do not USE_INTERFACE_CHIP
+    return false;
+#endif // USE_INTERFACE_CHIP
 }
 
-bool SnConfigFrame::ReadDefaultIPFiles() {
-    bool ok  = ReadDefaultRemoteServer();
-         ok &= ReadDefaultRemotePort();
-         ok &= ReadDefaultMbedIP();
-         ok &= ReadDefaultMbedMask();
-         ok &= ReadDefaultMbedGate();
-    return ok;
-}
 
 void SnConfigFrame::SetDefaultIPs() {
     GetMacAddress(); // just to make sure it gets read
-    if (false==ReadDefaultIPFiles()) {
-        SetDefaultRemoteServ();
-        SetDefaultRemotePort();
-        SetDefaultMbedIP();
-        SetDefaultMaskIP();
-        SetDefaultGateIP();
-    }
+    SetDefaultRemoteServ();
+    SetDefaultRemotePort();
+    SetDefaultMbedIP();
+    SetDefaultMaskIP();
+    SetDefaultGateIP();
 }
 
 void SnConfigFrame::ApplyConnectListenSafetyNets() {