using System; using System.Text; using System.Linq; using System.Drawing; using System.Diagnostics; using System.Windows.Forms; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using Tango.PMR.Hardware; using Tango.PMR.Printing; using Tango.PMR.Stubs; using Tango.Stubs.UI; public void OnExecute(StubManager stubManager) { //SystemResetRequest systemResetRequest = new SystemResetRequest(); //var response1 = stubManager.Run(systemResetRequest); // stubManager.Run("StubGPIOWriteBitRequest" ,"P", 4, true);//ON Thread.Sleep(10); // stubManager.Run("StubGPIOWriteBitRequest" ,"P", 4, false);//OFF Thread.Sleep(10); // stubManager.Run("StubGPIOWriteBitRequest" ,"P", 4, true);//ON /*UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); ProcessParameters processParameters = new ProcessParameters(); processParameters.DyeingSpeed = 10; processParameters.MixerTemp = 0; processParameters.DryerBufferLength = 0; processParameters.MinInkUptake = 0; processParameters.HeadZone1Temp = 0; processParameters.DryerZone1Temp = 100; processParameters.FeederTension = 0; processParameters.DryerZone2Temp = 100; processParameters.HeadZone2Temp = 0; processParameters.PullerTension = 0; processParameters.HeadZone3Temp = 0; processParameters.DryerZone3Temp = 0; processParameters.WinderTension = 0; processParameters.HeadAirFlow = 0; processParameters.DryerAirFlow = 0; processParameters.TableIndex = 0; uploadProcessParametersRequest.ProcessParameters = processParameters; var response1 = stubManager.Run(uploadProcessParametersRequest); */ UploadHardwareConfigurationRequest uploadHardwareConfigurationRequest = new UploadHardwareConfigurationRequest(); HardwareConfiguration hardwareConfiguration = new HardwareConfiguration(); HardwarePidControl hardwarePidControl1 = new HardwarePidControl(); hardwarePidControl1.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorFeeder; hardwarePidControl1.OutputProportionalPowerLimit = 80; hardwarePidControl1.OutputProportionalBand = 5; hardwarePidControl1.IntegralTime = 5; hardwarePidControl1.DerivativeTime = 0; hardwarePidControl1.SensorCorrectionAdjustment = 0; hardwarePidControl1.SensorMinValue = 0; hardwarePidControl1.SensorMaxValue = 0; hardwarePidControl1.SetPointRampRateorSoftStartRamp = 0; hardwarePidControl1.SetPointControlOutputRate = 4; hardwarePidControl1.ControlOutputType = 0; hardwarePidControl1.SsrControlOutputType = 0; hardwarePidControl1.OutputOnOffHysteresisValue = 0; hardwarePidControl1.ProcessVariableSamplingRate = 1000; hardwarePidControl1.PvInputFilterFactorMode = 4; hardwarePidControl1.OutputProportionalCycleTime = 0; hardwarePidControl1.AcHeatersHalfCycleTime = 0; hardwarePidControl1.ProportionalGain = 11.0; hardwareConfiguration.PidControls.Add(hardwarePidControl1); HardwarePidControl hardwarePidControl2 = new HardwarePidControl(); hardwarePidControl2.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorPooler; hardwarePidControl2.OutputProportionalPowerLimit = 80; hardwarePidControl2.OutputProportionalBand = 5; hardwarePidControl2.IntegralTime = 5; hardwarePidControl2.DerivativeTime = 0; hardwarePidControl2.SensorCorrectionAdjustment = 0; hardwarePidControl2.SensorMinValue = 0; hardwarePidControl2.SensorMaxValue = 0; hardwarePidControl2.SetPointRampRateorSoftStartRamp = 0; hardwarePidControl2.SetPointControlOutputRate = 4; hardwarePidControl2.ControlOutputType = 0; hardwarePidControl2.SsrControlOutputType = 0; hardwarePidControl2.OutputOnOffHysteresisValue = 0; hardwarePidControl2.ProcessVariableSamplingRate = 1000; hardwarePidControl2.PvInputFilterFactorMode = 4; hardwarePidControl2.OutputProportionalCycleTime = 0; hardwarePidControl2.AcHeatersHalfCycleTime = 0; hardwarePidControl2.ProportionalGain = 11.0; hardwareConfiguration.PidControls.Add(hardwarePidControl2); HardwarePidControl hardwarePidControl3 = new HardwarePidControl(); hardwarePidControl3.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MotorWinder; hardwarePidControl3.OutputProportionalPowerLimit = 80; hardwarePidControl3.OutputProportionalBand = 5; hardwarePidControl3.IntegralTime = 5; hardwarePidControl3.DerivativeTime = 0; hardwarePidControl3.SensorCorrectionAdjustment = 0; hardwarePidControl3.SensorMinValue = 0; hardwarePidControl3.SensorMaxValue = 0; hardwarePidControl3.SetPointRampRateorSoftStartRamp = 0; hardwarePidControl3.SetPointControlOutputRate = 4; hardwarePidControl3.ControlOutputType = 0; hardwarePidControl3.SsrControlOutputType = 0; hardwarePidControl3.OutputOnOffHysteresisValue = 0; hardwarePidControl3.ProcessVariableSamplingRate = 1000; hardwarePidControl3.PvInputFilterFactorMode = 4; hardwarePidControl3.OutputProportionalCycleTime = 0; hardwarePidControl3.AcHeatersHalfCycleTime = 0; hardwarePidControl3.ProportionalGain = 11.0; hardwareConfiguration.PidControls.Add(hardwarePidControl3); HardwarePidControl Pid1 = new HardwarePidControl(); HardwarePidControl Pid2 = new HardwarePidControl(); //Pid1.has_hardwarepidcontroltype = true; /*Pid1.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.DryerHeater1000W; // Pid1.has_outputproportionalpowerlimit = true; Pid1.OutputProportionalPowerLimit = 50; // Pid1.has_outputproportionalband = true; Pid1.OutputProportionalBand = 3; // Pid1.has_kp = true; Pid1.SensorCorrectionAdjustment = 2.0; //Pid1.has_ki = true; Pid1.IntegralTime = 0.01; Pid1.OutputProportionalPowerLimit = 80; Pid1.OutputProportionalBand = 5; Pid1.IntegralTime = 5; Pid1.DerivativeTime = 0; Pid1.SensorCorrectionAdjustment = 0; Pid1.SensorMinValue = 0; Pid1.SensorMaxValue = 0; Pid1.SetPointRampRateorSoftStartRamp = 0; Pid1.SetPointControlOutputRate = 4; Pid1.ControlOutputType = 0; Pid1.SsrControlOutputType = 0; Pid1.OutputOnOffHysteresisValue = 0; Pid1.ProcessVariableSamplingRate = 1000; Pid1.PvInputFilterFactorMode = 4; Pid1.OutputProportionalCycleTime = 0; Pid1.AcHeatersHalfCycleTime = 0; Pid1.ProportionalGain = 500.0; //hardwareConfiguration.PidControls.Add(Pid1); //Pid2.has_hardwarepidcontroltype = true; Pid2.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.DryerHeater200W1; // Pid2.has_outputproportionalpowerlimit = true; Pid2.OutputProportionalPowerLimit = 40; // Pid2.has_outputproportionalband = true; Pid2.OutputProportionalBand = 3; // Pid2.has_kp = true; Pid2.SensorCorrectionAdjustment = 0.5; //Pid2.has_ki = true; Pid2.IntegralTime = 0.1; Pid2.OutputProportionalPowerLimit = 80; Pid2.OutputProportionalBand = 5; Pid2.IntegralTime = 5; Pid2.DerivativeTime = 0; Pid2.SensorCorrectionAdjustment = 0; Pid2.SensorMinValue = 0; Pid2.SensorMaxValue = 0; Pid2.SetPointRampRateorSoftStartRamp = 0; Pid2.SetPointControlOutputRate = 4; Pid2.ControlOutputType = 0; Pid2.SsrControlOutputType = 0; Pid2.OutputOnOffHysteresisValue = 0; Pid2.ProcessVariableSamplingRate = 1000; Pid2.PvInputFilterFactorMode = 4; Pid2.OutputProportionalCycleTime = 0; Pid2.AcHeatersHalfCycleTime = 0; Pid2.ProportionalGain = 500.0; //hardwareConfiguration.PidControls.Add(Pid2); */ /* HardwarePidControl Pid3 = new HardwarePidControl(); HardwarePidControl Pid4 = new HardwarePidControl(); //Pid3.has_hardwarepidcontroltype = true; Pid3.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.HeadHeaterZ1; // Pid1.has_outputproportionalpowerlimit = true; Pid3.OutputProportionalPowerLimit = 50; // Pid1.has_outputproportionalband = true; Pid3.OutputProportionalBand = 3; // Pid1.has_kp = true; Pid3.SensorCorrectionAdjustment = 2.0; //Pid1.has_ki = true; Pid3.IntegralTime = 0.01; Pid3.OutputProportionalPowerLimit = 80; Pid3.OutputProportionalBand = 5; Pid3.IntegralTime = 5; Pid3.DerivativeTime = 0; Pid3.SensorCorrectionAdjustment = 0; Pid3.SensorMinValue = 0; Pid3.SensorMaxValue = 0; Pid3.SetPointRampRateorSoftStartRamp = 0; Pid3.SetPointControlOutputRate = 4; Pid3.ControlOutputType = 0; Pid3.SsrControlOutputType = 0; Pid3.OutputOnOffHysteresisValue = 0; Pid3.ProcessVariableSamplingRate = 1000; Pid3.PvInputFilterFactorMode = 4; Pid3.OutputProportionalCycleTime = 0; Pid3.AcHeatersHalfCycleTime = 0; Pid3.ProportionalGain = 500.0; hardwareConfiguration.PidControls.Add(Pid3); //Pid2.has_hardwarepidcontroltype = true; Pid4.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.HeadHeaterZ2; // Pid2.has_outputproportionalpowerlimit = true; Pid4.OutputProportionalPowerLimit = 40; // Pid2.has_outputproportionalband = true; Pid4.OutputProportionalBand = 3; // Pid2.has_kp = true; Pid4.SensorCorrectionAdjustment = 0.5; //Pid2.has_ki = true; Pid4.IntegralTime = 0.1; Pid4.OutputProportionalPowerLimit = 80; Pid4.OutputProportionalBand = 5; Pid4.IntegralTime = 5; Pid4.DerivativeTime = 0; Pid4.SensorCorrectionAdjustment = 0; Pid4.SensorMinValue = 0; Pid4.SensorMaxValue = 0; Pid4.SetPointRampRateorSoftStartRamp = 0; Pid4.SetPointControlOutputRate = 4; Pid4.ControlOutputType = 0; Pid4.SsrControlOutputType = 0; Pid4.OutputOnOffHysteresisValue = 0; Pid4.ProcessVariableSamplingRate = 1000; Pid4.PvInputFilterFactorMode = 4; Pid4.OutputProportionalCycleTime = 0; Pid4.AcHeatersHalfCycleTime = 0; Pid4.ProportionalGain = 500.0; hardwareConfiguration.PidControls.Add(Pid4); HardwarePidControl Pid5 = new HardwarePidControl(); HardwarePidControl Pid6 = new HardwarePidControl(); //Pid1.has_hardwarepidcontroltype = true; Pid5.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.HeadHeaterZ3; // Pid1.has_outputproportionalpowerlimit = true; Pid5.OutputProportionalPowerLimit = 50; // Pid1.has_outputproportionalband = true; Pid5.OutputProportionalBand = 3; // Pid1.has_kp = true; Pid5.SensorCorrectionAdjustment = 2.0; //Pid1.has_ki = true; Pid5.IntegralTime = 0.01; Pid5.OutputProportionalPowerLimit = 80; Pid5.OutputProportionalBand = 5; Pid5.IntegralTime = 5; Pid5.DerivativeTime = 0; Pid5.SensorCorrectionAdjustment = 0; Pid5.SensorMinValue = 0; Pid5.SensorMaxValue = 0; Pid5.SetPointRampRateorSoftStartRamp = 0; Pid5.SetPointControlOutputRate = 4; Pid5.ControlOutputType = 0; Pid5.SsrControlOutputType = 0; Pid5.OutputOnOffHysteresisValue = 0; Pid5.ProcessVariableSamplingRate = 1000; Pid5.PvInputFilterFactorMode = 4; Pid5.OutputProportionalCycleTime = 0; Pid5.AcHeatersHalfCycleTime = 0; Pid5.ProportionalGain = 500.0; hardwareConfiguration.PidControls.Add(Pid5); //Pid2.has_hardwarepidcontroltype = true; Pid6.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.HeadHeaterZ4; // Pid2.has_outputproportionalpowerlimit = true; Pid6.OutputProportionalPowerLimit = 40; // Pid2.has_outputproportionalband = true; Pid6.OutputProportionalBand = 3; // Pid2.has_kp = true; Pid6.SensorCorrectionAdjustment = 0.5; //Pid2.has_ki = true; Pid6.IntegralTime = 0.1; Pid6.OutputProportionalPowerLimit = 80; Pid6.OutputProportionalBand = 5; Pid6.IntegralTime = 5; Pid6.DerivativeTime = 0; Pid6.SensorCorrectionAdjustment = 0; Pid6.SensorMinValue = 0; Pid6.SensorMaxValue = 0; Pid6.SetPointRampRateorSoftStartRamp = 0; Pid6.SetPointControlOutputRate = 4; Pid6.ControlOutputType = 0; Pid6.SsrControlOutputType = 0; Pid6.OutputOnOffHysteresisValue = 0; Pid6.ProcessVariableSamplingRate = 1000; Pid6.PvInputFilterFactorMode = 4; Pid6.OutputProportionalCycleTime = 0; Pid6.AcHeatersHalfCycleTime = 0; Pid6.ProportionalGain = 500.0; hardwareConfiguration.PidControls.Add(Pid6); /* HardwarePidControl Pid7 = new HardwarePidControl(); //Pid1.has_hardwarepidcontroltype = true; Pid7.HardwarePidControlType = Tango.PMR.Hardware.HardwarePidControlType.MixerHeater; // Pid1.has_outputproportionalpowerlimit = true; Pid7.OutputProportionalPowerLimit = 50; // Pid1.has_outputproportionalband = true; Pid7.OutputProportionalBand = 3; // Pid1.has_kp = true; Pid7.SensorCorrectionAdjustment = 2.0; //Pid1.has_ki = true; Pid7.IntegralTime = 0.01; //hardwareConfiguration.PidControls.Add(Pid7); */ HardwareDancer hardwareDancer1 = new HardwareDancer(); hardwareDancer1.HardwareDancerType = Tango.PMR.Hardware.HardwareDancerType.RightDancer; hardwareDancer1.Gradual = false; hardwareDancer1.K = 0; hardwareDancer1.X = 0; hardwareDancer1.PulsePerMmSpring = 0; hardwareDancer1.MaximalMovementMm = 15; hardwareDancer1.ZeroPoint = 13626; hardwareDancer1.ResolutionBits = 14; hardwareDancer1.ArmLength = 126; hardwareConfiguration.Dancers.Add(hardwareDancer1); HardwareDancer hardwareDancer2 = new HardwareDancer(); hardwareDancer2.HardwareDancerType = Tango.PMR.Hardware.HardwareDancerType.MiddleDancer; hardwareDancer2.Gradual = false; hardwareDancer2.K = 0; hardwareDancer2.X = 0; hardwareDancer2.PulsePerMmSpring = 0; hardwareDancer2.MaximalMovementMm = 15; hardwareDancer2.ZeroPoint = 13200; hardwareDancer2.ResolutionBits = 14; hardwareDancer2.ArmLength = 126; hardwareConfiguration.Dancers.Add(hardwareDancer2); HardwareDancer hardwareDancer3 = new HardwareDancer(); hardwareDancer3.HardwareDancerType = Tango.PMR.Hardware.HardwareDancerType.LeftDancer; hardwareDancer3.Gradual = false; hardwareDancer3.K = 0; hardwareDancer3.X = 0; hardwareDancer3.PulsePerMmSpring = 0; hardwareDancer3.MaximalMovementMm = 15; hardwareDancer3.ZeroPoint = 11097; hardwareDancer3.ResolutionBits = 14; hardwareDancer3.ArmLength = 126; hardwareConfiguration.Dancers.Add(hardwareDancer3); HardwareMotor hardwareMotor1 = new HardwareMotor(); hardwareMotor1.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoRdriving; hardwareMotor1.MinFrequency = 0; hardwareMotor1.MaxFrequency = 1000000; hardwareMotor1.SetMicroStep = 1; hardwareMotor1.MicroStep = 1; hardwareMotor1.MaxChangeSlope = 10000; hardwareMotor1.HighLengthMicroSecond = 0; hardwareMotor1.SpeedMaster = false; hardwareMotor1.PulsePerRound = 200; hardwareMotor1.PulleyRadius = 1.25; hardwareMotor1.ConfigWord = 0x1C80; hardwareMotor1.DirectionThreadWize = true; hardwareMotor1.KvalHold = 0x35; hardwareMotor1.KvalRun = 0x7f; hardwareMotor1.KvalAcc = 0x7f; hardwareMotor1.KvalDec = 0x7f; hardwareMotor1.OverCurrentThreshold = 7; hardwareMotor1.StallThreshold = 0x1F; hardwareMotor1.ThermalCompensationFactor = 0; hardwareMotor1.LowSpeedOptimization = false; hardwareMotor1.StSlp = 0x20; hardwareMotor1.IntSpd = 0x1A13; hardwareMotor1.FnSlpAcc = 0x50; hardwareMotor1.FnSlpDec = 0x50; hardwareConfiguration.Motors.Add(hardwareMotor1); HardwareMotor hardwareMotor2 = new HardwareMotor(); hardwareMotor2.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoWinder; hardwareMotor2.MinFrequency = 0; hardwareMotor2.MaxFrequency = 1000000; hardwareMotor2.SetMicroStep = 1; hardwareMotor2.MicroStep = 16; hardwareMotor2.MaxChangeSlope = 10000; hardwareMotor2.HighLengthMicroSecond = 0; hardwareMotor2.SpeedMaster = false; hardwareMotor2.PulsePerRound = 200; hardwareMotor2.PulleyRadius = 1.68; hardwareMotor2.ConfigWord = 0x1c80; hardwareMotor2.DirectionThreadWize = false; hardwareMotor2.KvalHold = 0x35; hardwareMotor2.KvalRun = 0x7f; hardwareMotor2.KvalAcc = 0x7f; hardwareMotor2.KvalDec = 0x7f; hardwareMotor2.OverCurrentThreshold = 7; hardwareMotor2.StallThreshold = 0x1F; hardwareMotor2.ThermalCompensationFactor = 0; hardwareMotor2.LowSpeedOptimization = false; hardwareMotor2.StSlp = 0x20; hardwareMotor2.IntSpd = 0x1A13; hardwareMotor2.FnSlpAcc = 0x50; hardwareMotor2.FnSlpDec = 0x50; hardwareConfiguration.Motors.Add(hardwareMotor2); HardwareMotor hardwareMotor3 = new HardwareMotor(); hardwareMotor3.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoDryerDriving; hardwareMotor3.MinFrequency = 0; hardwareMotor3.MaxFrequency = 1000000; hardwareMotor3.SetMicroStep = 1; hardwareMotor3.MicroStep = 1; hardwareMotor3.MaxChangeSlope = 1000; hardwareMotor3.HighLengthMicroSecond = 0; hardwareMotor3.SpeedMaster = true; hardwareMotor3.PulsePerRound = 200; hardwareMotor3.PulleyRadius = 1.05; hardwareMotor3.ConfigWord = 0x1c80; hardwareMotor3.DirectionThreadWize = true; hardwareMotor3.KvalHold = 0x35; hardwareMotor3.KvalRun = 0x7f; hardwareMotor3.KvalAcc = 0x7f; hardwareMotor3.KvalDec = 0x7f; hardwareMotor3.OverCurrentThreshold = 7; hardwareMotor3.StallThreshold = 0x1F; hardwareMotor3.ThermalCompensationFactor = 0; hardwareMotor3.LowSpeedOptimization = false; hardwareMotor3.StSlp = 0x20; hardwareMotor3.IntSpd = 0x1A13; hardwareMotor3.FnSlpAcc = 0x50; hardwareMotor3.FnSlpDec = 0x50; hardwareConfiguration.Motors.Add(hardwareMotor3); HardwareMotor hardwareMotor4 = new HardwareMotor(); hardwareMotor4.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoLdriving; hardwareMotor4.MinFrequency = 0; hardwareMotor4.MaxFrequency = 1000000; hardwareMotor4.SetMicroStep = 1; hardwareMotor4.MicroStep = 8; hardwareMotor4.MaxChangeSlope = 10000; hardwareMotor4.HighLengthMicroSecond = 0; hardwareMotor4.SpeedMaster = false; hardwareMotor4.PulsePerRound = 200; hardwareMotor4.PulleyRadius = 1.25; hardwareMotor4.ConfigWord = 0x1C80; hardwareMotor4.DirectionThreadWize = true; hardwareMotor4.KvalHold = 0x35; hardwareMotor4.KvalRun = 0x7f; hardwareMotor4.KvalAcc = 0x7f; hardwareMotor4.KvalDec = 0x7f; hardwareMotor4.OverCurrentThreshold = 7; hardwareMotor4.StallThreshold = 0x1F; hardwareMotor4.ThermalCompensationFactor = 0; hardwareMotor4.LowSpeedOptimization = false; hardwareMotor4.StSlp = 20; hardwareMotor4.IntSpd = 0x1A13; hardwareMotor4.FnSlpAcc = 0x50; hardwareMotor4.FnSlpDec = 0x50; hardwareConfiguration.Motors.Add(hardwareMotor4); HardwareMotor hardwareMotor5 = new HardwareMotor(); hardwareMotor5.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoScrew; hardwareMotor5.MinFrequency = 0; hardwareMotor5.MaxFrequency = 1000000; hardwareMotor5.SetMicroStep = 1; hardwareMotor5.MicroStep = 8; hardwareMotor5.MaxChangeSlope = 10000; hardwareMotor5.HighLengthMicroSecond = 0; hardwareMotor5.SpeedMaster = false; hardwareMotor5.PulsePerRound = 200; hardwareMotor5.PulleyRadius = 1.3; hardwareMotor5.ConfigWord = 0x1C80; hardwareMotor5.DirectionThreadWize = true; hardwareMotor5.KvalHold = 0x35; hardwareMotor5.KvalRun = 0x7f; hardwareMotor5.KvalAcc = 0x7f; hardwareMotor5.KvalDec = 0x7f; hardwareMotor5.OverCurrentThreshold = 7; hardwareMotor5.StallThreshold = 0x1F; hardwareMotor5.ThermalCompensationFactor = 0; hardwareMotor5.LowSpeedOptimization = false; hardwareMotor5.StSlp = 0x20; hardwareMotor5.IntSpd = 0x1A13; hardwareMotor5.FnSlpAcc = 0x50; hardwareMotor5.FnSlpDec = 0x50; hardwareConfiguration.Motors.Add(hardwareMotor5); HardwareMotor hardwareMotor6 = new HardwareMotor(); hardwareMotor6.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoLloading; hardwareMotor6.MinFrequency = 0; hardwareMotor6.MaxFrequency = 1000000; hardwareMotor6.SetMicroStep = 1; hardwareMotor6.MicroStep = 4; hardwareMotor6.MaxChangeSlope = 10000; hardwareMotor6.HighLengthMicroSecond = 0; hardwareMotor6.SpeedMaster = false; hardwareMotor6.PulsePerRound = 200; hardwareMotor6.PulleyRadius = 1.3; hardwareMotor6.ConfigWord = 0xC80; hardwareMotor6.DirectionThreadWize = true; hardwareMotor6.KvalHold = 0x28; hardwareMotor6.KvalRun = 0x5f; hardwareMotor6.KvalAcc = 0x5f; hardwareMotor6.KvalDec = 0x5f; hardwareMotor6.OverCurrentThreshold = 7; hardwareMotor6.StallThreshold = 0x1F; hardwareMotor6.ThermalCompensationFactor = 0; hardwareMotor6.LowSpeedOptimization = false; hardwareMotor6.StSlp = 6; hardwareMotor6.IntSpd = 0x44B8; hardwareMotor6.FnSlpAcc = 0x14; hardwareMotor6.FnSlpDec = 0x14; hardwareConfiguration.Motors.Add(hardwareMotor6); HardwareMotor hardwareMotor7 = new HardwareMotor(); hardwareMotor7.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoRloading; hardwareMotor7.MinFrequency = 0; hardwareMotor7.MaxFrequency = 1000000; hardwareMotor7.SetMicroStep = 1; hardwareMotor7.MicroStep = 4; hardwareMotor7.MaxChangeSlope = 10000; hardwareMotor7.HighLengthMicroSecond = 0; hardwareMotor7.SpeedMaster = false; hardwareMotor7.PulsePerRound = 200; hardwareMotor7.PulleyRadius = 1.3; hardwareMotor7.ConfigWord = 0xC80; hardwareMotor7.DirectionThreadWize = false; hardwareMotor7.KvalHold = 0x28; hardwareMotor7.KvalRun = 0x5f; hardwareMotor7.KvalAcc = 0x5f; hardwareMotor7.KvalDec = 0x5f; hardwareMotor7.OverCurrentThreshold = 7; hardwareMotor7.StallThreshold = 0x1F; hardwareMotor7.ThermalCompensationFactor = 0; hardwareMotor7.LowSpeedOptimization = false; hardwareMotor7.StSlp = 6; hardwareMotor7.IntSpd = 0x44B8; hardwareMotor7.FnSlpAcc = 0x14; hardwareMotor7.FnSlpDec = 0x14; hardwareConfiguration.Motors.Add(hardwareMotor7); stubManager.WriteLine("data.data length = " + hardwareConfiguration.CalculateSize()); uploadHardwareConfigurationRequest.HardwareConfiguration = hardwareConfiguration; var response = stubManager.Run(uploadHardwareConfigurationRequest); /*Thread.Sleep(5000); stubManager.Run("StubGPIOWriteBitRequest" ,"Q", 7, false);//OFF Thread.Sleep(10); stubManager.Run("StubGPIOWriteBitRequest" ,"Q", 4, true);//ON Thread.Sleep(10); stubManager.Run("StubGPIOWriteBitRequest" ,"Q", 4, false);//OFF Thread.Sleep(10); stubManager.Run("StubGPIOWriteBitRequest" ,"Q", 4, true);//ON */ }