use instructions::Instruction;
use instructions::DirectInstruction;
pub use instructions::{
ROR,
ROL,
MST,
MVP,
RFS,
SIO,
GIO,
CALC,
MoveOperation,
ReferenceSearchAction,
};
#[derive(Debug, PartialEq)]
pub struct SAP {
motor_number: u8,
parameter_number: u8,
operand: [u8; 4],
}
impl SAP {
pub fn new(motor_number: u8, parameter_number: u8, operand: [u8; 4]) -> SAP {
SAP{
motor_number,
parameter_number,
operand,
}
}
}
impl Instruction for SAP {
const INSTRUCTION_NUMBER: u8 = 5;
fn operand(&self) -> [u8; 4] {
self.operand
}
fn type_number(&self) -> u8 {
self.parameter_number
}
fn motor_bank_number(&self) -> u8 {
self.motor_number
}
}
impl DirectInstruction for SAP {
type Return = ();
}
#[derive(Debug, PartialEq)]
pub struct GAP {
motor_number: u8,
parameter_number: u8,
}
impl GAP {
pub fn new(motor_number: u8, parameter_number: u8) -> GAP {
GAP{
motor_number,
parameter_number,
}
}
}
impl Instruction for GAP {
const INSTRUCTION_NUMBER: u8 = 6;
fn operand(&self) -> [u8; 4] {
[0u8, 0u8, 0u8, 0u8]
}
fn type_number(&self) -> u8 {
self.parameter_number
}
fn motor_bank_number(&self) -> u8 {
self.motor_number
}
}
impl DirectInstruction for GAP {
type Return = [u8; 4];
}
#[derive(Debug, PartialEq)]
pub struct STAP {
motor_number: u8,
parameter_number: u8,
}
impl STAP {
pub fn new(motor_number: u8, parameter_number: u8) -> STAP {
STAP{
motor_number,
parameter_number,
}
}
}
impl Instruction for STAP {
const INSTRUCTION_NUMBER: u8 = 7;
fn operand(&self) -> [u8; 4] {
[0u8, 0u8, 0u8, 0u8]
}
fn type_number(&self) -> u8 {
self.parameter_number
}
fn motor_bank_number(&self) -> u8 {
self.motor_number
}
}
impl DirectInstruction for STAP {
type Return = ();
}
#[derive(Debug, PartialEq)]
pub struct RSAP {
motor_number: u8,
parameter_number: u8,
}
impl RSAP {
pub fn new(motor_number: u8, parameter_number: u8) -> STAP {
STAP{
motor_number,
parameter_number,
}
}
}
impl Instruction for RSAP {
const INSTRUCTION_NUMBER: u8 = 8;
fn operand(&self) -> [u8; 4] {
[0u8, 0u8, 0u8, 0u8]
}
fn type_number(&self) -> u8 {
self.parameter_number
}
fn motor_bank_number(&self) -> u8 {
self.motor_number
}
}
impl DirectInstruction for RSAP {
type Return = ();
}