libdrmconf 0.13.2
A library to program DMR radios.
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
DMR6X2UVCodeplug Class Reference

Represents the device specific binary codeplug for BTECH DMR-6X2UV radios. More...

#include <dmr6x2uv_codeplug.hh>

Inheritance diagram for DMR6X2UVCodeplug:
Inheritance graph
[legend]
Collaboration diagram for DMR6X2UVCodeplug:
Collaboration graph
[legend]

Classes

class  APRSSettingsElement
 Represents the APRS settings within the binary DMR-6X2UV codeplug. More...
 
struct  BackgroundColor
 Background colors supported by the DMR-6X2UV. More...
 
class  ChannelElement
 Implements the channel element for the BTECH DMR-6X2UV. More...
 
class  ChannelExtensionElement
 Starting from FW version 2.21, all devices encode an channel settings extension element at an offset 0x2000 to the original channel. More...
 
struct  Color
 Colors supported by the DMR-6X2UV. More...
 
class  ExtendedSettingsElement
 Implements some settings extension for the BTECH DMR-6X2UV. More...
 
struct  FontColor
 Font colors supported by the DMR-6X2UV. More...
 
class  GeneralSettingsElement
 General settings element for the DMR-6X2UV. More...
 
struct  Limit
 Some limits for the codeplug. More...
 
struct  Offset
 Some internal used offsets within the codeplug. More...
 
struct  Size
 Some internal used sizes. More...
 

Public Types

typedef D878UVCodeplug::RoamingChannelBitmapElement RoamingChannelBitmapElement
 Reuse roaming channel bitmap from D878UV.
 
typedef D878UVCodeplug::RoamingChannelElement RoamingChannelElement
 Reuse roaming channel from D878UV.
 
typedef D878UVCodeplug::RoamingZoneBitmapElement RoamingZoneBitmapElement
 Reuse roaming zone bitmap from D878UV.
 
typedef D878UVCodeplug::RoamingZoneElement RoamingZoneElement
 Reuse roaming zone from D878UV.
 
typedef D878UVCodeplug::AESEncryptionKeyElement AESEncryptionKeyElement
 Reuse AES encryption key from D878UV.
 
typedef D878UVCodeplug::ARC4EncryptionKeyElement ARC4EncryptionKeyElement
 Reuse ARC4 encryption key from D878UV.
 

Public Member Functions

 DMR6X2UVCodeplug (const QString &label, QObject *parent=nullptr)
 Hidden constructor.
 
 DMR6X2UVCodeplug (QObject *parent=nullptr)
 Empty constructor.
 
Configpreprocess (Config *config, const ErrorStack &err) const
 Returns a prepared configuration for this particular radio.
 
- Public Member Functions inherited from D868UVCodeplug
 D868UVCodeplug (QObject *parent=nullptr)
 Empty constructor.
 
- Public Member Functions inherited from AnytoneCodeplug
virtual ~AnytoneCodeplug ()
 Destructor.
 
virtual void clear ()
 Clears and resets the complete codeplug to some default values.
 
bool encode (Config *config, const Flags &flags, const ErrorStack &err)
 Encodes a given abstract configuration (config) to the device specific binary code-plug.
 
bool decode (Config *config, const ErrorStack &err)
 Decodes a binary codeplug to the given abstract configuration config.
 
bool postprocess (Config *config, const ErrorStack &err) const
 Returns a post-processed configuration of the decoded config.
 
- Public Member Functions inherited from Codeplug
virtual ~Codeplug ()
 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 Imageimage (int i) const
 Returns a reference to the i-th image of the file.
 
