summaryrefslogtreecommitdiff
path: root/src/modbus.c
diff options
context:
space:
mode:
authorAditya Naik2020-02-12 19:52:53 -0500
committerAditya Naik2020-02-12 19:52:53 -0500
commitd1ccc3f46e4b13e2382753aa22f6cf9fd538b741 (patch)
tree2872e09a57d943f0a8970bb05b9e32685184f379 /src/modbus.c
parent70c917e4caee129687d18b2788282ff7cd1509e8 (diff)
Static definitions for more funcs
Diffstat (limited to 'src/modbus.c')
-rw-r--r--src/modbus.c58
1 files changed, 35 insertions, 23 deletions
diff --git a/src/modbus.c b/src/modbus.c
index 3fae070..d5bd27f 100644
--- a/src/modbus.c
+++ b/src/modbus.c
@@ -1,31 +1,16 @@
#include "modbus.h"
-/** @ingroup util_crc16
- Processor-independent CRC-16 calculation.
- Polynomial: x^16 + x^15 + x^2 + 1 (0xA001)<br>
- Initial value: 0xFFFF
+/* Static function prototypes */
+static MB_StatusTypeDef modbus_transaction(uint8_t func,
+ modbus_slave_device *device,
+ uint16_t rw_addr, int read_num,
+ uint16_t write_value);
- This CRC is normally used in disk-drive controllers.
+static uint16_t crc16_update(uint16_t crc, uint8_t a);
- @param uint16_t crc (0x0000..0xFFFF)
- @param uint8_t a (0x00..0xFF)
- @return calculated CRC (0x0000..0xFFFF)
-*/
-static uint16_t crc16_update(uint16_t crc, uint8_t a)
-{
- int i;
- crc ^= a;
- for (i = 0; i < 8; ++i) {
- if (crc & 1)
- crc = (crc >> 1) ^ 0xA001;
- else
- crc = (crc >> 1);
- }
- return crc;
-}
void ClearResponseBuffer(modbus_slave_device *device)
{
@@ -47,8 +32,10 @@ MB_StatusTypeDef WriteSingleRegister(modbus_slave_device *device, uint16_t reg_a
return modbus_transaction(write_single_reg, device, reg_addr, 1, write_val);
}
-MB_StatusTypeDef modbus_transaction(uint8_t func, modbus_slave_device *device,
- uint16_t rw_addr, int read_num, uint16_t write_value)
+static MB_StatusTypeDef modbus_transaction(uint8_t func,
+ modbus_slave_device *device,
+ uint16_t rw_addr, int read_num,
+ uint16_t write_value)
{
uint16_t adu[256], adu_currsize=0;
MB_StatusTypeDef MB_status = MB_OK;
@@ -153,3 +140,28 @@ MB_StatusTypeDef modbus_transaction(uint8_t func, modbus_slave_device *device,
return MB_status;
}
+/** @ingroup util_crc16
+ Processor-independent CRC-16 calculation.
+
+ Polynomial: x^16 + x^15 + x^2 + 1 (0xA001)<br>
+ Initial value: 0xFFFF
+
+ This CRC is normally used in disk-drive controllers.
+
+ @param uint16_t crc (0x0000..0xFFFF)
+ @param uint8_t a (0x00..0xFF)
+ @return calculated CRC (0x0000..0xFFFF)
+*/
+static uint16_t crc16_update(uint16_t crc, uint8_t a)
+{
+ int i;
+ crc ^= a;
+ for (i = 0; i < 8; ++i) {
+ if (crc & 1)
+ crc = (crc >> 1) ^ 0xA001;
+ else
+ crc = (crc >> 1);
+ }
+
+ return crc;
+}