Program Listing for File Relay8Module.hpp

Return to documentation for file (/home/asunye/wd/dev/emod_docs/emod_controller/build_x86/install/include/Relay8Module.hpp)

/****************************************************************************
 * @defgroup PackageName Modules
 * @file Relay8Module.hpp
 * @brief
 * @author info@pickdata.net
 ***************************************************************************/
#ifndef RELAY_MODULE_HPP_
#define RELAY_MODULE_HPP_

#include "Relay8Module.h"
#include "Module.hpp"


// Forward declaration
class RelayFunctions;

class Relay8Module : public Module
{
protected:
    RelayFunctions* relays;
    EmodRet initFunctions();

public:
    // Constants
    static constexpr uint8_t RELAY1 = Relay8Module_RELAY1;
    static constexpr uint8_t RELAY2 = Relay8Module_RELAY2;
    static constexpr uint8_t RELAY3 = Relay8Module_RELAY3;
    static constexpr uint8_t RELAY4 = Relay8Module_RELAY4;
    static constexpr uint8_t RELAY5 = Relay8Module_RELAY5;
    static constexpr uint8_t RELAY6 = Relay8Module_RELAY6;
    static constexpr uint8_t RELAY7 = Relay8Module_RELAY7;
    static constexpr uint8_t RELAY8 = Relay8Module_RELAY8;
    static constexpr uint8_t ALL_RELAY = Relay8Module_ALL_RELAY;
    static constexpr uint8_t NUMBER_OF_RELAYS = Relay8Module_NUMBER_OF_RELAYS;

    // Constructor, destructor and init methods
    Relay8Module();
    ~Relay8Module();

    EmodRet init(const uint8_t variant = 1);

    // Relay 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();

    EmodRet deactivateAll();

    EmodRet getRelayStatus(const uint8_t relay_mask, uint8_t* status);

    EmodRet getAllRelayStatus(uint8_t* status);

};

#endif  // RELAY_MODULE_HPP_