[−][src]Trait isis_ants_api::IAntS
Trait used to represent the AntS object. Allows for mock objects to be created for unit tests
Required methods
fn new(
bus: &str,
primary: u8,
secondary: u8,
ant_count: u8,
timeout: u32
) -> AntSResult<Self> where
Self: Sized,
bus: &str,
primary: u8,
secondary: u8,
ant_count: u8,
timeout: u32
) -> AntSResult<Self> where
Self: Sized,
Construct a new AntS instance
fn configure(&self, config: KANTSController) -> AntSResult<()>
Configure which microcontroller should be used to control the system
fn reset(&self) -> AntSResult<()>
Perform a software reset of the microcontrollers
fn arm(&self) -> AntSResult<()>
Arm the system for deployment
fn disarm(&self) -> AntSResult<()>
Disable deployment
fn deploy(&self, antenna: KANTSAnt, force: bool, timeout: u8) -> AntSResult<()>
Deploy one antenna
fn auto_deploy(&self, timeout: u8) -> AntSResult<()>
Automatically deploy all antennas
fn cancel_deploy(&self) -> AntSResult<()>
Cancel all current deployment actions
fn get_deploy(&self) -> AntSResult<DeployStatus>
Get the current deployment status of the system
fn get_uptime(&self) -> AntSResult<u32>
Get the system uptime
fn get_system_telemetry(&self) -> AntSResult<AntsTelemetry>
Get the system telemetry data
fn get_activation_count(&self, antenna: KANTSAnt) -> AntSResult<u8>
Get an antenna's activation count
fn get_activation_time(&self, antenna: KANTSAnt) -> AntSResult<u16>
Get the amount of time spent attempting to deploy an antenna
fn watchdog_kick(&self) -> AntSResult<()>
Kick the hardware watchdog
fn watchdog_start(&self) -> AntSResult<()>
Start automatic watchdog kicking
fn watchdog_stop(&self) -> AntSResult<()>
Stop automatic watchdog kicking
fn passthrough(&self, tx: &[u8], rx_in: &mut [u8]) -> AntSResult<()>
Pass a data packet directly through to the device
Implementors
impl IAntS for AntS
[src]
fn new(
bus: &str,
primary: u8,
secondary: u8,
ant_count: u8,
timeout: u32
) -> AntSResult<AntS>
[src]
bus: &str,
primary: u8,
secondary: u8,
ant_count: u8,
timeout: u32
) -> AntSResult<AntS>
Constructor
Opens a connection to the underlying I2C device
Arguments
- bus - The I2C bus to use to communicate with the device
- primary - The I2C address of the system's primary microcontroller
- secondary - The I2C address of the system's secondary microcontroller
(should be
0x00
if no secondary microcontroller is available) - ant_count - The number of antennas present in the antenna system
- timeout - The watchdog timeout interval, in seconds
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
use isis_ants_api::*; let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?;
fn configure(&self, config: KANTSController) -> AntSResult<()>
[src]
Configure the system to send future commands to the requested microcontroller
Arguments
- config - The microcontroller which should be used for future commands to the antenna system
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x00, 2, 20)?; ants.configure(KANTSController::Secondary)?;
fn reset(&self) -> AntSResult<()>
[src]
Reset both of the antenna's microcontrollers
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; ants.reset()?;
fn arm(&self) -> AntSResult<()>
[src]
Arm the antenna system for deployment
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; ants.arm()?;
fn disarm(&self) -> AntSResult<()>
[src]
Disarm the antenna system
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; ants.disarm()?;
fn deploy(&self, antenna: KANTSAnt, force: bool, timeout: u8) -> AntSResult<()>
[src]
Deploy a particular antenna
Arguments
- antenna - The antenna to deploy
- force - Whether the system should ignore previous successful deployment
- timeout - The maximum time, in seconds, the system should spend deploying the antenna
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x00, 2, 20)?; ants.deploy(KANTSAnt::Ant2, false, 10)?;
fn auto_deploy(&self, timeout: u8) -> AntSResult<()>
[src]
Auto-deploy all antennas sequentially.
Arguments
- timeout - The maximum time, in seconds, the system should spend deploying each antenna
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x00, 2, 20)?; ants.auto_deploy(5)?;
fn cancel_deploy(&self) -> AntSResult<()>
[src]
Cancel all current deployment actions
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; ants.cancel_deploy()?;
fn get_deploy(&self) -> AntSResult<DeployStatus>
[src]
Get the current deployment status
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; let deploy = ants.get_deploy()?; println!("Antenna 1 deployed: {}", !deploy.ant_1_not_deployed); println!("Antenna 2 deployment active: {}", deploy.ant_2_active);
fn get_uptime(&self) -> AntSResult<u32>
[src]
Get the system's uptime
Returns the systems uptime, in seconds
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; let uptime = ants.get_uptime()?; println!("Antenna system uptime: {}", uptime);
fn get_system_telemetry(&self) -> AntSResult<AntsTelemetry>
[src]
Get the current system telemetry
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; let sys_telem = ants.get_system_telemetry()?; println!("Antenna system telemetry:"); println!(" raw_temp: {}", sys_telem.raw_temp); println!(" deploy_status:"); println!(" Antenna 1 deployed: {}", !sys_telem.deploy_status.ant_1_not_deployed); println!(" Antenna 2 deployment active: {}", sys_telem.deploy_status.ant_2_active); println!(" uptime: {}\n", sys_telem.uptime);
fn get_activation_count(&self, antenna: KANTSAnt) -> AntSResult<u8>
[src]
Get an antenna's activation count
Arguments
- antenna - Antenna to query
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x00, 2, 20)?; let act_count = ants.get_activation_count(KANTSAnt::Ant3)?; println!("Antenna 3 activation count - {}", act_count);
fn get_activation_time(&self, antenna: KANTSAnt) -> AntSResult<u16>
[src]
Get an antenna's activation time
Returns the total amount of time spent attempting to active the antenna, in seconds
Arguments
- antenna - Antenna to query
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x00, 2, 20)?; let act_count = ants.get_activation_time(KANTSAnt::Ant1)?; println!("Antenna 1 activation time - {}", act_count);
fn watchdog_kick(&self) -> AntSResult<()>
[src]
Kick both antenna system's watchdogs once
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; ants.watchdog_kick()?;
fn watchdog_start(&self) -> AntSResult<()>
[src]
Start a thread to kick the system's watchdogs at an interval of (timeout)/3 seconds
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; ants.watchdog_start()?;
fn watchdog_stop(&self) -> AntSResult<()>
[src]
Stop the watchdog thread
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x32, 4, 10)?; ants.watchdog_start()?; //... ants.watchdog_stop()?;
fn passthrough(&self, tx: &[u8], rx_in: &mut [u8]) -> AntSResult<()>
[src]
Pass a command packet directly through to the antenna system Useful for executing commands which have not been implemented in either the generic or specific antenna APIs.
Arguments
- tx - Reference to byte array data to send
- rx - Reference to byte array which returned data should be stored in
Errors
If this function encounters any errors, an AntsError
variant will be returned.
Examples
let ants = AntS::new("KI2C1", 0x31, 0x00, 2, 20)?; let tx: [u8; 1] = [0xC3]; let mut rx: [u8; 2] = [0; 2]; ants.passthrough(&tx, &mut rx).unwrap(); println!("Antenna passthrough response: {:?}", rx);