Add access to the M17 META data field in the LSF.

This commit is contained in:
Jonathan Naylor 2021-05-18 20:59:17 +01:00
parent 8d6da34b79
commit ccdf708bbd
3 changed files with 20 additions and 3 deletions

View file

@ -50,8 +50,8 @@ const unsigned int M17_PAYLOAD_LENGTH_BITS = 128U;
const unsigned int M17_PAYLOAD_LENGTH_BYTES = M17_PAYLOAD_LENGTH_BITS / 8U;
const unsigned char M17_NULL_NONCE[] = {0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U};
const unsigned int M17_NONCE_LENGTH_BITS = 112U;
const unsigned int M17_NONCE_LENGTH_BYTES = M17_NONCE_LENGTH_BITS / 8U;
const unsigned int M17_META_LENGTH_BITS = 112U;
const unsigned int M17_META_LENGTH_BYTES = M17_META_LENGTH_BITS / 8U;
const unsigned int M17_FN_LENGTH_BITS = 16U;
const unsigned int M17_FN_LENGTH_BYTES = M17_FN_LENGTH_BITS / 8U;

View file

@ -144,9 +144,23 @@ void CM17LSF::setCAN(unsigned char can)
m_lsf[12U] |= (can >> 1) & 0x07U;
}
void CM17LSF::getMeta(unsigned char* data) const
{
assert(data != NULL);
::memcpy(data, m_lsf + 14U, M17_META_LENGTH_BYTES);
}
void CM17LSF::setMeta(const unsigned char* data)
{
assert(data != NULL);
::memcpy(m_lsf + 14U, data, M17_META_LENGTH_BYTES);
}
void CM17LSF::reset()
{
::memset(m_lsf, 0x00U, 30U);
::memset(m_lsf, 0x00U, M17_LSF_LENGTH_BYTES);
m_valid = false;
}

View file

@ -50,6 +50,9 @@ public:
unsigned char getCAN() const;
void setCAN(unsigned char can);
void getMeta(unsigned char* data) const;
void setMeta(const unsigned char* data);
void reset();
bool isValid() const;