GE Intelligent Platforms Embedded Systems supplies an extensive software Application Programming Interface (API) for the CEI-x30 product line. API routines are supplied to setup the interface, configure channel attributes, and transmit and receive data for the most common desktop and embedded programming environments (Windows, Linux, Integrity, and VxWorks).
Alphabetical API Function Index
Hierarchical API Function Index
This library of utility routines provides the ability to write your own programs to interface with a CEI-x30 product. They are written in C and delivered in a generic ANSI C compiler-compatible format. They can be called from other languages by adhering to the procedures defined in the applicable documentation. The API consists of the following C source files:
CDEV_API.C
This file contains the bulk of the API functionality. Most of the routines that interact directly with the hardware device reside within this file.
CDEV_API.H
This header file contain the majority of the API constants, data types, and function prototypes, and should be included in all C programs that reference one or more CEI-x30 API utility routines.
CDEV_GLB.H
This header file contains the majority of the API global variables, internal definitions, and data structures.
AR_ERROR.H
This header file contains the error string constant definitions utilized by the API routine AR_Get_Error, describing each of the potential error codes returned by the CEI-x30 API utility routines.
CDEV_HW.H
This header file contains all of the API constants that define the hardware interface for the CEI-x30 architecture; included in CDEV_API.H.
CEI_TYPES.H
This header file contains all of the type defines for the various data types used with the respective operating system and compiler; included in CDEV_API.H.
CDEV_WIN.C
This file contains the C routines that interface directly with the ARINC common low-level driver interface library, CEI_LL.LIB/DLL, supporting all Windows operating systems.
CDEV_VXW.C
This file contains the C routines that interface directly with the VxWorks kernel.
CDEV_LNX.C
This file contains the routines that interface directly with the Linux kernel driver provided with the CEI-x30 Linux distribution archive.
CDEV_INT.C
This file contains the routines that interface directly with the Integrity operating system.
CDEV_LRT.C
This file contains the routines that interface directly with the LabVIEW Real-Time operating environment.
CDEV_FW.H - Firmware Load Files
The header file CDEV_FW.H is included in the source file CDEV_API.C, containing the array declarations for all CEI-x30 board firmware. The default compilation of CDEV_API.C includes the firmware load modules for the entire CEI-x30 product line. When the compiler directive LABVIEW_RT is defined, only the firmware for the CEI-830, R830RX, RCEI-530, and RAR-CPCI boards are included in the build, as these are the products currently supported with LabVIEW Real-Time. When the compiler directive INTEGRITY_PCI_PPC is defined, only the CEI-830 firmware is included in the build.
If for any reason you wish to reduce the API library or object module size by omitting the firmware load modules for extraneous boards, you may replace the header file reference in the respective include statement(s) with the header file FPGAX30N.H. For example, to omit the RAR-CPCI firmware load module you would modify line 86 of the file CDEV_FW.H as follows:
static CEI_UINT32 const fpga_630[]={
#include "fpgax30n.h"
};
The firmware header files are referenced as follows:
FPGA830.H CEI-830 Firmware
FPGA830RX.H R830RX Firmware
FPGA430.H CEI-430 Firmware
FPGA430A.H CEI-430A Firmware
FPGA530.H CEI-530 Firmware
FPGA630.H RAR-CPCI Firmware
FPGAA30.H AMC-A30 Firmware
FPGA_EC.H RAR-EC Firmware
FPGAX30N.H Two element array (empty f/w allocation).
For the CEI-x30-SW supported products, separate 32-bit and 64-bit Windows API Libraries are provided. For Windows OS target implementation, all API function prototypes are declared "_stdcall". The CEI-x30 API library included in the installation is referenced as:
CDEV_API.LIB 32-bit Microsoft VS6.0 Library
CDEV_API.DLL 32-bit Microsoft VS6.0 DLL
CDEV_API64.LIB 64-bit Microsoft VS2008 Library
CDEV_API64.DLL 64-bit Microsoft VS2008 DLL
Included with the installation are the GE Common Low-level driver interface and installation verification libraries (not required for linking application programs):
CEI_Install.DLL 32-bit Microsoft VS6.0 DLL
CEI_Install64.DLL 64-bit Microsoft VS2008 DLL
All DLLs are installed in the Windows "System" folder. The exact folder name depends on the host version of Windows operating system. The 32-bit versions of these DLLs are typically installed in either 'c:\winnt\system32' or 'c:\windows\system32' under 32-bit Windows or 'c:\windows\syswow64' under 64-bit Windows. The 64-bit versions of these DLLs will be installed in the 64-bit Windows system folder (typically 'c:\windows\system32' under 64-bit Windows).
The following return status values are used by the CEI-x30 API routines. They are defined in the C header file CDEV_API.H and are used in the following context.
C Constant |
Value |
Constant Definition |
ARS_FAILURE |
-1 |
Requested operation failed |
ARS_NODATA |
0 |
No data was detected or received |
ARS_NORMAL |
1 |
Normal successful completion |
ARS_GOTDATA |
4 |
Data was received |
ARS_BAD_MESSAGE |
5 |
Receipt of an invalid ARINC 429 message was detected |
ARS_INVHARVAL |
1003 |
Invalid configuration value |
ARS_XMITOVRFLO |
1004 |
Transmit buffer overflow |
ARS_INVBOARD |
1005 |
Invalid board argument |
ARS_NOSYNC |
1006 |
Transmit buffer flush failed |
ARS_MEMWRERR |
1013 |
SRAM memory test error |
ARS_INVARG |
1019 |
General invalid argument value |
ARS_DRIVERFAIL |
1021 |
Driver failed to install or uninstall the ISR |
ARS_WINRTFAIL |
1022 |
Device driver open failure |
ARS_CHAN_TIMEOUT |
1023 |
Channel timeout in receive function |
ARS_NO_HW_SUPRT |
1024 |
Function not supported by specified hardware |
ARS_HW_CONSISTENCY |
1029 |
Device is not programmed for Enhanced Firmware operations |
ARS_WRAP_DATA_FAIL |
1031 |
BIT wrap test data read-back fail |
ARS_WRAP_FLUSH_FAIL |
1035 |
BIT cannot execute external wrap test due to unknown external data reception |
ARS_WRAP_DROP_FAIL |
1036 |
BIT wrap test data not received |
ARS_INT_ISR |
1037 |
Driver failed to install or uninstall API interrupt support |
ARS_BOARD_MUTEX |
1038 |
API routine failed to acquire or release a board lock mechanism |
ARS_NO_OS_SUPPORT |
1041 |
There is no operating system support for the requested feature |
ARS_ERR_SH_MEM_OBJ |
1050 |
API failed to allocate a shared object (semaphore or mutex) |
ARS_ERR_SH_MEM_MAP |
1051 |
API failed to allocate a shared memory region (multi-process) |