|
Leosac
0.7.0
OpenSourceAccessControl
|
Handle GPIO management over sysfs. More...
#include <SysFsGpioModule.hpp>
Inheritance diagram for Leosac::Module::SysFsGpio::SysFsGpioModule:
Collaboration diagram for Leosac::Module::SysFsGpio::SysFsGpioModule:Public Member Functions | |
| SysFsGpioModule (zmqpp::context &ctx, zmqpp::socket *module_manager_pipe, const boost::property_tree::ptree &config, CoreUtilsPtr utils) | |
| ~SysFsGpioModule () | |
| SysFsGpioModule (const SysFsGpioModule &)=delete | |
| SysFsGpioModule & | operator= (SysFsGpioModule &&)=delete |
| void | publish_on_bus (zmqpp::message &msg) |
| Write the message eon the bus. More... | |
| const SysFsGpioConfig & | general_config () const |
| Retrieve a reference to the config object. More... | |
| virtual void | run () override |
| This is the main loop of the module. More... | |
Public Member Functions inherited from Leosac::Module::BaseModule | |
| BaseModule (zmqpp::context &ctx, zmqpp::socket *pipe, const boost::property_tree::ptree &cfg, CoreUtilsPtr utils) | |
| Constructor of BaseModule. More... | |
| virtual | ~BaseModule ()=default |
Private Member Functions | |
| void | process_config (const boost::property_tree::ptree &cfg) |
| Process the configuration, preparing configured GPIO pin. More... | |
| void | process_general_config () |
| General configuration (file paths, etc). More... | |
| void | export_gpio (int gpio_no) |
| Write to "gpio_export_path" so the kernel export the socket to sysfs. More... | |
Private Attributes | |
| zmqpp::socket | bus_push_ |
| Socket to write the bus. More... | |
| std::vector< SysFsGpioPin * > | gpios_ |
| Vector of underlying pin object. More... | |
| SysFsGpioConfig * | general_cfg_ |
| General configuration for module. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Leosac::Module::BaseModule | |
| virtual void | handle_pipe () |
The base class register the pipe_ socket to its reactor_ so that this function is called when the pipe_ is available from reading. More... | |
| virtual void | handle_control () |
| Handle called when a message on the module's control socket arrives. More... | |
| virtual void | dump_additional_config (zmqpp::message *out) const |
| Dump additional configuration (for example module specific config file). More... | |
| void | dump_config (ConfigManager::ConfigFormat fmt, zmqpp::message *out_msg) const |
| Fills a message with the module's configuration information. More... | |
| void | config_check (const std::string &obj_name, ConfigChecker::ObjectType type) |
| An helper that checks configuration the existence of some objects. More... | |
| void | config_check (const std::string &obj_name) |
| An helper that checks configuration the existence of some objects. More... | |
Protected Attributes inherited from Leosac::Module::BaseModule | |
| zmqpp::context & | ctx_ |
| A reference to the ZeroMQ context in case you need it to create additional socket. More... | |
| zmqpp::socket & | pipe_ |
| A reference to the pair socket that link back to the module manager. More... | |
| boost::property_tree::ptree | config_ |
The configuration tree passed to the start_module function. More... | |
| CoreUtilsPtr | utils_ |
| Pointer to the core utils, which gives access to scheduler and others. More... | |
| bool | is_running_ |
| Boolean indicating whether the main loop should run or not. More... | |
| zmqpp::socket | control_ |
| Control REP socket. More... | |
| zmqpp::reactor | reactor_ |
| The reactor object we poll() on in the main loop. More... | |
| std::string | name_ |
Handle GPIO management over sysfs.
Definition at line 49 of file SysFsGpioModule.hpp.
| SysFsGpioModule::SysFsGpioModule | ( | zmqpp::context & | ctx, |
| zmqpp::socket * | module_manager_pipe, | ||
| const boost::property_tree::ptree & | config, | ||
| CoreUtilsPtr | utils | ||
| ) |
Definition at line 37 of file SysFsGpioModule.cpp.
| SysFsGpioModule::~SysFsGpioModule | ( | ) |
Definition at line 115 of file SysFsGpioModule.cpp.
|
delete |
|
private |
Write to "gpio_export_path" so the kernel export the socket to sysfs.
Definition at line 110 of file SysFsGpioModule.cpp.
| const SysFsGpioConfig & SysFsGpioModule::general_config | ( | ) | const |
Retrieve a reference to the config object.
Definition at line 133 of file SysFsGpioModule.cpp.
|
delete |
|
private |
Process the configuration, preparing configured GPIO pin.
Definition at line 68 of file SysFsGpioModule.cpp.
|
private |
General configuration (file paths, etc).
Definition at line 127 of file SysFsGpioModule.cpp.
| void SysFsGpioModule::publish_on_bus | ( | zmqpp::message & | msg | ) |
Write the message eon the bus.
This is intended for use by the SysFsGpioPin
Definition at line 122 of file SysFsGpioModule.cpp.
|
overridevirtual |
This is the main loop of the module.
It should only exit when receiving signal::stop on its pipe_ socket. This is completely handled by this base class. In case you override this, make sure you watch the pipe_ socket.
Reimplemented from Leosac::Module::BaseModule.
Definition at line 138 of file SysFsGpioModule.cpp.
|
private |
Socket to write the bus.
Definition at line 94 of file SysFsGpioModule.hpp.
|
private |
General configuration for module.
Definition at line 104 of file SysFsGpioModule.hpp.
|
private |
Vector of underlying pin object.
Definition at line 99 of file SysFsGpioModule.hpp.