1#ifndef GD77_CODEPLUG_HH
2#define GD77_CODEPLUG_HH
4#include "radioddity_codeplug.hh"
166 struct Offset: RadioddityCodeplug::ContactElement::Offset {
168 static constexpr unsigned int validFlag() {
return 0x0017; }
188 static constexpr unsigned int size() {
return 0x0050; }
195 struct Limit:
public RadioddityCodeplug::GroupListElement {
220 static constexpr unsigned int size() {
return 0x1480; }
222 uint8_t *get(
unsigned n)
const;
226 struct Limit:
public RadioddityCodeplug::GroupListBankElement::Limit {
264 static constexpr unsigned int size() {
return 0x1640; }
269 uint8_t *get(
unsigned n)
const;
273 struct Limit:
public RadioddityCodeplug::ScanListBankElement::Limit {
279 struct Offset:
public RadioddityCodeplug::ScanListBankElement::Offset {
281 static constexpr unsigned int bytemap() {
return 0x0000; }
282 static constexpr unsigned int scanLists() {
return 0x0040; }
292 void clearGeneralSettings();
293 bool encodeGeneralSettings(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack());
296 void clearButtonSettings();
297 bool encodeButtonSettings(Context &ctx,
const Flags &flags,
const ErrorStack &err=
ErrorStack());
300 void clearMessages();
304 void clearScanLists();
309 void clearContacts();
313 void clearDTMFContacts();
317 void clearChannels();
322 void clearBootSettings();
323 void clearMenuSettings();
325 void clearBootText();
329 void clearVFOSettings();
336 void clearGroupLists();
341 void clearEncryption();
342 bool encodeEncryption(
const Flags &flags, Context &ctx,
const ErrorStack &err);
343 bool createEncryption(Context &ctx,
const ErrorStack &err);
344 bool linkEncryption(Context &ctx,
const ErrorStack &err);
359 static constexpr unsigned int settings() {
return 0x0000e0; }
360 static constexpr unsigned int buttons() {
return 0x000108; }
361 static constexpr unsigned int messages() {
return 0x000128; }
362 static constexpr unsigned int encryption() {
return 0x001370; }
363 static constexpr unsigned int scanListBank() {
return 0x001790; }
364 static constexpr unsigned int dtmfContacts() {
return 0x002f88; }
365 static constexpr unsigned int channelBank0() {
return 0x003780; }
366 static constexpr unsigned int bootSettings() {
return 0x007518; }
367 static constexpr unsigned int bootText() {
return 0x007540; }
368 static constexpr unsigned int menuSettings() {
return 0x007538; }
369 static constexpr unsigned int vfoA() {
return 0x007590; }
370 static constexpr unsigned int vfoB() {
return 0x0075c8; }
371 static constexpr unsigned int zoneBank() {
return 0x008010; }
372 static constexpr unsigned int channelBank1() {
return 0x00b1b0; }
373 static constexpr unsigned int contacts() {
return 0x017620; }
374 static constexpr unsigned int groupListBank() {
return 0x01d620; }
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:41
Channel representation within the binary codeplug.
Definition gd77_codeplug.hh:72
virtual ARTSMode artsMode() const
Returns the ARTS mode.
Definition gd77_codeplug.cc:33
PTTId
PTT ID send.
Definition gd77_codeplug.hh:91
virtual STEAngle steAngle() const
Returns the STE angle.
Definition gd77_codeplug.cc:42
virtual void enableTightSquelch(bool enable)
Enables/disables tight squelch.
Definition gd77_codeplug.cc:64
virtual PTTId pttIDMode() const
Returns the PTT ID mode.
Definition gd77_codeplug.cc:51
STEAngle
STE angle.
Definition gd77_codeplug.hh:83
@ STE_180DEG
180 degree.
Definition gd77_codeplug.hh:86
@ STE_120DEG
120 degree.
Definition gd77_codeplug.hh:85
@ STE_240DEG
240 degree.
Definition gd77_codeplug.hh:87
@ STE_FREQUENCY
STE Frequency.
Definition gd77_codeplug.hh:84
virtual void setSTEAngle(STEAngle angle)
Sets the STE angle.
Definition gd77_codeplug.cc:46
virtual void enableLoneWorker(bool enable)
Enables/disables lone worker.
Definition gd77_codeplug.cc:73
virtual void setPTTIDMode(PTTId mode)
Sets the PTT ID mode.
Definition gd77_codeplug.cc:55
ARTSMode
ARTS send.
Definition gd77_codeplug.hh:75
virtual bool squelchIsTight() const
Returns true if the squech type is tight.
Definition gd77_codeplug.cc:60
ChannelElement(uint8_t *ptr, size_t size)
Hidden Constructor.
Definition gd77_codeplug.cc:12
virtual bool loneWorker() const
Returns true if lone worker is enabled.
Definition gd77_codeplug.cc:69
virtual void setARTSMode(ARTSMode mode)
Sets the ARTS mode.
Definition gd77_codeplug.cc:37
virtual void enableAutoscan(bool enable)
Enables/disables auto scan.
Definition gd77_codeplug.cc:82
virtual bool autoscan() const
Returns true if auto scan is enabled.
Definition gd77_codeplug.cc:78
Table of RX group lists.
Definition gd77_codeplug.hh:210
GroupListBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition gd77_codeplug.cc:233
static constexpr unsigned int size()
The size of the group list bank.
Definition gd77_codeplug.hh:220
Represents an RX group list within the codeplug.
Definition gd77_codeplug.hh:178
static constexpr unsigned int size()
The size of the element.
Definition gd77_codeplug.hh:188
GroupListElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition gd77_codeplug.cc:176
Bank of scan lists for the GD77.
Definition gd77_codeplug.hh:254
ScanListBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition gd77_codeplug.cc:150
static constexpr unsigned int size()
The size of the scan list bank.
Definition gd77_codeplug.hh:264
void clear()
Clears the scan list bank.
Definition gd77_codeplug.cc:163
Represents a single scan list within the GD77 codeplug.
Definition gd77_codeplug.hh:236
void clear()
Resets the scan list.
Definition gd77_codeplug.cc:141
ScanListElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition gd77_codeplug.cc:128
Represents, encodes and decodes the device specific codeplug for a Radioddity GD-77.
Definition gd77_codeplug.hh:63
GD77Codeplug(QObject *parent=nullptr)
Constructs an empty codeplug for the GD-77.
Definition gd77_codeplug.cc:258
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Some limits for the group list bank.
Definition gd77_codeplug.hh:226
static constexpr unsigned int groupListCount()
Number of group lists.
Definition gd77_codeplug.hh:227
Some limits for the group list.
Definition gd77_codeplug.hh:195
static constexpr unsigned int memberCount()
Maximum number of entries.
Definition gd77_codeplug.hh:196
Some limits for the GD77 codeplug.
Definition gd77_codeplug.hh:348
static constexpr unsigned int channelCount()
Maximum number of channels.
Definition gd77_codeplug.hh:351
static constexpr unsigned int contactCount()
Maximum number of contacts.
Definition gd77_codeplug.hh:352
static constexpr unsigned int channelBankCount()
Number of channel banks.
Definition gd77_codeplug.hh:350
static constexpr unsigned int dtmfContactCount()
Maximum number of DTMF contacts.
Definition gd77_codeplug.hh:349
Some internal offsets within the codeplug.
Definition gd77_codeplug.hh:357
Some limits for the scan list bank.
Definition gd77_codeplug.hh:273
static constexpr unsigned int scanListCount()
Maximum number of scan lists.
Definition gd77_codeplug.hh:274
Internal offsets within the element.
Definition gd77_codeplug.hh:279