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.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)0; // Pid1.has_outputproportionalpowerlimit = true; Pid1.OutputProportionalPowerLimit = 50; // Pid1.has_outputproportionalband = true; Pid1.OutputProportionalBand = 3; // Pid1.has_kp = true; Pid1.Kp = 2.0; //Pid1.has_ki = true; Pid1.Ki = 0.01; //Pid2.has_hardwarepidcontroltype = true; Pid2.HardwarePidControlType = (HardwarePidControlType)1; // Pid2.has_outputproportionalpowerlimit = true; Pid2.OutputProportionalPowerLimit = 40; // Pid2.has_outputproportionalband = true; Pid2.OutputProportionalBand = 3; // Pid2.has_kp = true; Pid2.Kp = 0.5; //Pid2.has_ki = true; Pid2.Ki = 0.1; int i=0; var response = stubManager.Run("StubHeatingTestRequest" ,200.0, 200.0, Pid1, Pid2); while (true) { // Request ---- // Response ---- // UInt32 : HeaterGroupId // UInt32 : Zone1Temp // UInt32 : Zone2Temp // Boolean : Heater1Active // Boolean : Heater2Active // UInt32 : Heater1Percentage // UInt32 : Heater2Percentage var response1 = stubManager.Run("StubHeatingTestPollRequest" ,0); stubManager.WriteLine ("{0}, {1}, {2}, {3}, {4}, {5}, {6}",++1,response1.Zone1Temp,response1.Zone2Temp,response1.Heater1Active,response1.Heater2Active,response1.Heater1Percentage,response1.Heater2Percentage); Thread.Sleep(100); } //var debugresponse = stubManager.RunContinuous(response)(); }