The Linux Sample Application ships with the RTOS SDK as portable C (C99) source code. It provides a working reference implementation for the platform abstraction layer and a demo application for testing the SDK.
The sample code was developed and tested on Ubuntu (x86_64). When porting to other operating systems, you must adapt the Platform Abstraction Layer. See Platform Porting.
Notes:
- All source code is in standard C (C99).
- Platform-specific code is under
platform/.
- It is highly recommended not to modify code outside the
platform/ folder.
Directory Structure
The sample application sources are organized as follows:
ecod_sdk/ # Core SDK headers and sources
platform/ # Platform abstraction layer
src/ # SDK implementation
include/ # Internal and public headers
demo/ # Example / demo application
Build
Get the Sources
Obtain the SDK package from your Nayax account manager and extract the Linux Sample Application folder.
Install Build Dependencies (Ubuntu Linux)
Run these commands to install the required tools:
sudo apt-get update
sudo apt-get install build-essential automake
Build the SDK and Demo
The provided sources and demo are ready to build on Ubuntu Linux x86_64 with GCC and automake:
autoreconf -fi # Generate autotools configuration
./configure # Configure build (respects CONFIGURE_FLAGS)
make # Build SDK library and demo
The build generates static libraries and the demo binary.
Clean build artifacts
Use these targets to remove compiled output:
make clean # Remove build objects
make maintainer-clean # Remove all generated files
Configuration Options
The SDK supports various build-time configurations through ecod_sdk_configs.h:
// Memory allocation strategy
#define EC_USE_HEAP 1 // Use malloc/free (0 = static allocation)
// Protocol settings
#define EC_USE_DATALINK_PROTOCOL 1 // Enable datalink framing with ACK/NAK
#define EC_INCOMPLETE_FRAME_TIMEOUT_MS 500 // Timeout for incomplete frames
#define EC_ACK_TIMEOUT_MS 1000 // Timeout waiting for ACK
#define EC_ACK_MAX_RETRIES 0 // Max retransmissions on missing ACK
// Network bridge settings
#define EC_SUPPORT_LONG_LIVED_SOCKETS 1 // Support persistent connections
Computed defaults are in ecod_sdk_setup.h. Do not modify that file directly.
Run the Demo
After building, run the included demo application to test the SDK:
Manual mode: user selects operations using the keyboard:
Automatic mode: performs a payment transaction in a loop:
./demo/ecodSdkDemo --auto
In --auto mode, transactions run in a loop. If authorized, one out of two is confirmed and the other is voided, demonstrating both use cases.
Review demo/main.c for example code and usage patterns.