ISIS Antenna System API

Deployment Status Flags

SYS_BURN_ACTIVE

Antenna system independent burn is active.

SYS_IGNORE_DEPLOY

Antenna system is ignoring the deployment switches.

SYS_ARMED

Antenna system is armed.

ANT_1_NOT_DEPLOYED

Antenna 1 is not deployed.

ANT_1_STOPPED_TIME

Antenna 1 deployment time limit was reached.

ANT_1_ACTIVE

Antenna 1 deployment system is active.

ANT_2_NOT_DEPLOYED

Antenna 2 is not deployed.

ANT_2_STOPPED_TIME

Antenna 2 deployment time limit was reached.

ANT_2_ACTIVE

Antenna 2 deployment system is active.

ANT_3_NOT_DEPLOYED

Antenna 3 is not deployed.

ANT_3_STOPPED_TIME

Antenna 3 deployment time limit was reached.

ANT_3_ACTIVE

Antenna 3 deployment system is active.

ANT_4_NOT_DEPLOYED

Antenna 4 is not deployed.

ANT_4_STOPPED_TIME

Antenna 4 deployment time limit was reached.

ANT_4_ACTIVE

Antenna 4 deployment system is active.

Enums

enum KANTSStatus

Antenna function return values.

Values:

ANTS_OK

Requested function completed successfully.

ANTS_ERROR

Generic error.

ANTS_ERROR_CONFIG

Configuration error.

ANTS_ERROR_NOT_IMPLEMENTED

Requested function has not been implemented for the subsystem.

enum KANTSController

Antenna microcontrollers.

Values:

PRIMARY

Issue commands using the primary microcontroller.

SECONDARY

Issue commands using the secondary microcontroller (if available)

enum KANTSAnt

System Antennas.

Values:

ANT_1

Antenna 1.

ANT_2

Antenna 2.

ANT_3

Antenna 3.

ANT_4

Antenna 4.

Functions

KANTSStatus k_ants_init(char *bus, uint8_t primary, uint8_t secondary, uint8_t ant_count, uint32_t timeout)

Initialize the antenna interface.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • bus: I2C bus device the antenna systems device is connected to
  • primary: The I2C address of the device’s primary microcontroller
  • secondary: The I2C address of the device’s secondary/redundant microcontroller
  • ant_count: The number of antennas that the device can deploy
  • timeout: The watchdog timeout interval (in seconds)

void k_ants_terminate(void)

Terminate the antenna interface.

KANTSStatus k_ants_configure(KANTSController config)

Configure the antenna.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • config: Microntroller to use for system commanding

KANTSStatus k_ants_reset(void)

Reset both of the antenna’s microcontrollers.

Return
KANTSStatus ANTS_OK if OK, error otherwise

KANTSStatus k_ants_arm(void)

Arm the antenna.

Return
KANTSStatus ANTS_OK if OK, error otherwise

KANTSStatus k_ants_disarm(void)

Disarm the antenna.

Return
KANTSStatus ANTS_OK if OK, error otherwise

KANTSStatus k_ants_deploy(KANTSAnt antenna, bool override, uint8_t timeout)

Deploy an antenna.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • antenna: Antenna to deploy
  • override: Indicates whether system should ignore previous successful deployment
  • timeout: Maximum time, in seconds, system should spend deploying the antenna

KANTSStatus k_ants_auto_deploy(uint8_t timeout)

Automatically deploy each antenna in sequence.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • timeout: Maximum time, in seconds, system should spend deploying a single antenna

KANTSStatus k_ants_cancel_deploy(void)

Cancel all current deployment actions.

Return
KANTSStatus ANTS_OK if OK, error otherwise

KANTSStatus k_ants_get_deploy_status(uint16_t *resp)

Get current deployment status.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • resp: Pointer to storage for data

KANTSStatus k_ants_get_uptime(uint32_t *uptime)

Get system uptime.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • uptime: Pointer to storage for data

KANTSStatus k_ants_get_system_telemetry(ants_telemetry *telem)

Get the current system telemetry.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters

KANTSStatus k_ants_get_activation_count(KANTSAnt antenna, uint8_t *count)

Get an antenna’s activation count.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • antenna: Antenna to query
  • count: Number of times antenna deployment has been attempted

KANTSStatus k_ants_get_activation_time(KANTSAnt antenna, uint16_t *time)

Get an antenna’s activation time.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • antenna: Antenna to query
  • time: Amount of time spent deploying antenna in 50ms steps

KANTSStatus k_ants_watchdog_kick(void)

Kick the AntS’s watchdogs once.

Return
KANTSStatus ANTS_OK if OK, error otherwise

KANTSStatus k_ants_watchdog_start(void)

Start a thread to kick the AntS’s watchdogs at an interval of (timeout/3) seconds.

Return
KANTSStatus ANTS_OK if OK, error otherwise

KANTSStatus k_ants_watchdog_stop(void)

Stop the watchdog thread.

Return
KANTSStatus ANTS_OK if OK, error otherwise

KANTSStatus k_ants_passthrough(const uint8_t *tx, int tx_len, uint8_t *rx, int rx_len)

Pass a command packet directly through to the antenna.

Useful for executing commands which have not been implemented in either the generic or specific antenna APIs.

Return
KANTSStatus ANTS_OK if OK, error otherwise
Parameters
  • tx: Pointer to command packet to send
  • tx_len: Size of command packet
  • rx: Pointer to storage for command response
  • rx_len: Expected length of command response

struct ants_telemetry
#include <ants-api.h>

System telemetry fields returned from k_ants_get_system_telemetry.

Public Members

uint16_t raw_temp

Current temperature (raw value)

uint16_t deploy_status

Current deployment status flags.

uint32_t uptime

System uptime (in seconds)