Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
SnPowerFrame.h@4:a91682e19d6b, 2012-08-02 (annotated)
- 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?
User | Revision | Line number | New 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 |