libdrmconf
0.12.0
A library to program DMR radios.
|
Implements the base class for scan lists of all Radioddity codeplugs. More...
#include <radioddity_codeplug.hh>
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 ScanList * | toScanListObj (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. | |
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... | |
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. | |
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