libdrmconf
0.12.0
A library to program DMR radios.
|
Implements the binary encoding of the DMR settings. More...
#include <dr1801uv_codeplug.hh>
Classes | |
struct | Limit |
Some limits. More... | |
struct | Offset |
Internal offsets within the element. More... | |
Public Types | |
enum class | SMSFormat { CompressedIP = 0 , DefinedData = 1 , IPData = 2 } |
Possible SMS encodings. | |
Public Member Functions | |
DMRSettingsElement (uint8_t *ptr) | |
Constructor. | |
void | clear () |
Abstract method to reset the element within the codeplug. More... | |
virtual unsigned int | holdTime () const |
Returns the hold-time in seconds. | |
virtual void | setHoldTime (unsigned int sec) |
Sets the hold-time in seconds. | |
virtual unsigned int | remoteListen () const |
Returns the remote-listen duration in seconds. | |
virtual void | setRemoteListen (unsigned int sec) |
Sets the remote-listen duration in seconds. | |
virtual unsigned int | activeWait () const |
Returns the active wait period in ms. | |
virtual void | setActiveWait (unsigned int ms) |
Sets the active wait period in ms. | |
virtual unsigned int | activeResend () const |
Returns the active resend count. | |
virtual void | setActiveResend (unsigned int count) |
Sets the active resend cound. | |
virtual unsigned int | preSend () const |
Returns the pre-send count. | |
virtual void | setPreSend (unsigned int count) |
Sets the pre-send count. | |
virtual unsigned int | voiceHead () const |
Returns the voice head count. | |
virtual void | setVoiceHead (unsigned int count) |
Sets the voice head count. | |
virtual SMSFormat | smsFormat () const |
Returns the SMS format. | |
virtual void | setSMSFormat (SMSFormat format) |
Sets the SMS format. | |
virtual bool | killEnc () const |
Returns true if the kill encoding is enabled. | |
virtual void | enableKillEnc (bool enable) |
Enables kill encoding. | |
virtual bool | killDec () const |
Returns true if the kill decoding is enabled. | |
virtual void | enableKillDec (bool enable) |
Enables kill decoding. | |
virtual bool | activeEnc () const |
Returns true if the active encoding is enabled. | |
virtual void | enableActiveEnc (bool enable) |
Enables active encoding. | |
virtual bool | activeDec () const |
Returns true if the active decoding is enabled. | |
virtual void | enableActiveDec (bool enable) |
Enables active decoding. | |
virtual bool | checkEnc () const |
Returns true if the check encoding is enabled. | |
virtual void | enableCheckEnc (bool enable) |
Enables check encoding. | |
virtual bool | checkDec () const |
Returns true if the check decoding is enabled. | |
virtual void | enableCheckDec (bool enable) |
Enables check decoding. | |
virtual bool | callAlterEnc () const |
Returns true if the call alter encoding is enabled. | |
virtual void | enableCallAlterEnc (bool enable) |
Enables call alter encoding. | |
virtual bool | callAlterDec () const |
Returns true if the call alter decoding is enabled. | |
virtual void | enableCallAlterDec (bool enable) |
Enables call alter decoding. | |
virtual bool | remoteMonitorEnc () const |
Returns true if the remote monitor encoding is enabled. | |
virtual void | enableRemoteMonitorEnc (bool enable) |
Enables remote monitor encoding. | |
virtual bool | remoteMonitorDec () const |
Returns true if the remote monitor decoding is enabled. | |
virtual void | enableRemoteMonitorDec (bool enable) |
Enables remote monitor decoding. | |
virtual bool | decode (Context &ctx, const ErrorStack &err=ErrorStack()) const |
Decodes the DMR settings. | |
virtual bool | encode (Context &ctx, const ErrorStack &err=ErrorStack()) |
Encodes all keys. | |
Public Member Functions inherited from Codeplug::Element | |
Element (const Element &other) | |
Copy constructor. | |
virtual | ~Element () |
Destructor. | |
Element & | operator= (const Element &other) |
Copy assignment. | |
virtual bool | isValid () const |
Returns true if the pointer is not null. | |
bool | fill (uint8_t value, unsigned offset=0, int size=-1) |
Fills the memsets the entire element to the given value. | |
bool | getBit (const Offset::BitOffset &offset) const |
Reads a specific bit at the given byte-offset. | |
bool | getBit (unsigned offset, unsigned bit) const |
Reads a specific bit at the given byte-offset. | |
void | setBit (const Offset::BitOffset &offset, bool value=true) |
Sets a specific bit at the given byte-offset. | |
void | setBit (unsigned offset, unsigned bit, bool value=true) |
Sets a specific bit at the given byte-offset. | |
void | clearBit (unsigned offset, unsigned bit) |
Clears a specific bit at the given byte-offset. | |
uint8_t | getUInt2 (unsigned offset, unsigned bit) const |
Reads a 2bit unsigned integer at the given byte- and bit-offset. | |
void | setUInt2 (unsigned offset, unsigned bit, uint8_t value) |
Stores a 2bit unsigned integer at the given byte- and bit-offset. | |
uint8_t | getUInt3 (unsigned offset, unsigned bit) const |
Reads a 3bit unsigned integer at the given byte- and bit-offset. | |
void | setUInt3 (unsigned offset, unsigned bit, uint8_t value) |
Stores a 3bit unsigned integer at the given byte- and bit-offset. | |
uint8_t | getUInt4 (unsigned offset, unsigned bit) const |
Reads a 4bit unsigned integer at the given byte- and bit-offset. | |
void | setUInt4 (unsigned offset, unsigned bit, uint8_t value) |
Stores a 4bit unsigned integer at the given byte- and bit-offset. | |
uint8_t | getUInt5 (unsigned offset, unsigned bit) const |
Reads a 5bit unsigned integer at the given byte- and bit-offset. | |
void | setUInt5 (unsigned offset, unsigned bit, uint8_t value) |
Stores a 5bit iunsinged nteger at the given byte- and bit-offset. | |
uint8_t | getUInt6 (unsigned offset, unsigned bit) const |
Reads a 6bit unsigned integer at the given byte- and bit-offset. | |
void | setUInt6 (unsigned offset, unsigned bit, uint8_t value) |
Stores a 6bit unsigned integer at the given byte- and bit-offset. | |
uint8_t | getUInt8 (unsigned offset) const |
Reads a 8bit unsigned integer at the given byte- and bit-offset. | |
void | setUInt8 (unsigned offset, uint8_t value) |
Reads a 8bit unsigned integer at the given byte- and bit-offset. | |
int8_t | getInt8 (unsigned offset) const |
Reads a 8bit signed integer at the given byte- and bit-offset. | |
void | setInt8 (unsigned offset, int8_t value) |
Reads a 8bit signed integer at the given byte- and bit-offset. | |
uint16_t | getUInt16_be (unsigned offset) const |
Reads a 16bit big-endian unsigned integer at the given byte-offset. | |
uint16_t | getUInt16_le (unsigned offset) const |
Reads a 16bit little-endian unsigned integer at the given byte-offset. | |
void | setUInt16_be (unsigned offset, uint16_t value) |
Stores a 16bit big-endian unsigned integer at the given byte-offset. | |
void | setUInt16_le (unsigned offset, uint16_t value) |
Stores a 16bit little-endian unsigned integer at the given byte-offset. | |
uint32_t | getUInt24_be (unsigned offset) const |
Reads a 24bit big-endian unsigned integer at the given byte-offset. | |
uint32_t | getUInt24_le (unsigned offset) const |
Reads a 24bit little-endian unsigned integer at the given byte-offset. | |
void | setUInt24_be (unsigned offset, uint32_t value) |
Stores a 24bit big-endian unsigned integer at the given byte-offset. | |
void | setUInt24_le (unsigned offset, uint32_t value) |
Stores a 24bit little-endian unsigned integer at the given byte-offset. | |
uint32_t | getUInt32_be (unsigned offset) const |
Reads a 32bit big-endian unsigned integer at the given byte-offset. | |
uint32_t | getUInt32_le (unsigned offset) const |
Reads a 32bit little-endian unsigned integer at the given byte-offset. | |
void | setUInt32_be (unsigned offset, uint32_t value) |
Stores a 32bit big-endian unsigned integer at the given byte-offset. | |
void | setUInt32_le (unsigned offset, uint32_t value) |
Stores a 32bit little-endian unsigned integer at the given byte-offset. | |
uint64_t | getUInt64_be (unsigned offset) const |
Reads a 64bit big-endian unsigned integer at the given byte-offset. | |
uint64_t | getUInt64_le (unsigned offset) const |
Reads a 64bit little-endian unsigned integer at the given byte-offset. | |
void | setUInt64_be (unsigned offset, uint64_t value) |
Stores a 64bit big-endian unsigned integer at the given byte-offset. | |
void | setUInt64_le (unsigned offset, uint64_t value) |
Stores a 64bit little-endian unsigned integer at the given byte-offset. | |
uint8_t | getBCD2 (unsigned offset) const |
Reads a 2-digit (1-byte/8bit) BDC value in big-endian at the given byte-offset. | |
void | setBCD2 (unsigned offset, uint8_t value) |
Stores a 2-digit (1-byte/8bit) BDC value in big-endian at the given byte-offset. | |
uint16_t | getBCD4_be (unsigned offset) const |
Reads a 4-digit (2-byte/16bit) BDC value in big-endian at the given byte-offset. | |
void | setBCD4_be (unsigned offset, uint16_t value) |
Stores a 4-digit (2-byte/16bit) BDC value in big-endian at the given byte-offset. | |
uint16_t | getBCD4_le (unsigned offset) const |
Reads a 4-digit (2-byte/16bit) BDC value in little-endian at the given byte-offset. | |
void | setBCD4_le (unsigned offset, uint16_t value) |
Stores a 4-digit (1-byte/16bit) BDC value in little-endian at the given byte-offset. | |
uint32_t | getBCD8_be (unsigned offset) const |
Reads a 8-digit (4-byte/32bit) BDC value in big-endian at the given byte-offset. | |
void | setBCD8_be (unsigned offset, uint32_t value) |
Stores a 8-digit (4-byte/32bit) BDC value in big-endian at the given byte-offset. | |
uint32_t | getBCD8_le (unsigned offset) const |
Reads a 8-digit (4-byte/32bit) BDC value in little-endian at the given byte-offset. | |
void | setBCD8_le (unsigned offset, uint32_t value) |
Stores a 8-digit (4-byte/32bit) BDC value in little-endian at the given byte-offset. | |
QString | readASCII (unsigned offset, unsigned maxlen, uint8_t eos=0x00) const |
Reads up to maxlen ASCII chars at the given byte-offset using eos as the string termination char. | |
void | writeASCII (unsigned offset, const QString &txt, unsigned maxlen, uint8_t eos=0x00) |
Stores up to maxlen ASCII chars at the given byte-offset using eos as the string termination char. More... | |
QString | readUnicode (unsigned offset, unsigned maxlen, uint16_t eos=0x0000) const |
Reads up to maxlen unicode chars at the given byte-offset using eos as the string termination char. | |
void | writeUnicode (unsigned offset, const QString &txt, unsigned maxlen, uint16_t eos=0x0000) |
Stores up to maxlen unicode chars at the given byte-offset using eos as the string termination char. More... | |
Static Public Member Functions | |
static constexpr unsigned int | size () |
The size of the element. | |
Protected Member Functions | |
DMRSettingsElement (uint8_t *ptr, size_t size) | |
Hidden constructor. | |
Protected Member Functions inherited from Codeplug::Element | |
Element (uint8_t *ptr, size_t size) | |
Hidden constructor. More... | |
Additional Inherited Members | |
Protected Attributes inherited from Codeplug::Element | |
uint8_t * | _data |
Holds the pointer to the element. | |
size_t | _size |
Holds the size of the element. | |
Implements the binary encoding of the DMR settings.
Memory representation of the DMR settings (0010h bytes):
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 00 | Hold time in sec [1-90] | Remote listen in sec [10-120] | Active wait, 5ms [120-600] | Active resent count [1-10] | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 04 | Pre-send count [4-15] | Kill enc. enabled | Active enc. enabled | Check enc. enabled | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 08 | Kill dec. enabled | Active dec. enabled | Check dec. enabled | SMS format | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0c | Voice head count [0-20] | 0 0 0 0 |RMD|RME|CAD|CAE| Unused set 0x0000 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ Where: - SMS format: 0 = Compressed IP, 1 = Defined Data, 2 = IP Data - CAD: Call alter decoding - CAE: Call alter encoding - RME: Remote monitor encoding - RME: Remote monitor decoding
|
virtual |
Abstract method to reset the element within the codeplug.
Any device specific element should implement this method.
Reimplemented from Codeplug::Element.