lpcmanager

Parents 8cbee909bffb
Children 60e25a5831c8
Modbus RTU: added support for different baud rates - set in Smarteh IDE.
--- a/LPCBus/MC9_OnBoard_decl.c Fri Mar 11 12:53:15 2016 +0100
+++ b/LPCBus/MC9_OnBoard_decl.c Thu Apr 14 14:40:10 2016 +0200
@@ -229,16 +229,17 @@
} mbRtuSlaveConfig;
#define MAX_ONBOARD_DEVICES 2
-unsigned char onBoardDev[MAX_ONBOARD_DEVICES][2]; /**< Arrays containing information about enabled on-board devices (initialized by Composer) */
-mbRtuSlaveConfig mbRtuSlaveDev[MAX_MOD_RTU_DEVICES]; /**< Tables containing information about connected Modbus network devices (initialized by Composer) */
-commTimer mbRtuDevTim[MAX_MOD_RTU_DEVICES]; /**< Table of timers (one for each position) */
+unsigned char onBoardDev[MAX_ONBOARD_DEVICES][2]; /**< Arrays containing information about enabled on-board devices (initialized by Composer) */
+mbRtuSlaveConfig mbRtuSlaveDev[MAX_MOD_RTU_DEVICES];/**< Tables containing information about connected Modbus network devices (initialized by Composer) */
+commTimer mbRtuDevTim[MAX_MOD_RTU_DEVICES]; /**< Table of timers (one for each position) */
short usRegInputValue[REG_INPUT_NREGS]; /**< Array of Modbus input registers */
short usRegHoldingValue[REG_HOLDING_NREGS]; /**< Array of Modbus holding registers */
char ubCoilValue[REG_COILS_NREGS/8]; /**< Array of Modbus coils (8 coils per byte) */
char ubRegDiscreteValue[REG_DISCRETE_NREGS/8]; /**< Array of Modbus discrete inputs (8 inputs per byte) */
+unsigned long mbRtuBaudRate; /**< Modbus RTU baud-rate setting */
/* prototypes for functions defined in shared library */
-int mbmrtu_init(void);
+int mbmrtu_init(unsigned long ulBaudRate);
void mbmrtu_BusUpdate(int);
int mbmrtu_cleanup(void);
@@ -283,7 +284,7 @@
}
#define nsTOms(ns) (ns/1000000L)
-#define INVALID_RTU_ADDR 255 /* Used when no Modbus RTU slave device is present */
+#define INVALID_RTU_ADDR 255 /* Used when no Modbus RTU slave device is present */
static void mbmrtu_BusUpdate_proc(void *param){
uint64_t msticktime = nsTOms(common_ticktime__);
while (rt_task_sleep_until(TM_INFINITE) == -EINTR){
@@ -314,7 +315,7 @@
mbRtuDevTim[i].status = TIM_EN_RUNNING;
}
else /* Keep timer disabled */
- mbRtuDevTim[i].status = TIM_DISABLED;
+ mbRtuDevTim[i].status = TIM_DISABLED;
}
}
}
--- a/LPCBus/MC9_OnBoard_init.c Fri Mar 11 12:53:15 2016 +0100
+++ b/LPCBus/MC9_OnBoard_init.c Thu Apr 14 14:40:10 2016 +0200
@@ -10,7 +10,7 @@
%(init_code)s
-printf("from lpcm %%d\n", mbRtuSlaveDev[0].slaveAddr);
+mbRtuBaudRate = 115200; /* XXX todo: remove this line after intialization of mbRtuBaudRate is added to %(init_code)s */
RTU_GPIO_dev = gpio_open(111);
if (!RTU_GPIO_dev) {
@@ -23,7 +23,7 @@
if((err = rt_task_create(&RTU_UART_task, "RTU_UART_task", 0, 50, T_JOINABLE)))
return err;
-mbmrtu_init();
+mbmrtu_init(mbRtuBaudRate);
if((err = rt_task_create(&RTU_task, "RTU_task", 0, 50, T_JOINABLE)))
return err;