.. _program_listing_file__home_asunye_wd_dev_emod_docs_emod_controller_build_x86_install_include_Module.hpp: Program Listing for File Module.hpp =================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/home/asunye/wd/dev/emod_docs/emod_controller/build_x86/install/include/Module.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef MODULE_HPP_ #define MODULE_HPP_ #include #include "EmodCommon.hpp" #include "EmodRet.hpp" // Module function callback type definition typedef void (*ModuleCallback_Type) (const uint8_t* data, const uint16_t data_len, const uint8_t id_function, void* const ctx); enum EventTriggerCondition{ noCondition = 0x0000, conditionTimeOut = 0x0001, conditionNewData = 0x0002, conditionValChange = 0x0004, conditionInRange = 0x0008, conditionOutRange = 0x0010, conditionForceSend = 0x0020, ackRequested = 0x2000 }; // Forward declarations class Controller; class BusIdent; class BusParamConf; class Module{ private: BusParamConf* function_params; ModuleCallback_Type callback_func; void* callback_context; bool polling_is_disabled; Controller& controller; BusIdent* ident; int8_t id_bus; EmodRet checkConfigEvent(const std::vector& id_funcs, const bool buffer_type = false); EmodRet setAndSubscribeEvent(const EventTriggerCondition condition, const std::vector& id_funcs, const uint32_t param_1 = 0, const uint32_t param_2 = 0); EmodRet sendConfigEvent(const std::vector& id_funcs, const bool request_funcs); protected: Module(); ~Module(); EmodRet init(const ModuleType module_type, const ModuleCallback_Type& callback_func, void* const callback_context, const uint8_t module_variant = 1); EmodRet initFunctionParams(const bool unsubscribe = false); inline int8_t getIdBus(){return id_bus;} inline void setIdBus(const int8_t id_bus){ this->id_bus = id_bus;} EmodRet configEvent(const EventTriggerCondition condition, const std::vector& id_funcs, const uint32_t param_1 = 0, const uint32_t param_2 = 0); EmodRet configEvent(const EventTriggerCondition condition, const uint16_t mask, const uint8_t max_id, const uint8_t id_offset, const uint32_t param_1 = 0, const uint32_t param_2 = 0); EmodRet resetEventConfig(void); public: static uint8_t maskToInput(const uint16_t input_mask, const uint32_t max); static std::vector maskToInputs(const uint16_t mask); void whoIs(); }; #endif // MODULE_HPP_