/
CIF-API vs CIFX-API

CIF-API vs CIFX-API

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,              /* DeviceNumber        */   
                   GET_FIRMWARE_INFO,          /* InfoArea            */
                   sizeof(FIRMWAREINFO),       /* Size of bytes to read */
                   &abInfo[0]); /* Pointer to user buffer */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Read Firmware information field */
lRet = xChannelInfo(...............................);
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Signal board, application is running */
sRet = DevSetHostState( usBoardNumber,       /* DeviceNumber        */
                       HOST_READY,           /* Mode                */
                        0L);                  /* Pointer to user buffer */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Signal host is ready */
lRet = xChannelHostState(..........);

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Switch BUS on  */
lRet = xChannelBusState( ..CIFX_BUS_ON.....);
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Read mailbox information */
sRet = DevGetMBXState( usBoardNumber,         /* DeviceNumber        */
                       &usDevState,           /* Buffer for device state */
                       &usHostState);         /* Buffer for host state */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Read mailbox information */
lRet = xChannelMBXState(................);
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Write parameters to communication board */
sRet = DevPutTaskParameter( usBoardNumber,   /* Device number             */
                           1,                   /* Protokoll task number     */
                            sizeof(aParameter),  /* Lenght of bytes           */
                            &aParameter );       /* 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,                  /* Device number          */
                 WARMSTART,                      /* Reset mode, Warmstart  */
                 8000L);                         /* Timeout  8000 ms       */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Reset board */
lRet = xChannelReset(.....................);
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Read a message from the receive mailbox */
sRet = DevGetMessage (  usBoardNumber,          /* Device Number             */
                        sizeof(tMessage),        /* Users buffer size         */
                       (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,          /* Device Number             */
                        (MSG_STRUC *)&tMessage,  /* Pointer to user buffer    */
                        5000L );                 /* Timeout                   */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Write a message to the send mailbox */
lRet =  xChannelPutPacket(........................);
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Read and write I/O data */
sRet = DevExchangeIO ( usBoardNumber,      /* Device Number   */
                    0,                        /* usSendOffset    */
                      4,                        /* usSendSize      */
                       &tIOSendData[0],    /* *pvSendData     */
                       0,                        /* usReceiveOffset */
                      4,                        /* usReceiveSize   */
                      &tIORecvData[0],    /* *pvReceiveData  */
                      100L );                   /* 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,           /* DeviceNumber        */
                        HOST_NOT_READY,         /* Mode                */
                        0L);                     /* 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
































Related content

CIF API
Read with this
CIFX API
More like this
Software
Read with this
Description - NXDRV-LINUX
Description - NXDRV-LINUX
More like this
cifX Device Driver V2.0.0.0 for Windows Embedded Compact 2013 released
cifX Device Driver V2.0.0.0 for Windows Embedded Compact 2013 released
More like this
CIFX Copy and Download Firmware and Configuration [DE]
CIFX Copy and Download Firmware and Configuration [DE]
More like this