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

Represents, encodes and decodes the device specific codeplug for Open GD-77 firmware. More...

#include <opengd77_codeplug.hh>

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

Classes

struct  ImageIndex
 Internal used image indices. More...
 
struct  Limit
 Some Limits for this codeplug. More...
 
struct  Offset
 Some offsets. More...
 

Public Member Functions

 OpenGD77Codeplug (QObject *parent=nullptr)
 Constructs an empty codeplug for the GD-77.
 
void clearGeneralSettings ()
 Clears the general settings in the codeplug.
 
bool encodeGeneralSettings (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Updates the general settings from the given configuration.
 
bool decodeGeneralSettings (Context &ctx, const ErrorStack &err=ErrorStack())
 Updates the given configuration from the general settings.
 
void clearDTMFSettings ()
 Clears the DTMF settings.
 
bool encodeDTMFSettings (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes DTMF settings.
 
bool decodeDTMFSettings (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes the DTMF settings.
 
void clearAPRSSettings ()
 Clears the APRS settings.
 
bool encodeAPRSSettings (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes APRS settings.
 
bool decodeAPRSSettings (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes the APRS settings.
 
bool linkAPRSSettings (Context &ctx, const ErrorStack &err=ErrorStack())
 Links the APRS settings.
 
void clearContacts ()
 Clears all contacts in the codeplug.
 
bool encodeContacts (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes all digital contacts in the configuration into the codeplug.
 
bool createContacts (Context &ctx, const ErrorStack &err=ErrorStack())
 Adds a digital contact to the configuration for each one in the codeplug.
 
void clearDTMFContacts ()
 Clears all DTMF contacts in the codeplug.
 
bool encodeDTMFContacts (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes all DTMF contacts.
 
bool createDTMFContacts (Context &ctx, const ErrorStack &err=ErrorStack())
 Adds all DTMF contacts to the configuration.
 
void clearChannels ()
 Clear all channels.
 
bool encodeChannels (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encode all channels.
 
bool createChannels (Context &ctx, const ErrorStack &err=ErrorStack())
 Adds all defined channels to the configuration.
 
bool linkChannels (Context &ctx, const ErrorStack &err=ErrorStack())
 Links all channels.
 
void clearBootSettings ()
 Clear boot settings.
 
bool encodeBootSettings (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes boot settings.
 
bool decodeBootSettings (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes the boot settings.
 
void clearVFOSettings ()
 Clears the VFO settings.
 
void clearZones ()
 Clears all zones.
 
bool encodeZones (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes zones.
 
bool createZones (Context &ctx, const ErrorStack &err=ErrorStack())
 Adds zones to the configuration.
 
bool linkZones (Context &ctx, const ErrorStack &err=ErrorStack())
 Links all zones within the configuration.
 
void clearGroupLists ()
 Clears all group lists.
 
bool encodeGroupLists (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes all group lists.
 
bool createGroupLists (Context &ctx, const ErrorStack &err=ErrorStack())
 Creates all group lists.
 
bool linkGroupLists (Context &ctx, const ErrorStack &err=ErrorStack())
 Links all group lists.
 
- Public Member Functions inherited from OpenGD77BaseCodeplug
virtual void clear ()
 Clears and resets the complete codeplug to some default values.
 
bool index (Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const
 Indexes all elements of the codeplug.
 
bool decode (Config *config, const ErrorStack &err=ErrorStack())
 Decodes a binary codeplug to the given abstract configuration config.
 
bool postprocess (Config *config, const ErrorStack &err=ErrorStack()) const
 Returns a post-processed configuration of the decoded config.
 
Configpreprocess (Config *config, const ErrorStack &err=ErrorStack()) const
 Returns a prepared configuration for this particular radio.
 
bool encode (Config *config, const Flags &flags=Flags(), const ErrorStack &err=ErrorStack())
 Encodes a given abstract configuration (config) to the device specific binary code-plug.
 
virtual bool decodeElements (Context &ctx, const ErrorStack &err=ErrorStack())
 Decodes the binary codeplug and stores its content in the given generic configuration using the given context.
 
virtual bool encodeElements (const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
 Encodes the given generic configuration as a binary codeplug using the given context.
 
- 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.
 

Additional Inherited Members

- Public Types inherited from OpenGD77BaseCodeplug
enum  ImageType { EEPROM = 0 , FLASH = 1 }
 Possible image types.
 
- Static Public Member Functions inherited from OpenGD77BaseCodeplug
static uint32_t encodeAngle (double degee)
 Encodes an angle used to store locations.
 
static double decodeAngle (uint32_t code)
 Decodes an angle used to store locations.
 
static uint16_t encodeSelectiveCall (const SelectiveCall &call)
 Encodes a selective call (tx/rx tone).
 
static SelectiveCall decodeSelectiveCall (uint16_t code)
 Decodes a selective call (tx/rx tone).
 
- Protected Member Functions inherited from OpenGD77BaseCodeplug
 OpenGD77BaseCodeplug (QObject *parent=nullptr)
 Default hidden constructor.
 
- Protected Member Functions inherited from Codeplug
 Codeplug (QObject *parent=nullptr)
 Hidden default constructor.
 
- Protected Attributes inherited from DFUFile
QVector< Image_images
 The list of images.
 

Detailed Description

Represents, encodes and decodes the device specific codeplug for Open GD-77 firmware.

This codeplug is almost identical to the original GD77 codeplug.

Codeplug structure within radio

The memory representation of the codeplug within the radio is divided into two images (EEPROM and Flash) and each image again into two sections.

The first segment of the EEPROM image starts at the address 0x000e0 and ends at 0x06000, while the second EEPROM section starts at 0x07500 and ends at 0x0b000.

The first segment of the Flash image starts at the address 0x00000 and ends at 0x011a0, while the second Flash section starts at 0x7b000 and ends at 0x8ee60.

Start End Size Content
First EEPROM segment 0x000e0-0x06000
0x000e0 0x000ec 0x000c General settings, see RadioddityCodeplug::GeneralSettingsElement.
0x000ec 0x00128 0x003c ??? Unknown ???
0x00128 0x01370 0x1248 32 message texts, see RadioddityCodeplug::MessageBankElement.
0x01370 0x01790 0x0420 ??? Unknown ???
0x01790 0x02dd0 0x1640 64 scan lists, see GD77Codeplug::ScanListBankElement, GD77Codeplug::ScanListElement.
0x02dd0 0x02f88 0x01b8 ??? Unknown ???
0x02f88 0x03388 0x0400 DTMF contacts, see RadioddityCodeplug::DTMFContactElement.
0x03388 0x03780 0x03f8 ??? Unknown ???
0x03780 0x05390 0x1c10 First 128 channels (bank 0), see RadioddityCodeplug::ChannelBankElement, OpenGD77Codeplug::ChannelElement.
0x05390 0x06000 0x0c70 ??? Unknown ???
Second EEPROM segment 0x07500-0x13000
0x07500 0x07518 0x0018 ??? Unknown ???
0x07518 0x07538 0x0020 Boot settings, see RadioddityCodeplug::BootSettingsElement.
0x07538 0x07540 0x0008 Menu settings, see RadioddityCodeplug::MenuSettingsElement.
0x07540 0x07560 0x0020 2 intro lines, RadioddityCodeplug::BootTextElement.
0x07560 0x07590 0x0030 ??? Unknown ???
0x07590 0x075c8 0x0038 VFO A settings OpenGD77Codeplug::VFOChannelElement
0x075c8 0x07600 0x0038 VFO B settings OpenGD77Codeplug::VFOChannelElement
0x07600 0x08010 0x0a10 ??? Unknown ???
0x08010 0x12c10 0xac00 250 zones, see OpenGD77Codeplug::ZoneBankElement, OpenGD77Codeplug::ZoneElement.
0x12c10 0x13000 0x03f0

??? Unknown ???

First Flash segment 0x00000-0x011a0
0x00000 0x011a0 0x11a0 ??? Unknown ???
Second Flash segment 0x7b000-0x8ee60
0x7b000 0x7b1b0 0x01b0 ??? Unknown ???
0x7b1b0 0x87620 0xc470 Remaining 896 channels (bank 1-7), see RadioddityCodeplug::ChannelBankElement and OpenGD77Codeplug::ChannelElement.
0x87620 0x8d620 0x6000 1024 contacts, see OpenGD77Codeplug::ContactElement.
0x8d620 0x8e2a0 0x0c80 76 RX group lists, see GD77Codeplug::GroupListBankElement, GD77Codeplug::GroupListElement.
0x8e2a0 0x8ee60 0x0bc0 ??? Unknown ???

Member Function Documentation

◆ clearAPRSSettings()

void OpenGD77Codeplug::clearAPRSSettings ( )
virtual

Clears the APRS settings.

Implements OpenGD77BaseCodeplug.

◆ clearBootSettings()

void OpenGD77Codeplug::clearBootSettings ( )
virtual

Clear boot settings.

Implements OpenGD77BaseCodeplug.

◆ clearChannels()

void OpenGD77Codeplug::clearChannels ( )
virtual

Clear all channels.

Implements OpenGD77BaseCodeplug.

◆ clearContacts()

void OpenGD77Codeplug::clearContacts ( )
virtual

Clears all contacts in the codeplug.

Implements OpenGD77BaseCodeplug.

◆ clearDTMFContacts()

void OpenGD77Codeplug::clearDTMFContacts ( )
virtual

Clears all DTMF contacts in the codeplug.

Implements OpenGD77BaseCodeplug.

◆ clearDTMFSettings()

void OpenGD77Codeplug::clearDTMFSettings ( )
virtual

Clears the DTMF settings.

Implements OpenGD77BaseCodeplug.

◆ clearGeneralSettings()

void OpenGD77Codeplug::clearGeneralSettings ( )
virtual

Clears the general settings in the codeplug.

Implements OpenGD77BaseCodeplug.

◆ clearGroupLists()

void OpenGD77Codeplug::clearGroupLists ( )
virtual

Clears all group lists.

Implements OpenGD77BaseCodeplug.

◆ clearVFOSettings()

void OpenGD77Codeplug::clearVFOSettings ( )
virtual

Clears the VFO settings.

Implements OpenGD77BaseCodeplug.

◆ clearZones()

void OpenGD77Codeplug::clearZones ( )
virtual

Clears all zones.

Implements OpenGD77BaseCodeplug.

◆ createChannels()

bool OpenGD77Codeplug::createChannels ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Adds all defined channels to the configuration.

Implements OpenGD77BaseCodeplug.

◆ createContacts()

bool OpenGD77Codeplug::createContacts ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Adds a digital contact to the configuration for each one in the codeplug.

Implements OpenGD77BaseCodeplug.

◆ createDTMFContacts()

bool OpenGD77Codeplug::createDTMFContacts ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Adds all DTMF contacts to the configuration.

Implements OpenGD77BaseCodeplug.

◆ createGroupLists()

bool OpenGD77Codeplug::createGroupLists ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Creates all group lists.

Implements OpenGD77BaseCodeplug.

◆ createZones()

bool OpenGD77Codeplug::createZones ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Adds zones to the configuration.

Implements OpenGD77BaseCodeplug.

◆ decodeAPRSSettings()

bool OpenGD77Codeplug::decodeAPRSSettings ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Decodes the APRS settings.

Implements OpenGD77BaseCodeplug.

◆ decodeBootSettings()

bool OpenGD77Codeplug::decodeBootSettings ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Decodes the boot settings.

Implements OpenGD77BaseCodeplug.

◆ decodeDTMFSettings()

bool OpenGD77Codeplug::decodeDTMFSettings ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Decodes the DTMF settings.

Implements OpenGD77BaseCodeplug.

◆ decodeGeneralSettings()

bool OpenGD77Codeplug::decodeGeneralSettings ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Updates the given configuration from the general settings.

Implements OpenGD77BaseCodeplug.

◆ encodeAPRSSettings()

bool OpenGD77Codeplug::encodeAPRSSettings ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Encodes APRS settings.

Implements OpenGD77BaseCodeplug.

◆ encodeBootSettings()

bool OpenGD77Codeplug::encodeBootSettings ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Encodes boot settings.

Implements OpenGD77BaseCodeplug.

◆ encodeChannels()

bool OpenGD77Codeplug::encodeChannels ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Encode all channels.

Implements OpenGD77BaseCodeplug.

◆ encodeContacts()

bool OpenGD77Codeplug::encodeContacts ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Encodes all digital contacts in the configuration into the codeplug.

Implements OpenGD77BaseCodeplug.

◆ encodeDTMFContacts()

bool OpenGD77Codeplug::encodeDTMFContacts ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Encodes all DTMF contacts.

Implements OpenGD77BaseCodeplug.

◆ encodeDTMFSettings()

bool OpenGD77Codeplug::encodeDTMFSettings ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Encodes DTMF settings.

Implements OpenGD77BaseCodeplug.

◆ encodeGeneralSettings()

bool OpenGD77Codeplug::encodeGeneralSettings ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Updates the general settings from the given configuration.

Implements OpenGD77BaseCodeplug.

◆ encodeGroupLists()

bool OpenGD77Codeplug::encodeGroupLists ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Encodes all group lists.

Implements OpenGD77BaseCodeplug.

◆ encodeZones()

bool OpenGD77Codeplug::encodeZones ( const Flags flags,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Encodes zones.

Implements OpenGD77BaseCodeplug.

◆ linkAPRSSettings()

bool OpenGD77Codeplug::linkAPRSSettings ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Links the APRS settings.

Implements OpenGD77BaseCodeplug.

◆ linkChannels()

bool OpenGD77Codeplug::linkChannels ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Links all channels.

Implements OpenGD77BaseCodeplug.

◆ linkGroupLists()

bool OpenGD77Codeplug::linkGroupLists ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Links all group lists.

Implements OpenGD77BaseCodeplug.

◆ linkZones()

bool OpenGD77Codeplug::linkZones ( Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Links all zones within the configuration.

Implements OpenGD77BaseCodeplug.


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