GE Intelligent Platforms Embedded Systems, Inc.

                           Goleta, California

                             (805) 965-8000

 

 

CEI-x30-SW Distribution for Version 3.10

----------------------------------------

 

This is the distribution media for the CEI-x30-SW, API Version 3.10.

It contains an API (Application Programming Interface) library for use with

all CEI-x30 products.  It also contains example code in source form and

32-bit demonstration executables.  The API routines are documented within

the distributed source and the CEI-x30 User's Manual.

 

This document covers product release notes and history.  Supplemental

information on installation, removal, and distribution contents can be

found in the file:

 

    INSTALL.TXT  - Installation notes for CEI-x30-SW software.

 

===============================================================================

 

Compilation Notes:

------------------

Microsoft Visual C++ 6.0 was used to build the default Windows 32-bit API

library and Test Config executable. 

Microsoft Visual Studio 2008 was used to build the Windows 64-bit API library

and respective Test Config executable, as well as an additional version of

the 32-bit API library and .NET example solutions.

When compiling the API under either toolset, you must declare the compiler

directive /Zm500 to account for the large static data content.

 

Microsoft Visual Basic 6.0 SP5 was used to build the Vb example application.

 

Overview:

---------

The CEI-x30 API provides the essential interface to configure CEI-x30 products

and process the ARINC protocols.  View the example source file TST_CNFG.C for

a demonstration of the order in which the API functions should be utilized in

your application.

 

 

===============================================================================

 

Release Notes:

--------------

 

Version 3.10  6 Oct 2011

------------------------

 

1) Added support for the CEI-430A, a native PC/104-Plus (PCI-104) CEI-x30 board

   for the Windows and Linux operating systems.

 

2) Corrected the ARINC 429 slew rate assignment for custom baud rate selections

   by the host via the ar_set_device_config routine. 

  

3) Modified the operation of the routine ar_modify_msg_block to allow a message

   scheduler table entry's transmit count to be modified if it had been created

   with or previously modified to have a limited transmit count and the current

   transmit count is zero. 

  

4) Corrected the snapshot buffer table content returned from ar_get_latest when

   the entire table is requested using the label parameter ARU_ALL_LABELS option.

  

5) Corrected the function of ar_init_slave so it only resets/flushes the transmit

   and receive buffers and does not initialize the snapshot buffer, label filter

   table, or message scheduler table. 

  

6) Added support for creating a 1 second host time-stamp format with the option

   AR_TIMETAG_HOST_SEC_32BIT in ar_convert_time_to_string.

  

7) Corrected an issue in ar_getblock_t, where in merged mode the actual receive

   channel was not returned unless time-tags were returned (when the time-tag

   array pointers are not NULL).

  

8) Introduced support for the CEI-x20 discrete I/O configuration options

   ARU_DISCRETE_VALUES, ARU_DISCRETE_INPUTS and ARU_DISCRETE_OUTPUTS, in the

   ar_set_config and ar_get_config routines.

 

 

Version 3.00  6 Dec 2010

------------------------

 

1) Added support for 64-bit Windows 7, Vista, and XP operating systems.

 

2) Modified the internal wrap receiver-to-transmitter channel assignments for

   the RAR-EC to match the previous standard CEI-x30 firmware configuration,

   (the initial enhanced firmware RAR-EC internal wrap deviated from the

   standard firmware configuration).

 

 

Version 2.10  23 July 2010

--------------------------

 

Added support for the RAR-PCIE, native PCI Express CEI-x30 board for Windows

and Linux operating systems.

 

 

Version 2.00  31 Aug 2009

-------------------------

 

