use num_derive::FromPrimitive;
pub enum HubTypes {
TechnicHub, HubHub, }
#[allow(dead_code)]
enum HubTypesSystemId {
TechnicHubSystemId = 0b1000000,
HubHubSystemId = 0b1000001,
}
#[derive(Clone, Copy, Debug)]
pub enum TechnicHubPorts {
A = 0x00,
B = 0x01,
C = 0x02,
D = 0x03,
LED = 0x32,
CURRENT = 0x3B,
VOLTAGE = 0x3C,
ACCELEROMETER = 0x61,
GYRO = 0x62,
TILT = 0x63,
}
#[derive(Debug, FromPrimitive, PartialEq, Clone, Copy)]
pub enum PortType {
UnknownDevice = 0,
SimpleMediumLinearMotor = 1,
TrainMotor = 2,
Light = 8,
VoltageSensor = 20,
CurrentSensor = 21,
PiezoBuzzer = 22,
HubLed = 23,
TiltSensor = 34,
MotionSensor = 35,
ColorDistanceSensor = 37,
MediumLinearMotor = 38,
MoveHubMediumLinearMotor = 39,
MoveHubTiltSensor = 40,
DuploTrainBaseMotor = 41,
DuploTrainBaseSpeaker = 42,
DuploTrainBaseColorSensor = 43,
DuploTrainBaseSpeedometer = 44,
TechnicLargeLinearMotor = 46, TechnicXlargeLinearMotor = 47, TechnicMediumAngularMotor = 48, TechnicLargeAngularMotor = 49, TechnicMediumHubGestSensor = 54,
RemoteControlButton = 55,
RemoteControlRssi = 56,
TechnicMediumHubAccelerometer = 57,
TechnicMediumHubGyroSensor = 58,
TechnicMediumHubTiltSensor = 59,
TechnicMediumHubTemperatureSensor = 60,
TechnicColorSensor = 61, TechnicDistanceSensor = 62, TechnicForceSensor = 63, MarioHubGestureSensor = 71, MarioHubBarcodeSensor = 73, MarioHubPantSensor = 74, TechnicMediumAngularMotorGrey = 75, TechnicLargeAngularMotorGrey = 76 }
#[derive(Clone, Copy, Debug)]
pub enum Profile {
Acc = 0x01, Dec = 0x02, AccDec = 0x03, }
#[derive(Clone, Copy, Debug)]
pub enum EndState {
FLOAT = 0x00, HOLD = 0x7e, BRAKE = 0x7f, }
#[derive(Clone, Copy, Debug)]
pub enum MotorModes {
Power = 0x00,
Speed = 0x01,
Pos = 0x02,
Apos = 0x03,
Load = 0x04,
Calib = 0x05,
}
#[derive(Debug, Clone, Copy)]
pub enum PortInfoModeReplyCapabilities {
Output = 0x0, Input = 0x1, LogicalCombinable = 0x2, LogicalSynchronizable = 0x3, }
#[repr(u8)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, FromPrimitive)]
pub enum LegoErrorTypes {
Ack = 0x01, Mack = 0x02, BufferOverflow = 0x03, Timeout = 0x04, CommandNotRecognized = 0x05, InvalidUse = 0x06, Overcurrent = 0x07, InternalError = 0x08, }
#[derive(Clone, Copy)]
pub enum Color {
Black = 0,
Pink = 1,
Purple = 2,
Blue = 3,
LightBlue = 4,
Cyan = 5,
Green = 6,
Yellow = 7,
Orange = 8,
Red = 9,
White = 10,
None = 255
}