libdrmconf  0.12.0
A library to program DMR radios.
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
DR1801UVCodeplug::DMRSettingsElement Class Reference

Implements the binary encoding of the DMR settings. More...

#include <dr1801uv_codeplug.hh>

Inheritance diagram for DR1801UVCodeplug::DMRSettingsElement:
Inheritance graph
[legend]
Collaboration diagram for DR1801UVCodeplug::DMRSettingsElement:
Collaboration graph
[legend]

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.
 
Elementoperator= (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.
 

Detailed Description

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

Member Function Documentation

◆ clear()

void DR1801UVCodeplug::DMRSettingsElement::clear ( )
virtual

Abstract method to reset the element within the codeplug.

Any device specific element should implement this method.

Reimplemented from Codeplug::Element.


The documentation for this class was generated from the following files: