18 #ifndef MODBUS_ADAPTER_BRAKE_TEST_H 19 #define MODBUS_ADAPTER_BRAKE_TEST_H 28 #include <prbt_hardware_support/ModbusMsgInStamped.h> 30 #include <prbt_hardware_support/IsBrakeTestRequired.h> 31 #include <prbt_hardware_support/SendBrakeTestResult.h> 65 IsBrakeTestRequired::Response& res);
71 SendBrakeTestResult::Response& res);
114 IsBrakeTestRequired::Response& res)
125 return std::min_element(
126 reg_idx_cont.cbegin(), reg_idx_cont.cend(),
127 [](
const TRegIdxCont::value_type& l,
const TRegIdxCont::value_type& r) ->
bool {
return l.second < r.second; })
133 return std::max_element(
134 reg_idx_cont.cbegin(), reg_idx_cont.cend(),
135 [](
const TRegIdxCont::value_type& l,
const TRegIdxCont::value_type& r) ->
bool {
return l.second < r.second; })
146 #endif // MODBUS_ADAPTER_BRAKE_TEST_H const TRegIdx reg_start_idx_
IsBrakeTestRequiredResponse::_result_type TBrakeTestRequired
static const TRegIdxCont::mapped_type & getMaxRegisterIdx(const TRegIdxCont ®_idx_cont)
ModbusAdapterBrakeTest(TWriteModbusRegister &&write_modbus_register_func, const ModbusApiSpec &read_api_spec, const ModbusApiSpec &write_api_spec)
TWriteModbusRegister write_modbus_register_func_
TBrakeTestRequired brake_test_required_
Store the current state of whether a brake test is required.
const TRegIdxCont reg_idx_cont_
const ModbusApiSpec api_spec_
bool sendBrakeTestResult(SendBrakeTestResult::Request &req, SendBrakeTestResult::Response &res)
Sends the brake test result data to the modbus client.
static const TRegIdxCont::mapped_type & getMinRegisterIdx(const TRegIdxCont ®_idx_cont)
void updateBrakeTestRequiredState(TBrakeTestRequired brake_test_required)
bool isBrakeTestRequired(IsBrakeTestRequired::Request &, IsBrakeTestRequired::Response &res)
Stores the brake test required flag and initializes the brake test service, the first time the functi...
const RegCont::size_type reg_block_size_
std::map< std::string, TRegIdx > TRegIdxCont
void modbusMsgCallback(const ModbusMsgInStampedConstPtr &msg_raw)
Called whenever a new modbus message arrives.
static unsigned long getRegisterBlockSize(const TRegIdxCont ®_idx_cont)
std::function< bool(const uint16_t &, const RegCont &)> TWriteModbusRegister
Listens to the modbus_read topic and publishes a message informing about a required brake test...
static TRegIdxCont getRegisters(const ModbusApiSpec &write_api_spec)
Specifies the meaning of the holding registers.