lpcmanager

Smarteh 485: slave address of RX buffer must match the address of sent TX buffer in order to be accepted. If reception is not successful data is not copied to beremiz buffer (memcpy()).
#define ONBOARDDEVFILENAME "onBoard"
int err;
bzero(&usRegInputValue , sizeof(usRegInputValue ));
bzero(&usRegHoldingValue , sizeof(usRegHoldingValue ));
bzero(&ubCoilValue , sizeof(ubCoilValue ));
bzero(&ubRegDiscreteValue, sizeof(ubRegDiscreteValue));
bzero(&mbRtuSlaveDev , sizeof(mbRtuSlaveDev ));
bzero(&mbRtuDevTim , sizeof(mbRtuDevTim ));
#ifdef GOT
bzero(&onBoardReadBuf , sizeof(onBoardReadBuf_t ));
bzero(&onBoardWriteBuf , sizeof(onBoardWriteBuf_t ));
bzero(&onBoardBusInit , sizeof(onBoardBusInit_t ));
onBoardBusInit.common_ticktime__ = common_ticktime__;
#define onBoardDev (onBoardBusInit.onBoardDev)
#endif /* GOT */
%(init_code)s
#ifdef MC9
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);
#endif /* MC9 */
RTU_GPIO_dev = gpio_open(111);
if (!RTU_GPIO_dev) {
fprintf(stderr, "Error while initializing RTU GPIO.\n");
return 1;
}
if((err = rt_mutex_create (&RTU_BuffMutex, "RTU_BuffMutex")))
return err;
if((err = rt_task_create(&RTU_UART_task, "RTU_UART_task", 0, 50, T_JOINABLE)))
return err;
mbmrtu_init(mbBaudRate, mbParity);
if((err = rt_task_create(&RTU_task, "RTU_task", 0, 50, T_JOINABLE)))
return err;
if(rt_task_start(&RTU_task, mbmrtu_BusUpdate_proc, NULL))
return err;
#ifdef GOT
unsigned char i;
for(i=0; i<MAX_ONBOARD_DEVICES; i++) {
switch(onBoardDev[i][1]) {
case 1:
/* OnBoard I2C bus */
onboardbusfd = rt_dev_open(ONBOARDDEVFILENAME, 0);
if(onboardbusfd < 0) {
printf("can't open %%s rtdm device, %%s\n", ONBOARDDEVFILENAME,
strerror(-onboardbusfd));
return onboardbusfd;
}
err = rt_dev_ioctl(onboardbusfd, RTSMT_ONBOARD_RTIOC_INIT, &onBoardBusInit);
if(err) {
printf("error while RTSMT_ONBOARD_RTIOC_INIT, %%s\n", strerror(-err));
rt_dev_close(onboardbusfd);
return err;
}
break;
default:
break;
}
}
#endif /* GOT */
#if defined MC9
RUN_LED_dev = gpio_open(45);
#elif defined GOT
RUN_LED_dev = gpio_open(63);
#endif /* MC9/GOT */
gpio_set_pin_value(RUN_LED_dev, 0);