46 lines
1012 B
C++
46 lines
1012 B
C++
/*
|
||
* ModbusAction.hh
|
||
*
|
||
* Created on: 18 мар. 2021 г.
|
||
* Author: titov
|
||
*/
|
||
|
||
#ifndef UMLIBRARY_DRIVER_MODBUSACTION_HH_
|
||
#define UMLIBRARY_DRIVER_MODBUSACTION_HH_
|
||
|
||
#include <stdint.h>
|
||
|
||
#include "../systemic/IFunctor.hh"
|
||
|
||
#include "IModBus.hh"
|
||
|
||
namespace driver {
|
||
namespace modbus {
|
||
|
||
//!Действия при обращении к катушке Modbus.
|
||
class ModbusAction : public IModBusDispatch {
|
||
|
||
typedef IModBusDispatch::Status Status;
|
||
|
||
systemic::IFunctor<void> & action_on;
|
||
systemic::IFunctor<void> & action_off;
|
||
|
||
const bool inversion; //!<Признак инверсии выхода.
|
||
bool coil_state; //!<Текущее состояние.
|
||
|
||
public:
|
||
ModbusAction( systemic::IFunctor<void> & action_on, systemic::IFunctor<void> & action_off, bool inversion );
|
||
//!Состояние катушки.
|
||
const bool & state() const;
|
||
|
||
Status read( uint16_t & reg );
|
||
Status write( uint16_t reg );
|
||
};
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
#endif /* UMLIBRARY_DRIVER_MODBUSACTION_HH_ */
|