#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum EventBinaryInputVariation {
Group2Var1,
Group2Var2,
Group2Var3,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum EventBinaryOutputStatusVariation {
Group11Var1,
Group11Var2,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum EventDoubleBitBinaryInputVariation {
Group4Var1,
Group4Var2,
Group4Var3,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum EventCounterVariation {
Group22Var1,
Group22Var2,
Group22Var5,
Group22Var6,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum EventFrozenCounterVariation {
Group23Var1,
Group23Var2,
Group23Var5,
Group23Var6,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum EventAnalogInputVariation {
Group32Var1,
Group32Var2,
Group32Var3,
Group32Var4,
Group32Var5,
Group32Var6,
Group32Var7,
Group32Var8,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum EventFrozenAnalogInputVariation {
Group33Var1,
Group33Var2,
Group33Var3,
Group33Var4,
Group33Var5,
Group33Var6,
Group33Var7,
Group33Var8,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum EventAnalogOutputStatusVariation {
Group42Var1,
Group42Var2,
Group42Var3,
Group42Var4,
Group42Var5,
Group42Var6,
Group42Var7,
Group42Var8,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub(crate) struct EventOctetStringVariation;
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum StaticBinaryInputVariation {
Group1Var1,
Group1Var2,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum StaticBinaryOutputStatusVariation {
Group10Var1,
Group10Var2,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum StaticDoubleBitBinaryInputVariation {
Group3Var1,
Group3Var2,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum StaticCounterVariation {
Group20Var1,
Group20Var2,
Group20Var5,
Group20Var6,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum StaticFrozenCounterVariation {
Group21Var1,
Group21Var2,
Group21Var5,
Group21Var6,
Group21Var9,
Group21Var10,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum StaticAnalogInputVariation {
Group30Var1,
Group30Var2,
Group30Var3,
Group30Var4,
Group30Var5,
Group30Var6,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum StaticFrozenAnalogInputVariation {
Group31Var1,
Group31Var2,
Group31Var3,
Group31Var4,
Group31Var5,
Group31Var6,
Group31Var7,
Group31Var8,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub enum StaticAnalogOutputStatusVariation {
Group40Var1,
Group40Var2,
Group40Var3,
Group40Var4,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub(crate) enum AnalogInputDeadBandVariation {
Group34Var1,
Group34Var2,
Group34Var3,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub(crate) struct StaticOctetStringVariation;
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub struct BinaryInputConfig {
pub s_var: StaticBinaryInputVariation,
pub e_var: EventBinaryInputVariation,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub struct DoubleBitBinaryInputConfig {
pub s_var: StaticDoubleBitBinaryInputVariation,
pub e_var: EventDoubleBitBinaryInputVariation,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub struct BinaryOutputStatusConfig {
pub s_var: StaticBinaryOutputStatusVariation,
pub e_var: EventBinaryOutputStatusVariation,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub struct CounterConfig {
pub s_var: StaticCounterVariation,
pub e_var: EventCounterVariation,
pub deadband: u32,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub struct FrozenCounterConfig {
pub s_var: StaticFrozenCounterVariation,
pub e_var: EventFrozenCounterVariation,
pub deadband: u32,
}
#[derive(Copy, Clone, Debug, PartialEq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub struct AnalogInputConfig {
pub s_var: StaticAnalogInputVariation,
pub e_var: EventAnalogInputVariation,
pub deadband: f64,
}
#[derive(Copy, Clone, Debug, PartialEq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub struct AnalogOutputStatusConfig {
pub s_var: StaticAnalogOutputStatusVariation,
pub e_var: EventAnalogOutputStatusVariation,
pub deadband: f64,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(
feature = "serialization",
derive(serde::Serialize, serde::Deserialize)
)]
pub struct OctetStringConfig;
impl BinaryInputConfig {
pub fn new(s_var: StaticBinaryInputVariation, e_var: EventBinaryInputVariation) -> Self {
Self { s_var, e_var }
}
}
impl DoubleBitBinaryInputConfig {
pub fn new(
s_var: StaticDoubleBitBinaryInputVariation,
e_var: EventDoubleBitBinaryInputVariation,
) -> Self {
Self { s_var, e_var }
}
}
impl BinaryOutputStatusConfig {
pub fn new(
s_var: StaticBinaryOutputStatusVariation,
e_var: EventBinaryOutputStatusVariation,
) -> Self {
Self { s_var, e_var }
}
}
impl CounterConfig {
pub fn new(s_var: StaticCounterVariation, e_var: EventCounterVariation, deadband: u32) -> Self {
Self {
s_var,
e_var,
deadband,
}
}
}
impl FrozenCounterConfig {
pub fn new(
s_var: StaticFrozenCounterVariation,
e_var: EventFrozenCounterVariation,
deadband: u32,
) -> Self {
Self {
s_var,
e_var,
deadband,
}
}
}
impl AnalogInputConfig {
pub fn new(
s_var: StaticAnalogInputVariation,
e_var: EventAnalogInputVariation,
deadband: f64,
) -> Self {
Self {
s_var,
e_var,
deadband,
}
}
}
impl AnalogOutputStatusConfig {
pub fn new(
s_var: StaticAnalogOutputStatusVariation,
e_var: EventAnalogOutputStatusVariation,
deadband: f64,
) -> Self {
Self {
s_var,
e_var,
deadband,
}
}
}
impl Default for BinaryInputConfig {
fn default() -> Self {
Self::new(
StaticBinaryInputVariation::Group1Var1,
EventBinaryInputVariation::Group2Var1,
)
}
}
impl Default for DoubleBitBinaryInputConfig {
fn default() -> Self {
Self::new(
StaticDoubleBitBinaryInputVariation::Group3Var1,
EventDoubleBitBinaryInputVariation::Group4Var1,
)
}
}
impl Default for BinaryOutputStatusConfig {
fn default() -> Self {
Self::new(
StaticBinaryOutputStatusVariation::Group10Var1,
EventBinaryOutputStatusVariation::Group11Var2,
)
}
}
impl Default for CounterConfig {
fn default() -> Self {
Self::new(
StaticCounterVariation::Group20Var1,
EventCounterVariation::Group22Var1,
0,
)
}
}
impl Default for FrozenCounterConfig {
fn default() -> Self {
Self::new(
StaticFrozenCounterVariation::Group21Var1,
EventFrozenCounterVariation::Group23Var1,
0,
)
}
}
impl Default for AnalogInputConfig {
fn default() -> Self {
Self::new(
StaticAnalogInputVariation::Group30Var1,
EventAnalogInputVariation::Group32Var1,
0.0,
)
}
}
impl Default for AnalogOutputStatusConfig {
fn default() -> Self {
Self::new(
StaticAnalogOutputStatusVariation::Group40Var1,
EventAnalogOutputStatusVariation::Group42Var1,
0.0,
)
}
}