Commit 5a6186d4880820fde80858135ef21bc49f6aa1b3

Authored by Peter M. Groen
1 parent cc331f80

Added RTU Test

include/request.h
... ... @@ -49,14 +49,15 @@ public:
49 49 FC_READ_FILE_RECORD,
50 50 FC_WRITE_FILE_RECORD,
51 51 };
52   -
53   - explicit Request()
  52 +
  53 +
  54 + Request()
54 55 : m_functionCode(Request::FunctionCode::FC_UNKNOWN)
55 56 , m_slaveId(0)
56 57 , m_startAddress(0x00)
57 58 , m_numberOfRegisters(0x00)
58 59 {}
59   -
  60 +
60 61 /// Constructor taking all necessary information to create a request.
61 62 ///
62 63 /// @param functionCode - The code of the action this request wants to perform.
... ...
src/modbus.cpp
... ... @@ -34,7 +34,7 @@ bool ModBus::Open(const ConnectionConfig &connection_config)
34 34 }
35 35 }
36 36  
37   - if(m_modbus->getConnected())
  37 + if(m_modbus->isConnected())
38 38 {
39 39 m_modbus->Close();
40 40 }
... ...
src/modbusbase.h
... ... @@ -152,7 +152,7 @@ public:
152 152  
153 153 // Getters and Setters.
154 154 void setConnected(bool connected = false){ m_connected = connected;}
155   - bool getConnected() const { return m_connected; }
  155 + bool isConnected() const { return m_connected; }
156 156 void setMessageId( uint32_t message_id ) { m_msg_id = message_id; }
157 157 uint32_t getMessageId() const { return m_msg_id; }
158 158 void setSlaveId(int slave_id){ m_slaveId = slave_id; }
... ...
src/modbustcp.cpp
... ... @@ -65,7 +65,7 @@ bool ModbusTcp::Connect()
65 65  
66 66 LOG("Connected");
67 67 ModbusBase::setConnected( true );
68   - return true;
  68 + return ModbusBase::isConnected();
69 69 }
70 70  
71 71 bool ModbusTcp::Close()
... ... @@ -73,7 +73,7 @@ bool ModbusTcp::Close()
73 73 X_CLOSE_SOCKET(m_socket);
74 74 LOG("Socket Closed");
75 75 ModbusBase::setConnected(false);
76   - return ModbusBase::getConnected();
  76 + return ModbusBase::isConnected();
77 77 }
78 78  
79 79 int ModbusTcp::modbusReceive(uint8_t *buffer)
... ...
tests/CMakeLists.txt
... ... @@ -27,4 +27,4 @@ add_test(NAME modbustest COMMAND modbustest)
27 27  
28 28 set_tests_properties(modbustest PROPERTIES
29 29 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
30 30 -)
  31 +)
31 32 \ No newline at end of file
... ...
tests/modbusstacktest.cpp
... ... @@ -5,8 +5,11 @@
5 5 ****************************************************************/
6 6 #include <gmock/gmock.h>
7 7 #include <gtest/gtest.h>
  8 +#include <iostream>
8 9  
9 10 #include "connectionconfig.h"
  11 +#include "modbus.h"
  12 +#include "request.h"
10 13  
11 14 using namespace osdev::components::modbus;
12 15  
... ... @@ -23,5 +26,20 @@ TEST(ModbusStackTest, StackConnectRTU)
23 26 oConfig.setPortName("/dev/ttyUSB0");
24 27  
25 28 // Create the modbus-stack..
  29 + ModBus oModbus;
  30 + EXPECT_EQ(oModbus.Open(oConfig), true);
  31 +
  32 + // Create a request to read the Temperature from a physical device XY-MD02
  33 + Request request(Request::FunctionCode::FC_READ_HOLDING_REGISTERS,
  34 + 1,
  35 + 0x0001,
  36 + 2,
  37 + [](Response response) mutable
  38 + {
  39 + std::cout << "Result: " << response.resultValue << std::endl;
  40 + return true;
  41 + });
26 42  
  43 + // Send the request
  44 + Response response = oModbus.SendRequest(request);
27 45 }
... ...