Spire Linux Agent Introduction
The Spire Linux Agent is a daemon that runs on a Space Services customer's payload and provides a set of APIs that allow the payload to interface with the rest of the satellite bus.
Currently Supported APIs include:
- Data Pipeline API - Allows users to send and receive files via ISLs or ground based contacts.
Note: The Spire Linux Agent was formerly know as the OORT Agent. The OORT name is still referenced in SDK modules and process names.
In addition to the Spire Linux Agent code, Spire provides SDKs to facilitate communication between payload developer applications and the Spire Linux Agent daemon.
Note: Access to the github source code and binaries requires approval by the Spire Space Services sales team.
How to build the Spire Linux Agent
For Payload in Space customers using Linux payloads, it is expected that the customers compile and install the Spire Linux Agent on their payload. Additionally, the Spire Linux Agent should be started automatically upon boot of the payload.
$ git clone https://github.com/nsat/oort-agent $ cd oort-agent
The agent can be built for the current platform using
$ cd agent $ make
The compiled binary can be found in
The agent can be built for several different architectures. Building for
architectures other than native require a cross-compiler. These cross-compilers
are packaged in docker images, and can be built from the
$ cd builder $ make armv7a arm8
Note that these cross-compilers take significant time (several hours) to build. Be careful cleaning up images unless you wish to repeat these lengthy builds!
Once the cross-compiler dockers are available, the agent itself can be built.
$ cd agent $ make cross ARCH=armv7a
This will build the agent for the
armv7a architecture, suitable for the OBC and most
other satellite payloads. The compiled binary will be found in
Initializing the Spire Linux Agent using the SDK
from oort_sdk_client import SdkApi agent = SdkApi()
#include "SdkAPI.h" apiClient_t *client; client = apiClient_create(); /* Do Work */ apiClient_free(client);
In this example we will be initializing the SDK object to communicate with the Spire Linux Agent.