libcyberradio 22.01.24
WbddcGroupComponent.h
1/***************************************************************************
2 * \file WbddcGroupComponent.h
3 * \brief Defines the basic WBDDC group interface for an NDR-class radio.
4 * \author DA
5 * \author NH
6 * \author MN
7 * \copyright (c) 2018 CyberRadio Solutions, Inc. All rights reserved.
8 *
9 ***************************************************************************/
10
11#ifndef INCLUDED_LIBCYBERRADIO_DRIVER_WBDDCCOMPONENTGROUP_H
12#define INCLUDED_LIBCYBERRADIO_DRIVER_WBDDCCOMPONENTGROUP_H
13
14#include "LibCyberRadio/Driver/RadioComponent.h"
15#include "LibCyberRadio/Common/BasicDict.h"
16#include "LibCyberRadio/Common/BasicList.h"
17
18
22namespace LibCyberRadio
23{
27 namespace Driver
28 {
29
45 {
46 public:
59 WbddcGroupComponent(const std::string& name = "WBG",
60 int index = 1,
61 RadioHandler* parent = NULL,
62 bool debug = false,
63 int numGroupMembers = 0,
64 int groupMemberIndexBase = 1);
68 virtual ~WbddcGroupComponent();
80 // RadioComponent interface
86 virtual bool enable(bool enabled = true);
92 virtual bool setConfiguration(ConfigurationDict& cfg);
97 virtual void queryConfiguration();
98 // WbddcGroupComponent extensions
103 virtual BasicIntList getMembers() const;
109 virtual bool setMembers(const BasicIntList& groupMembers);
115 virtual bool addMember(int member);
121 virtual bool removeMember(int member);
122
123
124 protected:
125 // RadioComponent interface
130 virtual void initConfigurationDict();
134 virtual void updateConfigurationDict();
135 // WbddcGroupComponent extensions
140 virtual std::string getMembersString();
150 virtual bool executeWbddcGroupEnableQuery(int index,
151 bool& enabled);
158 virtual bool executeWbddcGroupEnableCommand(int index,
159 bool& enabled);
169 virtual bool executeWbddcGroupQuery(int index,
170 BasicIntList& groupMembers);
177 virtual bool executeWbddcGroupCommand(int index,
178 BasicIntList& groupMembers);
189 virtual bool executeWbddcGroupMemberQuery(int index, int groupMember,
190 bool& isMember);
198 virtual bool executeWbddcGroupMemberCommand(int index, int groupMember,
199 bool& isMember);
200
201 protected:
202 // Number of potential members in this group
203 int _numGroupMembers;
204 // Index that group members start with
205 int _groupMemberIndexBase;
206 // Group members
207 BasicIntList _groupMembers;
208
209 }; // class WbddcGroupComponent
210
214 typedef BASIC_DICT_CONTAINER<int, WbddcGroupComponent*> WbddcGroupComponentDict;
215
216 } // namespace Driver
217
218} // namespace LibCyberRadio
219
220#endif /* INCLUDED_LIBCYBERRADIO_DRIVER_WBDDCCOMPONENTGROUP_H */
virtual int debug(const char *format,...)
Outputs debug information.
A configuration dictionary.
RadioComponent(const std::string &name="<unknown>", int index=0, RadioHandler *parent=NULL, bool debug=false)
Constructs a RadioComponent object.
Generic radio handler class.
virtual BasicIntList getMembers() const
Gets the list of group members.
virtual bool enable(bool enabled=true)
Enables this component.
virtual bool setConfiguration(ConfigurationDict &cfg)
Sets the configuration dictionary for this component.
virtual std::string getMembersString()
Gets the string representation of the member list.
WbddcGroupComponent(const std::string &name="WBG", int index=1, RadioHandler *parent=NULL, bool debug=false, int numGroupMembers=0, int groupMemberIndexBase=1)
Constructs a WbddcGroupComponent object.
virtual ~WbddcGroupComponent()
Destroys a WbddcGroupComponent object.
virtual bool executeWbddcGroupCommand(int index, BasicIntList &groupMembers)
Executes the WBDDC group configuration set command.
virtual bool removeMember(int member)
Removes a WBDDC from the list of group members.
virtual bool addMember(int member)
Adds a WBDDC to the list of group members.
virtual bool setMembers(const BasicIntList &groupMembers)
Sets the list of group members.
virtual bool executeWbddcGroupQuery(int index, BasicIntList &groupMembers)
Executes the WBDDC group configuration query command.
virtual bool executeWbddcGroupMemberQuery(int index, int groupMember, bool &isMember)
Executes the WBDDC group member query command.
virtual void queryConfiguration()
Tells the component to query its hardware configuration in order to create its configuration dictiona...
virtual WbddcGroupComponent & operator=(const WbddcGroupComponent &other)
Assignment operator for WbddcGroupComponent objects.
virtual bool executeWbddcGroupEnableCommand(int index, bool &enabled)
Executes the WBDDC group enable command.
virtual void updateConfigurationDict()
Updates the configuration dictionary from component settings.
virtual bool executeWbddcGroupEnableQuery(int index, bool &enabled)
Executes the WBDDC group enable query command.
virtual bool executeWbddcGroupMemberCommand(int index, int groupMember, bool &isMember)
Executes the WBDDC group member set command.
virtual void initConfigurationDict()
Initializes the configuration dictionary, defining the allowed keys.
Provides programming elements for driving CRS NDR-class radios.
BASIC_DICT_CONTAINER< int, WbddcGroupComponent * > WbddcGroupComponentDict
A dictionary of WBDDC group components, keyed by index.
Defines functionality for LibCyberRadio applications.
Definition App.h:24
BASIC_LIST_CONTAINER< int > BasicIntList
Type representing a list of integers.
Definition BasicList.h:27