lpcmanager

Finished witch IEC60870 branch.
iec60870
6 weeks ago, Tomaz Orac
efa336421340
Finished witch IEC60870 branch.
int err;
char *serialdev = LPCBUS_DEVICES_PORT;
struct sched_param param;
pthread_attr_t attr;
uartDevWriteBuf_plc_state = EMPTY;
uartDevReadBuf_plc_state = EMPTY;
bzero(&uartDev, sizeof(uartDev));
uartDevNum = MAX_UART_DEVICES;
bzero(&uartDevReadBufA, sizeof(uartDevReadBuf_t));
bzero(&uartDevReadBufB, sizeof(uartDevReadBuf_t));
uartDevReadBuf_drv = &uartDevReadBufA;
uartDevReadBuf_plc = &uartDevReadBufB;
bzero(&uartDevWriteBufA, sizeof(uartDevWriteBuf_t));
bzero(&uartDevWriteBufB, sizeof(uartDevWriteBuf_t));
uartDevWriteBuf_drv = &uartDevWriteBufA;
uartDevWriteBuf_plc = &uartDevWriteBufB;
bzero(&uartCommStatusBuf, sizeof(uartCommStatusBuf));
bzero(&uartPortTim, sizeof(commTimer));
pthread_mutex_init(&UART_WriteMutex, NULL);
pthread_mutex_init(&UART_ReadMutex, NULL);
pthread_mutex_init(&UART_WakeCondLock, NULL);
pthread_cond_init(&UART_WakeCond, NULL);
UART_WakeCondValue = 0;
UART_task_active = 1;
/* Clear connected devices array */
for(int i=0;i<MAX_UART_DEVICES;i++)
uartDev[i][1] = 255;
%(init_code)s
UART_fd = openserial(serialdev, uartBaudrate); /* uartBaudrate is initialized from Composer */
if (!UART_fd) {
fprintf(stderr, "Error while initializing %%s.\n", serialdev);
return 1;
}
if(uartBufSize == UART_BUFSIZE_LONG) /* uartBufSize is initialized from Composer */
InitUartPortDevices_longBuffer();
else
InitUartPortDevices_shortBuffer();
/* Initialize pthread attributes (default values) */
err = pthread_attr_init(&attr);
if (err) {
fprintf(stderr,"init pthread attributes failed\n");
return err;
}
/* Set scheduler policy and priority of pthread */
err = pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
if (err) {
fprintf(stderr,"pthread setschedpolicy failed\n");
return err;
}
param.sched_priority = 95 /* 10 higher than PLC *//*PLC_THREAD_PRIORITY + 1*/;
err = pthread_attr_setschedparam(&attr, &param);
if (err) {
fprintf(stderr,"pthread setschedparam failed\n");
return err;
}
/* Use scheduling parameters of attr */
err = pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);
if (err) {
fprintf(stderr,"pthread setinheritsched failed\n");
return err;
}
if(err = pthread_create(&UART_task, &attr, &UART_task_proc, NULL));
return err;