Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Committer:
uci1
Date:
Thu Aug 02 05:42:47 2012 +0000
Revision:
4:a91682e19d6b
Child:
8:95a325df1f6b
Add power reading, once per file. Prevent seq number from wrapping around. Still many debugging messages. Communications not finished.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uci1 4:a91682e19d6b 1 #ifndef SN_SnPowerFrame
uci1 4:a91682e19d6b 2 #define SN_SnPowerFrame
uci1 4:a91682e19d6b 3
uci1 4:a91682e19d6b 4 #include <stdint.h>
uci1 4:a91682e19d6b 5
uci1 4:a91682e19d6b 6 #include "SnCommWin.h"
uci1 4:a91682e19d6b 7
uci1 4:a91682e19d6b 8 class SnPowerFrame {
uci1 4:a91682e19d6b 9 public:
uci1 4:a91682e19d6b 10 static const uint8_t kIOvers; // MUST BE INCREASED if any member var changes (==> also if kNchans, etc. change!)
uci1 4:a91682e19d6b 11 static const uint32_t kMaxSizeOf = sizeof(uint8_t) + (2u*sizeof(uint16_t));
uci1 4:a91682e19d6b 12
uci1 4:a91682e19d6b 13 private:
uci1 4:a91682e19d6b 14 uint16_t fVadc1;
uci1 4:a91682e19d6b 15 uint16_t fVadc2;
uci1 4:a91682e19d6b 16
uci1 4:a91682e19d6b 17 public:
uci1 4:a91682e19d6b 18 SnPowerFrame(const uint16_t v1=0, const uint16_t v2=0)
uci1 4:a91682e19d6b 19 : fVadc1(v1), fVadc2(v2) {}
uci1 4:a91682e19d6b 20 virtual ~SnPowerFrame() {}
uci1 4:a91682e19d6b 21
uci1 4:a91682e19d6b 22 uint16_t GetVadc1() const { return fVadc1; }
uci1 4:a91682e19d6b 23 uint16_t GetVadc2() const { return fVadc2; }
uci1 4:a91682e19d6b 24
uci1 4:a91682e19d6b 25 void SetVadc1(const uint16_t v1) { fVadc1 = v1; }
uci1 4:a91682e19d6b 26 void SetVadc2(const uint16_t v2) { fVadc2 = v2; }
uci1 4:a91682e19d6b 27
uci1 4:a91682e19d6b 28 static
uci1 4:a91682e19d6b 29 uint32_t SizeOf() { return kMaxSizeOf; }
uci1 4:a91682e19d6b 30
uci1 4:a91682e19d6b 31 template<class T>
uci1 4:a91682e19d6b 32 static
uci1 4:a91682e19d6b 33 SnCommWin::ECommWinResult WriteTo(T& x,
uci1 4:a91682e19d6b 34 uint16_t v1,
uci1 4:a91682e19d6b 35 uint16_t v2) {
uci1 4:a91682e19d6b 36 // expect 'x' to be a MODSERIAL or a char const*
uci1 4:a91682e19d6b 37 x = SnBitUtils::WriteTo(x, kIOvers);
uci1 4:a91682e19d6b 38 x = SnBitUtils::WriteTo(x, v1);
uci1 4:a91682e19d6b 39 x = SnBitUtils::WriteTo(x, v2);
uci1 4:a91682e19d6b 40 return SnCommWin::kOkMsgSent;
uci1 4:a91682e19d6b 41 }
uci1 4:a91682e19d6b 42
uci1 4:a91682e19d6b 43 template<class T>
uci1 4:a91682e19d6b 44 static
uci1 4:a91682e19d6b 45 SnCommWin::ECommWinResult ReadFrom(T& b,
uci1 4:a91682e19d6b 46 uint16_t& v1,
uci1 4:a91682e19d6b 47 uint16_t& v2) {
uci1 4:a91682e19d6b 48 uint8_t Rv=0;
uci1 4:a91682e19d6b 49 b = SnBitUtils::ReadFrom(b, Rv);
uci1 4:a91682e19d6b 50 if (Rv>0) {
uci1 4:a91682e19d6b 51 b = SnBitUtils::ReadFrom(b, v1);
uci1 4:a91682e19d6b 52 b = SnBitUtils::ReadFrom(b, v2);
uci1 4:a91682e19d6b 53 }
uci1 4:a91682e19d6b 54 return SnCommWin::kOkWithMsg;
uci1 4:a91682e19d6b 55 }
uci1 4:a91682e19d6b 56
uci1 4:a91682e19d6b 57
uci1 4:a91682e19d6b 58 };
uci1 4:a91682e19d6b 59
uci1 4:a91682e19d6b 60 #endif // SN_SnPowerFrame