Commit 0df27b07164d4e4c69b39b3617151596b2009563
1 parent
91724967
Added doxygen comments
Showing
5 changed files
with
150 additions
and
107 deletions
CMakeLists.txt
src/ConnectionConfig.h
1 | +/**************************************************************************** | ||
2 | + * Copyright (c) 2022 Priva b.v. | ||
3 | + ****************************************************************************/ | ||
1 | #pragma once | 4 | #pragma once |
2 | 5 | ||
3 | #include <string> | 6 | #include <string> |
4 | #include <unordered_map> | 7 | #include <unordered_map> |
5 | 8 | ||
6 | /*! | 9 | /*! |
7 | - * \brief The ConnectionPort enum | 10 | + * \brief The ConnectionPort enum. |
11 | + * CP_EXTERNAL - the first serial port | ||
12 | + * CP_IOBUS - The second serial port through RJ45 connector | ||
13 | + * CP_TCP - TCP Connections | ||
8 | */ | 14 | */ |
9 | enum class ConnectionPort : unsigned int | 15 | enum class ConnectionPort : unsigned int |
10 | { | 16 | { |
@@ -14,7 +20,8 @@ enum class ConnectionPort : unsigned int | @@ -14,7 +20,8 @@ enum class ConnectionPort : unsigned int | ||
14 | }; | 20 | }; |
15 | 21 | ||
16 | /*! | 22 | /*! |
17 | - * \brief The Parity enum | 23 | + * \brief The Parity enum. |
24 | + * Used in a serial port context | ||
18 | */ | 25 | */ |
19 | enum class Parity : unsigned int | 26 | enum class Parity : unsigned int |
20 | { | 27 | { |
@@ -24,7 +31,8 @@ enum class Parity : unsigned int | @@ -24,7 +31,8 @@ enum class Parity : unsigned int | ||
24 | }; | 31 | }; |
25 | 32 | ||
26 | /*! | 33 | /*! |
27 | - * \brief The ConnectionType enum | 34 | + * \brief The ConnectionType enum. |
35 | + * Added for convenience, to distinguish between types. | ||
28 | */ | 36 | */ |
29 | enum class ConnectionType : unsigned int | 37 | enum class ConnectionType : unsigned int |
30 | { | 38 | { |
@@ -33,17 +41,25 @@ enum class ConnectionType : unsigned int | @@ -33,17 +41,25 @@ enum class ConnectionType : unsigned int | ||
33 | CT_UNKNOWN | 41 | CT_UNKNOWN |
34 | }; | 42 | }; |
35 | 43 | ||
44 | +/*! | ||
45 | + * \brief The ConnectionConfig class holds all the information we need to establish a proper connection. | ||
46 | + * It can be created by a configuration object and passed on to the ModBus stack. | ||
47 | + * By using this class, all the connectioninfo is within its context for convenience. | ||
48 | + * | ||
49 | + * Data can be accessed by their resp. getter-methods to avoid internal data-exposure | ||
50 | + * according to the basic principles of object oriented programming. ( Abstraction, Encapsulation, Inheritance, and Polymorphism ) | ||
51 | + */ | ||
36 | class ConnectionConfig | 52 | class ConnectionConfig |
37 | { | 53 | { |
38 | public: | 54 | public: |
39 | /*! | 55 | /*! |
40 | - * \brief ConnectionConfig | ||
41 | - * \param port | ||
42 | - * \param baud | ||
43 | - * \param parity | ||
44 | - * \param dataBits | ||
45 | - * \param stopBits | ||
46 | - * \param timeOut | 56 | + * \brief ConnectionConfig Constructor. Used to create a new serial connection. |
57 | + * \param port - The portname given by its enum. | ||
58 | + * \param baud - The port speed in a serial port context ( default = 115200 ) | ||
59 | + * \param parity - The parity. ( Default : None, no parity ) | ||
60 | + * \param dataBits - The number of databits. RTU uses 8 (0 - 255), ASCII uses 7 (0 - 127). Default is RTU | ||
61 | + * \param stopBits - The number of stopbits used to detect the end of the frame. ( Default = 1 ) | ||
62 | + * \param timeOut - Timeout in .1 secs. See the termios documentation for deviations on this. | ||
47 | */ | 63 | */ |
48 | ConnectionConfig( ConnectionPort port, int baud = 115200, Parity parity = Parity::PAR_NONE, int dataBits = 8, int stopBits = 1, int timeOut = -1 ) | 64 | ConnectionConfig( ConnectionPort port, int baud = 115200, Parity parity = Parity::PAR_NONE, int dataBits = 8, int stopBits = 1, int timeOut = -1 ) |
49 | : m_port( port ) | 65 | : m_port( port ) |
@@ -58,11 +74,11 @@ public: | @@ -58,11 +74,11 @@ public: | ||
58 | {} | 74 | {} |
59 | 75 | ||
60 | /*! | 76 | /*! |
61 | - * \brief ConnectionConfig | ||
62 | - * \param port | ||
63 | - * \param ip | ||
64 | - * \param portnum | ||
65 | - * \param timeOut | 77 | + * \brief ConnectionConfig Constructor. Used to create a new TCP connection. |
78 | + * \param port - The portname given by its enaum. ( Should be CP_TCP ) | ||
79 | + * \param ip - The ip address of the ModBus device we want to connect to. | ||
80 | + * \param portnum - The portnumber the ModBus device is using | ||
81 | + * \param timeOut - Timeout in which a modbus device should respond. | ||
66 | */ | 82 | */ |
67 | ConnectionConfig( ConnectionPort port, const std::string &ip, int portnum, int timeOut = -1 ) | 83 | ConnectionConfig( ConnectionPort port, const std::string &ip, int portnum, int timeOut = -1 ) |
68 | : m_port( port ) | 84 | : m_port( port ) |
@@ -81,6 +97,7 @@ public: | @@ -81,6 +97,7 @@ public: | ||
81 | ConnectionPort getPortEnum() const { return m_port; } ///< Get the portname Enum | 97 | ConnectionPort getPortEnum() const { return m_port; } ///< Get the portname Enum |
82 | int getBaudRate() const { return m_baudRate; } ///< Get the given baudrate as int. | 98 | int getBaudRate() const { return m_baudRate; } ///< Get the given baudrate as int. |
83 | char getParity() const { return m_parityMap.at(m_parity); } ///< Get the translated parity. | 99 | char getParity() const { return m_parityMap.at(m_parity); } ///< Get the translated parity. |
100 | + Parity getParityEnum() const { return m_parity; } ///< Get the parity Enum | ||
84 | int getDataBits() const { return m_dataBits; } ///< Get the number of databits ( 7 for ASCII, 8 for RTU ) | 101 | int getDataBits() const { return m_dataBits; } ///< Get the number of databits ( 7 for ASCII, 8 for RTU ) |
85 | int getStopBits() const { return m_stopBits; } ///< Get the number of stopBits. ( de-facto = 1 ) | 102 | int getStopBits() const { return m_stopBits; } ///< Get the number of stopBits. ( de-facto = 1 ) |
86 | 103 | ||
@@ -93,20 +110,21 @@ public: | @@ -93,20 +110,21 @@ public: | ||
93 | private: | 110 | private: |
94 | 111 | ||
95 | /// Serial connections | 112 | /// Serial connections |
96 | - ConnectionPort m_port; | ||
97 | - int m_baudRate; | ||
98 | - Parity m_parity; | ||
99 | - int m_dataBits; | ||
100 | - int m_stopBits; | 113 | + ConnectionPort m_port; ///< Member variable holding the portName Enum |
114 | + int m_baudRate; ///< Member variable holding the Serial port Baudrate | ||
115 | + Parity m_parity; ///< Member variable holding the Serial port Parity | ||
116 | + int m_dataBits; ///< Member variable holding the number of databits | ||
117 | + int m_stopBits; ///< Member variable holding the number of stopbits | ||
101 | 118 | ||
102 | /// TCP connections | 119 | /// TCP connections |
103 | - std::string m_ipaddress; | ||
104 | - int m_portnumber; | 120 | + std::string m_ipaddress; ///< Member variable holding the ip-address of the TCP-connection |
121 | + int m_portnumber; ///< Member variable holding the portnumber of the TCP-connection | ||
105 | 122 | ||
106 | /// Generic | 123 | /// Generic |
107 | - int m_timeOut; | ||
108 | - ConnectionType m_conType; | 124 | + int m_timeOut; ///< Member variable holding the timeOut value |
125 | + ConnectionType m_conType; ///< Member variable holding the connection type. | ||
109 | 126 | ||
127 | + /// Translation tables for portnames and parity. | ||
110 | // ============================================================ | 128 | // ============================================================ |
111 | // == Change accordingly to the devicenames on your platform == | 129 | // == Change accordingly to the devicenames on your platform == |
112 | // ============================================================ | 130 | // ============================================================ |
src/IModbusAdapter.h
@@ -15,58 +15,70 @@ using modbusData = std::vector<std::variant<uint8_t, uint16_t>>; | @@ -15,58 +15,70 @@ using modbusData = std::vector<std::variant<uint8_t, uint16_t>>; | ||
15 | class ConnectionConfig; | 15 | class ConnectionConfig; |
16 | 16 | ||
17 | /*! | 17 | /*! |
18 | - * \brief The IModbusAdapter class | 18 | + * \brief The IModbusAdapter class provides an abstract way of using |
19 | + * the modbus stack. Implemented as a pure virtual, it cannot be instantiated. | ||
20 | + * This represents a unique connection to either a serial bus or a TCP connection. | ||
19 | */ | 21 | */ |
20 | class IModbusAdapter | 22 | class IModbusAdapter |
21 | { | 23 | { |
22 | 24 | ||
23 | public: | 25 | public: |
24 | - virtual ~IModbusAdapter() {} | 26 | + /// Default DTor. |
27 | + virtual ~IModbusAdapter() = default; | ||
25 | 28 | ||
29 | + /// Create a modbus connection, accepting a configuration object. | ||
26 | virtual bool ModbusConnect( const ConnectionConfig &conncfg ) = 0; | 30 | virtual bool ModbusConnect( const ConnectionConfig &conncfg ) = 0; |
27 | 31 | ||
28 | /*! | 32 | /*! |
29 | - * \brief ModbusDisconnect | 33 | + * \brief ModbusDisconnect |
34 | + * Disconnect from the serial bus or the TCP connection, freeing its resources | ||
30 | */ | 35 | */ |
31 | virtual bool ModbusDisconnect() = 0; | 36 | virtual bool ModbusDisconnect() = 0; |
32 | 37 | ||
33 | /*! | 38 | /*! |
34 | - * \brief ModbusReadData | ||
35 | - * \param slaveId | ||
36 | - * \param startAddress | ||
37 | - * \param noOfItems | 39 | + * \brief Read data from a modbus device given by its parameters. |
40 | + * \param slaveId - The Id of the ModbusDevice. | ||
41 | + * \param functionCode - The code describing the action we want to perform on the device. | ||
42 | + * Given by an enum, provided by the modbus-stack. | ||
43 | + * \param startAddress - Startaddres of the register we want to read. | ||
44 | + * \param noOfItems - The number of items we expect back. | ||
45 | + * \returns modbusData - A vector holding each register in an entry in the same order as they are received. | ||
46 | + * Empty if no data was received. | ||
38 | */ | 47 | */ |
39 | virtual modbusData ModbusReadData( int slaveId, int functionCode, int startAddress, int noOfItems ) = 0; | 48 | virtual modbusData ModbusReadData( int slaveId, int functionCode, int startAddress, int noOfItems ) = 0; |
40 | 49 | ||
41 | /*! | 50 | /*! |
42 | - * \brief ModbusReadHoldReg | ||
43 | - * \param slaveId | ||
44 | - * \param startAddress | ||
45 | - * \param noOfItems | ||
46 | - * \return | 51 | + * \brief Read data from the holdregisters ( or keep-registers ) of a modbus device. |
52 | + * \param slaveId - The Id of the ModbusDevice. | ||
53 | + * \param startAddress - Startaddres of the register we want to read. | ||
54 | + * \param noOfItems - The number of items we expect back. | ||
55 | + * \returns modbusData - A vector holding each register in an entry in the same order as they are received. | ||
56 | + * Empty if no data was received. | ||
47 | */ | 57 | */ |
48 | virtual modbusData ModbusReadHoldReg( int slaveId, int startAddress, int noOfItems ) = 0; | 58 | virtual modbusData ModbusReadHoldReg( int slaveId, int startAddress, int noOfItems ) = 0; |
49 | 59 | ||
50 | /*! | 60 | /*! |
51 | - * \brief ModBusWriteData | ||
52 | - * \param slaveId | ||
53 | - * \param funtionCode | ||
54 | - * \param startAddress | ||
55 | - * \param noOfItems | ||
56 | - * \param values | 61 | + * \brief Write data to the device. |
62 | + * \param slaveId - The Id of the Modbus device | ||
63 | + * \param funtionCode - The code describing the action we want to perform on the device | ||
64 | + * given by an enum, provided by the modbus-stack. | ||
65 | + * \param startAddress - Startaddres of the register we want to read. | ||
66 | + * \param noOfItems - The number of items we expect to be written | ||
67 | + * \param values - The values we want to write to the given device. Each vector-entry represents a single byte | ||
68 | + * and they will be sent in sequence. | ||
57 | */ | 69 | */ |
58 | virtual void ModBusWriteData( int slaveId, int functionCode, int startAddress, int noOfItems, std::vector<int>values ) = 0; | 70 | virtual void ModBusWriteData( int slaveId, int functionCode, int startAddress, int noOfItems, std::vector<int>values ) = 0; |
59 | 71 | ||
60 | /*! | 72 | /*! |
61 | - * \brief isConnected | ||
62 | - * \return | 73 | + * \brief Indicates if this connection is alive. |
74 | + * \return True if alive, false if not. | ||
63 | */ | 75 | */ |
64 | virtual bool isConnected() const = 0; | 76 | virtual bool isConnected() const = 0; |
65 | 77 | ||
66 | /*! | 78 | /*! |
67 | - * \brief ErrorString | ||
68 | - * \param errnum | ||
69 | - * \return | 79 | + * \brief returns the translated error code coming from the modbus stack. |
80 | + * \param errnum - error Number coming from the stack. | ||
81 | + * \return The translated error as a string. Empty if not resolvable. | ||
70 | */ | 82 | */ |
71 | virtual std::string ErrorString( int errnum ) const = 0; | 83 | virtual std::string ErrorString( int errnum ) const = 0; |
72 | }; | 84 | }; |
src/ModbusAdapter.h
@@ -21,63 +21,70 @@ class ModbusAdapter : public IModbusAdapter | @@ -21,63 +21,70 @@ class ModbusAdapter : public IModbusAdapter | ||
21 | { | 21 | { |
22 | public: | 22 | public: |
23 | /*! | 23 | /*! |
24 | - * \brief ModbusAdapter | 24 | + * \brief Default constructor |
25 | */ | 25 | */ |
26 | explicit ModbusAdapter(); | 26 | explicit ModbusAdapter(); |
27 | 27 | ||
28 | /*! | 28 | /*! |
29 | - * \brief ~ModbusAdapter | 29 | + * \brief Default destructor |
30 | */ | 30 | */ |
31 | virtual ~ModbusAdapter(); | 31 | virtual ~ModbusAdapter(); |
32 | 32 | ||
33 | /*! | 33 | /*! |
34 | - * \brief ModbusConnect | ||
35 | - * \param conncfg | 34 | + * \brief /// Create a modbus connection, accepting a configuration object. |
36 | */ | 35 | */ |
37 | bool ModbusConnect( const ConnectionConfig &conncfg ) override; | 36 | bool ModbusConnect( const ConnectionConfig &conncfg ) override; |
38 | 37 | ||
39 | /*! | 38 | /*! |
40 | - * \brief ModbusDisconnect | 39 | + * \brief ModbusDisconnect |
40 | + * Disconnect from the serial bus or the TCP connection, freeing its resources | ||
41 | */ | 41 | */ |
42 | bool ModbusDisconnect() override; | 42 | bool ModbusDisconnect() override; |
43 | 43 | ||
44 | /*! | 44 | /*! |
45 | - * \brief ModbusReadData | ||
46 | - * \param slaveId | ||
47 | - * \param startAddress | ||
48 | - * \param noOfItems | 45 | + * \brief Read data from a modbus device given by its parameters. |
46 | + * \param slaveId - The Id of the ModbusDevice. | ||
47 | + * \param functionCode - The code describing the action we want to perform on the device. | ||
48 | + * Given by an enum, provided by the modbus-stack. | ||
49 | + * \param startAddress - Startaddres of the register we want to read. | ||
50 | + * \param noOfItems - The number of items we expect back. | ||
51 | + * \returns modbusData - A vector holding each register in an entry in the same order as they are received. | ||
52 | + * Empty if no data was received. | ||
49 | */ | 53 | */ |
50 | modbusData ModbusReadData( int slaveId, int functionCode, int startAddress, int noOfItems ) override; | 54 | modbusData ModbusReadData( int slaveId, int functionCode, int startAddress, int noOfItems ) override; |
51 | 55 | ||
52 | /*! | 56 | /*! |
53 | - * \brief ModbusReadHoldReg | ||
54 | - * \param slaveId | ||
55 | - * \param startAddress | ||
56 | - * \param noOfItems | ||
57 | - * \return | 57 | + * \brief Read data from the holdregisters ( or keep-registers ) of a modbus device. |
58 | + * \param slaveId - The Id of the ModbusDevice. | ||
59 | + * \param startAddress - Startaddres of the register we want to read. | ||
60 | + * \param noOfItems - The number of items we expect back. | ||
61 | + * \returns modbusData - A vector holding each register in an entry in the same order as they are received. | ||
62 | + * Empty if no data was received. | ||
58 | */ | 63 | */ |
59 | modbusData ModbusReadHoldReg( int slaveId, int startAddress, int noOfItems ) override; | 64 | modbusData ModbusReadHoldReg( int slaveId, int startAddress, int noOfItems ) override; |
60 | 65 | ||
61 | /*! | 66 | /*! |
62 | - * \brief ModBusWriteData | ||
63 | - * \param slaveId | ||
64 | - * \param funtionCode | ||
65 | - * \param startAddress | ||
66 | - * \param noOfItems | ||
67 | - * \param values | 67 | + * \brief Write data to the device. |
68 | + * \param slaveId - The Id of the Modbus device | ||
69 | + * \param funtionCode - The code describing the action we want to perform on the device | ||
70 | + * given by an enum, provided by the modbus-stack. | ||
71 | + * \param startAddress - Startaddres of the register we want to read. | ||
72 | + * \param noOfItems - The number of items we expect to be written | ||
73 | + * \param values - The values we want to write to the given device. Each vector-entry represents a single byte | ||
74 | + * and they will be sent in sequence. | ||
68 | */ | 75 | */ |
69 | void ModBusWriteData( int slaveId, int functionCode, int startAddress, int noOfItems, std::vector<int>values ) override; | 76 | void ModBusWriteData( int slaveId, int functionCode, int startAddress, int noOfItems, std::vector<int>values ) override; |
70 | 77 | ||
71 | /*! | 78 | /*! |
72 | - * \brief isConnected | ||
73 | - * \return | 79 | + * \brief Indicates if this connection is alive. |
80 | + * \return True if alive, false if not. | ||
74 | */ | 81 | */ |
75 | bool isConnected() const override; | 82 | bool isConnected() const override; |
76 | 83 | ||
77 | /*! | 84 | /*! |
78 | - * \brief ErrorString | ||
79 | - * \param errnum | ||
80 | - * \return | 85 | + * \brief returns the translated error code coming from the modbus stack. |
86 | + * \param errnum - error Number coming from the stack. | ||
87 | + * \return The translated error as a string. Empty if not resolvable. | ||
81 | */ | 88 | */ |
82 | std::string ErrorString( int errnum ) const override; | 89 | std::string ErrorString( int errnum ) const override; |
83 | 90 |
src/ModbusConnections.h
@@ -13,91 +13,97 @@ | @@ -13,91 +13,97 @@ | ||
13 | #include <string> | 13 | #include <string> |
14 | #include <unordered_map> | 14 | #include <unordered_map> |
15 | 15 | ||
16 | -/// | 16 | +/// Easy replacement of template construction |
17 | using AdapterList = std::vector<std::shared_ptr<IModbusAdapter>>; | 17 | using AdapterList = std::vector<std::shared_ptr<IModbusAdapter>>; |
18 | 18 | ||
19 | /*! | 19 | /*! |
20 | - * \brief The ModbusConnections class | 20 | + * \brief The ModbusConnections class conatins a list of all modbus connections, Serial and TCP. |
21 | + * To access a specific connection, use its portname and / or endpoint to return it's interface. | ||
21 | */ | 22 | */ |
22 | class ModbusConnections | 23 | class ModbusConnections |
23 | { | 24 | { |
24 | public: | 25 | public: |
25 | /*! | 26 | /*! |
26 | - * \brief ModbusConnections | 27 | + * \brief Default CTor |
27 | */ | 28 | */ |
28 | explicit ModbusConnections(); | 29 | explicit ModbusConnections(); |
29 | 30 | ||
30 | /*! | 31 | /*! |
31 | - * \brief ~ModbusConnections | 32 | + * \brief Default DTor |
32 | */ | 33 | */ |
33 | virtual ~ModbusConnections(); | 34 | virtual ~ModbusConnections(); |
34 | 35 | ||
35 | /*! | 36 | /*! |
36 | - * \brief CreateConnection | ||
37 | - * \param config | ||
38 | - * \return | 37 | + * \brief Create a modbus connection as described by the connection object. |
38 | + * \param config - The connection object describing the connection in detail. | ||
39 | + * \return The result of the creation. | ||
40 | + * True = succesful. | ||
41 | + * False = Failed. | ||
39 | */ | 42 | */ |
40 | bool CreateConnection( const ConnectionConfig &config ); | 43 | bool CreateConnection( const ConnectionConfig &config ); |
41 | 44 | ||
42 | /*! | 45 | /*! |
43 | - * \brief DeleteConnection | ||
44 | - * \param portName | ||
45 | - * \param endpoint | 46 | + * \brief Remove the connection described by its portname and/or endpoint. |
47 | + * \param portName - The portname as its enum | ||
48 | + * \param endpoint - combination of ip-address and portname in endpoint-format | ||
49 | + * ( tcp://<ip_address>:<portNumber> ) | ||
50 | + * ( i.e. tcp://127.0.0.1:501 ) | ||
46 | * \return | 51 | * \return |
47 | */ | 52 | */ |
48 | bool DeleteConnection( const ConnectionPort portName, const std::string &endpoint = std::string() ); | 53 | bool DeleteConnection( const ConnectionPort portName, const std::string &endpoint = std::string() ); |
49 | 54 | ||
50 | /*! | 55 | /*! |
51 | - * \brief ConnectionCount | ||
52 | - * \return | 56 | + * \brief Give the number of registered serial and tcp-connections combined. |
53 | */ | 57 | */ |
54 | int ConnectionCount(); | 58 | int ConnectionCount(); |
55 | 59 | ||
56 | /*! | 60 | /*! |
57 | - * \brief getConnection | ||
58 | - * \param portName | ||
59 | - * \param endpoint | ||
60 | - * \return | 61 | + * \brief Get the connection give by its parameters. |
62 | + * \param portName - The portname by its enum | ||
63 | + * \param endpoint - combination of ip-address and portname in endpoint-format | ||
64 | + * ( tcp://<ip_address>:<portNumber> ) | ||
65 | + * ( i.e. tcp://127.0.0.1:501 ) | ||
66 | + * \return Valid Pointer to the Modbus Connection Interface. nullptr if the connection wasn't found. | ||
61 | */ | 67 | */ |
62 | std::shared_ptr<IModbusAdapter> getConnection( const ConnectionPort portName, const std::string &endpoint = std::string() ); | 68 | std::shared_ptr<IModbusAdapter> getConnection( const ConnectionPort portName, const std::string &endpoint = std::string() ); |
63 | 69 | ||
64 | // Convenient functions | 70 | // Convenient functions |
65 | /*! | 71 | /*! |
66 | - * \brief getConnection | ||
67 | - * \param portName | ||
68 | - * \param ipAddress | ||
69 | - * \param tcpPortNumber | ||
70 | - * \return | 72 | + * \brief Get the connection given by its parameters. If applicable, ipaddress and portnumber will be used to create the endpoint. |
73 | + * \param portName - The portname by its enum | ||
74 | + * \param ipAddress - The ipaddress of the TCP-connection | ||
75 | + * \param tcpPortNumber - The portnumber of the TCP-connection | ||
76 | + * \return Valid Pointer to the Modbus Connection Interface. nullptr if the connection wasn't found. | ||
71 | */ | 77 | */ |
72 | std::shared_ptr<IModbusAdapter> getConnection( const ConnectionPort portName, const std::string &ipAddress, int tcpPortNumber ); | 78 | std::shared_ptr<IModbusAdapter> getConnection( const ConnectionPort portName, const std::string &ipAddress, int tcpPortNumber ); |
73 | 79 | ||
74 | /*! | 80 | /*! |
75 | - * \brief getConnections | ||
76 | - * \return | 81 | + * \brief Returns a list of all registered connections by their interfaces. This is a mix of Serial and TCP-connections. |
77 | */ | 82 | */ |
78 | AdapterList getConnections(); | 83 | AdapterList getConnections(); |
79 | 84 | ||
80 | private: | 85 | private: |
81 | /*! | 86 | /*! |
82 | - * \brief connectionExist | ||
83 | - * \param portName | ||
84 | - * \param endpoint | ||
85 | - * \return | 87 | + * \brief Check if a connection already exist. |
88 | + * \param portName - The portName by its enum | ||
89 | + * \param endpoint - The endpoint this connection was registered with. | ||
90 | + * \return A valid pointer to the Interface if the connection exist. If the connection is unknown, it will return a nullptr. | ||
91 | + * shared_ptr can manifest themselves as booleans, so "!ptr" is sufficient to check. | ||
86 | */ | 92 | */ |
87 | std::shared_ptr<IModbusAdapter> connectionExist( const ConnectionPort portName, const std::string &endpoint = std::string() ); | 93 | std::shared_ptr<IModbusAdapter> connectionExist( const ConnectionPort portName, const std::string &endpoint = std::string() ); |
88 | 94 | ||
89 | /*! | 95 | /*! |
90 | - * \brief createEndPoint | ||
91 | - * \param ipAddress | ||
92 | - * \param portNumber | ||
93 | - * \return | 96 | + * \brief Create the TCP endpoint based on the connections IP-address and portnumber |
97 | + * \param ipAddress - The ipAddress as string. | ||
98 | + * \param portNumber - The portnumber as integer. | ||
99 | + * \return The endpoint in format : tcp://<ip_address>:<portNumber> i.e. tcp://127.0.0.1:501 | ||
94 | */ | 100 | */ |
95 | std::string createEndPoint( const std::string &ipAddress, int portNumber ); | 101 | std::string createEndPoint( const std::string &ipAddress, int portNumber ); |
96 | 102 | ||
97 | /*! | 103 | /*! |
98 | - * \brief createEndPoint | ||
99 | - * \param config | ||
100 | - * \return | 104 | + * \brief Create the TCP endpoint based on the connections IP-address and portnumber extracted from the connection configuration. |
105 | + * \param config - The configuration object used to create the connection. | ||
106 | + * \return The endpoint in format : tcp://<ip_address>:<portNumber> i.e. tcp://127.0.0.1:501 | ||
101 | */ | 107 | */ |
102 | std::string createEndPoint( const ConnectionConfig &config ); | 108 | std::string createEndPoint( const ConnectionConfig &config ); |
103 | 109 |