Imageimage (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.
 
bool read (QFile &file, const ErrorStack &err=ErrorStack())
 Reads the specified DFU file.
 
bool write (const QString &filename, const ErrorStack &err=ErrorStack())
 Writes to the specified file.
 
bool write (QFile &file, const ErrorStack &err=ErrorStack())
 Writes to the specified file.
 
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.
 

Protected Member Functions

bool allocateBitmaps ()
 Allocates the bitmaps.
 
void setBitmaps (Context &ctx)
 Sets all bitmaps for the given config.
 
void allocateForDecoding ()
 Allocate all code-plug elements that must be downloaded for decoding.
 
void allocateForEncoding ()
 Allocate all code-plug elements that are defined through the common Config.
 
bool encodeElements (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes the given config (via context) to the binary codeplug.
 
bool createElements (Context &ctx, const ErrorStack &err=ErrorStack())
 Creates all config objects from the downloaded codeplug.
 
bool linkElements (Context &ctx, const ErrorStack &err=ErrorStack())
 Links all previously created config objects.
 
void allocateGeneralSettings ()
 Allocates general settings memory section.
 
bool encodeGeneralSettings (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes the general settings section.
 
bool decodeGeneralSettings (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes the general settings section.
 
bool linkGeneralSettings (Context &ctx, const ErrorStack &err=ErrorStack())
 Link the general settings.
 
void allocateChannels ()
 Allocate channels from bitmap.
 
bool encodeChannels (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode channels into codeplug.
 
bool createChannels (Context &ctx, const ErrorStack &err=ErrorStack())
 Create channels from codeplug.
 
bool linkChannels (Context &ctx, const ErrorStack &err=ErrorStack())
 Link channels.
 
void allocateGPSSystems ()
 Allocates GPS settings memory section.
 
bool encodeGPSSystems (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes the GPS settings section.
 
bool createGPSSystems (Context &ctx, const ErrorStack &err=ErrorStack())
 Create GPS systems from codeplug.
 
bool linkGPSSystems (Context &ctx, const ErrorStack &err=ErrorStack())
 Link GPS systems.
 
virtual void allocateRoaming ()
 Allocates memory to store all roaming channels and zones.
 
virtual bool encodeRoaming (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes the roaming channels and zones.
 
virtual bool createRoaming (Context &ctx, const ErrorStack &err=ErrorStack())
 Creates roaming channels and zones from codeplug.
 
virtual bool linkRoaming (Context &ctx, const ErrorStack &err=ErrorStack())
 Links roaming channels and zones.
 
virtual void allocateAESKeys ()
 Allocates memory to encode/decode AES keys.
 
virtual bool encodeAESKeys (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode all AES keys.
 
virtual bool createAESKeys (Context &ctx, const ErrorStack &err=ErrorStack())
 Decode AES keys from the codeplug.
 
virtual void allocateARC4Keys ()
 Allocates memory to encode/decode ARC4 keys.
 
virtual bool encodeARC4Keys (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode all ARC4 keys.
 
virtual bool createARC4Keys (Context &ctx, const ErrorStack &err=ErrorStack())
 Decode ARC4 keys from the codeplug.
 
- Protected Member Functions inherited from D868UVCodeplug
 D868UVCodeplug (const QString &label, QObject *parent=nullptr)
 Hidden constructor constructor.
 
virtual void allocateUpdated ()
 Allocate all code-plug elements that must be written back to the device to maintain a working codeplug.
 
virtual void allocateVFOSettings ()
 Allocate VFO settings.
 
virtual void allocateContacts ()
 Allocate contacts from bitmaps.
 
virtual bool encodeContacts (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode contacts into codeplug.
 
virtual bool createContacts (Context &ctx, const ErrorStack &err=ErrorStack())
 Create contacts from codeplug.
 
virtual void allocateAnalogContacts ()
 Allocate analog contacts from bitmaps.
 
virtual bool encodeAnalogContacts (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode analog contacts into codeplug.
 
virtual bool createAnalogContacts (Context &ctx, const ErrorStack &err=ErrorStack())
 Create analog contacts from codeplug.
 
virtual void allocateRadioIDs ()
 Allocate radio IDs from bitmaps.
 
virtual bool encodeRadioID (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode radio ID into codeplug.
 
virtual bool setRadioID (Context &ctx, const ErrorStack &err=ErrorStack())
 Set radio ID from codeplug.
 
virtual void allocateRXGroupLists ()
 Allocates RX group lists from bitmaps.
 
virtual bool encodeRXGroupLists (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode RX group lists into codeplug.
 
virtual bool createRXGroupLists (Context &ctx, const ErrorStack &err=ErrorStack())
 Create RX group lists from codeplug.
 
virtual bool linkRXGroupLists (Context &ctx, const ErrorStack &err=ErrorStack())
 Link RX group lists.
 
virtual void allocateZones ()
 Allocate zones from bitmaps.
 
virtual bool encodeZones (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode zones into codeplug.
 
virtual bool encodeZone (int i, Zone *zone, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Function to encode a single zone.
 
virtual bool createZones (Context &ctx, const ErrorStack &err=ErrorStack())
 Create zones from codeplug.
 
virtual bool decodeZone (int i, Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
 Function to decode a single zone.
 
virtual bool linkZones (Context &ctx, const ErrorStack &err=ErrorStack())
 Link zones.
 
virtual bool linkZone (int i, Zone *zone, bool isB, Context &ctx, const ErrorStack &err=ErrorStack())
 Function to link a single zone.
 
virtual void allocateScanLists ()
 Allocate scanlists from bitmaps.
 
virtual bool encodeScanLists (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode scan lists into codeplug.
 
virtual bool createScanLists (Context &ctx, const ErrorStack &err=ErrorStack())
 Create scan lists from codeplug.
 
virtual bool linkScanLists (Context &ctx, const ErrorStack &err=ErrorStack())
 Link scan lists.
 
virtual void allocateZoneChannelList ()
 Allocates zone channel list memory section.
 
virtual void allocateDTMFNumbers ()
 Allocates DTMF number list memory section.
 
virtual void allocateBootSettings ()
 Allocates boot settings memory section.
 
virtual bool encodeBootSettings (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes the boot settings section.
 
virtual bool decodeBootSettings (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes the boot settings section.
 
virtual void allocateSMSMessages ()
 Allocate prefab SMS messages.
 
virtual bool encodeSMSMessages (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes prefab SMS messages.
 
virtual bool createSMSMessages (Context &ctx, const ErrorStack &err=ErrorStack())
 Create SMS messages from codeplug.
 
virtual bool linkSMSMessages (Context &ctx, const ErrorStack &err=ErrorStack())
 Link SMS messages.
 
virtual void allocateHotKeySettings ()
 Allocates hot key settings memory section.
 
virtual void allocateRepeaterOffsetFrequencies ()
 Allocates repeater offset settings memory section.
 
virtual bool encodeRepeaterOffsetFrequencies (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes auto-repeater offset frequencies.
 
virtual bool decodeRepeaterOffsetFrequencies (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes auto-repeater offset frequencies.
 
virtual void allocatDMREncryptionKeys ()
 Allocates DMR encryption keys.
 
virtual bool encodeDMREncryptionKeys (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes DMR encryption keys.
 
virtual bool decodeDMREncryptionKeys (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes DMR encryption keys.
 
virtual void allocatEnhancedEncryptionKeys ()
 Allocates 'enhanced' encryption keys.
 
virtual void allocateAlarmSettings ()
 Allocates alarm settings memory section.
 
virtual void allocateFMBroadcastSettings ()
 Allocates FM broadcast settings memory section.
 
virtual void allocate5ToneIDs ()
 Allocates all 5-Tone IDs used.
 
virtual void allocate5ToneFunctions ()
 Allocates 5-Tone functions.
 
virtual void allocate5ToneSettings ()
 Allocates 5-Tone settings.
 
virtual void allocate2ToneIDs ()
 Allocates all 2-Tone IDs used.
 
virtual void allocate2ToneFunctions ()
 Allocates 2-Tone functions.
 
virtual void allocate2ToneSettings ()
 Allocates 2-Tone settings.
 
virtual void allocateDTMFSettings ()
 Allocates DTMF settings.
 
- Protected Member Functions inherited from AnytoneCodeplug
 AnytoneCodeplug (const QString &label, QObject *parent=nullptr)
 Hidden constructor.
 
virtual bool index (Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const
 Indexes all elements of the codeplug.
 
virtual bool decodeElements (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes the downloaded codeplug.
 
- Protected Member Functions inherited from Codeplug
 Codeplug (QObject *parent=nullptr)
 Hidden default constructor.
 

Additional Inherited Members

- Protected Attributes inherited from AnytoneCodeplug
QString _label
 Holds the image label.
 
- Protected Attributes inherited from DFUFile
QVector< Image_images
 The list of images.
 

Detailed Description

Represents the device specific binary codeplug for BTECH DMR-6X2UV radios.

This codeplug implementation is compatible with firmware revision 2.21. See https://dmr-tools.github.io/codeplugs for details.

Member Function Documentation

◆ allocateBitmaps()

bool DMR6X2UVCodeplug::allocateBitmaps ( )
protectedvirtual

Allocates the bitmaps.

This is also performed during a clear.

Reimplemented from D868UVCodeplug.

◆ allocateChannels()

void DMR6X2UVCodeplug::allocateChannels ( )
protectedvirtual

Allocate channels from bitmap.

Reimplemented from D868UVCodeplug.

◆ allocateForDecoding()

void DMR6X2UVCodeplug::allocateForDecoding ( )
protectedvirtual

Allocate all code-plug elements that must be downloaded for decoding.

All code-plug elements within the radio that are not represented within the common Config are omitted.

Reimplemented from D868UVCodeplug.

◆ allocateForEncoding()

void DMR6X2UVCodeplug::allocateForEncoding ( )
protectedvirtual

Allocate all code-plug elements that are defined through the common Config.

Reimplemented from D868UVCodeplug.

◆ allocateGeneralSettings()

void DMR6X2UVCodeplug::allocateGeneralSettings ( )
protectedvirtual

Allocates general settings memory section.

Reimplemented from D868UVCodeplug.

◆ allocateGPSSystems()

void DMR6X2UVCodeplug::allocateGPSSystems ( )
protectedvirtual

Allocates GPS settings memory section.

Reimplemented from D868UVCodeplug.

◆ createChannels()

bool DMR6X2UVCodeplug::createChannels ( Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Create channels from codeplug.

Reimplemented from D868UVCodeplug.

◆ createElements()

bool DMR6X2UVCodeplug::createElements ( Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Creates all config objects from the downloaded codeplug.

Reimplemented from D868UVCodeplug.

◆ createGPSSystems()

bool DMR6X2UVCodeplug::createGPSSystems ( Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Create GPS systems from codeplug.

Reimplemented from D868UVCodeplug.

◆ decodeGeneralSettings()

bool DMR6X2UVCodeplug::decodeGeneralSettings ( Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Decodes the general settings section.

Reimplemented from D868UVCodeplug.

◆ encodeChannels()

bool DMR6X2UVCodeplug::encodeChannels ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Encode channels into codeplug.

Reimplemented from D868UVCodeplug.

◆ encodeElements()

bool DMR6X2UVCodeplug::encodeElements ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Encodes the given config (via context) to the binary codeplug.

Reimplemented from D868UVCodeplug.

◆ encodeGeneralSettings()

bool DMR6X2UVCodeplug::encodeGeneralSettings ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Encodes the general settings section.

Reimplemented from D868UVCodeplug.

◆ encodeGPSSystems()

bool DMR6X2UVCodeplug::encodeGPSSystems ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Encodes the GPS settings section.

Reimplemented from D868UVCodeplug.

◆ linkChannels()

bool DMR6X2UVCodeplug::linkChannels ( Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Link channels.

Reimplemented from D868UVCodeplug.

◆ linkElements()

bool DMR6X2UVCodeplug::linkElements ( Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Links all previously created config objects.

Reimplemented from D868UVCodeplug.

◆ linkGeneralSettings()

bool DMR6X2UVCodeplug::linkGeneralSettings ( Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Link the general settings.

Reimplemented from D868UVCodeplug.

◆ linkGPSSystems()

bool DMR6X2UVCodeplug::linkGPSSystems ( Context ctx,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Link GPS systems.

Reimplemented from D868UVCodeplug.

◆ preprocess()

Config * DMR6X2UVCodeplug::preprocess ( Config config,
const ErrorStack err 
) const
virtual

Returns a prepared configuration for this particular radio.

All unsupported features are removed from the copy. The default implementation only copies the config.

Reimplemented from D868UVCodeplug.

◆ setBitmaps()

void DMR6X2UVCodeplug::setBitmaps ( Context ctx)
protectedvirtual

Sets all bitmaps for the given config.

Reimplemented from D868UVCodeplug.


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