diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-08-12 15:08:59 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-08-12 15:08:59 +0300 |
| commit | 9ff852a933908935c8f83dddc2722af9f283cdbc (patch) | |
| tree | 1e2d7bed142964af4dc527268ea6557815aa5db9 /Software/Stubs Collection/Procedures | |
| parent | 58fa53192dbeca600584a522abab1d6cabbb9f91 (diff) | |
| download | Tango-9ff852a933908935c8f83dddc2722af9f283cdbc.tar.gz Tango-9ff852a933908935c8f83dddc2722af9f283cdbc.zip | |
Version 1.4.6.41 - urgent fix for thread loading sw crash.
also FSE studio procedures update.
Diffstat (limited to 'Software/Stubs Collection/Procedures')
5 files changed, 5 insertions, 2 deletions
diff --git a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj index 848c78a65..cb927de17 100644 --- a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj +++ b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj @@ -1 +1 @@ -{"$id":"1","Inputs":{"$id":"2","$values":[{"$id":"3","Type":"Selection","SelectionInputs":{"$id":"4","$values":[{"$id":"5","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"6","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"7","Type":"Default","SelectionInputs":{"$id":"8","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"9","Type":"Default","SelectionInputs":{"$id":"10","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Dialogs":{"$id":"11","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","Name":"EmbeddedParametersBuild","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","ApartmentState":"MTA","ReferenceAssemblies":{"$id":"12","$values":[{"$id":"13","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"14","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"15","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"23","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Scripts":{"$id":"24","$values":[{"$id":"25","Name":"Program.csx","IsEntryPoint":true,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\t\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tFileStream fs = new FileStream(\"C:/temp/EmbParam.cfg\",FileMode.Open);\r\n\r\n\t\twhile (fs.Position < fs.Length)\r\n\t\t{\r\n\t\t\t\tcontext.Write(\"Position \"+ fs.Position+ \" Length \"+ fs.Length +\"\\n\\n\");\r\n\t\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\t\tbyte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];\r\n\t\t\t\tfs.Read(chunk,0,chunk.Length);\r\n\t\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);\t\r\n\t\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\t\tThread.Sleep(2000);\r\n\r\n\t\t}\r\n\r\n\t\t// activating the new file\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xCD;\r\n\t\tprogressRequest.Delay = 0xCD;\r\n\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\r\n }\r\n}"},{"$id":"26","Name":"Service.csx","IsEntryPoint":false,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}"}]}}
\ No newline at end of file +{"$id":"1","Name":"EmbeddedParametersBuild1","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\t/*Directory.CreateDirectory (\"C:/Temp\");\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes1 = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");*/\r\n\t\tbyte[] fileBytes = configurationParameters.ToBytes();\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tcontext.Write(\"Chunk size \"+ chunk_size + \" file size \"+ fileBytes.Length +\"\\n\\n\");\r\n\t\tif (chunk_size < fileBytes.Length)\r\n\t\t{\r\n\t\t\tcontext.AddResult(ResultType.Failed, \"Chunk size too small\", chunk_size);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(fileBytes);\t\r\n\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\r\n\t\t\t//if (response3.\r\n\r\n\t\t\t// activating the new file\r\n\t\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\t\tprogressRequest.Amount = 0xCD;\r\n\t\t\tprogressRequest.Delay = 0xCD;\r\n\t\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\t\t\tcontext.AddResult(ResultType.Passed, \"parameters loaded\", chunk_size);\r\n\t\t}\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"9","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"10","Type":"Default","SelectionInputs":{"$id":"11","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"12","Type":"Default","SelectionInputs":{"$id":"13","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Variables":{"$id":"14","$values":[]},"ReferenceAssemblies":{"$id":"15","$values":[{"$id":"16","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"25","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"26","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"27","$values":[]},"Dialogs":{"$id":"28","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild_w_file.pproj b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild_w_file.pproj new file mode 100644 index 000000000..643a26ce3 --- /dev/null +++ b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild_w_file.pproj @@ -0,0 +1 @@ +{"$id":"1","Name":"EmbeddedParametersBuild","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\tDirectory.CreateDirectory (\"C:/Temp\");\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tFileStream fs = new FileStream(\"C:/temp/EmbParam.cfg\",FileMode.Open);\r\n\r\n\t\twhile (fs.Position < fs.Length)\r\n\t\t{\r\n\t\t\t\tcontext.Write(\"Position \"+ fs.Position+ \" Length \"+ fs.Length +\"\\n\\n\");\r\n\t\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\t\tbyte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];\r\n\t\t\t\tfs.Read(chunk,0,chunk.Length);\r\n\t\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);\t\r\n\t\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\t\tThread.Sleep(2000);\r\n\r\n\t\t}\r\n\r\n\t\t// activating the new file\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xCD;\r\n\t\tprogressRequest.Delay = 0xCD;\r\n\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"9","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"10","Type":"Default","SelectionInputs":{"$id":"11","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"12","Type":"Default","SelectionInputs":{"$id":"13","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Variables":{"$id":"14","$values":[]},"ReferenceAssemblies":{"$id":"15","$values":[{"$id":"16","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"25","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"26","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"27","$values":[]},"Dialogs":{"$id":"28","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/Loading arm calibration.pproj b/Software/Stubs Collection/Procedures/Loading arm calibration.pproj new file mode 100644 index 000000000..e1aacdf5d --- /dev/null +++ b/Software/Stubs Collection/Procedures/Loading arm calibration.pproj @@ -0,0 +1 @@ +{"$id":"1","Name":"Loading arm calibration","Description":"This procedure stores the loading arm center according to the current hardware read. it also stores 0 as the number of cycles.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xB1;\r\n\t\t//progressRequest.Delay = 1;\r\n\t\r\n\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n\t\r\n\t\tprogressRequest.Amount = 0xB2;\r\n\t\tprogressRequest.Delay = 0;\r\n\t\r\n\t\tresponse = context.Send<ProgressResponse>(progressRequest);\r\n\r\n context.AddResult(ResultType.Passed, \"Loading Arm Calibrated\", \"OK\");\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"68fd5a49-b7ad-4d85-a305-75dc06b35f2f","ApartmentState":"STA"}
\ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/Mid tank calibration.pproj b/Software/Stubs Collection/Procedures/Mid tank calibration.pproj new file mode 100644 index 000000000..0bb05e75b --- /dev/null +++ b/Software/Stubs Collection/Procedures/Mid tank calibration.pproj @@ -0,0 +1 @@ +{"$id":"1","Inputs":{"$id":"2","$values":[{"$id":"3","Type":"Default","SelectionInputs":{"$id":"4","$values":[]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms","Key":"CheckTampers","Value":"1.0"},{"$id":"5","Type":"Default","SelectionInputs":{"$id":"6","$values":[]},"DisplayName":"Initial Heating on startup","Description":"Initial Heating on startup","Key":"InitialHeating","Value":"true"},{"$id":"7","Type":"Default","SelectionInputs":{"$id":"8","$values":[]},"DisplayName":"WCF Value","Description":"WCF Value","Key":"WCF_Value","Value":"40"},{"$id":"9","Type":"Default","SelectionInputs":{"$id":"10","$values":[]},"DisplayName":"AutoFill Mode","Description":"Controls the AutoFill Mode","Key":"AutoFillMode","Value":"3.0"}]},"Variables":{"$id":"11","$values":[]},"Resources":{"$id":"12","$values":[]},"Dialogs":{"$id":"13","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","Name":"Mid tank calibration","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","ApartmentState":"MTA","ReferenceAssemblies":{"$id":"14","$values":[{"$id":"15","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"16","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"25","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Scripts":{"$id":"26","$values":[{"$id":"27","Name":"Program.csx","IsEntryPoint":true,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.IO;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Program\r\n{\r\n\r\nprivate IProcedureContext context;\r\n\r\n\t//----------------------\r\n\tconst double \tSlop=0.92;\r\n\tconst double\tMIN_SLOP=0.7;\r\n\tconst double\tMAX_SLOP=1.4;\r\n\tconst double\tERROR_SLOP=-1;\r\n\tconst double\tMIN_50cc_on_volt=2.3;\r\n\tconst double\tMAX_50cc_on_volt=3.2;\r\n\tconst double\tERROR_50cc_on_volt=-1;\r\n\tdouble CartSizeLiter = 1.0;\r\n\t\r\n\tint [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};\r\n\tuint [,] ADC_Add_Chnl = new uint [8,2]\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x20},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x08},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x80},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x20},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x10},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x04},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x40},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x10},\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\r\n\t\r\n\tconst Int32\tF3_VALVE_OUT\t=\t0x600008E2\t;\r\n\tstring Machine_SN\t;\r\n\tprivate const string FILE_PATH = @\"C:\\MidTankLog\\\";\r\n\tstring File_name;\r\n\tdouble [,] voltage_array = new double[9,9];\r\n\tstring [] Parameter = new string[5] {\"\\t\",\"Empty [V]\",\"100cc [V]\",\"800cc [V]\",\" b [L/V] \"};\r\n\t\tdouble Full_Cartridge=1;\t// 1 litter less 100 cc\r\n\t\r\n\t//----------------------\r\n\tconst Int32 I2C_ID = 2;\r\n\t//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46\r\n\t//----------------------\r\n\t\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\tthis.context = context;\r\n\t\r\n\tInt32 midtankno = 0;\r\n\tdouble Full_Point=0;\t\t\t//on Voltage\r\n\tdouble resualt;\r\n\tdouble Sum=0 ;\r\n\tdouble Old_Sum=0 ;\r\n\t\r\n\r\n\tif (!Directory.Exists(FILE_PATH))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(FILE_PATH);\r\n\t\t}\t\t\t\r\n\r\n\r\n \t//Machine_SN = context.GetInput<string>(\"Midtank_SN\");\r\n var response = context.RequestUserInputFor<String>(\"Mid Tank Serial Number\", \"Enter Midtank S/N:\");\r\n\tcontext.Write(\"\\n\");\r\n\tMachine_SN = response;\r\n\tcontext.WriteLine(Machine_SN);\r\n\tFile_name= FILE_PATH +Machine_SN + DateTime.Now.ToString(\"MM_dd_yyyy_HH_mm_ss\")+\".csv\";\r\n\tcontext.Write(File_name);\r\n \tcontext.WriteToFile(File_name,\"MidTank S/N:,\" + Machine_SN); \r\n\t\r\n\t\r\n\r\n\t//midtankno = context.GetInput<int>(\"MidTankId\");\r\n\tvar response1 = context.RequestUserInputFor<String>(\"Mid Tank Number\", \"Enter Midtank number to calibrate (1-8):\");\r\n\tcontext.WriteLine(response1);\r\n\tmidtankno = Int32.Parse(response1);\r\n \tcontext.AppendToFile(File_name,\"MidTank Number:\\t\" + response1);\r\n\r\n\r\n\tvar response2 = context.RequestUserInputFor<int>(\"Cartridge size\", \"Enter enter cartridge size in ml (1000/700/500):\");\r\n\tcontext.WriteLine(response2);\r\n\tint Cart_size = response2;\r\n \tcontext.AppendToFile(File_name,\"Cartrideg size:\\t\" + response2);\r\n\r\n\r\n string box_msg = \"Please Insert cartridge with\" +Cart_size+\"cc (Lubbricant add 500cc only) \";\r\n// string box_title = \"Midatnk empty\";\r\n// context.ShowInfo(box_msg, box_title);\r\n\tcontext.ShowInfo(box_msg);\r\n\r\n\t//int CartInserted = 0;\r\n\t//while (CartInserted == 0)\r\n\t//\tCartInserted = context.GetInput<int>(\"insertCartridge\");\r\n\t\r\n\tCartSizeLiter = Cart_size/1000;\r\n\t\r\n\topen_valve(midtankno,1,1)\t\t;\t//open Air valve\r\n\topen_valve(midtankno,0,1)\t\t;\t//open Ink valve\r\n\tInt32 i=0; \r\n\twhile (i<60*15)\t\t\t\t\t//check for 15 minitus \r\n\t{\r\n\t\tSum=0;\r\n\t\tfor (Int32 j=0;j<30;j++)\r\n\t\t{\r\n\t\t\tresualt=read_pressure_sensor(midtankno);\r\n\t\t\tcontext.AppendToFile(File_name,resualt+\",mV\");\r\n\t\t\tSum=Sum+resualt;\r\n\t\t\tThread.Sleep(1000);\r\n\t\t}\r\n\t\ti=i+1;\r\n\t\tif (Sum>Old_Sum)\r\n\t\t\tOld_Sum=Sum-Old_Sum;\r\n\t\telse\r\n\t\t\tOld_Sum=Old_Sum-Sum;\r\n\t\t\t\r\n\t\tif ( Old_Sum <0.02)\t\r\n\t\t\ti=60*15;\t\t//end \r\n\t\tOld_Sum=Sum;\r\n\t}\r\n\tFull_Point=Sum/30;\r\n\t\r\n\tbox_msg = \"Send file\" + File_name +\"to Mati\"; \r\n\tcontext.ShowInfo(box_msg);\r\n\t\r\n\t\r\n\t//\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0x000f);\t\t// open all valve air of midtank and close all ink of midtank\r\n\t//\tThread.Sleep(500);\r\n\t//\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0x00ff);\t\t// open all valve air of midtank and close all ink of midtank\r\n\t//\tThread.Sleep(500);\r\n\t//\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0x0fff);\t\t// open all valve air of midtank and close all ink of midtank\r\n\t//\tThread.Sleep(500);\r\n\t//\tcontext.Send<StubFpgaWriteRegResponse>(\"stubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0xffff);\t\t// open all valve air and ink of midtank\r\n\t//\r\n\t//\tThread.Sleep(2500);\r\n\r\n\t//\tThread.Sleep(1000);\t\r\n\t\t\r\n\t//\tread_pressure_sensor(1);\r\n \t\t\r\n\t//\tbox_msg =\"Insert 100cc of appropriate ink/lube to each midtank\\n\\t1.black ink\\n\\t2. Magenta ink\\n\\t3. Transparent ink\\n\\t4. Cleaner\\n\\t5. Cyan ink\\n\\t6. Yellow ink\\n\\t7. Spot color\\n\\t8. Lubricant/n\";\r\n // context.ShowInfo(box_msg);\r\n//\r\n\t//\tread_pressure_sensor(2);\r\n\r\n\t\t\t\t\t//\tvoltage_array[3,2]=2.5;\r\n\t\t\r\n//\t\tbox_msg = \"Add another 700cc for ink and TI \\nFor Lubbricant add 500cc only.\"; \r\n//\t\tcontext.ShowInfo(box_msg);\r\n//\t\tread_pressure_sensor(3);\r\n//\t\t\t\tcontext.Send<StubFpgaWriteRegResponse>(\"stubFpgaWriteRegRequest\" ,F3_VALVE_OUT, 0x0000);\t\t// close all valve air and ink of midtank\r\n\t\t\t\t\t\t\t\t\t//\t\t\tvoltage_array[3,3]=4.5;\r\n\tclose_valve(midtankno,1,1)\t\t;\t//close Air valve\r\n\tclose_valve(midtankno,0,1)\t\t;\t//close Ink valve\r\n\r\n//\t\tcalc_slop();\r\n//\t\tprint_table();\r\n\t\t\r\n//\t\tinsert_slop_t_eeprom(Full_Point, midtankno);\r\n\t\tinsert_slop_t_eeprom(Full_Point, midtankno);\r\n\t\tbox_msg =\"Turn Power Off and On to finish the calibration.\";\r\n context.ShowInfo(box_msg);\r\n\t\r\n\t}\r\n\r\nint calc_slop()\r\n\t{\r\n\tcontext.Write(\"\\n \");\r\n\t\t\r\n\tdouble delta;\r\n\tfor (uint i=1;i<9;i++)\r\n\t\t{\r\n\t\t\tdelta=voltage_array[i,3]-voltage_array[i,2];\r\n\t\t\r\n\t\t\tcontext.Write(\"\\nMidtank No:\"+i +\"=\"+delta);\r\n//\t\t\tif (i==8)\r\n\t\t\t\tdelta=CartSizeLiter/delta;\t\t\t\t\t\t\t\t\t\t\t\t//0.5 litter on lubricant\t\t\t\r\n//\t\t\telse \r\n//\t\t\t\tdelta=CartSizeLiter/delta;\t\t\t\t\t\t\t\t\t\t\t\t//0.7 litter\r\n\t\t\t\t\r\n\t\t\tif ((delta<MIN_SLOP) || (delta >MAX_SLOP)) \r\n\t\t\t{\r\n\t\t\t\tvoltage_array[i,4]=ERROR_SLOP;\r\n\t\t//\t\tcontext.Write(\"123\");\r\n\t\t\t}\r\n\t\telse if\t((voltage_array[i,2]<MIN_50cc_on_volt) || (voltage_array[i,2]>MAX_50cc_on_volt ))\r\n\t\t\t\t\tvoltage_array[i,4]=ERROR_SLOP;\r\n\t\telse\r\n\t\tvoltage_array[i,4]=delta;\r\n\t\t}\r\n\treturn 1;\r\n\t}\r\n\r\n\r\n\tint\tinsert_slop_t_eeprom( double FullPoint,Int32 midtankno)\r\n{\r\n//\tcontext.Write(\"\\n \");\r\n\r\n\tMidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();\r\n\r\n\r\n//\tfor (uint i=1;i<9;i++)\r\n//\t{\r\n//\t\tif (voltage_array[i,4]!= ERROR_SLOP)\r\n//\t\t{\r\n\t\tMidTankData midTankData = new MidTankData();\r\n\t\tmidTankData.MidTankId = Convert.ToUInt32 (midtankno-1);\r\n\t\tmidTankData.InitialOffsetA =FullPoint - (Full_Cartridge-0.1)/Slop;\r\n\t\tmidTankData.SlopeB = Slop;\r\n\t\t\r\n\t\tcontext.Write(\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\t\tcontext.AppendToFile(File_name,\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\r\n\t\t\r\n\t\tmidTankDataSetupRequest.MidTankInfo.Add(midTankData);\r\n\t\r\n\t//\t}\r\nvar response = context.Send<MidTankDataSetupResponse>(midTankDataSetupRequest);\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t//}\r\n\r\n\r\nreturn\t1;\r\n}\r\n\r\n//\r\n//\r\n//int\t\tprint_table()\r\n//\t\t{\r\n//\r\n//\t\tfor (uint i=0;i<5;i++)\r\n//\t\t\t{\r\n//\t\t\t\tcontext.AppendToFile(File_name,Parameter[i]+\"\\t\"+voltage_array[1,i]+\"\\t\"+voltage_array[2,i]+\"\\t\"+voltage_array[3,i]+\"\\t\"+voltage_array[4,i]+\"\\t\"+voltage_array[5,i]+\"\\t\"+voltage_array[6,i]+\"\\t\"+voltage_array[7,i]+\"\\t\"+voltage_array[8,i]) ;\r\n// } \r\n// \r\n//\t\r\n//\t\t\treturn 1;\r\n//\r\n//\t\t}\r\n\r\n//start mat\r\n\r\nint adc_configuration(uint I2C_Slave_Add,uint channel ) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write\r\n\t\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\nint adc_set_for_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write\r\n\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\n\r\n\r\ndouble adc_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read\r\n\r\n\tvar response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\tuint temph=0;\r\n\tuint templ=0;\r\n\tuint temp;\r\n\tdouble calc;\r\n\tdouble calc1;\r\n\tdouble calc2;\r\n\t\t\ttemph=response1.ReadBytes[0];\r\n\t\t\ttempl=response1.ReadBytes[1];\r\n\t\t\ttemp = (temph << 8) | templ;\r\n\t\t\ttemp=temp & 0x0fff;\r\n\t\t\t\t\r\n\t\t\tcalc = (double)temp *2.5 / 4096.0;\r\n//\t\t\tcontext.Write(\"ADC [volts]:\\t\");\r\n//\t\t\tcontext.Write(calc+\"\\t\");\r\n\t\t\r\n\t\t\tcalc1 = (1.96- calc) * 4.64 + 1.96;\r\n\t\t\tcontext.Write(\"Vsensor [volts]:\\t\");\r\n\t\t\tcontext.Write(calc1 + \"\\n\");\r\n\r\n\t//\t\tvoltage_array[table_index_x,table_index_y]=calc1;\r\n\t\r\n\treturn calc1;\r\n\t}\r\n\r\ndouble\t\tread_pressure_sensor(Int32 i )\r\n\t{\r\ndouble resualt =0 ;\r\n\t\t switch (i)\r\n {\r\n case 1:\r\n\t\t\tadc_configuration(0x44,0x20);\t\t//a2d_address 0x44 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 2:\r\n\t\t\tadc_configuration(0x44,0x08);\t\t//a2d_address 0x44 channel channel 4\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 3:\r\n\t\t\tadc_configuration(0x46,0x80);\t\t//a2d_address 0x46 channel channel 0\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\tadc_configuration(0x46,0x20);\t\t//a2d_address 0x46 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 5:\r\n\t\t\tadc_configuration(0x44,0x10);\t\t//a2d_address 0x44 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 6:\r\n\t\t\tadc_configuration(0x44,0x04);\t\t//a2d_address 0x44 channel channel 5\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 7:\r\n\t\t\tadc_configuration(0x46,0x40);\t\t//a2d_address 0x46 channel channel 1\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 8:\r\n\t\t\tadc_configuration(0x46,0x10);\t\t//a2d_address 0x46 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n default:\r\n context.Write(\"Error\");\r\n\r\n break;\r\n\t }\t\r\n\t\t\r\n\t\treturn resualt;\r\n\t}\t\r\n\r\n\r\n//--------------------------------\r\nint open_valve (int valve_nm,int valve_type,int check_valve)\t\t//valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1]\t;\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);\t\r\n\t\r\n\t\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tif(!context.ShowWarningQuestion(\"Did \" + temp + \"Valve of Midtank \" + valve_nm +\" open?\"))\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tOpen\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_valve (int valve_nm,int valve_type,int check_valve)\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1];\t\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);\r\n\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tif(!context.ShowWarningQuestion(\"Did \" + temp +\" Valve of Midtank \" + valve_nm +\" close?\"))\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tclose\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\t\t\t\r\n\t\t}\r\n\treturn 1;\r\n\r\n}\r\n\r\npublic Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\tvar RetVal = Fpga_Read_Reg(Adr);\r\n\tInt32 RV = (Int32) RetVal.Value;\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tFpga_Write_Reg( Adr, RV );\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tFpga_Write_Reg(Adr, RV );\t\r\n\t}\r\n\treturn 1;\r\n}\r\n\r\nint Fpga_Write_Reg(Int32 Addr, Int32 Data)\r\n{\r\n\tvar response = context.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,Addr, Data);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\n\r\nStubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr)\r\n{\r\n var response = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,Addr);\r\n\tresponse.Value = response.Value & 0xffff;\r\n\t\r\n\treturn response;\r\n}\r\n}"},{"$id":"28","Name":"Service.csx","IsEntryPoint":false,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}"}]}}
\ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj b/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj index 767f1f3cc..8632288f2 100644 --- a/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj +++ b/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj @@ -1 +1 @@ -{"$id":"1","Name":"WHS Loop Disable","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tint ControlLoopEnable = context.GetInput<int>(\"WasteControlLoop\");\r\n\t\t\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0x3e8;\r\n\t\tprogressRequest.Delay = ControlLoopEnable*0x1000+2700;\r\n\r\n\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n context.AddResult(ResultType.Passed, \"Success\", response.Progress);\r\n context.AddResult(ResultType.Failed, \"Failed\", response.Progress);\r\n\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Default","SelectionInputs":{"$id":"7","$values":[]},"DisplayName":"Waste Control Loop Enabled","Description":"Waste Control Loop Enabled","Key":"WasteControlLoop","Value":"1"}]},"ReferenceAssemblies":{"$id":"8","$values":[{"$id":"9","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"19","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"20","$values":[]},"ID":"eb9234b2-2aa0-4bf2-bfe4-dcc8de49bda6","ApartmentState":"MTA"}
\ No newline at end of file +{"$id":"1","Name":"WHS Loop Disable","Description":"This procedure controls the waste head flow control loop. Set the loop parameter to false to disable, to true to enable.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tint ControlLoopEnable = context.GetInput<int>(\"WasteControlLoop\");\r\n\t\t\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0x3e8;\r\n\t\tprogressRequest.Delay = ControlLoopEnable*0x1000+2700;\r\n\r\n\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n context.AddResult(ResultType.Passed, \"Success\", response.Progress);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable WHS Control","Value":"1"},{"$id":"9","Name":"Disable WHS Control","Value":"0"}]},"DisplayName":"Waste Control Loop Enable","Description":"Waste Control Loop Enable/Disable","Key":"WasteControlLoop","Value":"0"}]},"Variables":{"$id":"10","$values":[]},"ReferenceAssemblies":{"$id":"11","$values":[{"$id":"12","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"13","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"14","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"22","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"23","$values":[]},"Dialogs":{"$id":"24","$values":[]},"ID":"eb9234b2-2aa0-4bf2-bfe4-dcc8de49bda6","ApartmentState":"MTA"}
\ No newline at end of file |
