Program Listing for File DInput5Relay2Module.hpp
↰ Return to documentation for file (doc/include/DInput5Relay2Module.hpp
)
/****************************************************************************
* @defgroup PackageName Modules
* @file DInput5Relay2Module.hpp
* @brief
* @author info@pickdata.net
***************************************************************************/
#ifndef DINPUT5RELAY2_MODULE_HPP_
#define DINPUT5RELAY2_MODULE_HPP_
#include "DInput5Relay2Module.h"
#include "Module.hpp"
// Forward declaration
class RelayFunctions;
class DigitalInputFunctions;
class DInput5Relay2Module : public Module {
friend class DInput5Relay2Napi;
protected:
RelayFunctions* relays;
DigitalInputFunctions* digitalInputs;
EmodRet initFunctions();
uint8_t getFunctionsOffsetId();
uint8_t getInputsOffsetId();
public:
// Constants
static constexpr uint16_t DI_INPUT01 = DInput5Relay2Module_INPUT01;
static constexpr uint16_t DI_INPUT02 = DInput5Relay2Module_INPUT02;
static constexpr uint16_t DI_INPUT03 = DInput5Relay2Module_INPUT03;
static constexpr uint16_t DI_INPUT04 = DInput5Relay2Module_INPUT04;
static constexpr uint16_t DI_INPUT05 = DInput5Relay2Module_INPUT05;
static constexpr uint16_t DI_ALL_INPUT = DInput5Relay2Module_ALL_INPUT;
static constexpr uint8_t RELAY1 = DInput5Relay2Module_RELAY1;
static constexpr uint8_t RELAY2 = DInput5Relay2Module_RELAY2;
static constexpr uint8_t ALL_RELAY = DInput5Relay2Module_ALL_RELAY;
static constexpr uint8_t NUMBER_OF_DI_INPUTS = DInput5Relay2Module_NUMBER_OF_DI_INPUTS;
static constexpr uint8_t NUMBER_OF_RELAYS = DInput5Relay2Module_NUMBER_OF_RELAYS;
static constexpr uint32_t MODE_PRETRIGGER_TIME = DInput5Relay2Module_MODE_PRETRIGGER_TIME;
static constexpr uint32_t MODE_PULSE_COUNTER = DInput5Relay2Module_MODE_PULSE_COUNTER;
static constexpr uint32_t MODE_WIDTH_COUNTER = DInput5Relay2Module_MODE_WIDTH_COUNTER;
static constexpr uint8_t idFunctionINPUTS = DInput5Relay2Module_idFunctionINPUTS;
static constexpr uint8_t idFunctionCOUNTER01 = DInput5Relay2Module_idFunctionCOUNTER01;
static constexpr uint8_t idFunctionCOUNTER02 = DInput5Relay2Module_idFunctionCOUNTER02;
static constexpr uint8_t idFunctionCOUNTER03 = DInput5Relay2Module_idFunctionCOUNTER03;
static constexpr uint8_t idFunctionCOUNTER04 = DInput5Relay2Module_idFunctionCOUNTER04;
static constexpr uint8_t idFunctionCOUNTER05 = DInput5Relay2Module_idFunctionCOUNTER05;
// Constructor, destructor and init methods
DInput5Relay2Module();
~DInput5Relay2Module();
EmodRet init(const DInput5Relay2ModuleCallback_Type callback_func = nullptr, void* const callback_context = nullptr, const uint8_t variant = 1);
EmodRet init(const uint8_t variant);
// DI methods
EmodRet getStatus(const uint16_t input_mask, uint8_t* status, bool* new_data = nullptr);
EmodRet getAllStatus(uint8_t status[NUMBER_OF_DI_INPUTS], bool* new_data = nullptr);
EmodRet setPulseFilterTime(const uint16_t input_mask, const uint32_t ms_time);
EmodRet setAllPulseFilterTime(const uint32_t ms_time);
EmodRet getPulseFilterTime(const uint16_t input_mask, uint32_t* ms_time);
EmodRet getAllPulseFilterTime(uint32_t ms_times[NUMBER_OF_DI_INPUTS]);
EmodRet getPulseCount(const uint16_t input_mask, uint32_t* count);
EmodRet getAllPulseCount(uint32_t counts[NUMBER_OF_DI_INPUTS]);
EmodRet resetPulseCount(uint16_t input_mask);
EmodRet resetAllPulseCount();
EmodRet getPulseWidth(const uint16_t input_mask, uint32_t* width);
EmodRet getAllPulseWidth(uint32_t widths[NUMBER_OF_DI_INPUTS]);
// Relays methods
EmodRet configPulseWidth(const uint8_t relay_mask, const uint32_t width_ms);
EmodRet configAllPulseWidth(const uint32_t width_ms);
EmodRet activate(const uint8_t relay_mask);
EmodRet deactivate(const uint8_t relay_mask);
EmodRet activateAll(void);
EmodRet deactivateAll(void);
EmodRet getRelayStatus(const uint8_t relay_mask, uint8_t* status);
EmodRet getAllRelayStatus(uint8_t* status);
// Callback methods
EmodRet configEventAtTimeInterval(const uint32_t time_interval);
EmodRet switchToMode(const uint16_t input_mask, const uint32_t mode);
EmodRet configEventOnNewData(void);
EmodRet configEventOnValueChange(const uint32_t threshold, const uint32_t event_mask = DI_ALL_INPUT);
EmodRet resetEventConfig(void);
};
#endif // DINPUT5RELAY2_MODULE_HPP_