libdrmconf
0.12.0
A library to program DMR radios.
|
This module collects all classes that represent the general configuration for all DMR codeplugs. More...
Modules | |
Radio Limits | |
This module collects all classes used to define the limits for each supported radio. | |
Classes | |
class | CallsignDB |
Abstract base class of all callsign database implementations. More... | |
class | Channel |
The base class of all channels (analog and digital) of a codeplug configuration. More... | |
class | AnalogChannel |
Base class for all analog channels. More... | |
class | FMChannel |
Extension to the AnalogChannel class to implement an analog FM channel. More... | |
class | DigitalChannel |
Base class of all digital channels. More... | |
class | DMRChannel |
Extension to the DigitalChannel class to implement an DMR channel. More... | |
class | SelectedChannel |
Internal singleton class representing the "currently selected" channel. More... | |
class | ChannelList |
Container class holding all channels (analog and digital) for a specific configuration (Config ). More... | |
class | CommercialExtension |
Implements the generic extension for the codeplug to represent some commercial features of DMR. More... | |
class | CommercialChannelExtension |
Implements the generic extension for all channels configuring commercial features of DMR. More... | |
class | Config |
The config class, representing the codeplug configuration. More... | |
class | ConfigCloneVisitor |
This visitor traverses the the given configuration and clones it. More... | |
class | FixReferencesVisistor |
Replaces references using a specified map. More... | |
class | ConfigLabelingVisitor |
A visitor to label the entire configuration. More... | |
class | ConfigMergeVisitor |
Implements a visitor to merge the visited config into a given config. More... | |
class | ConfigMerge |
Just a namespace to provide merging functions. More... | |
class | ConfigItem |
Base class for all configuration objects (channels, zones, contacts, etc). More... | |
class | ConfigObjectReference |
Implements a reference to a config object. More... | |
class | DMRContactReference |
Represents a reference to a DMR contact. More... | |
class | DMRChannelReference |
Implements a reference to a DMR channel. More... | |
class | FMChannelReference |
Implements a reference to a FM channel. More... | |
class | ScanListReference |
Implements a reference to a scan list. More... | |
class | PositioningSystemReference |
Implements a reference to a positioning system. More... | |
class | APRSSystemReference |
Implements a reference to an APRS system. More... | |
class | GPSSystemReference |
Implements a reference to a GPS system. More... | |
class | DMRRadioIDReference |
Implements a reference to a radio ID. More... | |
class | GroupListReference |
Implements a reference to a group list. More... | |
class | RoamingZoneReference |
Implements a reference to a roaming zone. More... | |
class | EncryptionKeyReference |
Implements a reference to an encryption key. More... | |
class | ZoneReference |
Implements a reference to a zone. More... | |
class | Contact |
Represents the base-class for all contact types, analog (DTMF) or digital (DMR, M17). More... | |
class | AnalogContact |
Base class for all analog contacts. More... | |
class | DTMFContact |
Represents an analog contact, that is a DTMF number. More... | |
class | DigitalContact |
Base class for all digital contacts. More... | |
class | DMRContact |
Represents a digital contact, that is a DMR number. More... | |
class | ContactList |
Represents the list of contacts within the abstract radio configuration. More... | |
class | CSVHandler |
Basic parse-handler interface. More... | |
class | CSVReader |
Implements the text-file codeplug reader. More... | |
class | EncryptionKey |
Base class of all encryption keys. More... | |
class | BasicEncryptionKey |
Represents a DMR (basic) encryption key. More... | |
class | EnhancedEncryptionKey |
Represents an (enhanced) RC4 encryption key. More... | |
class | AESEncryptionKey |
Represents an AES (enhanced) encryption key. More... | |
class | EncryptionKeys |
The list of encryption keys. More... | |
class | PositioningSystem |
Base class of the positioning systems, that is APRS and DMR position reporting system. More... | |
class | GPSSystem |
This class represents a GPS signalling system within the codeplug. More... | |
class | APRSSystem |
Represents an APRS system within the generic config. More... | |
class | PositioningSystems |
The list of positioning systems. More... | |
class | RadioID |
Abstract base class for all radio IDs. More... | |
class | DMRRadioID |
Represents a DMR radio ID within the abstract config. More... | |
class | DefaultRadioID |
A singleton radio ID representing the default DMR radio ID within the abstract config. More... | |
class | DTMFRadioID |
Represents a DTMF radio ID as used for PTT-ID on analog channels. More... | |
class | RadioIDList |
Represents the list of configured DMR IDs (radio IDs) within the abstract config. More... | |
class | RadioSettings |
Represents the common radio-global settings. More... | |
class | RXGroupList |
Generic representation of a RX group list. More... | |
class | RXGroupLists |
Represents the list of RX group lists within the generic configuration. More... | |
class | ScanList |
Generic representation of a scan list. More... | |
class | ScanLists |
Represents the list of scan lists. More... | |
class | Signaling |
Contains the enum and utility functions to deal with analog signaling like CTCSS and DCS. More... | |
class | Zone |
Represents a zone within the generic configuration. More... | |
class | ZoneList |
Represents the list of zones within the generic configuration. More... | |
This module collects all classes that represent the general configuration for all DMR codeplugs.
To this end, it aims at covering the important features for ham radio applications. All features that are more related to "professional" applications and are specific to each radio, are implemented by so-called extensions, see ConfigExtension
. The central class for the abstract configuration is Config
, this class represents a complete configuration a.k.a. codeplug of a radio. It contains all the information being programmed into the radio irrespective of the model and manufacturer.
The entire configuration (abstract, device independent codeplug) consists of a tree of ConfigItem
instances. This class forms the base-class of all elements in the configuration (excluding lists etc.). Each ConfigItem
may have a set of properties. These properties are used to implement the majority of the common functionality concerning the abstract codeplug. These are
SCRIPTABLE
).SCRIPTABLE
).To this end, the creation of codeplug extensions is pretty easy, as only the properties for the extension must be defined. The rest is taken care of by the default implementation of the ConfigItem::copy
, ConfigItem::clone
, ConfigItem::label
, ConfigItem::serialize
, ConfigItem::parse
and ConfigItem::link
methods. It is not necessary to override any of these methods if there is a one-to-one mapping between the property and its YAML representation.
Frequently, however, it is necessary to represent a property in a different way in YAML. This is usually true if a property may hold different specializations of a common type. For example the channel list may hold analog and digital channels. In YAML, the type is specified explicitly as an enclosing map. This structure is not a one-to-one representation of the actual property (the channel list) to the YAML format. In these cases, the ConfigItem::parse
and ConfigItem::link
method might be overridden to implement this.