Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
SnPowerFrame.h
- Committer:
- uci1
- Date:
- 2012-08-02
- Revision:
- 4:a91682e19d6b
- Child:
- 8:95a325df1f6b
File content as of revision 4:a91682e19d6b:
#ifndef SN_SnPowerFrame #define SN_SnPowerFrame #include <stdint.h> #include "SnCommWin.h" class SnPowerFrame { public: static const uint8_t kIOvers; // MUST BE INCREASED if any member var changes (==> also if kNchans, etc. change!) static const uint32_t kMaxSizeOf = sizeof(uint8_t) + (2u*sizeof(uint16_t)); private: uint16_t fVadc1; uint16_t fVadc2; public: SnPowerFrame(const uint16_t v1=0, const uint16_t v2=0) : fVadc1(v1), fVadc2(v2) {} virtual ~SnPowerFrame() {} uint16_t GetVadc1() const { return fVadc1; } uint16_t GetVadc2() const { return fVadc2; } void SetVadc1(const uint16_t v1) { fVadc1 = v1; } void SetVadc2(const uint16_t v2) { fVadc2 = v2; } static uint32_t SizeOf() { return kMaxSizeOf; } template<class T> static SnCommWin::ECommWinResult WriteTo(T& x, uint16_t v1, uint16_t v2) { // expect 'x' to be a MODSERIAL or a char const* x = SnBitUtils::WriteTo(x, kIOvers); x = SnBitUtils::WriteTo(x, v1); x = SnBitUtils::WriteTo(x, v2); return SnCommWin::kOkMsgSent; } template<class T> static SnCommWin::ECommWinResult ReadFrom(T& b, uint16_t& v1, uint16_t& v2) { uint8_t Rv=0; b = SnBitUtils::ReadFrom(b, Rv); if (Rv>0) { b = SnBitUtils::ReadFrom(b, v1); b = SnBitUtils::ReadFrom(b, v2); } return SnCommWin::kOkWithMsg; } }; #endif // SN_SnPowerFrame