Skip to content

Commit 21f4b22

Browse files
committed
Fix CI issues with the build
Signed-off-by: Mateusz Mazur <mateusz.mazur@e.email>
1 parent 393a439 commit 21f4b22

File tree

7 files changed

+60
-5
lines changed

7 files changed

+60
-5
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ project(protocolConverter)
33

44
set(CMAKE_CXX_STANDARD 17)
55

6-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -pedantic")
6+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -pedantic -Werror=unused-result")
77

88
option(MODBUS_EXAMPLE "Build example program" OFF)
99
option(MODBUS_TESTS "Build tests" OFF)

include/MB/modbusRequest.hpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class ModbusRequest {
7171
}
7272

7373
/**
74-
* Simple constructor, that allows to create "dummy" ModbusResponse
74+
* Simple constructor, that allows to create "dummy" ModbusRequest
7575
* object. May be useful in some cases.
7676
*/
7777
explicit ModbusRequest(
@@ -80,7 +80,15 @@ class ModbusRequest {
8080
uint16_t address = 0, uint16_t registersNumber = 0,
8181
std::vector<ModbusCell> values = {}) noexcept;
8282

83-
ModbusRequest(const ModbusRequest &) = default;
83+
/**
84+
* Copy constructor for the response.
85+
*/
86+
ModbusRequest(const ModbusRequest&);
87+
88+
/**
89+
* Equal operator for the response.
90+
*/
91+
ModbusRequest& operator=(const ModbusRequest &);
8492

8593
//! Returns string representation of object
8694
[[nodiscard]] std::string toString() const noexcept;

include/MB/modbusResponse.hpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,15 @@ class ModbusResponse {
8080
uint16_t address = 0, uint16_t registersNumber = 0,
8181
std::vector<ModbusCell> values = {});
8282

83-
ModbusResponse(const ModbusResponse &) = default;
83+
/**
84+
* Copy constructor for the response.
85+
*/
86+
ModbusResponse(const ModbusResponse&);
87+
88+
/**
89+
* Equal operator for the response.
90+
*/
91+
ModbusResponse& operator=(const ModbusResponse &);
8492

8593
//! Converts object to it's string representation
8694
[[nodiscard]] std::string toString() const;

include/MB/modbusUtils.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,4 +233,8 @@ inline void pushUint16(std::vector<uint8_t> &buffer, const uint16_t val) {
233233
buffer.push_back(low);
234234
}
235235

236+
//! Ignore some value explicitly
237+
template<typename T>
238+
inline void ignore_result(T&& v) { (void)v; }
239+
236240
} // namespace MB::utils

src/Serial/connection.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// Licensed under: MIT License <http://opensource.org/licenses/MIT>
44

55
#include "Serial/connection.hpp"
6+
#include "modbusUtils.hpp"
67
#include <sys/poll.h>
78

89
using namespace MB::Serial;
@@ -139,7 +140,7 @@ std::vector<uint8_t> Connection::send(std::vector<uint8_t> data) {
139140
// most cases)
140141
tcflush(_fd, TCOFLUSH);
141142
// Write
142-
write(_fd, data.begin().base(), data.size());
143+
utils::ignore_result(write(_fd, data.begin().base(), data.size()));
143144
// It may be a good idea to use tcdrain, although it has tendency to not
144145
// work as expected tcdrain(_fd);
145146

src/modbusRequest.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,23 @@ ModbusRequest::ModbusRequest(uint8_t slaveId, utils::MBFunctionCode functionCode
3030
}
3131
}
3232

33+
ModbusRequest::ModbusRequest(const ModbusRequest& reference) :
34+
_slaveID(reference.slaveID()),
35+
_functionCode(reference.functionCode()),
36+
_address(reference.registerAddress()),
37+
_registersNumber(reference.numberOfRegisters()),
38+
_values(reference.registerValues()){ }
39+
40+
41+
ModbusRequest& ModbusRequest::operator=(const ModbusRequest &reference) {
42+
this->_slaveID = reference.slaveID();
43+
this->_functionCode = reference.functionCode();
44+
this->_address = reference.registerAddress();
45+
this->_registersNumber = reference.numberOfRegisters();
46+
this->_values = reference.registerValues();
47+
return *this;
48+
}
49+
3350
ModbusRequest::ModbusRequest(const std::vector<uint8_t> &inputData, bool CRC) {
3451
try {
3552
if (inputData.size() < 3)

src/modbusResponse.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,23 @@ ModbusResponse::ModbusResponse(uint8_t slaveId, utils::MBFunctionCode functionCo
3030
}
3131
}
3232

33+
ModbusResponse::ModbusResponse(const ModbusResponse& reference) :
34+
_slaveID(reference.slaveID()),
35+
_functionCode(reference.functionCode()),
36+
_address(reference.registerAddress()),
37+
_registersNumber(reference.numberOfRegisters()),
38+
_values(reference.registerValues()){ }
39+
40+
41+
ModbusResponse& ModbusResponse::operator=(const ModbusResponse &reference) {
42+
this->_slaveID = reference.slaveID();
43+
this->_functionCode = reference.functionCode();
44+
this->_address = reference.registerAddress();
45+
this->_registersNumber = reference.numberOfRegisters();
46+
this->_values = reference.registerValues();
47+
return *this;
48+
}
49+
3350
ModbusResponse::ModbusResponse(std::vector<uint8_t> inputData, bool CRC) {
3451
try {
3552
if (inputData.size() < 3)

0 commit comments

Comments
 (0)