1) Introduced the CEI-x30 Enhanced Firmware Interface, with respective API

   updates.  Note this firmware implementation is not backward compatible with

   previous versions of the API; however, it is downloaded by the API so

   previous API releases will remain functional with new boards.

      - Modified all methods to access Channel Registers and Buffers,

        Message Scheduler Table, Label Filter Table, and Snapshot Buffer.

      - Added Interrupt Queue access routines and a generic interrupt

        handler (with provisions for designating a user-defined handler):

           cei_utl_interrupt_queue_read

           cei_utl_interrupt_handler

           ar_hw_interrupt_buffer_read

           ar_interrupt_queue_read

           ar_set_isr_function

      - Added the routine ar_get_latest_t to provide a method to

        retrieve the label-only snapshot mode message & time-stamp.

      - Added support for the ARS_BAD_MESSAGE return status from

        the following API routines, indicating a "bad msg length"

        ARINC 429 message was encountered on the respective receiver:

           ar_getword       ar_getwordt       ar_getword_xt

           ar_getnext       ar_getnextt       ar_getnext_xt

           ar_getblock      ar_getblock_t     ar_get_429_message

           ar_get_data      ar_get_data_xt

      - Added a test for the Enhanced CEI-x30 Interface to the routine

        ar_get_device_config, and ar_set_device_config options to both update

        a standard x30 device to the enhanced interface and restore an

        enhanced interface to a standard interface.

 

2) Implemented the functional support within the following API routines

   required for backward compatibility to the CEI-x20 product line/API:

      ar_get_boardname    ar_init_dual_port   ar_get_label_filter

      ar_init_slave       ar_get_timercnt     ar_int_control

      ar_sleep            ar_setchparms       ar_get_raw_mode

 

3) Replaced the previous VxWorks driver and CDF files with the latest common

   driver and CDF files for GE Fanuc Avionics products.

 

4) Replaced the previous Integrity driver with the latest common driver for

   GE Fanuc Avionics products.

  

 

Version 1.70  29 Jan 2009

-------------------------

 

1) Removed the multi-process semaphore acquisition in ar_loadslv(); use of the

   API in a multi-process Windows or Linux environment now requires a master

   process to provide an initial invocation of ar_loadslv prior to invocation

   of subsequent processes invoking ar_loadslv().

  

2) Replaced the general VXWORKS compilation directive with one directive for    

   each VxWorks processor type - VXW_PCI_X86 & VXW_PCI_PPC; with other VxWorks

   target specific directives now defined in the header file target_defines.h

   instead of the project build settings.

 

3) Replaced the previous VxWorks driver and CDF files with the latest common

   driver and CDF files for GE Fanuc Avionics products.

 

4) Replaced the previous Integrity driver with the latest common driver for

   GE Fanuc Avionics products.

  

5) Removed some instances of the LABVIEW_RT compiler directive usage for

   CVI and LabVIEW 8.x tools supporting 64-bit integer data types.

  

6) Replaced the prevous compiler directive _INTEGRITY_ with two directives,

   INTEGRITY_PCI_PPC and INTEGRITY_VME_PPC, where the INTEGRITY_PCI_PPC

   applies to the CEI-x30 product line under Integrity.

  

7) Updated the firmware for the CEI-830 to revision 4.5; updated the firmware

   for the R830RX-32 to version 1.1.  In both cases correcting an issue when

   an ARINC 429 message was received following reception of an invalid ARINC

   429 message.

 

 

Version 1.60   7 May 2008

-------------------------

 

1) Added support for multiple process access to a single CEI-x30 board.  This

   support is dependent on the invocation of the new CEI-x30 API routine

   ar_set_preload_config() prior to invocation of ar_loadslv() in any process

   accessing the board.  See the ar_set_preload_config() routine description

   in the CEI-x30 User's Manual for more information.

  

2) Moved C source for the following routines from the files CDEVTIME.C and

   LVRTTIME.C to CDEV_API.C and removed both of these files from the CEI-x30-SW

   distribution.  Note there are two versions of each of these routines, one

   for systems supporting a 64-bit integer data type and another for systems

   that support only 32-bit integer data types.

  

      acquire_formatted_time_tag  (API local)

      is_irig_calibrated          (API local)

      ar_convert_time_to_string

      ar_get_time

      ar_get_data

      ar_set_time

 

3) Modified the CDEV_API.C include scheme so the respective operating-system

   specific interface C source file must be included with CDEV_API.C in the

   project for the compilation of the API, as shown below:

  

      VxWorks   - CDEV_VXW.C

      Linux     - CDEV_LNX.C

      Windows   - CDEV_WIN.C

      Integrity - CDEV_INT.C

 

4) Modified the API initialization routine ar_initialize_api() to reference the

   uncompressed firmware header files by default.  In order to compile with the

   compressed firmware, the CDEV_API.C compilation must now define the compiler

   directive COMPRESSED_FW.

 

