diff --git a/include/request.h b/include/request.h index 525f8fe..ce36ad7 100644 --- a/include/request.h +++ b/include/request.h @@ -38,15 +38,16 @@ public: enum class FunctionCode { FC_UNKNOWN, - READ_COILS, - READ_DISCRETE_INPUTS, - READ_HOLDING_REGISTERS, - READ_INPUT_REGISTERS, - WRITE_SINGLE_COIL, - WRITE_SINGLE_REGISTER, - WRITE_MULTIPLE_COILS, - WRITE_MULTIPLE_REGISTERS, - WRITE_FILE_RECORD, + FC_READ_COILS, + FC_READ_DISCRETE_INPUTS, + FC_READ_HOLDING_REGISTERS, + FC_READ_INPUT_REGISTERS, + FC_WRITE_SINGLE_COIL, + FC_WRITE_SINGLE_REGISTER, + FC_WRITE_MULTIPLE_COILS, + FC_WRITE_MULTIPLE_REGISTERS, + FC_READ_FILE_RECORD, + FC_WRITE_FILE_RECORD, }; explicit Request() diff --git a/src/modbus.cpp b/src/modbus.cpp index e38cd72..b9e4cd9 100644 --- a/src/modbus.cpp +++ b/src/modbus.cpp @@ -4,12 +4,19 @@ using namespace osdev::components::modbus; ModBus::ModBus() { - } bool ModBus::Open(const ConnectionConfig &connection_config) { - (void)connection_config; + switch(connection_config.getConnectionType()) + { + case ConnectionConfig::E_CONNECTIONTYPE::SERIAL: + break; + case ConnectionConfig::E_CONNECTIONTYPE::TCP: + break; + case ConnectionConfig::E_CONNECTIONTYPE::UNKNOWN: + break; + } return true; } @@ -21,9 +28,35 @@ bool ModBus::Close() std::vector ModBus::Read(const Request &request) { - (void)request; + std::vector vecResult; - return std::vector(); + switch(request.getFunctionCode()) + { + case Request::FunctionCode::FC_UNKNOWN: + break; + case Request::FunctionCode::FC_READ_COILS: + break; + case Request::FunctionCode::FC_READ_DISCRETE_INPUTS: + break; + case Request::FunctionCode::FC_READ_HOLDING_REGISTERS: + break; + case Request::FunctionCode::FC_READ_INPUT_REGISTERS: + break; + case Request::FunctionCode::FC_WRITE_SINGLE_COIL: + break; + case Request::FunctionCode::FC_WRITE_SINGLE_REGISTER: + break; + case Request::FunctionCode::FC_WRITE_MULTIPLE_COILS: + break; + case Request::FunctionCode::FC_WRITE_MULTIPLE_REGISTERS: + break; + case Request::FunctionCode::FC_READ_FILE_RECORD: + break; + case Request::FunctionCode::FC_WRITE_FILE_RECORD: + break; + } + + return vecResult; } std::vector ModBus::Write(const Request &request) diff --git a/src/modbus.h b/src/modbus.h index e1a33ce..859f857 100644 --- a/src/modbus.h +++ b/src/modbus.h @@ -17,18 +17,20 @@ namespace modbus { class ModBus : public IModBus { public: + /// Default CTor ModBus(); + /// Default DTor virtual ~ModBus() {} - // Implementation + // Implementation of IModBus virtual bool Open(const ConnectionConfig &connection_config) override; virtual bool Close() override; virtual std::vector Read(const Request &request) override; virtual std::vector Write(const Request &request) override; private: - std::unique_ptr m_modbus; + std::unique_ptr m_modbus = nullptr; }; } /* End namespace modbus */ diff --git a/tests/requesttest.cpp b/tests/requesttest.cpp index fb84021..e165729 100644 --- a/tests/requesttest.cpp +++ b/tests/requesttest.cpp @@ -50,71 +50,71 @@ TEST(RequestTest, RequestNumberOfRegisters) TEST(RequestTest, RequestReadCoils) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::READ_COILS); + oRequest.setFunctionCode(Request::FunctionCode::FC_READ_COILS); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::READ_COILS); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_READ_COILS); } TEST(RequestTest, RequestReadDiscreteInputs) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::READ_DISCRETE_INPUTS); + oRequest.setFunctionCode(Request::FunctionCode::FC_READ_DISCRETE_INPUTS); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::READ_DISCRETE_INPUTS); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_READ_DISCRETE_INPUTS); } TEST(RequestTest, RequestReadHoldingRegisters) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::READ_HOLDING_REGISTERS); + oRequest.setFunctionCode(Request::FunctionCode::FC_READ_HOLDING_REGISTERS); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::READ_HOLDING_REGISTERS); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_READ_HOLDING_REGISTERS); } TEST(RequestTest, RequestReadInputRegisters) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::READ_INPUT_REGISTERS); + oRequest.setFunctionCode(Request::FunctionCode::FC_READ_INPUT_REGISTERS); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::READ_INPUT_REGISTERS); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_READ_INPUT_REGISTERS); } TEST(RequestTest, RequestWriteSingleCoil) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::WRITE_SINGLE_COIL); + oRequest.setFunctionCode(Request::FunctionCode::FC_WRITE_SINGLE_COIL); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::WRITE_SINGLE_COIL); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_WRITE_SINGLE_COIL); } TEST(RequestTest, RequestWriteSingleRegister) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::WRITE_SINGLE_REGISTER); + oRequest.setFunctionCode(Request::FunctionCode::FC_WRITE_SINGLE_REGISTER); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::WRITE_SINGLE_REGISTER); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_WRITE_SINGLE_REGISTER); } TEST(RequestTest, RequestWriteMultipleCoils) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::WRITE_MULTIPLE_COILS); + oRequest.setFunctionCode(Request::FunctionCode::FC_WRITE_MULTIPLE_COILS); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::WRITE_MULTIPLE_COILS); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_WRITE_MULTIPLE_COILS); } TEST(RequestTest, RequestWriteMultipleRegisters) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::WRITE_MULTIPLE_REGISTERS); + oRequest.setFunctionCode(Request::FunctionCode::FC_WRITE_MULTIPLE_REGISTERS); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::WRITE_MULTIPLE_REGISTERS); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_WRITE_MULTIPLE_REGISTERS); } TEST(RequestTest, RequestWriteFileRecord) { Request oRequest; - oRequest.setFunctionCode(Request::FunctionCode::WRITE_FILE_RECORD); + oRequest.setFunctionCode(Request::FunctionCode::FC_WRITE_FILE_RECORD); - EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::WRITE_FILE_RECORD); + EXPECT_EQ(oRequest.getFunctionCode(), Request::FunctionCode::FC_WRITE_FILE_RECORD); }