Class Interface¶
Defined in File power_interface.h
Nested Relationships¶
Nested Types¶
Class Documentation¶
-
class Interface¶
interface class for the network power switch(es)
This class defines the interface for all of the power control hardware and contains the functions used to communicate with it.
Public Functions
-
inline Interface()¶
-
inline long init_pubsub(const std::initializer_list<std::string> &topics = {})¶
-
inline void start_subscriber_thread()¶
-
inline void stop_subscriber_thread()¶
-
void handletopic_snapshot(const nlohmann::json &jmessage)¶
-
void configure_interface(Power::NpsInfo npsinfo)¶
configure the NPS interface vector with info from configuration file
-
long initialize_class()¶
initialize class variables
-
long open()¶
open the NPS socket connection
-
long close()¶
close the NPS socket connection
-
bool isopen()¶
is the NPS socket connection open?
-
long command(std::string cmd, std::string &retstring)¶
parse and form a command to send to the NPS unit
-
void list(std::string args, std::string &retstring)¶
list plug devices
-
long get_status(std::string args, std::string &retstring)¶
status of all plug devices
-
void publish_status(bool force = false)¶
publish power state on change (or force)
Public Members
-
std::string publisher_address¶
publish socket endpoint
-
std::string publisher_topic¶
my default topic for publishing
-
std::string subscriber_address¶
subscribe socket endpoint
-
std::vector<std::string> subscriber_topics¶
list of topics I subscribe to
-
std::atomic<bool> is_subscriber_thread_running¶
is my subscriber thread running?
-
std::atomic<bool> should_subscriber_thread_run¶
should my subscriber thread run?
-
std::unordered_map<std::string, std::function<void(const nlohmann::json&)>> topic_handlers¶
maps a handler function to each topic
-
std::map<int, WTI::NPS> npsmap¶
STL map of WTI NPS objects indexed by NPS unit#.
-
std::vector<int> npsvec¶
vector of npsnums for indexing
-
std::string missing¶
reports any missing hardware (configured but unresponsive)
-
std::map<std::string, plug_t> plugmap¶
STL map of plug number indexed by plug name, allows finding {npsnum,plugnum} by plugname.
-
std::map<std::string, std::string> plugname¶
STL map of plug names indexed by a string made of “unit# plug#”, e.g. “1 1” or “2 8” etc.
-
struct plug_t¶
structure to contain location of a plug, both nps and plug number
-
inline Interface()¶