#[derive(PartialEq, Clone, Copy)]
pub enum CayenneLPPValue {
DigitalInput(u8),
DigitalOutput(u8),
AnalogInput(f32),
AnalogOutput(f32),
GenericSensor(u32),
Luminosity(u16),
Presence(u8),
Temperature(f32),
RelativeHumidity(f32),
Accelerometer(f32, f32, f32),
BarometricPressure(f32),
Voltage(f32),
Current(f32),
Frequency(u32),
Percentage(u8),
Altitude(i16),
Concentration(u16),
Power(u16),
Distance(u32),
Energy(u32),
Direction(u16),
UnixTime(u32),
Gyrometer(f32, f32, f32),
Color(u8, u8, u8),
GPS(f32, f32, f32),
Switch(bool),
}
impl core::fmt::Debug for CayenneLPPValue {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::DigitalInput(arg0) => {
f.debug_tuple("DigitalInput").field(arg0).finish()
},
Self::DigitalOutput(arg0) => {
f.debug_tuple("DigitalOutput").field(arg0).finish()
},
Self::AnalogInput(arg0) => {
f.debug_tuple("AnalogInput").field(arg0).finish()
},
Self::AnalogOutput(arg0) => {
f.debug_tuple("AnalogOutput").field(arg0).finish()
},
Self::GenericSensor(arg0) => {
f.debug_tuple("GenericSensor").field(arg0).finish()
},
Self::Luminosity(arg0) => {
f.debug_tuple("Luminosity (lux) ").field(arg0).finish()
},
Self::Presence(arg0) => {
f.debug_tuple("Presence").field(arg0).finish()
},
Self::Temperature(arg0) => {
f.debug_tuple("Degrees C").field(arg0).finish()
},
Self::RelativeHumidity(arg0) => {
f.debug_tuple("RelativeHumidity").field(arg0).finish()
},
Self::Accelerometer(arg0, arg1, arg2) => {
f.debug_struct("Accelerometer")
.field("X", arg0)
.field("Y", arg1)
.field("Z", arg2)
.finish()
},
Self::BarometricPressure(arg0) => {
f.debug_tuple("BarometricPressure (hPa) ").field(arg0).finish()
},
Self::Voltage(arg0) => {
f.debug_tuple("Voltage").field(arg0).finish()
},
Self::Current(arg0) => {
f.debug_tuple("Current (A) ").field(arg0).finish()
},
Self::Frequency(arg0) => {
f.debug_tuple("Frequency (hz) ").field(arg0).finish()
},
Self::Percentage(arg0) => {
f.debug_tuple("Percentage").field(arg0).finish()
},
Self::Altitude(arg0) => {
f.debug_tuple("Altitude (M) ").field(arg0).finish()
},
Self::Concentration(arg0) => {
f.debug_tuple("Concentration (ppm) ").field(arg0).finish()
},
Self::Power(arg0) => {
f.debug_tuple("Power (W) ").field(arg0).finish()
},
Self::Distance(arg0) => {
f.debug_tuple("Distance (M) ").field(arg0).finish()
},
Self::Energy(arg0) => {
f.debug_tuple("Energy (Wh) ").field(arg0).finish()
},
Self::Direction(arg0) => {
f.debug_tuple("Direction (deg) ").field(arg0).finish()
},
Self::UnixTime(arg0) => {
f.debug_tuple("UnixTime").field(arg0).finish()
},
Self::Gyrometer(arg0, arg1, arg2) => {
f.debug_struct("Gyrometer")
.field("X", arg0)
.field("Y", arg1)
.field("Z", arg2)
.finish()
},
Self::Color(arg0, arg1, arg2) => {
f.debug_struct("Color")
.field("R", arg0)
.field("G", arg1)
.field("B", arg2)
.finish()
},
Self::GPS(arg0, arg1, arg2) => {
f.debug_struct("GPS location")
.field("Lat", arg0)
.field("Lon", arg1)
.field("Alt", arg2)
.finish()
},
Self::Switch(arg0) => {f.debug_tuple("Switch").field(arg0).finish()
},
}
}
}
#[derive(Debug, PartialEq, Clone, Copy)]
pub struct CayenneLPPScalar {
pub channel: u8,
pub value: CayenneLPPValue
}