5) Added a generic CEI-x30 Configuration File for use with Wind River Tornado

   and Workbench VxWorks x86 and PowerPC kernel builds.

  

 

Version 1.51   5 March 2008

---------------------------

 

Added support to the API routine ar_get_boardtype for reporting the board type

RAREC, when the RAR-EC is installed and detected.

 

 

Version 1.50   25 January 2008

------------------------------

 

1) Added support for the RAR-CPCI and RAR-EC products under the Windows

   operating system, supporting native CompactPCI and ExpressCard platforms.

 

2) Updated the Windows low-level device driver interface library to support a

   new implementation for accessing all previous Condor Engineering products.

   Support for newer Windows Vista Device Manager policies and procedures are

   also incorporated into this new version of CEI_LL.DLL.

 

3) Moved the firmware include declarations from CDEV_API.C to a new header

   file called CDEV_FW.H.

 

 

Version 1.41   3 September 2007

-------------------------------

 

1) Added support for the R830RX (32 Channel Receive-only) product to the API.

 

2) Added R830RX board type support to ar_get_boardtype().

 

3) Modified the IRIG sample time processing to A) eliminate reporting a time in

   which the Day value was zero; and B) properly handle end-of-year rollover

   when applying IRIG offset values.

 

 

Version 1.40   9 July 2007

--------------------------

 

1) Added support for the CEI-530 product to the API.

 

2) Added the "CEI-530" board type to ar_get_boardtype().

 

3) Added the API routine ar_query_device() to report the type of board

   accessed based on the supplied device/board index.

 

4) Modified the firmware load files to be compressed in the header file arrays

   by default.  The compiler directive UNCOMPRESSED_FW is provided to allow the

   compilation of the API load routines for uncompressed firmware header files.

 

 

Version 1.32  13 October 2006

-----------------------------

 

1) Modified the API routines AR_GETBLOCK & AR_GETBLOCK_T to bypass access of

   received message time-tags when the timetag parameter is null.

 

2) Added the routine AR_MODIFY_MSG_BLOCK to support the modification of

   message values on a previously defined block of scheduled messages.                            

 

3) Added the compiler directive TARGET_EMBEDDED to omit the execution of most

   API routine parameter validation, improving throughput for embedded target

   usage.

 

4) Added the ARU_TX_FIFO_COUNT option validation to the internal API routine   

   VALIDATE_CHANNEL_REQUEST().                             

 

5) Updated the CEI-430 firmware to version 2.0

 

6) Updated the CEI-830 firmware to version 4.3

 

7) Added support for the AMC-A30 product

 

8) Renamed the file extension on the platform specific C source files from .H

   to .C, including: CDEV_WIN.C, CDEV_VXW.C, CDEV_LNX.C, CDEV_INT.C, CDEV_LRT.C,

   CDEVTIME.C and LVRTTIME.C

  

9) Converted all API constants, variables and function parameters to the 64-bit

   compatible data types as defined in the header file CEI_TYPES.H.  While this

   altered all function prototype declarations in CDEV_API.H, the actual base

   data types for the arguments did not change.  Applications written for any

   CEI-x30 product will not have to modify their variable declarations for this

   modification.

 

 

Version 1.31  May 9 2006

------------------------

 

Support for the CEI-830 N configuration was added, providing support for

Discrete I/O channels.

 

 

Version 1.30  April 14 2006

---------------------------

 

1) Support for the CEI-430 was added, requiring modifications to the following:

 

   CDEV_API.C and CDEV_API.H

   a) Renamed the subroutine programX30device() to programXilinx9056().

   b) Added the subroutine programXilinx9030 to support 430 FPGA loading.

   c) Modified the API routine AR_INITIALIZE_API() to detect the target

      board as either a CEI-830 or CEI-430.

   d) Added the new differential "discrete" input channel type detection

      to the subroutine DETERMINE_CHANNEL_SUPPORT().

   e) Added API support for the Differential In/Out Channel Type configuration

      channel enable/disable and state set/get to AR_GET/SET_DEVICE_CONFIG().

   f) Incorporated the subroutine INITIALIZE_ENH_CHANNELS() into the routine

      AR_INITIALIZE_DEVICE().

   g) Added the CEI-430 board type support to AR_GET_BOARDTYPE().

 

   CDEV_HW.H - added constants for Differential In/Out and PLX-9030 register

               definitions.

   CDEV_GLB.H - added constants for Differential In/Out channel types

   CDEV_VXW.H - modified acquireDevice() to support multiple boards of

                either the CEI-830 or CEI-430 board type.

 

