Evolution OS for xPort AR Phase Out-NRFND
The Evolution OS Software Developers Kit (SDK) provides the ability to create custom applications to run on the Evolution Operating System. Access to a large subset of Evolution’s internal Application Programmer’s Interface (API) allows programmers to easily enhance much of Evolution’s rich feature set for custom applications.
Evolution OS for xPort AR Overview
SDK Main Modules
The Evolution OS SDK API provides the programmer with high level access to a large portion of Evolution’s rich feature set. Complete documentation is provided in the Evolution OS SDK API Reference Manual for all functions, structures, definitions, etc. Some of the main modules include:
Evolution OS uses a “CISCO-like” Command Line Interface for its CLI. The CLI is available to users over the serial ports, as well as through Telnet and SSH. It can be used for configuration, checking system status, and performing various functions available in the system. Using the SDK a developer can add custom commands.
- XML Configuration Record (XCR)
A powerful way to configure the XPort AR running Evolution OS is with Extensible Markup Language (XML) Configuration Records (XCR). XML is human readable yet very efficient for machines to interpret. The XML engine has been designed to efficiently import and export XCRs and also provides a high degree of flexibility. XCRs can contain configuration information for the entire system, or for just a few parameters. Using the SDK a developer can add their own XCR for use in configuration.
Evolution OS includes a standard HTTP server which supports for both HTTP v1.0 and v1.1. Included in the HTTP framework is full support for CGI, Cookies, Mime Types, Statistics, Logging, RSS, Authentication, and SSL. Already implemented within Evolution OS on the XPort AR is a powerful Web Manager, which provides users with status information, configuration capabilities, as well as the ability to perform numerous other system functions. The Evolution OS SDK API allows users to easily expand on the XPort AR Web Manager by adding both static and customized CGI based web pages. A wide range of API calls are available for parsing and decoding GET query strings, URL encoded and multipart POST data.
- Secure Shell (SSH)
The Lantronix Secure Shell is a fully interoperable version of the Secure Shell v2 protocol to provide secure remote login and other secure network services over an insecure network. The SSH implementation API’s are very much like normal Berkeley Socket API’s. A variety of algorithms for key exchange, authentication, and encryption are provided.
Additional SDK APIs
The following is a sampling of some of the additional APIs included in the Evolution OS SDK:
- Operating System
Common OS System functions such as Semaphores, Task Creation/Suspend/Kill.
- BSD Socket Programming Interface
Provides standard access to protocol services including TCP, UDP, DNS.
- File System
Full file system with ANSI C like API. Accessible via FTP, TFTP, CLI and Web Manager.
- Data Storage
Includes Hash Tables, Priority Queues, Link List, and AVL Trees.
- Dynamic Memory Heap
Includes Malloc, Free, Private Mbuf-like Buffer Pools
APIs for statistics such as Network statistics, Memory usage, File System usage and Process usage.
Send email messages with message bodies.
- Configurable Pins
Full management of XPort AR configurable pins
- Serial Port
APIs to send and receive data on the serial ports.
The Evolution OS SDK includes 6 sample programs of incremental complexity. Programmers can refer to these sample programs when creating their own custom applications.
- Sample 1 – Hello World
Sample 1 incorporates the SDK Serial API to print “Hello World!” on serial port 1.
- Sample 2 – Thread with Memory Allocation and Semaphores
Sample 2 builds on sample 1, but also incorporates some key kernel APIs. A new thread is created to print “Hello World!” multiple times, and uses a semaphore to signal the main thread when its execution is complete. All memory is dynamically allocated.
- Sample 3 – Translation using CLI and XCR
Sample 3 builds on sample 2, but also incorporates the Command Line API. A new command is added for string translation, where the translation is to all upper case or all lower case, depending on a translation configuration parameter. Also incorporated is the XML Config Records API to use xml to configure this translation configuration parameter.
- Sample 4 – Translation Over Network Socket
Sample 4 builds on sample 3, but also incorporates the BSD socket API. A new command is added to make a network connection to a server. The server then sends a string to the CLI for translation to upper or lower case, again determined by the XML parameter.
- Sample 5 – Translation over SSH socket
Sample 5 builds on sample 4, but also incorporates SSH socket APIs. An SSH server is created, and a remote SSH client can connect to the server. The client is presented with a prompt, where the translation string is entered. The string is then echoed back after translation.
- Sample 6 – CGI Based Webpage to do Translation
Sample 6 builds on sample 5, but also incorporates web page APIs. A user connecting to the Evolution OS Web Manager can navigate to a special link to get the translation sample page, where he/she can enter a string in a dialog box and see the translated result.
Other Required Tools
The Evolution OS SDK requires the Lantronix OEM Paradigm C++ Compiler tool package. This is available through Lantronix at a special price. It additionally requires Lantronix Device Installer software available at no charge from Lantronix. (The User Guide provides information on how to use these tools.)
For more detailed information on the Paradigm C+++ Compiler, see the following: