ARINC 834A Demo Server
1.6K
This material is derived from ARINC Standards prepared by the Airlines Electronic Engineering Committee (AEEC). Lufthansa Group is a long-standing member of the AEEC.
This image provides a sample implementation of a Demo Server for a technical Proof of Concept (PoC) for the ARINC 834A specification. Purpose of this software is to verify proper usage of protocols specified in A834A.
NOTE: Software should not be used for production.
The container can be used on either the Raspberry Pi (tested with the PI4) and any x86/64 platform supporting docker.
To Start the draft sample server simply type:
docker run \
--name a834a_ds \
-d -i \
-p 0.0.0.0:8080:8080 \
-p 0.0.0.0:8443:8443 \
lhgflightops/arinc-834a-demoserver:latest
NOTE: To connect additionally a STAP Server see below.
Required to run the container detached and continuously:
-d -i
Map the port 8080 of the host machine (first entry) to the port 8080 (second entry) to the container, which is used for http. 0.0.0.0 allows the container to be accessed from the hosts network.
- p 0.0.0.0:8080:8080
NOTE:
Map the port 8443 of the host machine (first entry) to the port 8443 (second entry) to the container, which is used for https. 0.0.0.0 allows the container to be accessed from the hosts network.
- p 0.0.0.0:8443:8443
Name of the docker image. The tag "latest" support amd64 and arm architecture on host system. The pulling client will automatically receive its appropriate image.
lhgflightops/arinc-834a-demoserver:latest
If an explicit version is required, the latest amd64 can be retrieved with
docker pull lhgflightops/arinc-834a-demoserver:x64
and the arm version used on rapsberry pi can be retrieved via:
docker pull lhgflightops/arinc-834a-demoserver:rpi
As described below, the A834A DemoServer can be used to access a A834 STAP Server using WebSockets. Currently the A834A Demo Server connects to a STAP Server that is accessible on port 5658 on a host machine with hostname "stapserver".
For Demonstration also a STAP Server in another container can be used i.e. from https://hub.docker.com/r/lhgflightops/arinc-834-stap-demoserver
In order to use this one, start the STAP Server:
docker run --name stapserver -di -p 5668:5658 lhgflightops/arinc-834-stap-demoserver
Create a docker network for communication between A834A Demo Server and A834 STAP Server:
docker network create aidnet
Connect the A834A DemoServer with the network:
docker network connect aidnet a834a_ds
Connect the A834 STAP Server with the network:
docker network connect aidnet stapserver
Below you wil find some examples of supported API functions. For a current list of supported functions refer to github: https://github.com/tbernwald/Arinc834AApiDraft/tree/2019FE-A834A-Comitee-FD/DemoServer
An UI-Tool for exploring the regular REST interfaces can be found at:
https://localhost:8443/swagger/index.html
curl -k -X OPTIONS https://localhost:8443/api/v1/parameters | python -m json.tool
curl -k -X GET https://localhost:8443/api/v1/parameters
curl -k -X GET -H "Accept: application/xml" https://localhost:8443/api/v1/parameters?keys=dkey,hkey
curl -k -X GET -H "Accept: text/avionic" https://localhost:8443/api/v1/parameters
Receiving parameters via WebSocket the same URIs can be used as above:
wss://localhost:8443/api/v1/parameters?keys=dkey,hkey
wss://localhost:8443/api/v1/parameters
After connection is established all last known values of subscribed parameters are initially send to the client. Then the parameters are updated as they are received/created at the server.
Before changes configuration test if the connection is refused.
network.websocket.allowInsecureFromHTTPS
Getting list of files in storage as JSON/XML with size and last change date.
curl -k 'https://localhost:8443/api/v1/files/'
Getting a file from storage
curl -k 'https://localhost:8443/api/v1/files/%FILENAME%'
Getting a part of a file from storage. Use case can be file transfer in smaller packets for more stable downloads or the possibility to resume downloads.
curl -k -r [0-... range in bytes] 'https://localhost:8443/api/v1/files/%FILENAME%'
Save file into storage with given filename.
curl -k -X POST -T "/path/to/file" "https://localhost:8443/api/v1/files/%FILENAME%"
Other TCP based services can be accessed through WebSockets i.e. a STAP Server.
To access a STAP server use a WebSocket with address:
wss://localhost:8443/api/v1/stap
This will create a connection to a STAP server. Currently the demo server is configured to create a connection to a STAP server which is accessible via the hostname "stapserver" and TCP port 5658.
Content type
Image
Digest
sha256:9e05339e8…
Size
86.1 MB
Last updated
over 3 years ago
docker pull lhgflightops/arinc-834a-demoserver