--- a/LPCBus/MC9_Devices_decl.c Wed Sep 21 10:31:30 2016 +0200
+++ b/LPCBus/MC9_Devices_decl.c Mon Oct 10 11:02:19 2016 +0200
@@ -505,7 +505,7 @@
/* Macro to transform milliseconds to ns */
#define msTOns(ms) (1000000L*ms)
-void InitUartPortDevices(void)
+void InitUartPortDevices_longBuffer(void) @@ -577,67 +577,14 @@
uartPortTim[i].toValue = msTOns(50); /* 50ms */
uartPortTim[i].status = TIM_EN_RUNNING;
-// case(130): /* P01, P02, P01V, P02V */
- uartPortDevices[i] = &UARTDevice;
- uartPortTim[i].toValue = msTOns(200); /* 200ms */
- uartPortTim[i].status = TIM_EN_RUNNING;
- uartPortDevices[i] = &UARTDevice;
- uartPortTim[i].toValue = msTOns(600); /* 600ms */
- uartPortTim[i].status = TIM_EN_RUNNING;
- case(170): /* ID1, ID2, ID3 */
- uartPortDevices[i] = &UARTDevice;
- uartPortTim[i].toValue = msTOns(400); /* 400ms */
- uartPortTim[i].status = TIM_EN_RUNNING;
- uartPortDevices[i] = &UARTDevice;
- uartPortTim[i].toValue = msTOns(400); /* 400ms */
- uartPortTim[i].status = TIM_EN_RUNNING;
+ case(240): /* 240-254 are reserved for EEPROM settings */ uartPortDevices[i] = NULL; /* "Empty" or unknown module */
uartPortTim[i].status = TIM_DISABLED;
@@ -647,3 +594,87 @@
+void InitUartPortDevices_shortBuffer(void) + for(i=0;i<MAX_UART_DEVICES;i++) + case(130): /* P01, P02, P01V, P02V */ + uartPortDevices[i] = &UARTDevice; + uartPortTim[i].toValue = 20; /* 20 x10ms = 200ms */ + uartPortTim[i].status = TIM_EN_RUNNING; + uartPortDevices[i] = &UARTDevice; + uartPortTim[i].toValue = 60; /* 60 x10ms = 600ms */ + uartPortTim[i].status = TIM_EN_RUNNING; + case(170): /* ID1, ID2, ID3 */ + uartPortDevices[i] = &UARTDevice; + uartPortTim[i].toValue = 40; /* 40 x10ms = 400ms */ + uartPortTim[i].status = TIM_EN_RUNNING; + uartPortDevices[i] = &UARTDevice; + uartPortTim[i].toValue = 40; /* 40 x10ms = 400ms */ + uartPortTim[i].status = TIM_EN_RUNNING; + uartPortDevices[i] = NULL; /* "Empty" or unknown module */ + uartPortTim[i].status = TIM_DISABLED; --- a/LPCBus/MC9_Devices_init.c Wed Sep 21 10:31:30 2016 +0200
+++ b/LPCBus/MC9_Devices_init.c Mon Oct 10 11:02:19 2016 +0200
@@ -20,9 +20,6 @@
bzero(&uartCommErrCntBuf, sizeof(uartCommErrCntBuf));
-// TODO XXX remove next 2 lines when initialization is done from Composer:
-uartBufSize = UART_BUFSIZE_LONG; // UART_BUFSIZE_SHORT
-uartBaudrate = 115200; // 19200
if((err = rt_mutex_create (&UART_WriteMutex, "UART_WriteMutex")))
@@ -36,13 +33,16 @@
-UART_fd = openserial(serialdev, uartBaudrate);
+UART_fd = openserial(serialdev, uartBaudrate); /* uartBaudrate is initialized from Composer */ fprintf(stderr, "Error while initializing %%s.\n", serialdev);
+if(uartBufSize == UART_BUFSIZE_LONG) /* uartBufSize is initialized from Composer */ + InitUartPortDevices_longBuffer(); + InitUartPortDevices_shortBuffer(); if((err = rt_task_create(&UART_task, "UART_task", 0, 50, T_JOINABLE)))
--- a/LPCBus/MC9_OnBoard_cleanup.c Wed Sep 21 10:31:30 2016 +0200
+++ b/LPCBus/MC9_OnBoard_cleanup.c Mon Oct 10 11:02:19 2016 +0200
@@ -5,5 +5,9 @@
rt_mutex_delete(&RTU_BuffMutex);
gpio_close(RTU_GPIO_dev);
+gpio_set_pin_value(CAN0_EN_dev, 1); +gpio_close(CAN0_EN_dev); +gpio_set_pin_value(CAN1_EN_dev, 1); +gpio_close(CAN1_EN_dev); gpio_set_pin_value(RUN_LED_dev, 1);
--- a/LPCBus/MC9_OnBoard_decl.c Wed Sep 21 10:31:30 2016 +0200
+++ b/LPCBus/MC9_OnBoard_decl.c Mon Oct 10 11:02:19 2016 +0200
@@ -23,6 +23,8 @@
struct gpio_device *RTU_GPIO_dev;
struct gpio_device *RUN_LED_dev;
+struct gpio_device *CAN0_EN_dev; +struct gpio_device *CAN1_EN_dev; static int write_file_bool(int fd, int value)
--- a/LPCBus/MC9_OnBoard_init.c Wed Sep 21 10:31:30 2016 +0200
+++ b/LPCBus/MC9_OnBoard_init.c Mon Oct 10 11:02:19 2016 +0200
@@ -10,6 +10,11 @@
+CAN0_EN_dev = gpio_open(21); +gpio_set_pin_value(CAN0_EN_dev, 0); +CAN1_EN_dev = gpio_open(17); +gpio_set_pin_value(CAN1_EN_dev, 0); RTU_GPIO_dev = gpio_open(111);
fprintf(stderr, "Error while initializing RTU GPIO.\n");