2) Added support for the Linux operating system - Kernel Version 2.6 for x86

   a) Added the compiler directive "_LINUX_X86_"

   b) Added the file CDEV_LNX.H containing O/S-specific processing

 

3) Added support for the Integrity operating system for PowerPC, version 5.2:

   a) Added the compiler directive "_INTEGRITY_"

   b) Added the file CDEV_INT.H containing O/S-specific processing

 

4) Modified the routine AR_GETBLOCK_T and the underlying received data IRIG

   time conversion routine to decrease the overhead for the received data

   time-tag conversion from the 64-bit internal timer reference to the IRIG

   time reference.

  

5) Added channel count reporting options to the AR_GET_DEVICE_CONFIG routine,

   reporting a protocol-specific channel count using the following constants:

     ARU_CHAN_COUNT_429    448   for ARINC 429 channel count

     ARU_CHAN_COUNT_573    449   for ARINC 573/717 channel count

     ARU_CHAN_COUNT_DISC   450   for Discrete I/O channel count

     ARU_CHAN_COUNT_DIFF   451   for Differential I/O channel count

 

6) Fixed a bug in the 32-bit integer math time-related functions routine

   in LVRTTIME.H, where the addition of both the fixed IRIG and User

   Programmable IRIG offsets had previously been omitted.

  

 

Version 1.20 20 July 2005

-------------------------

 

1) The CEI-830-nnnn-J configuration was created, adding support for the ARINC

   573/717 HBP and BPRZ protocols.  Additional support for these protocols

   includes the following enhancements to the API:

   a) Modified the CEI-830 firmware load to support the -J configurations

   b) Incorporated API routines AR_SET/GET_573_CONFIG and AR_PUT/GET_573_FRAME

 

2) A bug was fixed in the routine AR_DEFINE_MSG_BLK to correct access to the

   application-defined message array.

 

 

Version 1.10 18 April 2005

--------------------------

 

1) The following "testType" parameter options were added to the AR_EXECUTE_BIT

   API invocation in support of CEI-830 SRAM memory testing:

  

   AR_BIT_PARTIAL_SRAM       - non-destructive test of unused SRAM locations

   AR_BIT_FULL_SRAM          - destructive test of all SRAM locations

   AR_BIT_SELECT_SRAM_MIN to - destructive test of select blocks of SRAM

      AR_BIT_SELECT_SRAM_MAX     there are 1024 blocks of 512 locations each

 

2) The compiler directive NO_INT64 was added to CDEV_API.C in support of

   VxWorks versions that do not provide for a 64-bit integer data type.

 

3) The routine AR_GET_STATUS was modified to support FIFO status reporting

   for a total of 16 individual receiver FIFO's.

 

4) A delay was added in the FPGA loading routine ProgramX30Device to account

   for a PLX local bus to configuration register write operation anomaly.   

 

5) The routine ProgramX30Device was modified to correct an invalid successful

   return status indication, even when the FPGA download failed.

 

6) A new API routine added to support retrieval of a block of received messages

   with 64-bit time-tags, called AR_GETBLOCK_T.

 

7) A new API routine added to support transmission of a block of messages on

   multiple transmit channels, called AR_PUTBLOCK_MULTI_CHAN.

 

8) When programming a custom bus speed, the slew rate was automatically

   adjusted from low to high at a 50KHz transition.  This was changed to

   perform the low/high slew rate assignment based on a crossover bus speed

   of 15KHz.

  

 

Version 1.00   2 August 2004

----------------------------

 

Initial release of the CEI-x30-SW product, supporting the Windows/Intel and

VxWorks/PowerPC host operating systems.

 

 

Questions?

----------

 

If you have any questions or need more technical information, please contact:

 

GE Intelligent Platforms Embedded Systems, Inc.

6769 Hollister Ave.

Goleta, CA. 93117

USA

 

phone:    (805) 965-8000

fax:      (805) 963-9630

e-mail:   support.avionics.ip@ge.com                  

Internet: http://defense.ge-ip.com/products/family/avionics