Studer Innotec Xtender Serial Communication C Library  1.5.0
 All Data Structures Files Functions Variables Enumerations Enumerator Macros Pages
Studer Innotec Xtender Serial Communication C Library

This library is a reference implementation for the serial protocol for Xtender systems from Studer Innotec SA.

The protocol specification could be found in the document "Technical specification - Xtender serial protocol". The latest version of the specification could be found under "SOFTWARES AND UPDATES" at:

http://www.studer-innotec.com/?n_ulang=en&cat=download_center

Library structure

  • The porting layer is defined in scom_port_TARGET_NAME.h, for a C99 compiler scom_port_c99.h.
  • scom_data_link.h implements the exchange of frames that is independent of the service.
  • scom_property.h implements the READ_PROPERY and WRITE_PROPERTY services on top of scom_data_link.h
  • usage_examples.c provides a simple test implementation using a serial port viewed as a file object from stdio library.

Portability

The library is written in a non-blocking way that allows its use in synchronous, pooling or event-driven architectures. It is the responsibility of the user code to handle the access to the serial port and implement delays and timeouts. The library has a low memory footprint with configurable buffers and the possibility to use the same buffer for request and response. It is written in a very portable way and should be usable from small microcontrollers to a PC system.

The library targets platforms with the following requirements:

  • truly ANSI C89 compiler
  • big/little or mixed endianness
  • 8 to 64 bit architectures
  • No requirement for heap allocation functions
  • no standard C library function call
  • works with C++

All files apart from the scom_port_*.h must respect these requirements, but it doesn't mean it has to be tested for it. Patches that don't respect these requirements will usually be rejected.

The correct porting file is included at the top of scom_data_link.h. Currently there is only a port for C99 compiler in scom_port_c99.h that has been tested on MS Windows x86 with GCC and Microsoft Visual Studio (compiled in C++).

Because of the interface with the serial port, execution environment, and build files are different for each target and toolchain, we do not provide any working example. However, usage_examples.c is a good base to understand how to use the library.

Studer Innotec will not respond to any questions regarding the library porting, IDE set-up, toolchain, compiler problems, etc.