| libdrmconf
    0.12.0
    A library to program DMR radios. | 
Implements the binary encoding of a scan list element. More...
#include <dr1801uv_codeplug.hh>


| Classes | |
| struct | Limit | 
| Some limits.  More... | |
| struct | Offset | 
| Some offsets within the element.  More... | |
| Public Types | |
| enum class | PriorityChannel { None = 0 , Fixed = 1 , Selected = 2 } | 
| Possible priority channel modes. | |
| enum class | RevertChannel { LastActive = 0 , Fixed = 1 , Selected = 2 } | 
| Possible revert channel modes. | |
| Public Member Functions | |
| ScanListElement (uint8_t *ptr) | |
| Constructor. | |
| bool | isValid () const | 
| Returns trueif the pointer is not null. | |
| void | clear () | 
| Abstract method to reset the element within the codeplug.  More... | |
| virtual unsigned int | index () const | 
| Retunrs the index of the scan list. | |
| virtual void | setIndex (unsigned int idx) | 
| Sets the index of the scan list. | |
| virtual unsigned int | entryCount () const | 
| Returns the number of entries. | |
| virtual void | setEntryCount (unsigned int num) | 
| Sets the number of entries. | |
| virtual PriorityChannel | priorityChannel1 () const | 
| Retunrs the priority channel 1 setting. | |
| virtual void | setPriorityChannel1 (PriorityChannel mode) | 
| Sets the priority channel 1 setting. | |
| virtual unsigned int | priorityChannel1Index () const | 
| Returns the priority channel 1 index. | |
| virtual void | setPriorityChannel1Index (unsigned int index) | 
| Sets the priority channel 1 index. | |
| virtual PriorityChannel | priorityChannel2 () const | 
| Retunrs the priority channel 2 setting. | |
| virtual void | setPriorityChannel2 (PriorityChannel mode) | 
| Sets the priority channel 2 setting. | |
| virtual unsigned int | priorityChannel2Index () const | 
| Returns the priority channel 2 index. | |
| virtual void | setPriorityChannel2Index (unsigned int index) | 
| Sets the priority channel 2 index. | |
| virtual RevertChannel | revertChannel () const | 
| Retunrs the revert channel setting. | |
| virtual void | setRevertChannel (RevertChannel mode) | 
| Sets the revert channel setting. | |
| virtual unsigned int | revertChannelIndex () const | 
| Returns the revert channel index. | |
| virtual void | setRevertChannelIndex (unsigned int index) | 
| Sets the revert channel index. | |
| 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 unsigned int | entryIndex (unsigned int n) | 
| Returns the n-th entry index. | |
| virtual void | setEntryIndex (unsigned int n, unsigned int index) | 
| Sets the n-th entry index. | |
| virtual ScanList * | toScanListObj (Context &ctx, const ErrorStack &err=ErrorStack()) | 
| Constructs a scan-list object from this element. | |
| virtual bool | linkScanListObj (ScanList *obj, Context &ctx, const ErrorStack &err=ErrorStack()) | 
| Links the scan-list object. | |
| virtual bool | encode (ScanList *obj, Context &ctx, const ErrorStack &err=ErrorStack()) | 
| Encodes the scan list. | |
|  Public Member Functions inherited from Codeplug::Element | |
| Element (const Element &other) | |
| Copy constructor. | |
| virtual | ~Element () | 
| Destructor. | |
| Element & | operator= (const Element &other) | 
| Copy assignment. | |
| 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 maxlenASCII chars at the given byte-offset usingeosas the string termination char. | |
| void | writeASCII (unsigned offset, const QString &txt, unsigned maxlen, uint8_t eos=0x00) | 
| Stores up to maxlenASCII chars at the given byte-offset usingeosas the string termination char.  More... | |
| QString | readUnicode (unsigned offset, unsigned maxlen, uint16_t eos=0x0000) const | 
| Reads up to maxlenunicode chars at the given byte-offset usingeosas the string termination char. | |
| void | writeUnicode (unsigned offset, const QString &txt, unsigned maxlen, uint16_t eos=0x0000) | 
| Stores up to maxlenunicode chars at the given byte-offset usingeosas the string termination char.  More... | |
| Static Public Member Functions | |
| static constexpr unsigned int | size () | 
| The size of the element. | |
| Protected Member Functions | |
| ScanListElement (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 a scan list element.
Memory representation of a scan list element (50h 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 | Index+1, 0=invalid            | Number of entries             | Priority channel 1            | Priority channel 2            |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
04 | Priority channel 1 index, uint16, little endian               | Priority channel 2 index, uint16, little endian               |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
08 | Revert channel                | 0x00                          | Revert channel index, uint16, little endian                   |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0c | Unused, filled with 0x00                                                                                                      |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
10 | Name, 32 x ASCII, 0-padded                                                                                                 ...
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
2c  ...                                                                                                                            |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
30 | Entry channel index 0, uint16, little endian                  | Entry channel index 1, uint16, little endian                  |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
    ...                                                                                                                         ...
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
4c | Entry channel index 14, uint16, little endian                 | Entry channel index 15, uint16, little endian                 |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
Where:
  - Priority channel 1/2: 0=None, 1=Fixed, 2=Selected
  - Revert channel: 0 = Last active, 1 = Fixed, 2 = Selected
 | 
 | virtual | 
Abstract method to reset the element within the codeplug.
Any device specific element should implement this method.
Reimplemented from Codeplug::Element.