#ifndef NX_MESSAGE_H #define NX_MESSAGE_H #include "base/Message.h" #include namespace nx { class Message : public base::Message { protected: /** Keep for historical reasons - no any use for current software */ bool convertFromOld(void* src); bool convertToOld(void* tgt); public: Message() : base::Message() {} inline bool assign(void* src, int fmt = base::formatNormal) { switch (fmt) { case base::formatEth1: convertFromOld(src); return true; case base::formatOptic1: convertFromOld((uint8_t*) src + 2); setRocNumber((*((uint8_t*) src) << 8) | *((uint8_t*) src + 1) ); return true; case base::formatEth2: memcpy(&data, src, 6); return true; case base::formatOptic2: data = (*((uint64_t*) src) >> 16) | (*((uint64_t*) src) << 48); //memcpy(&data, (uint8_t*) src + 2, 6); //setRocNumber(*((uint16_t*) src)); return true; case base::formatNormal: memcpy(&data, src, 8); return true; } return false; } // ---------- nXYTER Hit data access methods ---------------- ///