The following page describes the major differences between the CIF-API and thenew CIFX-API.
API Function Calls
CIF-API | CIFX-API |
---|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Open the driver */
sRet = DevOpenDriver(usBoardNumber); | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Open the driver */
lRet = xDriverOpen(.............); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Read Firmware information field */ sRet = DevGetInfo( usBoardNumber, |
/* Size of bytes to read */
|
) != DRV_NO_ERROR ) { /* Pointer to user buffer ; /* Pointer to user buffer */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Read Firmware information field */ lRet = xChannelInfo(...............................); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Signal board, application is running */ sRet = DevSetHostState( usBoardNumber, |
/* Pointer to user buffer */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Signal host is ready */ lRet = xChannelHostState(..........);
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Switch BUS on */ lRet = xChannelBusState( ..CIFX_BUS_ON.....); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Read mailbox information */ sRet = DevGetMBXState( usBoardNumber, |
/* Buffer for device state */ |
/* Buffer for host state */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Read mailbox information */ lRet = xChannelMBXState(................); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Write parameters to communication board */ sRet = DevPutTaskParameter( usBoardNumber, |
/* Protokoll task number */ |
/* Pointer to data buffer */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Write parameters to communication board */ => No function available, only via "RCX_SET_CONFIG_REQUEST" command packet |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Reset board so it can take the parameters */ sRet = DevReset( usBoardNumber, |
/* Reset mode, Warmstart */
|
/* Timeout 8000 ms */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Reset board */ lRet = xChannelReset(.....................); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Read a message from the receive mailbox */ sRet = DevGetMessage ( usBoardNumber, |
(MSG_STRUC *)&tMessage, /* Pointer to user buffer */
|
5000L /* Timeout */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Read a packet from the receive mailbox */ lRet = xChannelGetPacket(........................); ATTENTION: CIFX packet are using a different structur ("RCX_PACKET_HEADER" / "RCX_PACKET") |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Write a message to the send mailbox */ sRet = DevPutMessage ( usBoardNumber, |
/* Pointer to user buffer */
|
/* Timeout */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Write a message to the send mailbox */ lRet = xChannelPutPacket(........................); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Read and write I/O data */ sRet = DevExchangeIO ( usBoardNumber, /* Device Number */
|
&tIOSendData[0], /* *pvSendData */
|
&tIORecvData[0], /* *pvReceiveData */ |
/* ulTimeout */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Read the I/O input data area */ lRet = xChannelIORead(..............); /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Write the I/O output data area */ lRet = xChannelIOWrite(................); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Signal board, application is not running */ sRet = DevSetHostState( usBoardNumber, |
HOST_NOT_READY, /* Mode */ |
/* Pointer to user buffer */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Shut off BUS communication */ lRet = xChannelBusState( ..CIFX_BUS_OFF..); /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Signal application not running */ lRet = xChannelHostState(.............................); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Close communication */ sRet = DevExitBoard( usBoardNumber); /* Device number */ | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Close communication channel */ lRet = xChannelClose(................................); |
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Close Driver */ sRet = DevCloseDriver(0); | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* Close Driver */ lRet = xDriverClose() |
Asynchrouse Messages vs Packets
Image Added