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.Debugging; using Tango.PMR.Stubs; using Tango.PMR.Hardware; using Tango.Stubs.UI; public void OnExecute(StubManager stubManager) { /* for (int i = 0; i < 10; i++) { var response = stubManager.Run("calculate", 10, 5); if (response.Sum == 15) { stubManager.WriteLine("OK!"); } } */ // Request ---- // Double : DryerZone1Temp // Double : DryerZone2Temp // RepeatedField`1 : HardwarePidControl // RepeatedField`1 : ProcessParameters // Response ---- // UInt32 : HeaterGroupId // UInt32 : Zone1Temp // UInt32 : Zone2Temp // Boolean : Heater1Active // Boolean : Heater2Active // UInt32 : Heater1Percentage // UInt32 : Heater2Percentage HardwarePidControl Pid1 = new HardwarePidControl(); HardwarePidControl Pid2 = new HardwarePidControl(); //Pid1.has_hardwarepidcontroltype = true; Pid1.HardwarePidControlType = (HardwarePidControlType)3; // 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; //Pid2.has_hardwarepidcontroltype = true; Pid2.HardwarePidControlType = (HardwarePidControlType)4; // Pid2.has_outputproportionalpowerlimit = true; Pid2.OutputProportionalPowerLimit = 40; // Pid2.has_outputproportionalband = true; Pid2.OutputProportionalBand = 2; // Pid2.has_kp = true; Pid2.SensorCorrectionAdjustment = 0.5; //Pid2.has_ki = true; Pid2.IntegralTime = 0.1; var response = stubManager.Run("StubHeatingTestRequest" ,100.0, 100.0, Pid1, Pid2); Pid1.HardwarePidControlType = (HardwarePidControlType)5; Pid2.HardwarePidControlType = (HardwarePidControlType)6; response = stubManager.Run("StubHeatingTestRequest" ,100.0, 100.0, Pid1, Pid2); int i=0; // Request ---- // Response ---- // UInt32 : HeaterGroupId // UInt32 : Zone1Temp // UInt32 : Zone2Temp // Boolean : Heater1Active // Boolean : Heater2Active // UInt32 : Heater1Percentage // UInt32 : Heater2Percentage //StubHeatingTestPollResponse response1; stubManager.RunContinuous("StubHeatingTestPollRequest",(response1) => { stubManager.WriteLine (String.Format("Temperature, {0}, State {1}, Init {2}, Id {3}, Actual {4}, Alloc {5}, Err {6} {7}",++i,response1.Heater1Active,response1.Heater2Active,response1.Zone1Temp,response1.Zone2Temp,response1.Heater1Percentage,response1.Heater2Percentage, response1.InfoMessage)); },0); /*stubManager.RunContinuous("DebugLogRequest",(response2) => { stubManager.WriteLine (String.Format("Report, {0}, {1}, {2}",response2.FileName,response2.LineNumber,response2.Message)); },0); */ }