4#ifndef _Stroika_Frameworks_Modbus_IModbusService_h_
5#define _Stroika_Frameworks_Modbus_IModbusService_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
9#include "Stroika/Foundation/Containers/Mapping.h"
10#include "Stroika/Foundation/Containers/Set.h"
11#include "Stroika/Foundation/Execution/Exceptions.h"
34 template <
typename ID_TYPE,
typename VALUE_TYPE>
39 using NameType = ID_TYPE;
42 using ValueType = VALUE_TYPE;
79 ILLEGAL_DATA_ADDRESS = 2,
80 ILLEGAL_DATA_VALUE = 3,
81 SLAVE_DEVICE_FAILURE = 4,
83 SLAVE_DEVICE_BUSY = 6,
84 MEMORY_PARITY_ERROR = 8,
85 GATEWAY_PATH_UNAVAILABLE = 0xa,
86 GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND = 0xb,
109 template <
typename MODBUS_REGISTER_DESCRIPTOR>
112 template <
typename MODBUS_REGISTER_DESCRIPTOR>
153#include "IModbusService.inl"
A Mapping uniquely associates two elements: a key and a value (use Assocation to allow multiple value...
Set<T> is a container of T, where once an item is added, additionally adds () do nothing.
Exception<> is a replacement (subclass) for any std c++ exception class (e.g. the default 'std::excep...
Exception()=delete
construct with just a message - BASE_EXCEPTION gets whatever it minimally needs.
virtual RegisterValuesMapping< InputRegisterDescriptorType > ReadInputRegisters(const SetRegisterNames< InputRegisterDescriptorType > &names)=0
virtual void WriteHoldingRegisters(const RegisterValuesMapping< HoldingRegisterDescriptorType > &values)=0
virtual RegisterValuesMapping< CoilsDescriptorType > ReadCoils(const SetRegisterNames< CoilsDescriptorType > &names)=0
virtual void WriteCoils(const RegisterValuesMapping< CoilsDescriptorType > &values)=0
virtual RegisterValuesMapping< HoldingRegisterDescriptorType > ReadHoldingRegisters(const SetRegisterNames< HoldingRegisterDescriptorType > &names)=0
virtual RegisterValuesMapping< DiscreteInputDescriptorType > ReadDiscreteInput(const SetRegisterNames< DiscreteInputDescriptorType > &names)=0