Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

SnHeartbeatFrame.h

Committer:
uci1
Date:
2012-10-16
Revision:
22:f957c4f840ad
Child:
40:1324da35afd4

File content as of revision 22:f957c4f840ad:

#ifndef SN_SnHeartbeatFrame
#define SN_SnHeartbeatFrame

#include <stdint.h>
#include "SnCommWin.h"

class SnHeartbeatFrame {
 public:
    // i/o version
    static const uint8_t    kIOVers;   // MUST BE INCREASED if any member var changes
    static const uint32_t   kMaxSizeOf = 2u*sizeof(uint32_t);

 public:
    SnHeartbeatFrame() {}
    virtual ~SnHeartbeatFrame() {}
    
    static
    uint32_t SizeOf(const uint8_t rv) { return kMaxSizeOf; }
    
    template<class T>
    static
    SnCommWin::ECommWinResult WriteTo(T& x,
                                      const uint32_t time,
                                      const uint32_t num) {
        // expect 'x' to be a MODSERIAL or a char const*
        x = SnBitUtils::WriteTo(x, time);
        x = SnBitUtils::WriteTo(x, num);
        return SnCommWin::kOkMsgSent;
    }
    
    template<class T>
    static
    SnCommWin::ECommWinResult ReadFrom(T& b,
                                       uint32_t& time,
                                       uint32_t& num) {
        b           = SnBitUtils::ReadFrom(b, time);
        b           = SnBitUtils::ReadFrom(b, num);
        return SnCommWin::kOkWithMsg;
    }
    

};

#endif // SN_SnHeartbeatFrame