libdrmconf
0.11.3
A library to program DMR radios.
|
Represents and encodes the binary format for the call-sign database within the radio. More...
#include <gd77_callsigndb.hh>
Classes | |
struct | userdb_entry_t |
Represents a user-db entry within the binary codeplug. More... | |
struct | userdb_t |
Represents the binary call-sign database header. More... | |
Public Member Functions | |
GD77CallsignDB (QObject *parent=nullptr) | |
Constructor. | |
virtual | ~GD77CallsignDB () |
Destructor. | |
virtual bool | encode (UserDatabase *calldb, const Selection &selection=Selection(), const ErrorStack &err=ErrorStack()) |
Encodes as many entries as possible of the given user-database. | |
Public Member Functions inherited from CallsignDB | |
virtual | ~CallsignDB () |
Destructor. | |
Public Member Functions inherited from DFUFile | |
DFUFile (QObject *parent=nullptr) | |
Constructs an empty DFU file object. | |
uint32_t | size () const |
Returns the total size of the DFU file. | |
uint32_t | memSize () const |
Returns the total memory size stored in the DFU file. | |
int | numImages () const |
Returns the number of images within the DFU file. | |
const Image & | image (int i) const |
Returns a reference to the i-th image of the file. | |
Image & | image (int i) |
Returns a reference to the i-th image of the file. | |
void | addImage (const QString &name, uint8_t altSettings=1) |
Adds a new image to the file. | |
void | addImage (const Image &img) |
Adds an image to the file. | |
void | remImage (int i) |
Deletes the i-th image from the file. | |
bool | isAligned (unsigned blocksize) const |
Checks if all image addresses and sizes is aligned with the given block size. | |
bool | read (const QString &filename, const ErrorStack &err=ErrorStack()) |
Reads the specified DFU file. More... | |
bool | read (QFile &file, const ErrorStack &err=ErrorStack()) |
Reads the specified DFU file. More... | |
bool | write (const QString &filename, const ErrorStack &err=ErrorStack()) |
Writes to the specified file. More... | |
bool | write (QFile &file, const ErrorStack &err=ErrorStack()) |
Writes to the specified file. More... | |
void | dump (QTextStream &stream) const |
Dumps a text representation of the DFU file structure to the specified text stream. | |
virtual bool | isAllocated (uint32_t offset, uint32_t img=0) const |
Returns true if the specified address (and image) is allocated. | |
virtual unsigned char * | data (uint32_t offset, uint32_t img=0) |
Returns a pointer to the encoded raw data at the specified offset. | |
virtual const unsigned char * | data (uint32_t offset, uint32_t img=0) const |
Returns a const pointer to the encoded raw data at the specified offset. | |
Additional Inherited Members | |
Protected Member Functions inherited from CallsignDB | |
CallsignDB (QObject *parent=nullptr) | |
Hidden constructor. | |
Protected Attributes inherited from DFUFile | |
QVector< Image > | _images |
The list of images. | |
Represents and encodes the binary format for the call-sign database within the radio.
The call-sign DB gets stored at a separate memory bank (no. 3) at address 0x0000
. The encoded DB consists of the DB header followed by the DB entries. The number of entries is limited to 10920 leading to a max DB size of 0x20000 bytes. These 0x20000 bytes are organized into two banks bank 3 contains 0x00000-0x0ffff and bank 4 contains 0x10000-0x1ffff.
The header is encoded as:
0 8 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ ... + |'I' 'D' '-' 'V' '0' '0' '1' 0 | # entries, LE | Entries ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ ... +
The number of DB entries is encoded as a 32bit little-endian integer.
Each DB entry is encoded as:
0 8 +---+---+---+---+---+---+---+---+---+---+---+---+ | DMR ID, 8xBCD | Name, 8xASCII, 0-terminated | +---+---+---+---+---+---+---+---+---+---+---+---+
The DMR ID gets encoded a 8 BCD digits in little endian while the name is encoded as up-to 8 ASCII bytes 0-terminated and padded.