use serde::{Serialize, Deserialize};
use super::*;
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MotionGroup {
#[serde(rename = "@CoarseUpdatePeriod", default, skip_serializing_if = "Option::is_none")]
pub coarse_update_period: Option<String>,
#[serde(rename = "@PhaseShift", default, skip_serializing_if = "Option::is_none")]
pub phase_shift: Option<String>,
#[serde(rename = "@GeneralFaultType", default, skip_serializing_if = "Option::is_none")]
pub general_fault_type: Option<String>,
#[serde(rename = "@AutoTagUpdate", default, skip_serializing_if = "Option::is_none")]
pub auto_tag_update: Option<String>,
#[serde(rename = "@Alternate1UpdateMultiplier", default, skip_serializing_if = "Option::is_none")]
pub alternate1_update_multiplier: Option<String>,
#[serde(rename = "@Alternate2UpdateMultiplier", default, skip_serializing_if = "Option::is_none")]
pub alternate2_update_multiplier: 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>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Axis {
#[serde(rename = "@MotionGroup", default, skip_serializing_if = "Option::is_none")]
pub motion_group: Option<String>,
#[serde(rename = "@CIPDriveSetAttrUpdateBits", default, skip_serializing_if = "Option::is_none")]
pub cipdrive_set_attr_update_bits: Option<String>,
#[serde(rename = "@CIPDriveGetAttrUpdateBits", default, skip_serializing_if = "Option::is_none")]
pub cipdrive_get_attr_update_bits: Option<String>,
#[serde(rename = "@CIPControllerSetAttrUpdateBits", default, skip_serializing_if = "Option::is_none")]
pub cipcontroller_set_attr_update_bits: Option<String>,
#[serde(rename = "@CIPControllerGetAttrUpdateBits", default, skip_serializing_if = "Option::is_none")]
pub cipcontroller_get_attr_update_bits: Option<String>,
#[serde(rename = "@MotionModule", default, skip_serializing_if = "Option::is_none")]
pub motion_module: Option<String>,
#[serde(rename = "@ApplicationCatalogNumberInstance", default, skip_serializing_if = "Option::is_none")]
pub application_catalog_number_instance: Option<String>,
#[serde(rename = "@ApplicationCatalogNumberVersion", default, skip_serializing_if = "Option::is_none")]
pub application_catalog_number_version: Option<String>,
#[serde(rename = "@ApplicationCatalogNumber", default, skip_serializing_if = "Option::is_none")]
pub application_catalog_number: Option<String>,
#[serde(rename = "@AxisConfiguration", default, skip_serializing_if = "Option::is_none")]
pub axis_configuration: Option<String>,
#[serde(rename = "@FeedbackConfiguration", default, skip_serializing_if = "Option::is_none")]
pub feedback_configuration: Option<String>,
#[serde(rename = "@MotorDataSource", default, skip_serializing_if = "Option::is_none")]
pub motor_data_source: Option<String>,
#[serde(rename = "@MotorCatalogNumber", default, skip_serializing_if = "Option::is_none")]
pub motor_catalog_number: Option<String>,
#[serde(rename = "@Feedback1Type", default, skip_serializing_if = "Option::is_none")]
pub feedback1_type: Option<String>,
#[serde(rename = "@Feedback2Type", default, skip_serializing_if = "Option::is_none")]
pub feedback2_type: Option<String>,
#[serde(rename = "@MotorType", default, skip_serializing_if = "Option::is_none")]
pub motor_type: Option<String>,
#[serde(rename = "@MotionScalingConfiguration", default, skip_serializing_if = "Option::is_none")]
pub motion_scaling_configuration: Option<String>,
#[serde(rename = "@RotationalPosResolution", default, skip_serializing_if = "Option::is_none")]
pub rotational_pos_resolution: Option<String>,
#[serde(rename = "@ConversionConstant", default, skip_serializing_if = "Option::is_none")]
pub conversion_constant: Option<String>,
#[serde(rename = "@OutputCamExecutionTargets", default, skip_serializing_if = "Option::is_none")]
pub output_cam_execution_targets: Option<String>,
#[serde(rename = "@PositionUnits", default, skip_serializing_if = "Option::is_none")]
pub position_units: Option<String>,
#[serde(rename = "@AverageVelocityTimebase", default, skip_serializing_if = "Option::is_none")]
pub average_velocity_timebase: Option<String>,
#[serde(rename = "@RotaryAxis", default, skip_serializing_if = "Option::is_none")]
pub rotary_axis: Option<String>,
#[serde(rename = "@PositionUnwind", default, skip_serializing_if = "Option::is_none")]
pub position_unwind: Option<String>,
#[serde(rename = "@HomeMode", default, skip_serializing_if = "Option::is_none")]
pub home_mode: Option<String>,
#[serde(rename = "@HomeDirection", default, skip_serializing_if = "Option::is_none")]
pub home_direction: Option<String>,
#[serde(rename = "@HomeSequence", default, skip_serializing_if = "Option::is_none")]
pub home_sequence: Option<String>,
#[serde(rename = "@HomeConfigurationBits", default, skip_serializing_if = "Option::is_none")]
pub home_configuration_bits: Option<String>,
#[serde(rename = "@HomePosition", default, skip_serializing_if = "Option::is_none")]
pub home_position: Option<String>,
#[serde(rename = "@HomeOffset", default, skip_serializing_if = "Option::is_none")]
pub home_offset: Option<String>,
#[serde(rename = "@HomeSpeed", default, skip_serializing_if = "Option::is_none")]
pub home_speed: Option<String>,
#[serde(rename = "@HomeReturnSpeed", default, skip_serializing_if = "Option::is_none")]
pub home_return_speed: Option<String>,
#[serde(rename = "@MaximumSpeed", default, skip_serializing_if = "Option::is_none")]
pub maximum_speed: Option<String>,
#[serde(rename = "@MaximumAcceleration", default, skip_serializing_if = "Option::is_none")]
pub maximum_acceleration: Option<String>,
#[serde(rename = "@MaximumDeceleration", default, skip_serializing_if = "Option::is_none")]
pub maximum_deceleration: Option<String>,
#[serde(rename = "@ProgrammedStopMode", default, skip_serializing_if = "Option::is_none")]
pub programmed_stop_mode: Option<String>,
#[serde(rename = "@MasterInputConfigurationBits", default, skip_serializing_if = "Option::is_none")]
pub master_input_configuration_bits: Option<String>,
#[serde(rename = "@MasterPositionFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub master_position_filter_bandwidth: Option<String>,
#[serde(rename = "@AxisType", default, skip_serializing_if = "Option::is_none")]
pub axis_type: Option<String>,
#[serde(rename = "@ServoLoopConfiguration", default, skip_serializing_if = "Option::is_none")]
pub servo_loop_configuration: Option<String>,
#[serde(rename = "@ExternalDriveType", default, skip_serializing_if = "Option::is_none")]
pub external_drive_type: Option<String>,
#[serde(rename = "@FaultConfigurationBits", default, skip_serializing_if = "Option::is_none")]
pub fault_configuration_bits: Option<String>,
#[serde(rename = "@AxisInfoSelect1", default, skip_serializing_if = "Option::is_none")]
pub axis_info_select1: Option<String>,
#[serde(rename = "@AxisInfoSelect2", default, skip_serializing_if = "Option::is_none")]
pub axis_info_select2: Option<String>,
#[serde(rename = "@LDTType", default, skip_serializing_if = "Option::is_none")]
pub ldttype: Option<String>,
#[serde(rename = "@LDTRecirculations", default, skip_serializing_if = "Option::is_none")]
pub ldtrecirculations: Option<String>,
#[serde(rename = "@LDTCalibrationConstant", default, skip_serializing_if = "Option::is_none")]
pub ldtcalibration_constant: Option<String>,
#[serde(rename = "@LDTCalibrationConstantUnits", default, skip_serializing_if = "Option::is_none")]
pub ldtcalibration_constant_units: Option<String>,
#[serde(rename = "@LDTScaling", default, skip_serializing_if = "Option::is_none")]
pub ldtscaling: Option<String>,
#[serde(rename = "@LDTScalingUnits", default, skip_serializing_if = "Option::is_none")]
pub ldtscaling_units: Option<String>,
#[serde(rename = "@LDTLength", default, skip_serializing_if = "Option::is_none")]
pub ldtlength: Option<String>,
#[serde(rename = "@LDTLengthUnits", default, skip_serializing_if = "Option::is_none")]
pub ldtlength_units: Option<String>,
#[serde(rename = "@SSICodeType", default, skip_serializing_if = "Option::is_none")]
pub ssicode_type: Option<String>,
#[serde(rename = "@SSIDataLength", default, skip_serializing_if = "Option::is_none")]
pub ssidata_length: Option<String>,
#[serde(rename = "@SSIClockFrequency", default, skip_serializing_if = "Option::is_none")]
pub ssiclock_frequency: Option<String>,
#[serde(rename = "@AbsoluteFeedbackEnable", default, skip_serializing_if = "Option::is_none")]
pub absolute_feedback_enable: Option<String>,
#[serde(rename = "@AbsoluteFeedbackOffset", default, skip_serializing_if = "Option::is_none")]
pub absolute_feedback_offset: Option<String>,
#[serde(rename = "@ServoFeedbackType", default, skip_serializing_if = "Option::is_none")]
pub servo_feedback_type: Option<String>,
#[serde(rename = "@ServoPolarityBits", default, skip_serializing_if = "Option::is_none")]
pub servo_polarity_bits: Option<String>,
#[serde(rename = "@VelocityFeedforwardGain", default, skip_serializing_if = "Option::is_none")]
pub velocity_feedforward_gain: Option<String>,
#[serde(rename = "@AccelerationFeedforwardGain", default, skip_serializing_if = "Option::is_none")]
pub acceleration_feedforward_gain: Option<String>,
#[serde(rename = "@PositionProportionalGain", default, skip_serializing_if = "Option::is_none")]
pub position_proportional_gain: Option<String>,
#[serde(rename = "@PositionIntegralGain", default, skip_serializing_if = "Option::is_none")]
pub position_integral_gain: Option<String>,
#[serde(rename = "@VelocityProportionalGain", default, skip_serializing_if = "Option::is_none")]
pub velocity_proportional_gain: Option<String>,
#[serde(rename = "@VelocityIntegralGain", default, skip_serializing_if = "Option::is_none")]
pub velocity_integral_gain: Option<String>,
#[serde(rename = "@VelocityScaling", default, skip_serializing_if = "Option::is_none")]
pub velocity_scaling: Option<String>,
#[serde(rename = "@TorqueScaling", default, skip_serializing_if = "Option::is_none")]
pub torque_scaling: Option<String>,
#[serde(rename = "@OutputLPFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub output_lpfilter_bandwidth: Option<String>,
#[serde(rename = "@IntegratorHoldEnable", default, skip_serializing_if = "Option::is_none")]
pub integrator_hold_enable: Option<String>,
#[serde(rename = "@PositionDifferentialGain", default, skip_serializing_if = "Option::is_none")]
pub position_differential_gain: Option<String>,
#[serde(rename = "@DirectionalScalingRatio", default, skip_serializing_if = "Option::is_none")]
pub directional_scaling_ratio: Option<String>,
#[serde(rename = "@MaximumPositiveTravel", default, skip_serializing_if = "Option::is_none")]
pub maximum_positive_travel: Option<String>,
#[serde(rename = "@MaximumNegativeTravel", default, skip_serializing_if = "Option::is_none")]
pub maximum_negative_travel: Option<String>,
#[serde(rename = "@PositionErrorTolerance", default, skip_serializing_if = "Option::is_none")]
pub position_error_tolerance: Option<String>,
#[serde(rename = "@PositionLockTolerance", default, skip_serializing_if = "Option::is_none")]
pub position_lock_tolerance: Option<String>,
#[serde(rename = "@OutputLimit", default, skip_serializing_if = "Option::is_none")]
pub output_limit: Option<String>,
#[serde(rename = "@DirectDriveRampRate", default, skip_serializing_if = "Option::is_none")]
pub direct_drive_ramp_rate: Option<String>,
#[serde(rename = "@OutputOffset", default, skip_serializing_if = "Option::is_none")]
pub output_offset: Option<String>,
#[serde(rename = "@VelocityOffset", default, skip_serializing_if = "Option::is_none")]
pub velocity_offset: Option<String>,
#[serde(rename = "@TorqueOffset", default, skip_serializing_if = "Option::is_none")]
pub torque_offset: Option<String>,
#[serde(rename = "@FrictionCompensation", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation: Option<String>,
#[serde(rename = "@FrictionCompensationWindow", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation_window: Option<String>,
#[serde(rename = "@BacklashStabilizationWindow", default, skip_serializing_if = "Option::is_none")]
pub backlash_stabilization_window: Option<String>,
#[serde(rename = "@BacklashReversalOffset", default, skip_serializing_if = "Option::is_none")]
pub backlash_reversal_offset: Option<String>,
#[serde(rename = "@HardOvertravelFaultAction", default, skip_serializing_if = "Option::is_none")]
pub hard_overtravel_fault_action: Option<String>,
#[serde(rename = "@SoftOvertravelFaultAction", default, skip_serializing_if = "Option::is_none")]
pub soft_overtravel_fault_action: Option<String>,
#[serde(rename = "@PositionErrorFaultAction", default, skip_serializing_if = "Option::is_none")]
pub position_error_fault_action: Option<String>,
#[serde(rename = "@FeedbackFaultAction", default, skip_serializing_if = "Option::is_none")]
pub feedback_fault_action: Option<String>,
#[serde(rename = "@FeedbackNoiseFaultAction", default, skip_serializing_if = "Option::is_none")]
pub feedback_noise_fault_action: Option<String>,
#[serde(rename = "@DriveFaultAction", default, skip_serializing_if = "Option::is_none")]
pub drive_fault_action: Option<String>,
#[serde(rename = "@TestIncrement", default, skip_serializing_if = "Option::is_none")]
pub test_increment: Option<String>,
#[serde(rename = "@TuningTravelLimit", default, skip_serializing_if = "Option::is_none")]
pub tuning_travel_limit: Option<String>,
#[serde(rename = "@TuningSpeed", default, skip_serializing_if = "Option::is_none")]
pub tuning_speed: Option<String>,
#[serde(rename = "@TuningTorque", default, skip_serializing_if = "Option::is_none")]
pub tuning_torque: Option<String>,
#[serde(rename = "@DampingFactor", default, skip_serializing_if = "Option::is_none")]
pub damping_factor: Option<String>,
#[serde(rename = "@DriveModelTimeConstant", default, skip_serializing_if = "Option::is_none")]
pub drive_model_time_constant: Option<String>,
#[serde(rename = "@PositionServoBandwidth", default, skip_serializing_if = "Option::is_none")]
pub position_servo_bandwidth: Option<String>,
#[serde(rename = "@VelocityServoBandwidth", default, skip_serializing_if = "Option::is_none")]
pub velocity_servo_bandwidth: Option<String>,
#[serde(rename = "@TuningConfigurationBits", default, skip_serializing_if = "Option::is_none")]
pub tuning_configuration_bits: Option<String>,
#[serde(rename = "@TorqueLimitSource", default, skip_serializing_if = "Option::is_none")]
pub torque_limit_source: Option<String>,
#[serde(rename = "@DriveUnit", default, skip_serializing_if = "Option::is_none")]
pub drive_unit: Option<String>,
#[serde(rename = "@PositionDataScaling", default, skip_serializing_if = "Option::is_none")]
pub position_data_scaling: Option<String>,
#[serde(rename = "@PositionDataScalingFactor", default, skip_serializing_if = "Option::is_none")]
pub position_data_scaling_factor: Option<String>,
#[serde(rename = "@PositionDataScalingExp", default, skip_serializing_if = "Option::is_none")]
pub position_data_scaling_exp: Option<String>,
#[serde(rename = "@VelocityDataScaling", default, skip_serializing_if = "Option::is_none")]
pub velocity_data_scaling: Option<String>,
#[serde(rename = "@VelocityDataScalingFactor", default, skip_serializing_if = "Option::is_none")]
pub velocity_data_scaling_factor: Option<String>,
#[serde(rename = "@VelocityDataScalingExp", default, skip_serializing_if = "Option::is_none")]
pub velocity_data_scaling_exp: Option<String>,
#[serde(rename = "@AccelerationDataScaling", default, skip_serializing_if = "Option::is_none")]
pub acceleration_data_scaling: Option<String>,
#[serde(rename = "@AccelerationDataScalingFactor", default, skip_serializing_if = "Option::is_none")]
pub acceleration_data_scaling_factor: Option<String>,
#[serde(rename = "@AccelerationDataScalingExp", default, skip_serializing_if = "Option::is_none")]
pub acceleration_data_scaling_exp: Option<String>,
#[serde(rename = "@TorqueDataScaling", default, skip_serializing_if = "Option::is_none")]
pub torque_data_scaling: Option<String>,
#[serde(rename = "@TorqueDataScalingFactor", default, skip_serializing_if = "Option::is_none")]
pub torque_data_scaling_factor: Option<String>,
#[serde(rename = "@TorqueDataScalingExp", default, skip_serializing_if = "Option::is_none")]
pub torque_data_scaling_exp: Option<String>,
#[serde(rename = "@DrivePolarity", default, skip_serializing_if = "Option::is_none")]
pub drive_polarity: Option<String>,
#[serde(rename = "@MotorFeedbackType", default, skip_serializing_if = "Option::is_none")]
pub motor_feedback_type: Option<String>,
#[serde(rename = "@MotorFeedbackResolution", default, skip_serializing_if = "Option::is_none")]
pub motor_feedback_resolution: Option<String>,
#[serde(rename = "@AuxFeedbackType", default, skip_serializing_if = "Option::is_none")]
pub aux_feedback_type: Option<String>,
#[serde(rename = "@AuxFeedbackResolution", default, skip_serializing_if = "Option::is_none")]
pub aux_feedback_resolution: Option<String>,
#[serde(rename = "@MotorFeedbackUnit", default, skip_serializing_if = "Option::is_none")]
pub motor_feedback_unit: Option<String>,
#[serde(rename = "@AuxFeedbackUnit", default, skip_serializing_if = "Option::is_none")]
pub aux_feedback_unit: Option<String>,
#[serde(rename = "@OutputNotchFilterFrequency", default, skip_serializing_if = "Option::is_none")]
pub output_notch_filter_frequency: Option<String>,
#[serde(rename = "@VelocityDroop", default, skip_serializing_if = "Option::is_none")]
pub velocity_droop: Option<String>,
#[serde(rename = "@VelocityLimitBipolar", default, skip_serializing_if = "Option::is_none")]
pub velocity_limit_bipolar: Option<String>,
#[serde(rename = "@AccelerationLimitBipolar", default, skip_serializing_if = "Option::is_none")]
pub acceleration_limit_bipolar: Option<String>,
#[serde(rename = "@TorqueLimitBipolar", default, skip_serializing_if = "Option::is_none")]
pub torque_limit_bipolar: Option<String>,
#[serde(rename = "@VelocityLimitPositive", default, skip_serializing_if = "Option::is_none")]
pub velocity_limit_positive: Option<String>,
#[serde(rename = "@VelocityLimitNegative", default, skip_serializing_if = "Option::is_none")]
pub velocity_limit_negative: Option<String>,
#[serde(rename = "@VelocityThreshold", default, skip_serializing_if = "Option::is_none")]
pub velocity_threshold: Option<String>,
#[serde(rename = "@VelocityWindow", default, skip_serializing_if = "Option::is_none")]
pub velocity_window: Option<String>,
#[serde(rename = "@VelocityStandstillWindow", default, skip_serializing_if = "Option::is_none")]
pub velocity_standstill_window: Option<String>,
#[serde(rename = "@AccelerationLimitPositive", default, skip_serializing_if = "Option::is_none")]
pub acceleration_limit_positive: Option<String>,
#[serde(rename = "@AccelerationLimitNegative", default, skip_serializing_if = "Option::is_none")]
pub acceleration_limit_negative: Option<String>,
#[serde(rename = "@TorqueLimitPositive", default, skip_serializing_if = "Option::is_none")]
pub torque_limit_positive: Option<String>,
#[serde(rename = "@TorqueLimitNegative", default, skip_serializing_if = "Option::is_none")]
pub torque_limit_negative: Option<String>,
#[serde(rename = "@TorqueThreshold", default, skip_serializing_if = "Option::is_none")]
pub torque_threshold: Option<String>,
#[serde(rename = "@DriveThermalFaultAction", default, skip_serializing_if = "Option::is_none")]
pub drive_thermal_fault_action: Option<String>,
#[serde(rename = "@MotorThermalFaultAction", default, skip_serializing_if = "Option::is_none")]
pub motor_thermal_fault_action: Option<String>,
#[serde(rename = "@DriveEnableInputFaultAction", default, skip_serializing_if = "Option::is_none")]
pub drive_enable_input_fault_action: Option<String>,
#[serde(rename = "@StoppingTorque", default, skip_serializing_if = "Option::is_none")]
pub stopping_torque: Option<String>,
#[serde(rename = "@StoppingTimeLimit", default, skip_serializing_if = "Option::is_none")]
pub stopping_time_limit: Option<String>,
#[serde(rename = "@BrakeEngageDelayTime", default, skip_serializing_if = "Option::is_none")]
pub brake_engage_delay_time: Option<String>,
#[serde(rename = "@BrakeReleaseDelayTime", default, skip_serializing_if = "Option::is_none")]
pub brake_release_delay_time: Option<String>,
#[serde(rename = "@PowerSupplyID", default, skip_serializing_if = "Option::is_none")]
pub power_supply_id: Option<String>,
#[serde(rename = "@BusRegulatorID", default, skip_serializing_if = "Option::is_none")]
pub bus_regulator_id: Option<String>,
#[serde(rename = "@PWMFrequencySelect", default, skip_serializing_if = "Option::is_none")]
pub pwmfrequency_select: Option<String>,
#[serde(rename = "@LoadInertiaRatio", default, skip_serializing_if = "Option::is_none")]
pub load_inertia_ratio: Option<String>,
#[serde(rename = "@AmplifierCatalogNumber", default, skip_serializing_if = "Option::is_none")]
pub amplifier_catalog_number: Option<String>,
#[serde(rename = "@AuxFeedbackRatio", default, skip_serializing_if = "Option::is_none")]
pub aux_feedback_ratio: Option<String>,
#[serde(rename = "@ContinuousTorqueLimit", default, skip_serializing_if = "Option::is_none")]
pub continuous_torque_limit: Option<String>,
#[serde(rename = "@ResistiveBrakeContactDelay", default, skip_serializing_if = "Option::is_none")]
pub resistive_brake_contact_delay: Option<String>,
#[serde(rename = "@ConfigurationProfile", default, skip_serializing_if = "Option::is_none")]
pub configuration_profile: Option<String>,
#[serde(rename = "@RegistrationInputs", default, skip_serializing_if = "Option::is_none")]
pub registration_inputs: Option<String>,
#[serde(rename = "@MaximumAccelerationJerk", default, skip_serializing_if = "Option::is_none")]
pub maximum_acceleration_jerk: Option<String>,
#[serde(rename = "@MaximumDecelerationJerk", default, skip_serializing_if = "Option::is_none")]
pub maximum_deceleration_jerk: Option<String>,
#[serde(rename = "@DynamicsConfigurationBits", default, skip_serializing_if = "Option::is_none")]
pub dynamics_configuration_bits: Option<String>,
#[serde(rename = "@PhaseLossFaultAction", default, skip_serializing_if = "Option::is_none")]
pub phase_loss_fault_action: Option<String>,
#[serde(rename = "@HomeTorqueLevel", default, skip_serializing_if = "Option::is_none")]
pub home_torque_level: Option<String>,
#[serde(rename = "@InputPowerPhase", default, skip_serializing_if = "Option::is_none")]
pub input_power_phase: Option<String>,
#[serde(rename = "@FeedbackUnitRatio", default, skip_serializing_if = "Option::is_none")]
pub feedback_unit_ratio: Option<String>,
#[serde(rename = "@AccelerationLimit", default, skip_serializing_if = "Option::is_none")]
pub acceleration_limit: Option<String>,
#[serde(rename = "@DecelerationLimit", default, skip_serializing_if = "Option::is_none")]
pub deceleration_limit: Option<String>,
#[serde(rename = "@RampJerkControl", default, skip_serializing_if = "Option::is_none")]
pub ramp_jerk_control: Option<String>,
#[serde(rename = "@FlyingStartEnable", default, skip_serializing_if = "Option::is_none")]
pub flying_start_enable: Option<String>,
#[serde(rename = "@SkipSpeed1", default, skip_serializing_if = "Option::is_none")]
pub skip_speed1: Option<String>,
#[serde(rename = "@SkipSpeed2", default, skip_serializing_if = "Option::is_none")]
pub skip_speed2: Option<String>,
#[serde(rename = "@SkipSpeed3", default, skip_serializing_if = "Option::is_none")]
pub skip_speed3: Option<String>,
#[serde(rename = "@SkipSpeedBand", default, skip_serializing_if = "Option::is_none")]
pub skip_speed_band: Option<String>,
#[serde(rename = "@CommandTorque", default, skip_serializing_if = "Option::is_none")]
pub command_torque: Option<String>,
#[serde(rename = "@PositionIntegratorBandwidth", default, skip_serializing_if = "Option::is_none")]
pub position_integrator_bandwidth: Option<String>,
#[serde(rename = "@PositionErrorToleranceTime", default, skip_serializing_if = "Option::is_none")]
pub position_error_tolerance_time: Option<String>,
#[serde(rename = "@PositionIntegratorControl", default, skip_serializing_if = "Option::is_none")]
pub position_integrator_control: Option<String>,
#[serde(rename = "@PositionIntegratorPreload", default, skip_serializing_if = "Option::is_none")]
pub position_integrator_preload: Option<String>,
#[serde(rename = "@VelocityErrorTolerance", default, skip_serializing_if = "Option::is_none")]
pub velocity_error_tolerance: Option<String>,
#[serde(rename = "@VelocityErrorToleranceTime", default, skip_serializing_if = "Option::is_none")]
pub velocity_error_tolerance_time: Option<String>,
#[serde(rename = "@VelocityIntegratorControl", default, skip_serializing_if = "Option::is_none")]
pub velocity_integrator_control: Option<String>,
#[serde(rename = "@VelocityIntegratorPreload", default, skip_serializing_if = "Option::is_none")]
pub velocity_integrator_preload: Option<String>,
#[serde(rename = "@VelocityLockTolerance", default, skip_serializing_if = "Option::is_none")]
pub velocity_lock_tolerance: Option<String>,
#[serde(rename = "@SystemInertia", default, skip_serializing_if = "Option::is_none")]
pub system_inertia: Option<String>,
#[serde(rename = "@TorqueLowPassFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub torque_low_pass_filter_bandwidth: Option<String>,
#[serde(rename = "@TorqueNotchFilterFrequency", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_frequency: Option<String>,
#[serde(rename = "@TorqueRateLimit", default, skip_serializing_if = "Option::is_none")]
pub torque_rate_limit: Option<String>,
#[serde(rename = "@OvertorqueLimit", default, skip_serializing_if = "Option::is_none")]
pub overtorque_limit: Option<String>,
#[serde(rename = "@OvertorqueLimitTime", default, skip_serializing_if = "Option::is_none")]
pub overtorque_limit_time: Option<String>,
#[serde(rename = "@UndertorqueLimit", default, skip_serializing_if = "Option::is_none")]
pub undertorque_limit: Option<String>,
#[serde(rename = "@UndertorqueLimitTime", default, skip_serializing_if = "Option::is_none")]
pub undertorque_limit_time: Option<String>,
#[serde(rename = "@FluxCurrentReference", default, skip_serializing_if = "Option::is_none")]
pub flux_current_reference: Option<String>,
#[serde(rename = "@CurrentError", default, skip_serializing_if = "Option::is_none")]
pub current_error: Option<String>,
#[serde(rename = "@TorqueLoopBandwidth", default, skip_serializing_if = "Option::is_none")]
pub torque_loop_bandwidth: Option<String>,
#[serde(rename = "@TorqueIntegralTimeConstant", default, skip_serializing_if = "Option::is_none")]
pub torque_integral_time_constant: Option<String>,
#[serde(rename = "@FluxLoopBandwidth", default, skip_serializing_if = "Option::is_none")]
pub flux_loop_bandwidth: Option<String>,
#[serde(rename = "@FluxIntegralTimeConstant", default, skip_serializing_if = "Option::is_none")]
pub flux_integral_time_constant: Option<String>,
#[serde(rename = "@FluxUpControl", default, skip_serializing_if = "Option::is_none")]
pub flux_up_control: Option<String>,
#[serde(rename = "@FluxUpTime", default, skip_serializing_if = "Option::is_none")]
pub flux_up_time: Option<String>,
#[serde(rename = "@FrequencyControlMethod", default, skip_serializing_if = "Option::is_none")]
pub frequency_control_method: Option<String>,
#[serde(rename = "@MaximumVoltage", default, skip_serializing_if = "Option::is_none")]
pub maximum_voltage: Option<String>,
#[serde(rename = "@MaximumFrequency", default, skip_serializing_if = "Option::is_none")]
pub maximum_frequency: Option<String>,
#[serde(rename = "@BreakVoltage", default, skip_serializing_if = "Option::is_none")]
pub break_voltage: Option<String>,
#[serde(rename = "@BreakFrequency", default, skip_serializing_if = "Option::is_none")]
pub break_frequency: Option<String>,
#[serde(rename = "@StartBoost", default, skip_serializing_if = "Option::is_none")]
pub start_boost: Option<String>,
#[serde(rename = "@RunBoost", default, skip_serializing_if = "Option::is_none")]
pub run_boost: Option<String>,
#[serde(rename = "@StoppingAction", default, skip_serializing_if = "Option::is_none")]
pub stopping_action: Option<String>,
#[serde(rename = "@MechanicalBrakeControl", default, skip_serializing_if = "Option::is_none")]
pub mechanical_brake_control: Option<String>,
#[serde(rename = "@MechanicalBrakeReleaseDelay", default, skip_serializing_if = "Option::is_none")]
pub mechanical_brake_release_delay: Option<String>,
#[serde(rename = "@MechanicalBrakeEngageDelay", default, skip_serializing_if = "Option::is_none")]
pub mechanical_brake_engage_delay: Option<String>,
#[serde(rename = "@PowerLossAction", default, skip_serializing_if = "Option::is_none")]
pub power_loss_action: Option<String>,
#[serde(rename = "@PowerLossThreshold", default, skip_serializing_if = "Option::is_none")]
pub power_loss_threshold: Option<String>,
#[serde(rename = "@ShutdownAction", default, skip_serializing_if = "Option::is_none")]
pub shutdown_action: Option<String>,
#[serde(rename = "@InverterCapacity", default, skip_serializing_if = "Option::is_none")]
pub inverter_capacity: Option<String>,
#[serde(rename = "@ConverterCapacity", default, skip_serializing_if = "Option::is_none")]
pub converter_capacity: Option<String>,
#[serde(rename = "@InverterOverloadAction", default, skip_serializing_if = "Option::is_none")]
pub inverter_overload_action: Option<String>,
#[serde(rename = "@MotorOverloadAction", default, skip_serializing_if = "Option::is_none")]
pub motor_overload_action: Option<String>,
#[serde(rename = "@CIPAxisExceptionAction", default, skip_serializing_if = "Option::is_none")]
pub cipaxis_exception_action: Option<String>,
#[serde(rename = "@CIPAxisExceptionActionRA", default, skip_serializing_if = "Option::is_none")]
pub cipaxis_exception_action_ra: Option<String>,
#[serde(rename = "@MotorOverspeedUserLimit", default, skip_serializing_if = "Option::is_none")]
pub motor_overspeed_user_limit: Option<String>,
#[serde(rename = "@MotorThermalOverloadUserLimit", default, skip_serializing_if = "Option::is_none")]
pub motor_thermal_overload_user_limit: Option<String>,
#[serde(rename = "@InverterThermalOverloadUserLimit", default, skip_serializing_if = "Option::is_none")]
pub inverter_thermal_overload_user_limit: Option<String>,
#[serde(rename = "@LocalControl", default, skip_serializing_if = "Option::is_none")]
pub local_control: Option<String>,
#[serde(rename = "@PositionLeadLagFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub position_lead_lag_filter_bandwidth: Option<String>,
#[serde(rename = "@PositionLeadLagFilterGain", default, skip_serializing_if = "Option::is_none")]
pub position_lead_lag_filter_gain: Option<String>,
#[serde(rename = "@PositionNotchFilterFrequency", default, skip_serializing_if = "Option::is_none")]
pub position_notch_filter_frequency: Option<String>,
#[serde(rename = "@VelocityNegativeFeedforwardGain", default, skip_serializing_if = "Option::is_none")]
pub velocity_negative_feedforward_gain: Option<String>,
#[serde(rename = "@BacklashCompensationWindow", default, skip_serializing_if = "Option::is_none")]
pub backlash_compensation_window: Option<String>,
#[serde(rename = "@TorqueLeadLagFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub torque_lead_lag_filter_bandwidth: Option<String>,
#[serde(rename = "@TorqueLeadLagFilterGain", default, skip_serializing_if = "Option::is_none")]
pub torque_lead_lag_filter_gain: Option<String>,
#[serde(rename = "@SLATConfiguration", default, skip_serializing_if = "Option::is_none")]
pub slatconfiguration: Option<String>,
#[serde(rename = "@SLATSetPoint", default, skip_serializing_if = "Option::is_none")]
pub slatset_point: Option<String>,
#[serde(rename = "@SLATTimeDelay", default, skip_serializing_if = "Option::is_none")]
pub slattime_delay: Option<String>,
#[serde(rename = "@CurrentDisturbance", default, skip_serializing_if = "Option::is_none")]
pub current_disturbance: Option<String>,
#[serde(rename = "@CommutationSelfSensingCurrent", default, skip_serializing_if = "Option::is_none")]
pub commutation_self_sensing_current: Option<String>,
#[serde(rename = "@DCInjectionBrakeCurrent", default, skip_serializing_if = "Option::is_none")]
pub dcinjection_brake_current: Option<String>,
#[serde(rename = "@FluxBrakingEnable", default, skip_serializing_if = "Option::is_none")]
pub flux_braking_enable: Option<String>,
#[serde(rename = "@DCInjectionBrakeTime", default, skip_serializing_if = "Option::is_none")]
pub dcinjection_brake_time: Option<String>,
#[serde(rename = "@MotorDeviceCode", default, skip_serializing_if = "Option::is_none")]
pub motor_device_code: Option<String>,
#[serde(rename = "@MotorUnit", default, skip_serializing_if = "Option::is_none")]
pub motor_unit: Option<String>,
#[serde(rename = "@MotorPolarity", default, skip_serializing_if = "Option::is_none")]
pub motor_polarity: Option<String>,
#[serde(rename = "@MotorRatedVoltage", default, skip_serializing_if = "Option::is_none")]
pub motor_rated_voltage: Option<String>,
#[serde(rename = "@MotorRatedContinuousCurrent", default, skip_serializing_if = "Option::is_none")]
pub motor_rated_continuous_current: Option<String>,
#[serde(rename = "@MotorRatedPeakCurrent", default, skip_serializing_if = "Option::is_none")]
pub motor_rated_peak_current: Option<String>,
#[serde(rename = "@MotorRatedOutputPower", default, skip_serializing_if = "Option::is_none")]
pub motor_rated_output_power: Option<String>,
#[serde(rename = "@MotorOverloadLimit", default, skip_serializing_if = "Option::is_none")]
pub motor_overload_limit: Option<String>,
#[serde(rename = "@MotorIntegralThermalSwitch", default, skip_serializing_if = "Option::is_none")]
pub motor_integral_thermal_switch: Option<String>,
#[serde(rename = "@MotorMaxWindingTemperature", default, skip_serializing_if = "Option::is_none")]
pub motor_max_winding_temperature: Option<String>,
#[serde(rename = "@MotorWindingToAmbientCapacitance", default, skip_serializing_if = "Option::is_none")]
pub motor_winding_to_ambient_capacitance: Option<String>,
#[serde(rename = "@MotorWindingToAmbientResistance", default, skip_serializing_if = "Option::is_none")]
pub motor_winding_to_ambient_resistance: Option<String>,
#[serde(rename = "@PMMotorResistance", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_resistance: Option<String>,
#[serde(rename = "@PMMotorInductance", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_inductance: Option<String>,
#[serde(rename = "@RotaryMotorPoles", default, skip_serializing_if = "Option::is_none")]
pub rotary_motor_poles: Option<String>,
#[serde(rename = "@RotaryMotorInertia", default, skip_serializing_if = "Option::is_none")]
pub rotary_motor_inertia: Option<String>,
#[serde(rename = "@RotaryMotorRatedSpeed", default, skip_serializing_if = "Option::is_none")]
pub rotary_motor_rated_speed: Option<String>,
#[serde(rename = "@RotaryMotorMaxSpeed", default, skip_serializing_if = "Option::is_none")]
pub rotary_motor_max_speed: Option<String>,
#[serde(rename = "@RotaryMotorDampingCoefficient", default, skip_serializing_if = "Option::is_none")]
pub rotary_motor_damping_coefficient: Option<String>,
#[serde(rename = "@LinearMotorPolePitch", default, skip_serializing_if = "Option::is_none")]
pub linear_motor_pole_pitch: Option<String>,
#[serde(rename = "@LinearMotorRatedSpeed", default, skip_serializing_if = "Option::is_none")]
pub linear_motor_rated_speed: Option<String>,
#[serde(rename = "@LinearMotorMass", default, skip_serializing_if = "Option::is_none")]
pub linear_motor_mass: Option<String>,
#[serde(rename = "@LinearMotorMaxSpeed", default, skip_serializing_if = "Option::is_none")]
pub linear_motor_max_speed: Option<String>,
#[serde(rename = "@LinearMotorDampingCoefficient", default, skip_serializing_if = "Option::is_none")]
pub linear_motor_damping_coefficient: Option<String>,
#[serde(rename = "@PMMotorRatedTorque", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_rated_torque: Option<String>,
#[serde(rename = "@PMMotorTorqueConstant", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_torque_constant: Option<String>,
#[serde(rename = "@PMMotorRotaryVoltageConstant", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_rotary_voltage_constant: Option<String>,
#[serde(rename = "@PMMotorRatedForce", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_rated_force: Option<String>,
#[serde(rename = "@PMMotorForceConstant", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_force_constant: Option<String>,
#[serde(rename = "@PMMotorLinearVoltageConstant", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_linear_voltage_constant: Option<String>,
#[serde(rename = "@InductionMotorRatedFrequency", default, skip_serializing_if = "Option::is_none")]
pub induction_motor_rated_frequency: Option<String>,
#[serde(rename = "@InductionMotorFluxCurrent", default, skip_serializing_if = "Option::is_none")]
pub induction_motor_flux_current: Option<String>,
#[serde(rename = "@InductionMotorStatorResistance", default, skip_serializing_if = "Option::is_none")]
pub induction_motor_stator_resistance: Option<String>,
#[serde(rename = "@InductionMotorStatorLeakageReactance", default, skip_serializing_if = "Option::is_none")]
pub induction_motor_stator_leakage_reactance: Option<String>,
#[serde(rename = "@InductionMotorMagnetizationReactance", default, skip_serializing_if = "Option::is_none")]
pub induction_motor_magnetization_reactance: Option<String>,
#[serde(rename = "@InductionMotorRotorResistance", default, skip_serializing_if = "Option::is_none")]
pub induction_motor_rotor_resistance: Option<String>,
#[serde(rename = "@InductionMotorRotorLeakageReactance", default, skip_serializing_if = "Option::is_none")]
pub induction_motor_rotor_leakage_reactance: Option<String>,
#[serde(rename = "@Feedback1Unit", default, skip_serializing_if = "Option::is_none")]
pub feedback1_unit: Option<String>,
#[serde(rename = "@Feedback1Polarity", default, skip_serializing_if = "Option::is_none")]
pub feedback1_polarity: Option<String>,
#[serde(rename = "@Feedback1StartupMethod", default, skip_serializing_if = "Option::is_none")]
pub feedback1_startup_method: Option<String>,
#[serde(rename = "@Feedback1CycleResolution", default, skip_serializing_if = "Option::is_none")]
pub feedback1_cycle_resolution: Option<String>,
#[serde(rename = "@Feedback1CycleInterpolation", default, skip_serializing_if = "Option::is_none")]
pub feedback1_cycle_interpolation: Option<String>,
#[serde(rename = "@Feedback1Turns", default, skip_serializing_if = "Option::is_none")]
pub feedback1_turns: Option<String>,
#[serde(rename = "@Feedback1Length", default, skip_serializing_if = "Option::is_none")]
pub feedback1_length: Option<String>,
#[serde(rename = "@Feedback1DataLength", default, skip_serializing_if = "Option::is_none")]
pub feedback1_data_length: Option<String>,
#[serde(rename = "@Feedback1DataCode", default, skip_serializing_if = "Option::is_none")]
pub feedback1_data_code: Option<String>,
#[serde(rename = "@Feedback1ResolverTransformerRatio", default, skip_serializing_if = "Option::is_none")]
pub feedback1_resolver_transformer_ratio: Option<String>,
#[serde(rename = "@Feedback1ResolverExcitationVoltage", default, skip_serializing_if = "Option::is_none")]
pub feedback1_resolver_excitation_voltage: Option<String>,
#[serde(rename = "@Feedback1ResolverExcitationFrequency", default, skip_serializing_if = "Option::is_none")]
pub feedback1_resolver_excitation_frequency: Option<String>,
#[serde(rename = "@Feedback1ResolverCableBalance", default, skip_serializing_if = "Option::is_none")]
pub feedback1_resolver_cable_balance: Option<String>,
#[serde(rename = "@Feedback1VelocityFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub feedback1_velocity_filter_bandwidth: Option<String>,
#[serde(rename = "@Feedback1AccelFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub feedback1_accel_filter_bandwidth: Option<String>,
#[serde(rename = "@PMMotorFluxSaturation", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_flux_saturation: Option<String>,
#[serde(rename = "@RotaryMotorFanCoolingSpeed", default, skip_serializing_if = "Option::is_none")]
pub rotary_motor_fan_cooling_speed: Option<String>,
#[serde(rename = "@RotaryMotorFanCoolingDerating", default, skip_serializing_if = "Option::is_none")]
pub rotary_motor_fan_cooling_derating: Option<String>,
#[serde(rename = "@LinearMotorIntegralLimitSwitch", default, skip_serializing_if = "Option::is_none")]
pub linear_motor_integral_limit_switch: Option<String>,
#[serde(rename = "@Feedback1LossAction", default, skip_serializing_if = "Option::is_none")]
pub feedback1_loss_action: Option<String>,
#[serde(rename = "@Feedback1VelocityFilterTaps", default, skip_serializing_if = "Option::is_none")]
pub feedback1_velocity_filter_taps: Option<String>,
#[serde(rename = "@Feedback1AccelFilterTaps", default, skip_serializing_if = "Option::is_none")]
pub feedback1_accel_filter_taps: Option<String>,
#[serde(rename = "@CIPAxisFaultLog", default, skip_serializing_if = "Option::is_none")]
pub cipaxis_fault_log: Option<String>,
#[serde(rename = "@CyclicReadUpdateList", default, skip_serializing_if = "Option::is_none")]
pub cyclic_read_update_list: Option<String>,
#[serde(rename = "@CyclicWriteUpdateList", default, skip_serializing_if = "Option::is_none")]
pub cyclic_write_update_list: Option<String>,
#[serde(rename = "@ScalingSource", default, skip_serializing_if = "Option::is_none")]
pub scaling_source: Option<String>,
#[serde(rename = "@LoadType", default, skip_serializing_if = "Option::is_none")]
pub load_type: Option<String>,
#[serde(rename = "@ActuatorType", default, skip_serializing_if = "Option::is_none")]
pub actuator_type: Option<String>,
#[serde(rename = "@TravelMode", default, skip_serializing_if = "Option::is_none")]
pub travel_mode: Option<String>,
#[serde(rename = "@PositionScalingNumerator", default, skip_serializing_if = "Option::is_none")]
pub position_scaling_numerator: Option<String>,
#[serde(rename = "@PositionScalingDenominator", default, skip_serializing_if = "Option::is_none")]
pub position_scaling_denominator: Option<String>,
#[serde(rename = "@PositionUnwindNumerator", default, skip_serializing_if = "Option::is_none")]
pub position_unwind_numerator: Option<String>,
#[serde(rename = "@PositionUnwindDenominator", default, skip_serializing_if = "Option::is_none")]
pub position_unwind_denominator: Option<String>,
#[serde(rename = "@TravelRange", default, skip_serializing_if = "Option::is_none")]
pub travel_range: Option<String>,
#[serde(rename = "@MotionResolution", default, skip_serializing_if = "Option::is_none")]
pub motion_resolution: Option<String>,
#[serde(rename = "@MotionPolarity", default, skip_serializing_if = "Option::is_none")]
pub motion_polarity: Option<String>,
#[serde(rename = "@MotorTestResistance", default, skip_serializing_if = "Option::is_none")]
pub motor_test_resistance: Option<String>,
#[serde(rename = "@MotorTestInductance", default, skip_serializing_if = "Option::is_none")]
pub motor_test_inductance: Option<String>,
#[serde(rename = "@MotorTestFluxCurrent", default, skip_serializing_if = "Option::is_none")]
pub motor_test_flux_current: Option<String>,
#[serde(rename = "@MotorTestSlipSpeed", default, skip_serializing_if = "Option::is_none")]
pub motor_test_slip_speed: Option<String>,
#[serde(rename = "@TuneFriction", default, skip_serializing_if = "Option::is_none")]
pub tune_friction: Option<String>,
#[serde(rename = "@TuneLoadOffset", default, skip_serializing_if = "Option::is_none")]
pub tune_load_offset: Option<String>,
#[serde(rename = "@TotalInertia", default, skip_serializing_if = "Option::is_none")]
pub total_inertia: Option<String>,
#[serde(rename = "@TuningSelect", default, skip_serializing_if = "Option::is_none")]
pub tuning_select: Option<String>,
#[serde(rename = "@TuningDirection", default, skip_serializing_if = "Option::is_none")]
pub tuning_direction: Option<String>,
#[serde(rename = "@ApplicationType", default, skip_serializing_if = "Option::is_none")]
pub application_type: Option<String>,
#[serde(rename = "@LoopResponse", default, skip_serializing_if = "Option::is_none")]
pub loop_response: Option<String>,
#[serde(rename = "@FeedbackCommutationAligned", default, skip_serializing_if = "Option::is_none")]
pub feedback_commutation_aligned: Option<String>,
#[serde(rename = "@FrictionCompensationSliding", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation_sliding: Option<String>,
#[serde(rename = "@FrictionCompensationStatic", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation_static: Option<String>,
#[serde(rename = "@FrictionCompensationViscous", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation_viscous: Option<String>,
#[serde(rename = "@PositionLoopBandwidth", default, skip_serializing_if = "Option::is_none")]
pub position_loop_bandwidth: Option<String>,
#[serde(rename = "@VelocityLoopBandwidth", default, skip_serializing_if = "Option::is_none")]
pub velocity_loop_bandwidth: Option<String>,
#[serde(rename = "@VelocityIntegratorBandwidth", default, skip_serializing_if = "Option::is_none")]
pub velocity_integrator_bandwidth: Option<String>,
#[serde(rename = "@FeedbackNoiseUserLimit", default, skip_serializing_if = "Option::is_none")]
pub feedback_noise_user_limit: Option<String>,
#[serde(rename = "@FeedbackSignalLossUserLimit", default, skip_serializing_if = "Option::is_none")]
pub feedback_signal_loss_user_limit: Option<String>,
#[serde(rename = "@FeedbackDataLossUserLimit", default, skip_serializing_if = "Option::is_none")]
pub feedback_data_loss_user_limit: Option<String>,
#[serde(rename = "@Feedback1BatteryAbsolute", default, skip_serializing_if = "Option::is_none")]
pub feedback1_battery_absolute: Option<String>,
#[serde(rename = "@CIPAxisAlarmtLog", default, skip_serializing_if = "Option::is_none")]
pub cipaxis_alarmt_log: Option<String>,
#[serde(rename = "@MotionExceptionAction", default, skip_serializing_if = "Option::is_none")]
pub motion_exception_action: Option<String>,
#[serde(rename = "@SoftTravelLimitChecking", default, skip_serializing_if = "Option::is_none")]
pub soft_travel_limit_checking: Option<String>,
#[serde(rename = "@MoveRepeatMode", default, skip_serializing_if = "Option::is_none")]
pub move_repeat_mode: Option<String>,
#[serde(rename = "@MoveRepeatDwell", default, skip_serializing_if = "Option::is_none")]
pub move_repeat_dwell: Option<String>,
#[serde(rename = "@Feedback2Unit", default, skip_serializing_if = "Option::is_none")]
pub feedback2_unit: Option<String>,
#[serde(rename = "@Feedback2Polarity", default, skip_serializing_if = "Option::is_none")]
pub feedback2_polarity: Option<String>,
#[serde(rename = "@Feedback2StartupMethod", default, skip_serializing_if = "Option::is_none")]
pub feedback2_startup_method: Option<String>,
#[serde(rename = "@Feedback2CycleResolution", default, skip_serializing_if = "Option::is_none")]
pub feedback2_cycle_resolution: Option<String>,
#[serde(rename = "@Feedback2CycleInterpolation", default, skip_serializing_if = "Option::is_none")]
pub feedback2_cycle_interpolation: Option<String>,
#[serde(rename = "@Feedback2Turns", default, skip_serializing_if = "Option::is_none")]
pub feedback2_turns: Option<String>,
#[serde(rename = "@Feedback2Length", default, skip_serializing_if = "Option::is_none")]
pub feedback2_length: Option<String>,
#[serde(rename = "@Feedback2DataLength", default, skip_serializing_if = "Option::is_none")]
pub feedback2_data_length: Option<String>,
#[serde(rename = "@Feedback2DataCode", default, skip_serializing_if = "Option::is_none")]
pub feedback2_data_code: Option<String>,
#[serde(rename = "@Feedback2ResolverTransformerRatio", default, skip_serializing_if = "Option::is_none")]
pub feedback2_resolver_transformer_ratio: Option<String>,
#[serde(rename = "@Feedback2ResolverExcitationVoltage", default, skip_serializing_if = "Option::is_none")]
pub feedback2_resolver_excitation_voltage: Option<String>,
#[serde(rename = "@Feedback2ResolverExcitationFrequency", default, skip_serializing_if = "Option::is_none")]
pub feedback2_resolver_excitation_frequency: Option<String>,
#[serde(rename = "@Feedback2ResolverCableBalance", default, skip_serializing_if = "Option::is_none")]
pub feedback2_resolver_cable_balance: Option<String>,
#[serde(rename = "@Feedback2VelocityFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub feedback2_velocity_filter_bandwidth: Option<String>,
#[serde(rename = "@Feedback2AccelFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub feedback2_accel_filter_bandwidth: Option<String>,
#[serde(rename = "@Feedback2LossAction", default, skip_serializing_if = "Option::is_none")]
pub feedback2_loss_action: Option<String>,
#[serde(rename = "@Feedback2VelocityFilterTaps", default, skip_serializing_if = "Option::is_none")]
pub feedback2_velocity_filter_taps: Option<String>,
#[serde(rename = "@Feedback2AccelFilterTaps", default, skip_serializing_if = "Option::is_none")]
pub feedback2_accel_filter_taps: Option<String>,
#[serde(rename = "@Feedback2BatteryAbsolute", default, skip_serializing_if = "Option::is_none")]
pub feedback2_battery_absolute: Option<String>,
#[serde(rename = "@LoadRatio", default, skip_serializing_if = "Option::is_none")]
pub load_ratio: Option<String>,
#[serde(rename = "@TotalMass", default, skip_serializing_if = "Option::is_none")]
pub total_mass: Option<String>,
#[serde(rename = "@TuneInertiaMass", default, skip_serializing_if = "Option::is_none")]
pub tune_inertia_mass: Option<String>,
#[serde(rename = "@SoftTravelLimitPositive", default, skip_serializing_if = "Option::is_none")]
pub soft_travel_limit_positive: Option<String>,
#[serde(rename = "@SoftTravelLimitNegative", default, skip_serializing_if = "Option::is_none")]
pub soft_travel_limit_negative: Option<String>,
#[serde(rename = "@GainTuningConfigurationBits", default, skip_serializing_if = "Option::is_none")]
pub gain_tuning_configuration_bits: Option<String>,
#[serde(rename = "@CommutationOffset", default, skip_serializing_if = "Option::is_none")]
pub commutation_offset: Option<String>,
#[serde(rename = "@PowerLossTime", default, skip_serializing_if = "Option::is_none")]
pub power_loss_time: Option<String>,
#[serde(rename = "@SystemBandwidth", default, skip_serializing_if = "Option::is_none")]
pub system_bandwidth: Option<String>,
#[serde(rename = "@VelocityLowPassFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub velocity_low_pass_filter_bandwidth: Option<String>,
#[serde(rename = "@FeedbackMasterSelect", default, skip_serializing_if = "Option::is_none")]
pub feedback_master_select: Option<String>,
#[serde(rename = "@TransmissionRatioInput", default, skip_serializing_if = "Option::is_none")]
pub transmission_ratio_input: Option<String>,
#[serde(rename = "@TransmissionRatioOutput", default, skip_serializing_if = "Option::is_none")]
pub transmission_ratio_output: Option<String>,
#[serde(rename = "@ActuatorLead", default, skip_serializing_if = "Option::is_none")]
pub actuator_lead: Option<String>,
#[serde(rename = "@ActuatorLeadUnit", default, skip_serializing_if = "Option::is_none")]
pub actuator_lead_unit: Option<String>,
#[serde(rename = "@ActuatorDiameter", default, skip_serializing_if = "Option::is_none")]
pub actuator_diameter: Option<String>,
#[serde(rename = "@ActuatorDiameterUnit", default, skip_serializing_if = "Option::is_none")]
pub actuator_diameter_unit: Option<String>,
#[serde(rename = "@SystemAccelerationBase", default, skip_serializing_if = "Option::is_none")]
pub system_acceleration_base: Option<String>,
#[serde(rename = "@DriveModelTimeConstantBase", default, skip_serializing_if = "Option::is_none")]
pub drive_model_time_constant_base: Option<String>,
#[serde(rename = "@DriveRatedPeakCurrent", default, skip_serializing_if = "Option::is_none")]
pub drive_rated_peak_current: Option<String>,
#[serde(rename = "@HookupTestDistance", default, skip_serializing_if = "Option::is_none")]
pub hookup_test_distance: Option<String>,
#[serde(rename = "@HookupTestTime", default, skip_serializing_if = "Option::is_none")]
pub hookup_test_time: Option<String>,
#[serde(rename = "@HookupTestFeedbackChannel", default, skip_serializing_if = "Option::is_none")]
pub hookup_test_feedback_channel: Option<String>,
#[serde(rename = "@LoadCoupling", default, skip_serializing_if = "Option::is_none")]
pub load_coupling: Option<String>,
#[serde(rename = "@SystemDamping", default, skip_serializing_if = "Option::is_none")]
pub system_damping: Option<String>,
#[serde(rename = "@CurrentVectorLimit", default, skip_serializing_if = "Option::is_none")]
pub current_vector_limit: Option<String>,
#[serde(rename = "@InductionMotorRatedSlipSpeed", default, skip_serializing_if = "Option::is_none")]
pub induction_motor_rated_slip_speed: Option<String>,
#[serde(rename = "@CommutationPolarity", default, skip_serializing_if = "Option::is_none")]
pub commutation_polarity: Option<String>,
#[serde(rename = "@LoadObserverConfiguration", default, skip_serializing_if = "Option::is_none")]
pub load_observer_configuration: Option<String>,
#[serde(rename = "@LoadObserverBandwidth", default, skip_serializing_if = "Option::is_none")]
pub load_observer_bandwidth: Option<String>,
#[serde(rename = "@LoadObserverIntegratorBandwidth", default, skip_serializing_if = "Option::is_none")]
pub load_observer_integrator_bandwidth: Option<String>,
#[serde(rename = "@LoadObserverFeedbackGain", default, skip_serializing_if = "Option::is_none")]
pub load_observer_feedback_gain: Option<String>,
#[serde(rename = "@AxisID", default, skip_serializing_if = "Option::is_none")]
pub axis_id: Option<String>,
#[serde(rename = "@MotorData", default, skip_serializing_if = "Option::is_none")]
pub motor_data: Option<String>,
#[serde(rename = "@AdditionalBusCapacitance", default, skip_serializing_if = "Option::is_none")]
pub additional_bus_capacitance: Option<String>,
#[serde(rename = "@InterpolatedPositionConfiguration", default, skip_serializing_if = "Option::is_none")]
pub interpolated_position_configuration: Option<String>,
#[serde(rename = "@AxisUpdateSchedule", default, skip_serializing_if = "Option::is_none")]
pub axis_update_schedule: Option<String>,
#[serde(rename = "@ProvingConfiguration", default, skip_serializing_if = "Option::is_none")]
pub proving_configuration: Option<String>,
#[serde(rename = "@TorqueProveCurrent", default, skip_serializing_if = "Option::is_none")]
pub torque_prove_current: Option<String>,
#[serde(rename = "@BrakeTestTorque", default, skip_serializing_if = "Option::is_none")]
pub brake_test_torque: Option<String>,
#[serde(rename = "@BrakeProveRampTime", default, skip_serializing_if = "Option::is_none")]
pub brake_prove_ramp_time: Option<String>,
#[serde(rename = "@BrakeSlipTolerance", default, skip_serializing_if = "Option::is_none")]
pub brake_slip_tolerance: Option<String>,
#[serde(rename = "@ZeroSpeed", default, skip_serializing_if = "Option::is_none")]
pub zero_speed: Option<String>,
#[serde(rename = "@ZeroSpeedTime", default, skip_serializing_if = "Option::is_none")]
pub zero_speed_time: Option<String>,
#[serde(rename = "@MotorPhaseLossLimit", default, skip_serializing_if = "Option::is_none")]
pub motor_phase_loss_limit: Option<String>,
#[serde(rename = "@AdaptiveTuningConfiguration", default, skip_serializing_if = "Option::is_none")]
pub adaptive_tuning_configuration: Option<String>,
#[serde(rename = "@TorqueNotchFilterHighFrequencyLimit", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_high_frequency_limit: Option<String>,
#[serde(rename = "@TorqueNotchFilterLowFrequencyLimit", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_low_frequency_limit: Option<String>,
#[serde(rename = "@TorqueNotchFilterTuningThreshold", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_tuning_threshold: Option<String>,
#[serde(rename = "@AutoSagConfiguration", default, skip_serializing_if = "Option::is_none")]
pub auto_sag_configuration: Option<String>,
#[serde(rename = "@AutoSagSlipIncrement", default, skip_serializing_if = "Option::is_none")]
pub auto_sag_slip_increment: Option<String>,
#[serde(rename = "@AutoSagSlipTimeLimit", default, skip_serializing_if = "Option::is_none")]
pub auto_sag_slip_time_limit: Option<String>,
#[serde(rename = "@AutoSagStart", default, skip_serializing_if = "Option::is_none")]
pub auto_sag_start: Option<String>,
#[serde(rename = "@CoastingTimeLimit", default, skip_serializing_if = "Option::is_none")]
pub coasting_time_limit: Option<String>,
#[serde(rename = "@SafeTorqueOffAction", default, skip_serializing_if = "Option::is_none")]
pub safe_torque_off_action: Option<String>,
#[serde(rename = "@FlyingStartMethod", default, skip_serializing_if = "Option::is_none")]
pub flying_start_method: Option<String>,
#[serde(rename = "@CommutationOffsetCompensation", default, skip_serializing_if = "Option::is_none")]
pub commutation_offset_compensation: Option<String>,
#[serde(rename = "@PMMotorLqInductance", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_lq_inductance: Option<String>,
#[serde(rename = "@PMMotorLdInductance", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_ld_inductance: Option<String>,
#[serde(rename = "@PMMotorLqFluxSaturation", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_lq_flux_saturation: Option<String>,
#[serde(rename = "@PMMotorLdFluxSaturation", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_ld_flux_saturation: Option<String>,
#[serde(rename = "@PMMotorRotaryBusOvervoltageSpeed", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_rotary_bus_overvoltage_speed: Option<String>,
#[serde(rename = "@PMMotorLinearBusOvervoltageSpeed", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_linear_bus_overvoltage_speed: Option<String>,
#[serde(rename = "@PMMotorRotaryMaxExtendedSpeed", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_rotary_max_extended_speed: Option<String>,
#[serde(rename = "@PMMotorLinearMaxExtendedSpeed", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_linear_max_extended_speed: Option<String>,
#[serde(rename = "@PMMotorExtendedSpeedPermissive", default, skip_serializing_if = "Option::is_none")]
pub pmmotor_extended_speed_permissive: Option<String>,
#[serde(rename = "@BusOvervoltageOperationalLimit", default, skip_serializing_if = "Option::is_none")]
pub bus_overvoltage_operational_limit: Option<String>,
#[serde(rename = "@ConnectionLossStoppingAction", default, skip_serializing_if = "Option::is_none")]
pub connection_loss_stopping_action: Option<String>,
#[serde(rename = "@SafeTorqueOffActionSource", default, skip_serializing_if = "Option::is_none")]
pub safe_torque_off_action_source: Option<String>,
#[serde(rename = "@SafeStoppingAction", default, skip_serializing_if = "Option::is_none")]
pub safe_stopping_action: Option<String>,
#[serde(rename = "@SafeStoppingActionSource", default, skip_serializing_if = "Option::is_none")]
pub safe_stopping_action_source: Option<String>,
#[serde(rename = "@VerticalLoadControl", default, skip_serializing_if = "Option::is_none")]
pub vertical_load_control: Option<String>,
#[serde(rename = "@BusVoltageSetPoint", default, skip_serializing_if = "Option::is_none")]
pub bus_voltage_set_point: Option<String>,
#[serde(rename = "@ConverterMotoringPowerLimit", default, skip_serializing_if = "Option::is_none")]
pub converter_motoring_power_limit: Option<String>,
#[serde(rename = "@ConverterRegenerativePowerLimit", default, skip_serializing_if = "Option::is_none")]
pub converter_regenerative_power_limit: Option<String>,
#[serde(rename = "@ConverterOvertemperatureUserLimit", default, skip_serializing_if = "Option::is_none")]
pub converter_overtemperature_user_limit: Option<String>,
#[serde(rename = "@ConverterThermalOverloadUserLimit", default, skip_serializing_if = "Option::is_none")]
pub converter_thermal_overload_user_limit: Option<String>,
#[serde(rename = "@ConverterGroundCurrentUserLimit", default, skip_serializing_if = "Option::is_none")]
pub converter_ground_current_user_limit: Option<String>,
#[serde(rename = "@ConverterPreChargeOverloadUserLimit", default, skip_serializing_if = "Option::is_none")]
pub converter_pre_charge_overload_user_limit: Option<String>,
#[serde(rename = "@TotalDCBusCapacitance", default, skip_serializing_if = "Option::is_none")]
pub total_dcbus_capacitance: Option<String>,
#[serde(rename = "@ExternalDCBusCapacitance", default, skip_serializing_if = "Option::is_none")]
pub external_dcbus_capacitance: Option<String>,
#[serde(rename = "@ConverterModelTimeConstantBase", default, skip_serializing_if = "Option::is_none")]
pub converter_model_time_constant_base: Option<String>,
#[serde(rename = "@ConverterCurrentLoopBandwidthBase", default, skip_serializing_if = "Option::is_none")]
pub converter_current_loop_bandwidth_base: Option<String>,
#[serde(rename = "@ConverterRatedCurrent", default, skip_serializing_if = "Option::is_none")]
pub converter_rated_current: Option<String>,
#[serde(rename = "@ConverterRatedPeakCurrent", default, skip_serializing_if = "Option::is_none")]
pub converter_rated_peak_current: Option<String>,
#[serde(rename = "@ConverterRatedVoltage", default, skip_serializing_if = "Option::is_none")]
pub converter_rated_voltage: Option<String>,
#[serde(rename = "@ConverterDCBusCapacitance", default, skip_serializing_if = "Option::is_none")]
pub converter_dcbus_capacitance: Option<String>,
#[serde(rename = "@ACLineVoltageTimeConstant", default, skip_serializing_if = "Option::is_none")]
pub acline_voltage_time_constant: Option<String>,
#[serde(rename = "@BusVoltageErrorTolerance", default, skip_serializing_if = "Option::is_none")]
pub bus_voltage_error_tolerance: Option<String>,
#[serde(rename = "@BusVoltageErrorToleranceTime", default, skip_serializing_if = "Option::is_none")]
pub bus_voltage_error_tolerance_time: Option<String>,
#[serde(rename = "@ReactivePowerSetPoint", default, skip_serializing_if = "Option::is_none")]
pub reactive_power_set_point: Option<String>,
#[serde(rename = "@ReactivePowerRateLimit", default, skip_serializing_if = "Option::is_none")]
pub reactive_power_rate_limit: Option<String>,
#[serde(rename = "@SystemCapacitance", default, skip_serializing_if = "Option::is_none")]
pub system_capacitance: Option<String>,
#[serde(rename = "@ConverterCurrentLoopBandwidth", default, skip_serializing_if = "Option::is_none")]
pub converter_current_loop_bandwidth: Option<String>,
#[serde(rename = "@ConverterCurrentIntegratorBandwidth", default, skip_serializing_if = "Option::is_none")]
pub converter_current_integrator_bandwidth: Option<String>,
#[serde(rename = "@ConverterCurrentVectorLimit", default, skip_serializing_if = "Option::is_none")]
pub converter_current_vector_limit: Option<String>,
#[serde(rename = "@ACLineVoltageSagThreshold", default, skip_serializing_if = "Option::is_none")]
pub acline_voltage_sag_threshold: Option<String>,
#[serde(rename = "@ACLineVoltageSagTime", default, skip_serializing_if = "Option::is_none")]
pub acline_voltage_sag_time: Option<String>,
#[serde(rename = "@ConverterInputPhaseLossTime", default, skip_serializing_if = "Option::is_none")]
pub converter_input_phase_loss_time: Option<String>,
#[serde(rename = "@ACLineFrequencyChangeThreshold", default, skip_serializing_if = "Option::is_none")]
pub acline_frequency_change_threshold: Option<String>,
#[serde(rename = "@ACLineFrequencyChangeTime", default, skip_serializing_if = "Option::is_none")]
pub acline_frequency_change_time: Option<String>,
#[serde(rename = "@ACLineSyncLossTime", default, skip_serializing_if = "Option::is_none")]
pub acline_sync_loss_time: Option<String>,
#[serde(rename = "@ACLineOvervoltageUserLimit", default, skip_serializing_if = "Option::is_none")]
pub acline_overvoltage_user_limit: Option<String>,
#[serde(rename = "@ACLineUndervoltageUserLimit", default, skip_serializing_if = "Option::is_none")]
pub acline_undervoltage_user_limit: Option<String>,
#[serde(rename = "@ACLineOvervoltageUserLimitAlternate", default, skip_serializing_if = "Option::is_none")]
pub acline_overvoltage_user_limit_alternate: Option<String>,
#[serde(rename = "@ACLineUndervoltageUserLimitAlternate", default, skip_serializing_if = "Option::is_none")]
pub acline_undervoltage_user_limit_alternate: Option<String>,
#[serde(rename = "@ACLineHighFreqUserLimit", default, skip_serializing_if = "Option::is_none")]
pub acline_high_freq_user_limit: Option<String>,
#[serde(rename = "@ACLineLowFreqUserLimit", default, skip_serializing_if = "Option::is_none")]
pub acline_low_freq_user_limit: Option<String>,
#[serde(rename = "@ACLineHighFreqUserLimitAlternate", default, skip_serializing_if = "Option::is_none")]
pub acline_high_freq_user_limit_alternate: Option<String>,
#[serde(rename = "@ACLineLowFreqUserLimitAlternate", default, skip_serializing_if = "Option::is_none")]
pub acline_low_freq_user_limit_alternate: Option<String>,
#[serde(rename = "@ConverterHeatsinkOvertempUserLimit", default, skip_serializing_if = "Option::is_none")]
pub converter_heatsink_overtemp_user_limit: Option<String>,
#[serde(rename = "@ACLineOverloadUserLimit", default, skip_serializing_if = "Option::is_none")]
pub acline_overload_user_limit: Option<String>,
#[serde(rename = "@ConverterCurrentLoopDamping", default, skip_serializing_if = "Option::is_none")]
pub converter_current_loop_damping: Option<String>,
#[serde(rename = "@BusObserverBandwidth", default, skip_serializing_if = "Option::is_none")]
pub bus_observer_bandwidth: Option<String>,
#[serde(rename = "@BusObserverIntegratorBandwidth", default, skip_serializing_if = "Option::is_none")]
pub bus_observer_integrator_bandwidth: Option<String>,
#[serde(rename = "@ACLineVoltageUnbalanceLimit", default, skip_serializing_if = "Option::is_none")]
pub acline_voltage_unbalance_limit: Option<String>,
#[serde(rename = "@ACLineCurrentUnbalanceLimit", default, skip_serializing_if = "Option::is_none")]
pub acline_current_unbalance_limit: Option<String>,
#[serde(rename = "@ACLineSyncErrorTolerance", default, skip_serializing_if = "Option::is_none")]
pub acline_sync_error_tolerance: Option<String>,
#[serde(rename = "@ACLineSourceImpedance", default, skip_serializing_if = "Option::is_none")]
pub acline_source_impedance: Option<String>,
#[serde(rename = "@ACLineSourcePower", default, skip_serializing_if = "Option::is_none")]
pub acline_source_power: Option<String>,
#[serde(rename = "@ACLineSourceImpedanceAlternate", default, skip_serializing_if = "Option::is_none")]
pub acline_source_impedance_alternate: Option<String>,
#[serde(rename = "@ACLineSourcePowerAlternate", default, skip_serializing_if = "Option::is_none")]
pub acline_source_power_alternate: Option<String>,
#[serde(rename = "@BusVoltageLoopBandwidth", default, skip_serializing_if = "Option::is_none")]
pub bus_voltage_loop_bandwidth: Option<String>,
#[serde(rename = "@BusVoltageIntegratorBandwidth", default, skip_serializing_if = "Option::is_none")]
pub bus_voltage_integrator_bandwidth: Option<String>,
#[serde(rename = "@BusVoltageRateLimit", default, skip_serializing_if = "Option::is_none")]
pub bus_voltage_rate_limit: Option<String>,
#[serde(rename = "@ActiveCurrentCommand", default, skip_serializing_if = "Option::is_none")]
pub active_current_command: Option<String>,
#[serde(rename = "@ReactiveCurrentCommand", default, skip_serializing_if = "Option::is_none")]
pub reactive_current_command: Option<String>,
#[serde(rename = "@ActiveCurrentTrim", default, skip_serializing_if = "Option::is_none")]
pub active_current_trim: Option<String>,
#[serde(rename = "@ActiveCurrentLowPassFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub active_current_low_pass_filter_bandwidth: Option<String>,
#[serde(rename = "@ActiveCurrentNotchFilterFrequency", default, skip_serializing_if = "Option::is_none")]
pub active_current_notch_filter_frequency: Option<String>,
#[serde(rename = "@ActiveCurrentRateLimit", default, skip_serializing_if = "Option::is_none")]
pub active_current_rate_limit: Option<String>,
#[serde(rename = "@ReactiveCurrentRateLimit", default, skip_serializing_if = "Option::is_none")]
pub reactive_current_rate_limit: Option<String>,
#[serde(rename = "@ConverterControlMode", default, skip_serializing_if = "Option::is_none")]
pub converter_control_mode: Option<String>,
#[serde(rename = "@ReactivePowerControl", default, skip_serializing_if = "Option::is_none")]
pub reactive_power_control: Option<String>,
#[serde(rename = "@ConverterStartupMethod", default, skip_serializing_if = "Option::is_none")]
pub converter_startup_method: Option<String>,
#[serde(rename = "@ACLineVoltageSagAction", default, skip_serializing_if = "Option::is_none")]
pub acline_voltage_sag_action: Option<String>,
#[serde(rename = "@ConverterInputPhaseLossAction", default, skip_serializing_if = "Option::is_none")]
pub converter_input_phase_loss_action: Option<String>,
#[serde(rename = "@ACLineFrequencyChangeAction", default, skip_serializing_if = "Option::is_none")]
pub acline_frequency_change_action: Option<String>,
#[serde(rename = "@ACLineSyncLossAction", default, skip_serializing_if = "Option::is_none")]
pub acline_sync_loss_action: Option<String>,
#[serde(rename = "@ConverterOverloadAction", default, skip_serializing_if = "Option::is_none")]
pub converter_overload_action: Option<String>,
#[serde(rename = "@ConverterCurrentLoopTuningMethod", default, skip_serializing_if = "Option::is_none")]
pub converter_current_loop_tuning_method: Option<String>,
#[serde(rename = "@ConverterACInputPhasing", default, skip_serializing_if = "Option::is_none")]
pub converter_acinput_phasing: Option<String>,
#[serde(rename = "@ConverterACInputFrequency", default, skip_serializing_if = "Option::is_none")]
pub converter_acinput_frequency: Option<String>,
#[serde(rename = "@ACLineSourceSelect", default, skip_serializing_if = "Option::is_none")]
pub acline_source_select: Option<String>,
#[serde(rename = "@BusVoltageReferenceSource", default, skip_serializing_if = "Option::is_none")]
pub bus_voltage_reference_source: Option<String>,
#[serde(rename = "@BusObserverConfiguration", default, skip_serializing_if = "Option::is_none")]
pub bus_observer_configuration: Option<String>,
#[serde(rename = "@ConverterACInputVoltage", default, skip_serializing_if = "Option::is_none")]
pub converter_acinput_voltage: Option<String>,
#[serde(rename = "@CIPAxisExceptionAction2", default, skip_serializing_if = "Option::is_none")]
pub cipaxis_exception_action2: Option<String>,
#[serde(rename = "@CIPAxisExceptionAction2RA", default, skip_serializing_if = "Option::is_none")]
pub cipaxis_exception_action2_ra: Option<String>,
#[serde(rename = "@ConverterConfiguration", default, skip_serializing_if = "Option::is_none")]
pub converter_configuration: Option<String>,
#[serde(rename = "@ConverterCurrentLimitSource", default, skip_serializing_if = "Option::is_none")]
pub converter_current_limit_source: Option<String>,
#[serde(rename = "@SafetyFaultAction", default, skip_serializing_if = "Option::is_none")]
pub safety_fault_action: Option<String>,
#[serde(rename = "@ACLineContactorInputChecking", default, skip_serializing_if = "Option::is_none")]
pub acline_contactor_input_checking: Option<String>,
#[serde(rename = "@ConverterModelTimeConstant", default, skip_serializing_if = "Option::is_none")]
pub converter_model_time_constant: Option<String>,
#[serde(rename = "@ConverterRatedPower", default, skip_serializing_if = "Option::is_none")]
pub converter_rated_power: Option<String>,
#[serde(rename = "@CurrentLoopBandwidthScalingFactor", default, skip_serializing_if = "Option::is_none")]
pub current_loop_bandwidth_scaling_factor: Option<String>,
#[serde(rename = "@CurrentLoopBandwidth", default, skip_serializing_if = "Option::is_none")]
pub current_loop_bandwidth: Option<String>,
#[serde(rename = "@DriveRatedVoltage", default, skip_serializing_if = "Option::is_none")]
pub drive_rated_voltage: Option<String>,
#[serde(rename = "@MaxOutputFrequency", default, skip_serializing_if = "Option::is_none")]
pub max_output_frequency: Option<String>,
#[serde(rename = "@ACLineResonanceUserLimit", default, skip_serializing_if = "Option::is_none")]
pub acline_resonance_user_limit: Option<String>,
#[serde(rename = "@MotorTestDataValid", default, skip_serializing_if = "Option::is_none")]
pub motor_test_data_valid: Option<String>,
#[serde(rename = "@TrackMoverLength", default, skip_serializing_if = "Option::is_none")]
pub track_mover_length: Option<String>,
#[serde(rename = "@TrackMoverCenterofMassOffset", default, skip_serializing_if = "Option::is_none")]
pub track_mover_centerof_mass_offset: Option<String>,
#[serde(rename = "@Feedback1CalibrationOffset", default, skip_serializing_if = "Option::is_none")]
pub feedback1_calibration_offset: Option<String>,
#[serde(rename = "@Feedback2CalibrationOffset", default, skip_serializing_if = "Option::is_none")]
pub feedback2_calibration_offset: Option<String>,
#[serde(rename = "@CommandNotchFilterFrequency", default, skip_serializing_if = "Option::is_none")]
pub command_notch_filter_frequency: Option<String>,
#[serde(rename = "@CommandNotchFilterWidth", default, skip_serializing_if = "Option::is_none")]
pub command_notch_filter_width: Option<String>,
#[serde(rename = "@CommandNotchFilterDepth", default, skip_serializing_if = "Option::is_none")]
pub command_notch_filter_depth: Option<String>,
#[serde(rename = "@CommandNotchFilterGain", default, skip_serializing_if = "Option::is_none")]
pub command_notch_filter_gain: Option<String>,
#[serde(rename = "@CommandNotchFilter2Frequency", default, skip_serializing_if = "Option::is_none")]
pub command_notch_filter2_frequency: Option<String>,
#[serde(rename = "@CommandNotchFilter2Width", default, skip_serializing_if = "Option::is_none")]
pub command_notch_filter2_width: Option<String>,
#[serde(rename = "@CommandNotchFilter2Depth", default, skip_serializing_if = "Option::is_none")]
pub command_notch_filter2_depth: Option<String>,
#[serde(rename = "@CommandNotchFilter2Gain", default, skip_serializing_if = "Option::is_none")]
pub command_notch_filter2_gain: Option<String>,
#[serde(rename = "@TorqueNotchFilter2Frequency", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter2_frequency: Option<String>,
#[serde(rename = "@TorqueNotchFilter3Frequency", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter3_frequency: Option<String>,
#[serde(rename = "@TorqueNotchFilter4Frequency", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter4_frequency: Option<String>,
#[serde(rename = "@TorqueNotchFilterWidth", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_width: Option<String>,
#[serde(rename = "@TorqueNotchFilterDepth", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_depth: Option<String>,
#[serde(rename = "@TorqueNotchFilterGain", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_gain: Option<String>,
#[serde(rename = "@TorqueNotchFilter2Width", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter2_width: Option<String>,
#[serde(rename = "@TorqueNotchFilter2Depth", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter2_depth: Option<String>,
#[serde(rename = "@TorqueNotchFilter2Gain", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter2_gain: Option<String>,
#[serde(rename = "@TorqueNotchFilter3Width", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter3_width: Option<String>,
#[serde(rename = "@TorqueNotchFilter3Depth", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter3_depth: Option<String>,
#[serde(rename = "@TorqueNotchFilter3Gain", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter3_gain: Option<String>,
#[serde(rename = "@TorqueNotchFilter4Width", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter4_width: Option<String>,
#[serde(rename = "@TorqueNotchFilter4Depth", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter4_depth: Option<String>,
#[serde(rename = "@TorqueNotchFilter4Gain", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter4_gain: Option<String>,
#[serde(rename = "@AdaptiveTuningTrackingNotchFilters", default, skip_serializing_if = "Option::is_none")]
pub adaptive_tuning_tracking_notch_filters: Option<String>,
#[serde(rename = "@AdaptiveTuningGainScalingFactorMin", default, skip_serializing_if = "Option::is_none")]
pub adaptive_tuning_gain_scaling_factor_min: Option<String>,
#[serde(rename = "@TorqueLowPassFilterBandwidthMin", default, skip_serializing_if = "Option::is_none")]
pub torque_low_pass_filter_bandwidth_min: Option<String>,
#[serde(rename = "@TorqueNotchFilterWidthMin", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_width_min: Option<String>,
#[serde(rename = "@TorqueNotchFilterWidthMax", default, skip_serializing_if = "Option::is_none")]
pub torque_notch_filter_width_max: Option<String>,
#[serde(rename = "@MotorTestTravelLimit", default, skip_serializing_if = "Option::is_none")]
pub motor_test_travel_limit: Option<String>,
#[serde(rename = "@MotorTestSpeed", default, skip_serializing_if = "Option::is_none")]
pub motor_test_speed: Option<String>,
#[serde(rename = "@MotorTestTorque", default, skip_serializing_if = "Option::is_none")]
pub motor_test_torque: Option<String>,
#[serde(rename = "@HookupTestSpeed", default, skip_serializing_if = "Option::is_none")]
pub hookup_test_speed: Option<String>,
#[serde(rename = "@TorqueEstimateCrossoverSpeed", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_crossover_speed: Option<String>,
#[serde(rename = "@TorqueEstimateNotch1Frequency", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_notch1_frequency: Option<String>,
#[serde(rename = "@TorqueEstimateNotch1Width", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_notch1_width: Option<String>,
#[serde(rename = "@TorqueEstimateNotch1Depth", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_notch1_depth: Option<String>,
#[serde(rename = "@TorqueEstimateNotch1Gain", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_notch1_gain: Option<String>,
#[serde(rename = "@TorqueEstimateNotch2Frequency", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_notch2_frequency: Option<String>,
#[serde(rename = "@TorqueEstimateNotch2Width", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_notch2_width: Option<String>,
#[serde(rename = "@TorqueEstimateNotch2Depth", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_notch2_depth: Option<String>,
#[serde(rename = "@TorqueEstimateNotch2Gain", default, skip_serializing_if = "Option::is_none")]
pub torque_estimate_notch2_gain: Option<String>,
#[serde(rename = "@FlyingStartCEMFReconnectDelay", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfreconnect_delay: Option<String>,
#[serde(rename = "@FlyingStartCEMFCurrentRegKp", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfcurrent_reg_kp: Option<String>,
#[serde(rename = "@FlyingStartCEMFCurrentRegKi", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfcurrent_reg_ki: Option<String>,
#[serde(rename = "@FlyingStartCEMFVelocityRegKp", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfvelocity_reg_kp: Option<String>,
#[serde(rename = "@FlyingStartCEMFVelocityRegKi", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfvelocity_reg_ki: Option<String>,
#[serde(rename = "@FlyingStartCEMFExcitationRegKp", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfexcitation_reg_kp: Option<String>,
#[serde(rename = "@FlyingStartCEMFExcitationRegKi", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfexcitation_reg_ki: Option<String>,
#[serde(rename = "@FlyingStartCEMFBrakeLevel", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfbrake_level: Option<String>,
#[serde(rename = "@FlyingStartCEMFBrakeTime", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfbrake_time: Option<String>,
#[serde(rename = "@FlyingStartCEMFZeroSpeedThreshold", default, skip_serializing_if = "Option::is_none")]
pub flying_start_cemfzero_speed_threshold: Option<String>,
#[serde(rename = "@FlyingStartSweepReconnectDelay", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_reconnect_delay: Option<String>,
#[serde(rename = "@FlyingStartSweepInitialVoltageRegKp", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_initial_voltage_reg_kp: Option<String>,
#[serde(rename = "@FlyingStartSweepInitialVoltageRegKi", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_initial_voltage_reg_ki: Option<String>,
#[serde(rename = "@FlyingStartSweepTime", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_time: Option<String>,
#[serde(rename = "@FlyingStartSweepVHzDCBoostAdjust", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_vhz_dcboost_adjust: Option<String>,
#[serde(rename = "@FlyingStartSweepVHzRatio", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_vhz_ratio: Option<String>,
#[serde(rename = "@FlyingStartSweepSpeedDetectLevel", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_speed_detect_level: Option<String>,
#[serde(rename = "@FlyingStartSweepSpeedDetectTime", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_speed_detect_time: Option<String>,
#[serde(rename = "@FlyingStartSweepRecoveryCurrentRegKi", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_recovery_current_reg_ki: Option<String>,
#[serde(rename = "@FlyingStartSweepVelocityRegKp", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_velocity_reg_kp: Option<String>,
#[serde(rename = "@FlyingStartSweepVelocityRegKi", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_velocity_reg_ki: Option<String>,
#[serde(rename = "@FlyingStartSweepBrakeLevel", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_brake_level: Option<String>,
#[serde(rename = "@FlyingStartSweepBrakeTime", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_brake_time: Option<String>,
#[serde(rename = "@FlyingStartSweepZeroSpeedThreshold", default, skip_serializing_if = "Option::is_none")]
pub flying_start_sweep_zero_speed_threshold: Option<String>,
#[serde(rename = "@FrictionCompensationMethod", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation_method: Option<String>,
#[serde(rename = "@FrictionCompensationStartSpeed", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation_start_speed: Option<String>,
#[serde(rename = "@FrictionCompensationHysteresis", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation_hysteresis: Option<String>,
#[serde(rename = "@FrictionCompensationBreakawayTime", default, skip_serializing_if = "Option::is_none")]
pub friction_compensation_breakaway_time: Option<String>,
#[serde(rename = "@MotorAdaptionSpeed", default, skip_serializing_if = "Option::is_none")]
pub motor_adaption_speed: Option<String>,
#[serde(rename = "@TorqueAdaptionEnable", default, skip_serializing_if = "Option::is_none")]
pub torque_adaption_enable: Option<String>,
#[serde(rename = "@SlipAdaptionEnable", default, skip_serializing_if = "Option::is_none")]
pub slip_adaption_enable: Option<String>,
#[serde(rename = "@FluxAdaptionEnable", default, skip_serializing_if = "Option::is_none")]
pub flux_adaption_enable: Option<String>,
#[serde(rename = "@TorqueAdaptionRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub torque_adaption_regulator_kp: Option<String>,
#[serde(rename = "@TorqueAdaptionRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub torque_adaption_regulator_ki: Option<String>,
#[serde(rename = "@TorqueAdaptionRegulatorLimitPositive", default, skip_serializing_if = "Option::is_none")]
pub torque_adaption_regulator_limit_positive: Option<String>,
#[serde(rename = "@TorqueAdaptionRegulatorLimitNegative", default, skip_serializing_if = "Option::is_none")]
pub torque_adaption_regulator_limit_negative: Option<String>,
#[serde(rename = "@SlipandFluxRegulatorSlewTime", default, skip_serializing_if = "Option::is_none")]
pub slipand_flux_regulator_slew_time: Option<String>,
#[serde(rename = "@SlipandFluxRegulatorSlewRate", default, skip_serializing_if = "Option::is_none")]
pub slipand_flux_regulator_slew_rate: Option<String>,
#[serde(rename = "@SlipandFluxRegulatorConvergenceLevel", default, skip_serializing_if = "Option::is_none")]
pub slipand_flux_regulator_convergence_level: Option<String>,
#[serde(rename = "@SlipandFluxRegulatorConvergenceTime", default, skip_serializing_if = "Option::is_none")]
pub slipand_flux_regulator_convergence_time: Option<String>,
#[serde(rename = "@SlipAdaptionRegulatorIqThreshold", default, skip_serializing_if = "Option::is_none")]
pub slip_adaption_regulator_iq_threshold: Option<String>,
#[serde(rename = "@SlipAdaptionRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub slip_adaption_regulator_kp: Option<String>,
#[serde(rename = "@SlipAdaptionRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub slip_adaption_regulator_ki: Option<String>,
#[serde(rename = "@FluxAdaptionRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub flux_adaption_regulator_kp: Option<String>,
#[serde(rename = "@FluxAdaptionRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub flux_adaption_regulator_ki: Option<String>,
#[serde(rename = "@VqIdDecouplingGain", default, skip_serializing_if = "Option::is_none")]
pub vq_id_decoupling_gain: Option<String>,
#[serde(rename = "@VdIqDecouplingGain", default, skip_serializing_if = "Option::is_none")]
pub vd_iq_decoupling_gain: Option<String>,
#[serde(rename = "@LqIqFeedbackFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub lq_iq_feedback_filter_bandwidth: Option<String>,
#[serde(rename = "@CurrentLimitRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub current_limit_regulator_kp: Option<String>,
#[serde(rename = "@CurrentLimitRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub current_limit_regulator_ki: Option<String>,
#[serde(rename = "@CurrentLimitRegulatorKd", default, skip_serializing_if = "Option::is_none")]
pub current_limit_regulator_kd: Option<String>,
#[serde(rename = "@LowFrequencyIdCurrentLimitRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub low_frequency_id_current_limit_regulator_kp: Option<String>,
#[serde(rename = "@LowFrequencyIqCurrentLimitRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub low_frequency_iq_current_limit_regulator_kp: Option<String>,
#[serde(rename = "@PreChargeHoldControl", default, skip_serializing_if = "Option::is_none")]
pub pre_charge_hold_control: Option<String>,
#[serde(rename = "@PreChargeHoldDelay", default, skip_serializing_if = "Option::is_none")]
pub pre_charge_hold_delay: Option<String>,
#[serde(rename = "@MotorOvertemperatureUserLimit", default, skip_serializing_if = "Option::is_none")]
pub motor_overtemperature_user_limit: Option<String>,
#[serde(rename = "@InverterOvertemperatureUserLimit", default, skip_serializing_if = "Option::is_none")]
pub inverter_overtemperature_user_limit: Option<String>,
#[serde(rename = "@SensorlessVectorEconomyAccelDecelKp", default, skip_serializing_if = "Option::is_none")]
pub sensorless_vector_economy_accel_decel_kp: Option<String>,
#[serde(rename = "@SensorlessVectorEconomyAccelDecelKi", default, skip_serializing_if = "Option::is_none")]
pub sensorless_vector_economy_accel_decel_ki: Option<String>,
#[serde(rename = "@SensorlessVectorEconomyAtSpeedKi", default, skip_serializing_if = "Option::is_none")]
pub sensorless_vector_economy_at_speed_ki: Option<String>,
#[serde(rename = "@SensorlessVectorBoostFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub sensorless_vector_boost_filter_bandwidth: Option<String>,
#[serde(rename = "@VelocityFeedbackDelayCompensation", default, skip_serializing_if = "Option::is_none")]
pub velocity_feedback_delay_compensation: Option<String>,
#[serde(rename = "@TorqueCalibrationFactorMotoring", default, skip_serializing_if = "Option::is_none")]
pub torque_calibration_factor_motoring: Option<String>,
#[serde(rename = "@TorqueCalibrationFactorRegenerating", default, skip_serializing_if = "Option::is_none")]
pub torque_calibration_factor_regenerating: Option<String>,
#[serde(rename = "@FluxVectorFrequencyRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub flux_vector_frequency_regulator_kp: Option<String>,
#[serde(rename = "@FluxVectorFrequencyRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub flux_vector_frequency_regulator_ki: Option<String>,
#[serde(rename = "@MotorStabilityControlEnable", default, skip_serializing_if = "Option::is_none")]
pub motor_stability_control_enable: Option<String>,
#[serde(rename = "@MotorStabilityControlFilterBandwidth", default, skip_serializing_if = "Option::is_none")]
pub motor_stability_control_filter_bandwidth: Option<String>,
#[serde(rename = "@MotorStabilityControlVoltageGain", default, skip_serializing_if = "Option::is_none")]
pub motor_stability_control_voltage_gain: Option<String>,
#[serde(rename = "@MotorStabilityControlFrequencyGain", default, skip_serializing_if = "Option::is_none")]
pub motor_stability_control_frequency_gain: Option<String>,
#[serde(rename = "@PowerDeviceCompensationEnable", default, skip_serializing_if = "Option::is_none")]
pub power_device_compensation_enable: Option<String>,
#[serde(rename = "@PowerDeviceDeadTimeCompensation", default, skip_serializing_if = "Option::is_none")]
pub power_device_dead_time_compensation: Option<String>,
#[serde(rename = "@DCInjectionCurrentRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub dcinjection_current_regulator_kp: Option<String>,
#[serde(rename = "@DCInjectionCurrentRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub dcinjection_current_regulator_ki: Option<String>,
#[serde(rename = "@FluxBrakingRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub flux_braking_regulator_kp: Option<String>,
#[serde(rename = "@FluxBrakingRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub flux_braking_regulator_ki: Option<String>,
#[serde(rename = "@FluxBrakingVoltageLimit", default, skip_serializing_if = "Option::is_none")]
pub flux_braking_voltage_limit: Option<String>,
#[serde(rename = "@FluxDownRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub flux_down_regulator_kp: Option<String>,
#[serde(rename = "@FluxDownRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub flux_down_regulator_ki: Option<String>,
#[serde(rename = "@ACInjectionBrakeRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub acinjection_brake_regulator_kp: Option<String>,
#[serde(rename = "@ACInjectionBrakeRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub acinjection_brake_regulator_ki: Option<String>,
#[serde(rename = "@ACInjectionBrakePowerThreshold", default, skip_serializing_if = "Option::is_none")]
pub acinjection_brake_power_threshold: Option<String>,
#[serde(rename = "@ACInjectionBrakeFrequencyThreshold", default, skip_serializing_if = "Option::is_none")]
pub acinjection_brake_frequency_threshold: Option<String>,
#[serde(rename = "@BusRegulatorVoltageLevel", default, skip_serializing_if = "Option::is_none")]
pub bus_regulator_voltage_level: Option<String>,
#[serde(rename = "@BusRegulatorSetPointSource", default, skip_serializing_if = "Option::is_none")]
pub bus_regulator_set_point_source: Option<String>,
#[serde(rename = "@BusRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub bus_regulator_kp: Option<String>,
#[serde(rename = "@BusRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub bus_regulator_ki: Option<String>,
#[serde(rename = "@BusLimitRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub bus_limit_regulator_kp: Option<String>,
#[serde(rename = "@BusLimitRegulatorKd", default, skip_serializing_if = "Option::is_none")]
pub bus_limit_regulator_kd: Option<String>,
#[serde(rename = "@BusLimitActiveCurrentRegulatorKp", default, skip_serializing_if = "Option::is_none")]
pub bus_limit_active_current_regulator_kp: Option<String>,
#[serde(rename = "@BusLimitActiveCurrentRegulatorKi", default, skip_serializing_if = "Option::is_none")]
pub bus_limit_active_current_regulator_ki: Option<String>,
#[serde(rename = "@InverterGroundCurrentUserLimit", default, skip_serializing_if = "Option::is_none")]
pub inverter_ground_current_user_limit: Option<String>,
#[serde(rename = "@TestModeConfiguration", default, skip_serializing_if = "Option::is_none")]
pub test_mode_configuration: Option<String>,
#[serde(rename = "@TestModeEnable", default, skip_serializing_if = "Option::is_none")]
pub test_mode_enable: 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>,
}