#include "HStructConvByte.h" #include "HDLog.h" #include HSTRUCT_CONV_DEFINE(uint8_t) { HSTRUCT_CONV_BEGIN(uint8_t); HSTRUCT_UPDATE(sizeof(uint8_t)); HSTRUCT_GET_DATA(uint8_t) = HSTRUCT_GET_TYPE(); HSTRUCT_END(); } HSTRUCT_CONV_DEFINE(uint16_t) { HSTRUCT_CONV_BEGIN(uint16_t); HSTRUCT_UPDATE(sizeof(uint16_t)); HSTRUCT_GET_DATA_RAW(uint8_t *)[0] = (HSTRUCT_GET_TYPE() >> 8) & 0xFF; HSTRUCT_GET_DATA_RAW(uint8_t *)[1] = HSTRUCT_GET_TYPE() & 0xFF; HSTRUCT_END(); } HSTRUCT_CONV_DEFINE(uint32_t) { HSTRUCT_CONV_BEGIN(uint32_t); HSTRUCT_UPDATE(sizeof(uint32_t)); HSTRUCT_GET_DATA_RAW(uint8_t *)[0] = (HSTRUCT_GET_TYPE() >> 24) & 0xFF; HSTRUCT_GET_DATA_RAW(uint8_t *)[1] = (HSTRUCT_GET_TYPE() >> 16) & 0xFF; HSTRUCT_GET_DATA_RAW(uint8_t *)[2] = (HSTRUCT_GET_TYPE() >> 8) & 0xFF; HSTRUCT_GET_DATA_RAW(uint8_t *)[3] = HSTRUCT_GET_TYPE() & 0xFF; HSTRUCT_END(); } HSTRUCT_FROM_DEFINE(uint8_t) { HSTRUCT_FROM_BEGIN(uint8_t); HSTRUCT_UPDATE(sizeof(uint8_t)); HSTRUCT_GET_TYPE() = HSTRUCT_GET_DATA(uint8_t); HSTRUCT_END(); } HSTRUCT_FROM_DEFINE(uint16_t) { HSTRUCT_FROM_BEGIN(uint16_t); HSTRUCT_UPDATE(sizeof(uint16_t)); HSTRUCT_GET_TYPE() = (HSTRUCT_GET_DATA_RAW(uint8_t *)[0] << 8) | HSTRUCT_GET_DATA_RAW(uint8_t *)[1]; HSTRUCT_END(); } HSTRUCT_FROM_DEFINE(uint32_t) { HSTRUCT_FROM_BEGIN(uint32_t); HSTRUCT_UPDATE(sizeof(uint32_t)); HSTRUCT_GET_TYPE() = (HSTRUCT_GET_DATA_RAW(uint8_t *)[0] << 24) | (HSTRUCT_GET_DATA_RAW(uint8_t *)[1] << 16) | (HSTRUCT_GET_DATA_RAW(uint8_t *)[2] << 8) | HSTRUCT_GET_DATA_RAW(uint8_t *)[3]; HSTRUCT_END(); }