18size_t tlm_encode(uint8_t type,
const void *payload, uint8_t len, uint8_t *out,
size_t cap)
21 if (
cap < total)
return 0;
26 memcpy(&out[4], payload, len);
27 const uint16_t crc =
tlm_crc16(&out[2], (
size_t)len + 2u);
28 out[4 + len] = (uint8_t)(crc & 0xFFu);
29 out[5 + len] = (uint8_t)(crc >> 8);
size_t tlm_encode(uint8_t type, const void *payload, uint8_t len, uint8_t *out, size_t cap)
Writes the complete frame into out; returns its length, 0 if cap is too small.