use serde::{Serialize, Deserialize};
use super::*;
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DatatypeAlarmDefinition {
#[serde(rename = "@Name", default)]
pub name: String,
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
#[serde(rename = "MemberAlarmDefinition", default, skip_serializing_if = "Vec::is_empty")]
pub member_alarm_definition: Vec<MemberAlarmDefinition>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DataLogCollection {
#[serde(rename = "@UId", default, skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
#[serde(rename = "@ParentUId", default, skip_serializing_if = "Option::is_none")]
pub parent_uid: Option<String>,
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
#[serde(rename = "DataLog", default, skip_serializing_if = "Vec::is_empty")]
pub data_log: Vec<DataLog>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DataLog {
#[serde(rename = "@Name", default)]
pub name: String,
#[serde(rename = "@UId", default, skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
#[serde(rename = "@Period", default, skip_serializing_if = "Option::is_none")]
pub period: Option<String>,
#[serde(rename = "@PeriodUnit", default, skip_serializing_if = "Option::is_none")]
pub period_unit: Option<String>,
#[serde(rename = "@EnableDataLoggingOnDownload", default, skip_serializing_if = "Option::is_none")]
pub enable_data_logging_on_download: Option<String>,
#[serde(rename = "@CollectDataOnlyInRunMode", default, skip_serializing_if = "Option::is_none")]
pub collect_data_only_in_run_mode: Option<String>,
#[serde(rename = "@DataCollectionType", default, skip_serializing_if = "Option::is_none")]
pub data_collection_type: Option<String>,
#[serde(rename = "@SampleEvent", default, skip_serializing_if = "Option::is_none")]
pub sample_event: Option<String>,
#[serde(rename = "@StartTriggerCondition", default, skip_serializing_if = "Option::is_none")]
pub start_trigger_condition: Option<String>,
#[serde(rename = "@TriggerCondition", default, skip_serializing_if = "Option::is_none")]
pub trigger_condition: Option<String>,
#[serde(rename = "@PreSamples", default, skip_serializing_if = "Option::is_none")]
pub pre_samples: Option<String>,
#[serde(rename = "@PreSampleUnit", default, skip_serializing_if = "Option::is_none")]
pub pre_sample_unit: Option<String>,
#[serde(rename = "@StopTriggerCondition", default, skip_serializing_if = "Option::is_none")]
pub stop_trigger_condition: Option<String>,
#[serde(rename = "@PostSamples", default, skip_serializing_if = "Option::is_none")]
pub post_samples: Option<String>,
#[serde(rename = "@PostSampleUnit", default, skip_serializing_if = "Option::is_none")]
pub post_sample_unit: Option<String>,
#[serde(rename = "@CaptureSize", default, skip_serializing_if = "Option::is_none")]
pub capture_size: Option<String>,
#[serde(rename = "@CaptureSizeUnit", default, skip_serializing_if = "Option::is_none")]
pub capture_size_unit: Option<String>,
#[serde(rename = "@CaptureSizeExceeded", default, skip_serializing_if = "Option::is_none")]
pub capture_size_exceeded: Option<String>,
#[serde(rename = "@DataCapturesToKeep", default, skip_serializing_if = "Option::is_none")]
pub data_captures_to_keep: Option<String>,
#[serde(rename = "@DataLogCapturesExceeded", default, skip_serializing_if = "Option::is_none")]
pub data_log_captures_exceeded: Option<String>,
#[serde(rename = "@NumberOfDataLogTags", default, skip_serializing_if = "Option::is_none")]
pub number_of_data_log_tags: Option<String>,
#[serde(rename = "@DataLogSize", default, skip_serializing_if = "Option::is_none")]
pub data_log_size: Option<String>,
#[serde(rename = "@DataLogSizeUnit", default, skip_serializing_if = "Option::is_none")]
pub data_log_size_unit: Option<String>,
#[serde(rename = "@DataLogSizeExceeded", default, skip_serializing_if = "Option::is_none")]
pub data_log_size_exceeded: Option<String>,
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
#[serde(rename = "Description", default, skip_serializing_if = "Option::is_none")]
pub description: Option<Description>,
#[serde(rename = "StartTriggerExpression", default, skip_serializing_if = "Option::is_none")]
pub start_trigger_expression: Option<String>,
#[serde(rename = "TriggerExpression", default, skip_serializing_if = "Option::is_none")]
pub trigger_expression: Option<String>,
#[serde(rename = "StopTriggerExpression", default, skip_serializing_if = "Option::is_none")]
pub stop_trigger_expression: Option<String>,
#[serde(rename = "DataLogTags", default, skip_serializing_if = "Option::is_none")]
pub data_log_tags: Option<DataLogTagCollection>,
#[serde(rename = "$text", default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DataWide {
#[serde(rename = "@Format", default, skip_serializing_if = "Option::is_none")]
pub format: Option<String>,
#[serde(rename = "@Length", default, skip_serializing_if = "Option::is_none")]
pub length: Option<String>,
#[serde(rename = "Value", default, skip_serializing_if = "Vec::is_empty")]
pub value: Vec<DataWideType_Value_Inline>,
#[serde(rename = "MessageParameters", default, skip_serializing_if = "Vec::is_empty")]
pub message_parameters: Vec<Msg>,
#[serde(rename = "MotionGroupParameters", default, skip_serializing_if = "Vec::is_empty")]
pub motion_group_parameters: Vec<MotionGroup>,
#[serde(rename = "HMIBCParameters", default, skip_serializing_if = "Vec::is_empty")]
pub hmibcparameters: Vec<HMIBC>,
#[serde(rename = "BEOParameters", default, skip_serializing_if = "Vec::is_empty")]
pub beoparameters: Vec<BEO>,
#[serde(rename = "EEOParameters", default, skip_serializing_if = "Vec::is_empty")]
pub eeoparameters: Vec<EEO>,
#[serde(rename = "CoordinateSystemParameters", default, skip_serializing_if = "Vec::is_empty")]
pub coordinate_system_parameters: Vec<CoordinateSystem>,
#[serde(rename = "AxisParameters", default, skip_serializing_if = "Vec::is_empty")]
pub axis_parameters: Vec<Axis>,
#[serde(rename = "AlarmAnalogParameters", default, skip_serializing_if = "Vec::is_empty")]
pub alarm_analog_parameters: Vec<AlarmAnalog>,
#[serde(rename = "AlarmDigitalParameters", default, skip_serializing_if = "Vec::is_empty")]
pub alarm_digital_parameters: Vec<AlarmDigital>,
#[serde(rename = "AlarmConfig", default, skip_serializing_if = "Vec::is_empty")]
pub alarm_config: Vec<AlarmConfig>,
#[serde(rename = "DataValue", default, skip_serializing_if = "Vec::is_empty")]
pub data_value: Vec<DataValue>,
#[serde(rename = "Array", default, skip_serializing_if = "Vec::is_empty")]
pub array: Vec<Box<DataArray>>,
#[serde(rename = "Structure", default, skip_serializing_if = "Vec::is_empty")]
pub structure: Vec<Box<DataStructure>>,
#[serde(rename = "$text", default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DataWideType_Value_Inline {
#[serde(rename = "$text", default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(skip)]
pub children: Vec<AnyElement>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DataValue {
#[serde(rename = "@Name", default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "@DataType", default, skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
#[serde(rename = "@Radix", default, skip_serializing_if = "Option::is_none")]
pub radix: Option<String>,
#[serde(rename = "@Value", default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(rename = "@ForceValue", default, skip_serializing_if = "Option::is_none")]
pub force_value: Option<String>,
#[serde(rename = "$text", default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DataArray {
#[serde(rename = "@Name", default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "@DataType", default, skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
#[serde(rename = "@Dimensions", default, skip_serializing_if = "Option::is_none")]
pub dimensions: Option<String>,
#[serde(rename = "@Radix", default, skip_serializing_if = "Option::is_none")]
pub radix: Option<String>,
#[serde(rename = "Element", default, skip_serializing_if = "Vec::is_empty")]
pub element: Vec<Box<DataArrayElement>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DataStructure {
#[serde(rename = "@Name", default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "@DataType", default, skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
#[serde(rename = "DataValueMember", default, skip_serializing_if = "Vec::is_empty")]
pub data_value_member: Vec<DataValue>,
#[serde(rename = "StructureMember", default, skip_serializing_if = "Vec::is_empty")]
pub structure_member: Vec<Box<DataStructure>>,
#[serde(rename = "ArrayMember", default, skip_serializing_if = "Vec::is_empty")]
pub array_member: Vec<Box<DataArray>>,
}