libdrmconf  0.12.0
A library to program DMR radios.
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Properties | List of all members
FMChannel Class Reference

Extension to the AnalogChannel class to implement an analog FM channel. More...

#include <channel.hh>

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

Public Types

enum class  Admit { Always , Free , Tone }
 Admit criteria of analog channel. More...
 
enum class  Bandwidth { Narrow , Wide }
 Possible bandwidth of an analog channel. More...
 
- Public Types inherited from Channel
enum class  Power {
  Max , High , Mid , Low ,
  Min
}
 Specifies the prefix for every ID assigned to every channel during serialization. More...
 

Public Member Functions

Q_INVOKABLE FMChannel (QObject *parent=nullptr)
 Constructs a new empty analog channel.
 
 FMChannel (const FMChannel &other, QObject *parent=nullptr)
 Copy constructor.
 
bool copy (const ConfigItem &other)
 Copies the given item into this one. More...
 
ConfigItemclone () const
 Clones this item.
 
void clear ()
 Clears the config object.
 
Admit admit () const
 Returns the admit criterion for the analog channel.
 
void setAdmit (Admit admit)
 (Re-)Sets the admit criterion for the analog channel.
 
bool defaultSquelch () const
 Returns true if the global default squelch level is used.
 
bool squelchDisabled () const
 Returns true if the squelch is disabled.
 
unsigned squelch () const
 Returns the squelch level [0,10].
 
bool setSquelch (unsigned squelch)
 (Re-)Sets the squelch level [0,10]. More...
 
void disableSquelch ()
 Disables the quelch.
 
void setSquelchDefault ()
 Sets the squelch to the global default value.
 
Signaling::Code rxTone () const
 Returns the CTCSS/DCS RX tone, SIGNALING_NONE means disabled.
 
bool setRXTone (Signaling::Code code)
 (Re-)Sets the CTCSS/DCS RX tone, SIGNALING_NONE disables the RX tone.
 
Signaling::Code txTone () const
 Returns the CTCSS/DCS TX tone, SIGNALING_NONE means disabled.
 
bool setTXTone (Signaling::Code code)
 (Re-)Sets the CTCSS/DCS TX tone, SIGNALING_NONE disables the TX tone.
 
Bandwidth bandwidth () const
 Returns the bandwidth of the analog channel.
 
bool setBandwidth (Bandwidth bw)
 (Re-)Sets the bandwidth of the analog channel.
 
const APRSSystemReferenceaprs () const
 Returns the reference to the APRS system.
 
APRSSystemReferenceaprs ()
 Returns the reference to the APRS system.
 
void setAPRS (APRSSystemReference *ref)
 Sets the APRS system reference.
 
APRSSystemaprsSystem () const
 Returns the APRS system used for this channel or nullptr if disabled.
 
void setAPRSSystem (APRSSystem *sys)
 Sets the APRS system.
 
AnytoneFMChannelExtensionanytoneChannelExtension () const
 Returns the FM channel extension for AnyTone devices. More...
 
void setAnytoneChannelExtension (AnytoneFMChannelExtension *ext)
 Sets the AnyTone FM channel extension.
 
YAML::Node serialize (const Context &context, const ErrorStack &err=ErrorStack())
 Recursively serializes the configuration to YAML nodes. More...
 
bool parse (const YAML::Node &node, Context &ctx, const ErrorStack &err=ErrorStack())
 Parses the given YAML node, updates the given object and updates the given context (IDs). More...
 
- Public Member Functions inherited from AnalogChannel
 AnalogChannel (const AnalogChannel &other, QObject *parent=nullptr)
 Copy constructor.
 
- Public Member Functions inherited from Channel
Frequency rxFrequency () const
 Returns the RX frequency of the channel in Hz.
 
bool setRXFrequency (Frequency freq)
 (Re-)Sets the RX frequency of the channel in Hz.
 
Frequency txFrequency () const
 Returns the TX frequency of the channel in Hz.
 
bool setTXFrequency (Frequency freq)
 (Re-)Sets the TX frequency of the channel in Hz.
 
bool defaultPower () const
 Returns true if the channel uses the global default power setting.
 
Power power () const
 Returns the power setting of the channel if the channel does not use the default power.
 
void setPower (Power power)
 (Re-)Sets the power setting of the channel, overrides default power.
 
void setDefaultPower ()
 Sets the channel to use the default power setting.
 
bool defaultTimeout () const
 Returns true if the transmit timeout is specified by the global default value.
 
bool timeoutDisabled () const
 Returns true if the transmit timeout is disabled.
 
unsigned timeout () const
 Returns the TX timeout (TOT) in seconds.
 
bool setTimeout (unsigned dur)
 (Re-)Sets the TX timeout (TOT) in seconds.
 
void disableTimeout ()
 Disables the transmit timeout.
 
void setDefaultTimeout ()
 Sets the timeout to the global default timeout.
 
