extern void modbusComm_init(void) { int32_t fdUartPC; /* open serial port connected to ioboard */ fdUartPC = ciaaPOSIX_open("/dev/serial/uart/0", ciaaPOSIX_O_RDWR | ciaaPOSIX_O_NONBLOCK); /* Open Modbus Master */ hModbusMaster = ciaaModbus_masterOpen(); /* Open Transport Modbus Ascii (UART PC) */ hModbusAsciiUartPC = ciaaModbus_transportOpen( fdUartPC, CIAAMODBUS_TRANSPORT_MODE_ASCII_MASTER); /* Open Gateway Modbus */ hModbusGateway = ciaaModbus_gatewayOpen(); /* Add Modbus Master to gateway */ ciaaModbus_gatewayAddMaster( hModbusGateway, hModbusMaster); /* Add Modbus Transport to gateway */ ciaaModbus_gatewayAddTransport( hModbusGateway, hModbusAsciiUartPC); }
/*==================[external functions definition]==========================*/ extern void modbusSlave_init(void) { int32_t fdSerialPort; fdSerialPort = ciaaPOSIX_open("/dev/serial/uart/0", O_RDWR | O_NONBLOCK); /* Open Modbus Slave */ hModbusSlave = ciaaModbus_slaveOpen( &callbacksStruct, CIAA_BLINKING_MODBUS_ID); /* Open Transport Modbus Ascii */ hModbusAscii = ciaaModbus_transportOpen( fdSerialPort, CIAAMODBUS_TRANSPORT_MODE_ASCII_SLAVE); /* Open Gateway Modbus */ hModbusGateway = ciaaModbus_gatewayOpen(); /* Add Modbus Slave to gateway */ ciaaModbus_gatewayAddSlave( hModbusGateway, hModbusSlave); /* Add Modbus Transport to gateway */ ciaaModbus_gatewayAddTransport( hModbusGateway, hModbusAscii); }
extern void controller_init(void) { /* open CIAA digital outputs */ fd_out = ciaaPOSIX_open("/dev/dio/out/0", ciaaPOSIX_O_RDWR); /* open CIAA ADC */ fd_adc = ciaaPOSIX_open("/dev/serial/aio/in/0", ciaaPOSIX_O_RDONLY); /* open UART connected to USB bridge (FT2232) */ fd_uart1 = ciaaPOSIX_open("/dev/serial/uart/1", ciaaPOSIX_O_RDWR); uart_init(ciaaBAUDRATE_115200, ciaaFIFO_TRIGGER_LEVEL3); sensorLM35_init(fd_adc, ciaaCHANNEL_3); SetRelAlarm(ActivatePeriodicTask, 350, SAMPLES_TIME); }
/*==================[external functions definition]==========================*/ int main(void) { // TODO: insert code here // CIAA startup ciaaWrapper_Config (); ciaaWrapper_Init (); // CIARR UART int32_t uartFd = ciaaPOSIX_open (ciaaDevices_UART1, ciaaDevices_EMode_ReadOnly); // Force the counter to be placed into memory volatile static int i = 0 ; // Enter an infinite loop, just incrementing a counter while(1) { i++ ; } return 0; }
void teclado_init(void) { /* abre entradas para leer las teclas */ fd_in = ciaaPOSIX_open("/dev/dio/in/0", ciaaPOSIX_O_RDWR); }