libdrmconf  0.12.0
A library to program DMR radios.
Public Types | Public Member Functions | Protected Member Functions | List of all members
RadioddityCodeplug::ScanListElement Class Reference

Implements the base class for scan lists of all Radioddity codeplugs. More...

#include <radioddity_codeplug.hh>

Inheritance diagram for RadioddityCodeplug::ScanListElement:
Inheritance graph
[legend]
Collaboration diagram for RadioddityCodeplug::ScanListElement:
Collaboration graph
[legend]

Public Types

enum  Mode { PL_NONPRI = 0 , PL_DISABLE = 1 , PL_PRI = 2 , PL_PRI_NONPRI = 3 }
 Possible priority channel types. More...
 

Public Member Functions

 ScanListElement (uint8_t *ptr)
 Constructor.
 
virtual ~ScanListElement ()
 Destructor.
 
void clear ()
 Resets the scan list.
 
virtual QString name () const
 Returns the name of the scan list.
 
virtual void setName (const QString &name)
 Sets the name of the scan list.
 
virtual bool channelMark () const
 Returns true if channel mark is enabled.
 
virtual void enableChannelMark (bool enable)
 Enables/disables channel mark.
 
virtual Mode mode () const
 Returns the scan mode.
 
virtual void setMode (Mode mode)
 Sets the scan mode.
 
virtual bool talkback () const
 Returns true if talk back is enabled.
 
virtual void enableTalkback (bool enable)
 Enables/disables talk back.
 
virtual bool hasMember (unsigned n) const
 Returns true if the n-th member is set.
 
virtual bool isSelected (unsigned n) const
 Returns true if the n-th member is selected channel.
 
virtual unsigned member (unsigned n) const
 Returns the n-th member index.
 
virtual void setMember (unsigned n, unsigned idx)
 Sets the n-th member index.
 
virtual void setSelected (unsigned n)
 Sets the n-th member to be the selected channel.
 
virtual void clearMember (unsigned n)
 Clears the n-th member.
 
virtual bool hasPrimary () const
 Returns true if the primary priority channel is set.
 
virtual bool primaryIsSelected () const
 Returns true if the primary priority channel is the selected channel.
 
virtual unsigned primary () const
 Return the channel index for the primary priority channel.
 
virtual void setPrimary (unsigned idx)
 Sets the primary priority channel index.
 
virtual void setPrimarySelected ()
 Sets the primary priority channel to be the selected channel.
 
virtual void clearPrimary ()
 Clears the primary priority channel.
 
virtual bool hasSecondary () const
 Returns true if the secondary priority channel is set.
 
virtual bool secondaryIsSelected () const
 Returns true if the secondary priority channel is the selected channel.
 
virtual unsigned secondary () const
 Return the channel index for the secondary priority channel.
 
virtual void setSecondary (unsigned idx)
 Sets the secondary priority channel index.
 
virtual void setSecondarySelected ()
 Sets the secondary priority channel to be the selected channel.
 
virtual void clearSecondary ()
 Clears the secondary priority channel.
 
virtual bool hasRevert () const
 Returns true if the revert channel is set, if false the radio will transmit on the last active channel during scan.
 
virtual bool revertIsSelected () const
 Returns true if the revert channel is the selected channel.
 
virtual unsigned revert () const
 Return the channel index for the revert channel.
 
virtual void setRevert (unsigned idx)
 Sets the revert channel index.
 
virtual void setRevertSelected ()
 Sets the revert channel to be the selected one.
 
virtual void clearRevert ()
 Clears the revert channel, sets it to last active.
 
virtual unsigned holdTime () const
 Returns the hold time in ms.
 
virtual void setHoldTime (unsigned ms)
 Sets the hold time in ms.
 
virtual unsigned prioritySampleTime () const
 Returns the priority sample time in ms.
 
virtual void setPrioritySampleTime (unsigned ms)
 Sets the priority sample time in ms.
 
virtual ScanListtoScanListObj (Context &ctx) const
 Constructs a ScanList object from this codeplug representation.
 
virtual bool linkScanListObj (ScanList *lst, Context &ctx) const
 Links a previously constructed ScanList object to the rest of the generic configuration.
 
virtual void fromScanListObj (const ScanList *lst, Context &ctx)
 Initializes this codeplug representation from the given ScanList object.
 
- 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...
 

Protected Member Functions

 ScanListElement (uint8_t *ptr, unsigned 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 base class for scan lists of all Radioddity codeplugs.

Memory layout of the scan list.

       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
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0000 | Name, 15 ASCII encoded bytes, 0xff terminated                                                                              ...
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
000c  ...                                                                                            |TKB|  PLT  |ChM| 0   0   0   0 |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0010 | Channel 00 index +1, 0=EOL, little-endian                     | Channel 01 index +1, little-endian                            |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
      ...
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
004c | Channel 30 index +1, little-endian                            | Channel 31 index +1, little-endian                            |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0050 | Priority Channel 1, index+2, 0=None, 1=Current, little-endian | Priority Channel 2, index+2, 0=None, 1=Current, little-endian |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0054 | TX Channel, index+2, 0=last active, 1=Current, little-endian  | Sig. hold time N x 25ms       | Pri. sample time N x 250ms    |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
where
ChM = Channel mark; PLT = PL type; TKB = Talkback

Member Enumeration Documentation

◆ Mode

Possible priority channel types.

Enumerator
PL_NONPRI 

Only non-priority channels.

PL_DISABLE 

Disable priority channels.

PL_PRI 

Only priority channels.

PL_PRI_NONPRI 

Priority and non-priority channels.


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