CHAI SDK  Version 1.3
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
The CHAI

The CopperLan Host Application Interface (CHAI) is the application side CopperLan engine that makes abstraction of the application's messaging, networking and various CopperLan features and mechanisms. It provides the developer with a high-level programming interface. It is completely handling the background tasks that make CopperLan alive.

The CHAI is a C++, full object oriented library. Classes, methods, types names are self-describing, names are logically built, and things are made to be easy-to-use, once the basics are understood.

Note
There is a special implementation for embedded implementations relying on C coding, called CHAILink and explained elsewhere.

A developer making a computer application will use the CHAI as is. It is provided either as a static library or a dynamic library depending on the SDK used.

The computer development model is the same for embedded Linux. In our descriptions, we therefore make no difference between "real" computers and embedded computers (=Linux based hardware).

In case of non-computer embedded designs, there are two models:

  • The CHAI is located within a VNM/CHAI/app MCU; this is typical of autonomous products (= not relying on a computer to be functional)
  • The CHAI in the host (computer) is remote controlled through the CHAILink sub-system (typically via a USB physical link). The embedded application developer has just to include the CHAILink Client C source code (part of the Embedded SDK), and to write platform specific code handling inter-chip communication between the MCU and the host containg the VNM (computer). The CHAILink Client is a standard C interface handling the entire CHAI object set, and giving access to the whole set of CHAI features, even from low-end client MCUs.

Embedded development using the CHAILink model can be realized in emulation on a Windows PC thanks to the CHAILink DLL. This offers the very same interfaces as the embedded CHAILink Client C source code does. So, large part of an embedded application can be developed and validated on a computer in conjunction with platform specific hardware abstraction layer code, then imported as-is in the embedded development environment.