MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/application/drivers/ModbusRtu.hh

68 lines
1.9 KiB
C++
Raw Normal View History

/*
* ModBusRtuSetup.hh
*
* Created on: 30 <EFBFBD><EFBFBD><EFBFBD>. 2020 <EFBFBD>.
* Author: s.maksimenko
*/
#ifndef UMLIBRARY_APPLICATION_DRIVERS_MODBUSRTU_HH_
#define UMLIBRARY_APPLICATION_DRIVERS_MODBUSRTUSETUP_HH_
#include <memory_resource>
#include "../ISetupStep.hh"
#include "../../peripheral/IUartPort.hh"
#include "../../systemic/ISignal.hh"
#include "../../systemic/IStatus.hh"
namespace application {
namespace drivers {
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Modbus RTU.
class ModbusRtu : public ISetupStep {
typedef systemic::ISignal ISignal;
typedef systemic::IStatus IStatus;
peripheral::IUartPort* mpPort = nullptr;
std::pmr::memory_resource * mpMemRes = nullptr;
ISignal * mpSigAddrModBus = nullptr;
IStatus * mpStsAddrValid = nullptr;
public:
bool input ( Environment & env );
void build ( Environment & env );
struct Links {
/* Input links */
Environment::Id uart; //!<<3C><><EFBFBD><EFBFBD> Modbus.
Environment::SignalId address; //!<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> Modbus RTU.
Environment::StatusId enable; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
Environment::Id memory; //!<C<><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* Output links */
Environment::Id modbus_rtu; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Modbus RTU.
Environment::Id crc_error; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
Environment::Id incorrect_request; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
Environment::Id packet_counter; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
};
struct Setting {
uint16_t address; //!<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> MODBUS (<28><><EFBFBD><EFBFBD> == 0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> links.sigAddr)
};
const Links & links;
const Setting & cfg;
const configuration::ProcessConfig & params;
ModbusRtu( const Links &, const Setting &, const configuration::ProcessConfig & );
};
}// namespace drivers
}// namespace application
#endif /* UMLIBRARY_APPLICATION_DRIVERS_MODBUSRTU_HH_ */