lpcmanager

LPCCommand : switch to wx.Timer instead of regular python timer for the rapidfire protection. With regular python timers, some refresh order could pile eventloop when interacting with the GUI while doing initial loading of signals.
#define ONBOARDDEVFILENAME "/dev/rtdm/onBoard"
int err;
#ifdef ONBOARD_I2C
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 /* ONBOARD_I2C */
%(init_code)s
#ifdef CAN0_EN_GPIO_0_21
CAN0_EN_dev = gpio_open(21);
gpio_set_pin_value(CAN0_EN_dev, 0);
#endif /* CAN0_EN_GPIO_0_21 */
#ifdef CAN1_EN_GPIO_0_17
CAN1_EN_dev = gpio_open(17);
gpio_set_pin_value(CAN1_EN_dev, 0);
#endif /* CAN1_EN_GPIO_0_17 */
#ifdef ONBOARD_I2C
unsigned char i;
for(i=0; i<MAX_ONBOARD_DEVICES; i++) {
switch(onBoardDev[i][1]) {
case 1:
/* OnBoard I2C bus */
onboardbusfd = open(ONBOARDDEVFILENAME, 0);
if(onboardbusfd < 0) {
printf("can't open %%s rtdm device, %%s\n", ONBOARDDEVFILENAME,
strerror(-onboardbusfd));
return onboardbusfd;
}
err = ioctl(onboardbusfd, RTSMT_ONBOARD_RTIOC_INIT, &onBoardBusInit);
if(err) {
printf("error while RTSMT_ONBOARD_RTIOC_INIT, %%s\n", strerror(-err));
close(onboardbusfd);
return err;
}
break;
default:
break;
}
}
#endif /* ONBOARD_I2C */
#if defined RUN_LED_GPIO_1_13
RUN_LED_dev = gpio_open(45);
#elif defined RUN_LED_GPIO_1_31
RUN_LED_dev = gpio_open(63);
#endif /* RUN LED GPIO_1_13/GPIO_1_31 */
gpio_set_pin_value(RUN_LED_dev, 0);