36#ifndef ModbusInstrument_h
37#define ModbusInstrument_h
49 virtual uint16_t ReadRegister(uint16_t address);
50 virtual uint16_t WriteRegister(uint16_t address, uint16_t value);
51 virtual uint8_t ReadRegisters(uint16_t address, std::vector<uint16_t>* data, uint8_t count);
54 enum ModbusFunction : uint8_t
57 ReadDiscreteOutputCoils = 0x01,
58 ReadDiscreteInputContacts = 0x02,
59 ReadAnalogOutputHoldingRegisters = 0x03,
60 ReadAnalogInputRegisters = 0x04,
63 WriteSingleDiscreteOutputCoil = 0x05,
64 WriteSingleAnalogOutputRegister = 0x06,
67 WriteMultipleDiscreteOutputCoils = 0x0F,
68 WriteMultipleAnalogOutputHoldingRegisters = 0x10,
75 std::recursive_mutex m_modbusMutex;
77 uint8_t m_slaveAdress;
78 void Converse(ModbusFunction function, std::vector<uint8_t>* data);
79 void SendCommand(ModbusFunction function,
const std::vector<uint8_t> &data);
80 void ReadResponse(ModbusFunction function, std::vector<uint8_t>* data);
Helper class for binary driver: provides methods for handling binary data.
Definition: BinaryDriver.h:46
Base class for instruments using Modbus communication protocol.
Definition: ModbusInstrument.h:44
An SCPI-based oscilloscope.
Definition: SCPIInstrument.h:38
Abstraction of a transport layer for moving SCPI data between endpoints.
Definition: SCPITransport.h:47