Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
Diff: SnConfigFrame.cpp
- 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() {