#[cfg(feature = "postcard")]
use postcard::experimental::max_size::MaxSize;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[cfg(feature = "ufmt")]
use ufmt::derive::uDebug;
#[allow(dead_code)]
#[repr(u8)]
#[cfg_attr(feature = "ufmt", derive(uDebug))]
#[cfg_attr(feature = "postcard", derive(MaxSize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum VarOffset {
Input = 0x00, Target = 0x02, Feedback = 0x04, ScaledFeedback = 0x06, Integral = 0x08, DutyCycleTarget = 0x0A, DutyCycle = 0x0C, CurrentLowRes = 0x0E, PIDPeriodExceeded = 0x0F, PIDPeriodCount = 0x10, ErrorFlagsHalting = 0x12, ErrorFlagsOccurred = 0x14,
FlagByte1 = 0x16, VinVoltage = 0x17, Current = 0x19,
DeviceReset = 0x1F, UpTime = 0x20, RCPulseWidth = 0x24, FBTReading = 0x26, AnalogReadingSDA = 0x28, AnalogReadingFBA = 0x2A, DigitalReadings = 0x2C, RawCurrent = 0x2D, EncodedHardCurrentLimit = 0x2F, LastDutyCycle = 0x31, CurrentChoppingConsecutiveCount = 0x33, CurrentChoppingOccurrenceCount = 0x34, }
#[allow(dead_code)]
#[repr(u8)]
#[cfg_attr(feature = "ufmt", derive(uDebug))]
#[cfg_attr(feature = "postcard", derive(MaxSize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum SettingOffset {
OptionsByte1 = 0x01, OptionsByte2 = 0x02, InputMode = 0x03, InputErrorMinimum = 0x04, InputErrorMaximum = 0x06, InputMinimum = 0x08, InputMaximum = 0x0A, InputNeutralMinimum = 0x0C, InputNeutralMaximum = 0x0E, OutputMinimum = 0x10, OutputNeutral = 0x12, OutputMaximum = 0x14, InputScalingDegree = 0x16, InputAnalogSamplesExponent = 0x17, FeedbackMode = 0x18, FeedbackErrorMinimum = 0x19, FeedbackErrorMaximum = 0x1B, FeedbackMinimum = 0x1D, FeedbackMaximum = 0x1F, FeedbackDeadZone = 0x21, FeedbackAnalogSamplesExponent = 0x22, SerialMode = 0x23, SerialBaudRateGenerator = 0x24, SerialTimeout = 0x26, SerialDeviceNumber = 0x28, ErrorEnable = 0x2A, ErrorLatch = 0x2C, ErrorHard = 0x2E, VinCalibration = 0x30, PwmFrequency = 0x32, CurrentSamplesExponent = 0x33, HardOvercurrentThreshold = 0x34, CurrentOffsetCalibration = 0x35, CurrentScaleCalibration = 0x37, FBTMethod = 0x39, FBTOptions = 0x3A, FBTTimingTimeout = 0x3B, FBTSamples = 0x3D, FBTDividerExponent = 0x3E, IntegralDividerExponent = 0x3F, SoftCurrentRegulationLevelForward = 0x40, SoftCurrentRegulationLevelReverse = 0x42, OptionsByte3 = 0x50, ProportionalMultiplier = 0x51, ProportionalExponent = 0x53, IntegralMultiplier = 0x54, IntegralExponent = 0x56, DerivativeMultiplier = 0x57, DerivativeExponent = 0x59, PIDPeriod = 0x5A, IntegralLimit = 0x5C, MaxDutyCycleWhileFeedbackOutOfRange = 0x5E, MaxAccelerationForward = 0x60, MaxAccelerationReverse = 0x62, MaxDecelerationForward = 0x64, MaxDecelerationReverse = 0x66, MaxDutyCycleForward = 0x68, MaxDutyCycleReverse = 0x6A, EncodedHardCurrentLimitForward = 0x6C, EncodedHardCurrentLimitReverse = 0x6E, BrakeDurationForward = 0x70, BrakeDurationReverse = 0x71, SoftCurrentLimitForward = 0x72, SoftCurrentLimitReverse = 0x74, }
#[allow(dead_code)]
#[repr(u8)]
#[cfg_attr(feature = "ufmt", derive(uDebug))]
#[cfg_attr(feature = "postcard", derive(MaxSize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum JrkG2Error {
AwaitingCommand = 0,
NoPower = 1,
MotorDriver = 2,
InputInvalid = 3,
InputDisconnect = 4,
FeedbackDisconnect = 5,
SoftOvercurrent = 6,
SerialSignal = 7,
SerialOverrun = 8,
SerialBufferFull = 9,
SerialCrc = 10,
SerialProtocol = 11,
SerialTimeout = 12,
HardOvercurrent = 13,
}
#[allow(dead_code)]
#[repr(u8)]
#[cfg_attr(feature = "ufmt", derive(uDebug))]
#[cfg_attr(feature = "postcard", derive(MaxSize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum JrkG2Command {
SetTarget = 0xC0,
SetTargetLowResRev = 0xE0,
SetTargetLowResFwd = 0xE1,
ForceDutyCycleTarget = 0xF2,
ForceDutyCycle = 0xF4,
MotorOff = 0xFF,
GetVariable8 = 0x80,
GetVariable16 = 0xA0,
GetEEPROMSettings = 0xE3,
GetVariables = 0xE5,
SetRAMSettings = 0xE6,
GetRAMSettings = 0xEA,
GetCurrentChoppingOccurrenceCount = 0xEC,
}
#[allow(dead_code)]
#[repr(u8)]
#[cfg_attr(feature = "ufmt", derive(uDebug))]
#[cfg_attr(feature = "postcard", derive(MaxSize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum JrkG2ForceMode {
None = 0,
DutyCycleTarget = 1,
DutyCycle = 2,
}
#[allow(dead_code)]
#[repr(u8)]
#[cfg_attr(feature = "ufmt", derive(uDebug))]
#[cfg_attr(feature = "postcard", derive(MaxSize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum JrkG2Reset {
PowerUp = 0,
Brownout = 1,
ResetLine = 2,
Watchdog = 4,
Software = 8,
StackOverflow = 16,
StackUnderflow = 32,
}
#[allow(dead_code)]
#[repr(u8)]
#[cfg_attr(feature = "ufmt", derive(uDebug))]
#[cfg_attr(feature = "postcard", derive(MaxSize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum JrkG2Pin {
Scl = 0,
Sda = 1,
Tx = 2,
Rx = 3,
Rc = 4,
Aux = 5,
Fba = 6,
Fbt = 7,
}
#[allow(dead_code)]
#[repr(u8)]
#[cfg_attr(feature = "ufmt", derive(uDebug))]
#[cfg_attr(feature = "postcard", derive(MaxSize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum JrkG2OptionsByte3 {
ResetIntegral = 0,
CoastWhenOff = 1,
}