CEI-x30 Application Programmer’s Interface

Introduction

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).

References

Alphabetical API Function Index
Hierarchical API Function Index

API Library Source Files

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).

 

Windows Libraries

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).

 

Error and Status Information

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)