bool rxOnly () const
 Returns true, if the channel is RX only.
 
bool setRXOnly (bool enable)
 Set, whether the channel is RX only.
 
bool voxDisabled () const
 Returns true if the VOX is disabled.
 
bool defaultVOX () const
 Returns true if the VOX is specified by the global default value.
 
unsigned vox () const
 Returns the VOX level [0-10].
 
void setVOX (unsigned level)
 Sets the VOX level [0-10].
 
void setVOXDefault ()
 Sets the VOX level to the default value.
 
void disableVOX ()
 Disables the VOX.
 
const ScanListReferencescanListRef () const
 Returns the reference to the scan list.
 
ScanListReferencescanListRef ()
 Returns the reference to the scan list.
 
ScanListscanList () const
 Returns the default scan list for the channel.
 
bool setScanList (ScanList *list)
 (Re-) Sets the default scan list for the channel.
 
OpenGD77ChannelExtensionopenGD77ChannelExtension () const
 Returns the channel extension for the OpenGD77 firmware. More...
 
void setOpenGD77ChannelExtension (OpenGD77ChannelExtension *ext)
 Sets the OpenGD77 channel extension.
 
TyTChannelExtensiontytChannelExtension () const
 Returns the channel extension for TyT devices. More...
 
void setTyTChannelExtension (TyTChannelExtension *ext)
 Sets the TyT channel extension.
 
bool link (const YAML::Node &node, const Context &ctx, const ErrorStack &err=ErrorStack())
 Links the given object to the rest of the codeplug using the given context.
 
- Public Member Functions inherited from ConfigObject
virtual const QString & name () const
 Returns the name of the object.
 
virtual void setName (const QString &name)
 Sets the name of the object.
 
QString idPrefix () const
 Returns the ID prefix for this object.
 
bool label (Context &context, const ErrorStack &err=ErrorStack())
 Recursively labels the config object. More...
 
bool parse (const YAML::Node &node, Context &ctx, const ErrorStack &err=ErrorStack())
 Parses the given YAML node, updates the given object and updates the given context (IDs). More...
 
- Public Member Functions inherited from ConfigItem
virtual int compare (const ConfigItem &other) const
 Compares the items. More...
 
virtual ConfigItemallocateChild (QMetaProperty &prop, const YAML::Node &node, const Context &ctx, const ErrorStack &err=ErrorStack())
 Allocates an instance for the given property on the given YAML node. More...
 
virtual const Configconfig () const
 Returns the config, the item belongs to or nullptr if not part of a config.
 
virtual void findItemsOfTypes (const QStringList &typeNames, QSet< ConfigItem * > &items) const
 Searches the config tree to find all instances of the given type names.
 
template<class Object >
bool is () const
 Returns true if this object is of class Object.
 
template<class Object >
const Object * as () const
 Casts this object to the given type.
 
template<class Object >
Object * as ()
 Casts this object to the given type.
 
bool hasDescription () const
 Returns true if there is a class info "description" for this instance.
 
bool hasLongDescription () const
 Returns true if there is a class info "longDescription" for this instance.
 
bool hasDescription (const QMetaProperty &prop) const
 Returns true if there is a class info "[PropertyName]Description" for the given property.
 
bool hasLongDescription (const QMetaProperty &prop) const
 Returns true if there is a class info "[PropertyName]LongDescription" for the given property.
 
QString description () const
 Returns the description of this instance if set by a class info.
 
QString longDescription () const
 Returns the long description of this instance if set by a class info.
 
QString description (const QMetaProperty &prop) const
 Returns the description of property if set by a class info.
 
QString longDescription (const QMetaProperty &prop) const
 Returns the long description of property if set by a class info.
 

Protected Member Functions

bool populate (YAML::Node &node, const Context &context, const ErrorStack &err=ErrorStack())
 Recursively serializes the configuration to YAML nodes. More...
 
- Protected Member Functions inherited from AnalogChannel
 AnalogChannel (QObject *parent=nullptr)
 Hidden constructor.
 
- Protected Member Functions inherited from Channel
 Channel (QObject *parent=nullptr)
 Hidden constructor. More...
 
 Channel (const Channel &other, QObject *parent=nullptr)
 Copy constructor.
 
- Protected Member Functions inherited from ConfigObject
 ConfigObject (QObject *parent=nullptr)
 Specifies the prefix for every ID assigned to every object during serialization. More...
 
 ConfigObject (const QString &name, QObject *parent=nullptr)
 Hidden constructor. More...
 
- Protected Member Functions inherited from ConfigItem
 ConfigItem (QObject *parent=nullptr)
 Hidden constructor. More...
 

Protected Attributes

Admit _admit
 Holds the admit criterion.
 
unsigned _squelch
 Holds the squelch level [0,10].
 
Signaling::Code _rxTone
 The RX CTCSS tone.
 
Signaling::Code _txTone
 The TX CTCSS tone.
 
Bandwidth _bw
 The channel bandwidth.
 
