diff --git a/M17Defines.h b/M17Defines.h index 5dc07f7..85c07ff 100644 --- a/M17Defines.h +++ b/M17Defines.h @@ -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; diff --git a/M17LSF.cpp b/M17LSF.cpp index 6caa1c4..e4e8d41 100644 --- a/M17LSF.cpp +++ b/M17LSF.cpp @@ -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; } diff --git a/M17LSF.h b/M17LSF.h index a12c1fe..47c3a29 100644 --- a/M17LSF.h +++ b/M17LSF.h @@ -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;