#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum Command {
Azimuth(u16),
Elevation(u16),
AzimuthElevation { az: u16, el: u16 },
QueryPosition,
QueryAzimuth,
QueryElevation,
QueryStatus,
Stop,
Offset { az: i16, el: i16 },
KeepAlive,
VelocityLeft(u32),
VelocityRight(u32),
VelocityUp(u32),
VelocityDown(u32),
GetStatusRegister,
GetErrorRegister,
ReadConfig(u16),
WriteConfig { register: u16, value: i32 },
Reset,
Park,
}
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum Response {
Ack,
Position { az: u16, el: u16 },
AzimuthPosition(u16),
ElevationPosition(u16),
Status(DeviceStatus),
StatusRegister(u16),
ErrorRegister(u16),
ConfigValue { register: u16, value: i32 },
Error,
}
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum DeviceStatus {
Idle,
Moving,
Homing,
NotHomed,
HomingAzError,
HomingElError,
}