APRSSystemReference _aprsSystem
 A reference to the APRS system used on the channel or nullptr if disabled.
 
AnytoneFMChannelExtension_anytoneExtension
 Owns the AnyTone FM channel extension.
 
- Protected Attributes inherited from Channel
Frequency _rxFreq
 The RX frequency in Hz.
 
Frequency _txFreq
 The TX frequency in Hz.
 
bool _defaultPower
 If true, the channel uses the global power setting.
 
Power _power
 The transmit power setting.
 
unsigned _txTimeOut
 Transmit timeout in seconds.
 
bool _rxOnly
 RX only flag.
 
unsigned _vox
 Holds the VOX level.
 
ScanListReference _scanlist
 Default scan list of the channel.
 
OpenGD77ChannelExtension_openGD77ChannelExtension
 Owns the OpenGD77 channel extension object.
 
TyTChannelExtension_tytChannelExtension
 Owns the TyT channel extension object.
 
- Protected Attributes inherited from ConfigObject
QString _name
 Holds the name of the object.
 

Properties

Admit admit
 The admit criterion of the channel.
 
unsigned squelch
 The squelch level of the channel [1-10].
 
Signaling::Code rxTone
 The RX tone (CTCSS/DSC).
 
Signaling::Code txTone
 The TX tone (CTCSS/DSC).
 
Bandwidth bandwidth
 The band width of the channel.
 
APRSSystemReferenceaprs
 The APRS system.
 
AnytoneFMChannelExtensionanytone
 The AnyTone FM channel extension.
 
- Properties inherited from Channel
Frequency rxFrequency
 The receive frequency of the channel in Hz.
 
Frequency txFrequency
 The transmit frequency of the channel in Hz.
 
Power power
 The transmit power.
 
unsigned timeout
 The transmit timeout in seconds.
 
bool rxOnly
 If true, the channel is receive only.
 
ScanListReferencescanListRef
 The scan list.
 
unsigned vox
 The VOX setting.
 
OpenGD77ChannelExtensionopenGD77
 The OpenGD77 channel extension.
 
TyTChannelExtensiontyt
 The TyT channel extension.
 
- Properties inherited from ConfigObject
QString name
 The name of the object.
 

Additional Inherited Members

- Signals inherited from ConfigItem
void modified (ConfigItem *obj)
 Gets emitted once the config object is modified. More...
 
void beginClear ()
 Gets emitted before clearing the item.
 
void endClear ()
 Gets emitted after clearing the item.
 
- Protected Slots inherited from Channel
void onReferenceModified ()
 Gets called whenever a referenced object is changed or deleted.
 
- Static Protected Member Functions inherited from ConfigObject
static QString findIdPrefix (const QMetaObject *meta)
 Helper to find the IdPrefix class info in the class hierarchy.
 

Detailed Description

Extension to the AnalogChannel class to implement an analog FM channel.

This class implements all the properties specific to an FM channel. That is, the admit criterion, squelch, RX and TX tones and bandwidth settings.

Member Enumeration Documentation

◆ Admit

enum FMChannel::Admit
strong

Admit criteria of analog channel.

Enumerator
Always 

Allow always.

Free 

Allow when channel free.

Tone 

Allow when admit tone is present.

◆ Bandwidth

enum FMChannel::Bandwidth
strong

Possible bandwidth of an analog channel.

Enumerator
Narrow 

Narrow bandwidth (12.5kHz).

Wide 

Wide bandwidth (25kHz).

Member Function Documentation

◆ anytoneChannelExtension()

AnytoneFMChannelExtension * FMChannel::anytoneChannelExtension ( ) const

Returns the FM channel extension for AnyTone devices.

If this extension is not set, returns nullptr.

◆ copy()

bool FMChannel::copy ( const ConfigItem other)
virtual

Copies the given item into this one.

Returns
true if copying was successful and false otherwise. The two items must be of the same type (obviously).

Reimplemented from Channel.

◆ parse()

bool FMChannel::parse ( const YAML::Node &  node,
Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Parses the given YAML node, updates the given object and updates the given context (IDs).

Todo:
With Qt 5.15, we can use the REQUIRED flag to check for mandatory properties. However, Ubuntu 20.04 (Focal) comes with Qt 5.12.

Reimplemented from Channel.

◆ populate()

bool FMChannel::populate ( YAML::Node &  node,
const Context context,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Recursively serializes the configuration to YAML nodes.

The complete configuration must be labeled first.

Reimplemented from Channel.

◆ serialize()

YAML::Node FMChannel::serialize ( const Context context,
const ErrorStack err = ErrorStack() 
)
virtual

Recursively serializes the configuration to YAML nodes.

The complete configuration must be labeled first.

Reimplemented from ConfigItem.

◆ setSquelch()

bool FMChannel::setSquelch ( unsigned  squelch)

(Re-)Sets the squelch level [0,10].

0 Disables squelch (on some radios).


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