Using an ISIS Anntenna System in a Kubos Project¶
This document covers the particular capabilities and requirements of the Kubos API for the ISIS Antenna Systems.
Reference Documents¶
ISIS¶
- Antenna System Interface Control Document - The main hardware guide for the antenna
- Antenna Systems Options Sheet - Allows customers to specify non-default options that their antenna should be manufactured with
Run-Time Configuration¶
The ISIS antenna system supports in-flight configuration changes via the k_ants_configure()
function.
The function takes a KANTSController
value which indicates which microcontroller should be used
to issue future antenna system commands.
Arming the System¶
Deployment can be enabled using the k_ants_arm()
function.
Deployment can subsequently be disabled using the k_ants_disarm()
function.
Note
Arming/Disarming is done on a per-microcontroller basis
Deployment¶
There are several functions which can be used to control the deployment of the systems antennas.
Manual Deployment¶
Deployment of a single antenna can be controlled using the k_ants_deploy()
function.
The function takes three arguments:
- The antenna to deploy, specified by
KANTSAnt
- Whether prior deployment should be overridden
- The deployment timeout value, in seconds (the default is 30 seconds)
For example:
#include <isis-ants-api/ants-api.h>
KANTSStatus status;
/* Deploy antenna #3 with a 20 second timeout value */
status = k_ants_deploy(ANT_3, false, 20);
if (status != ANTS_OK)
{
fprintf(stderr, "Failed to deploy antenna: %d\n", status);
return ANTS_ERROR;
}
Automatic Deployment¶
The k_ants_auto_deploy()
function can be used to automatically deploy each antenna in sequential order.
The function takes a single argument of the deployment timeout value for each antenna, in seconds (the default is 30 seconds).
Canceling Deployment¶
All current deployment actions can be canceled by using k_ants_cancel_deploy()
.
Watchdog¶
Each antenna microcontroller has a watchdog which will restart the system if it has not been fed within the required interval.
There are three provided functions to assist with maintenance:
k_ants_watchdog_kick()
- Send a single kick command to each microcontroller’s watchdogk_ants_watchdog_start()
- Start a thread to send a kick command every (watchdog_interval/3) seconds to keep the watchdogs from starvingk_ants_watchdog_stop()
- Terminate the watchdog thread
Other Functions¶
k_ants_reset()
- Reset both microcontrollers.k_ants_get_uptime()
- Returns the uptime of the system, in seconds. Value is zero if the system is offline.k_ants_get_activation_count()
- Returns the number of times deployment has been attempted for an antenna.k_ants_get_activation_time()
- Returns the amount of time spent deploying a single antenna.
Telemetry Information Available¶
k_ants_get_system_telemetry()
- See section 7.5.1 of the ICD for conversion information
Whether state of the deployment switches is being ignored
Whether the independent burn system is active
Whether each antenna deployment is active
Whether each antenna is deployed
k_ants_get_deploy_status()
k_ants_get_system_telemetry()
- Note: The flag actually indicates that the antenna has not been deployed
Whether each antenna deployment stopped due to timeout
Number of times deployment has been attempted for an antenna
Amount of time spent attempting deployment for an antenna