Selaa lähdekoodia

PendulumValve pressure full range.

sangwq 2 vuotta sitten
vanhempi
commit
4ae8734407
2 muutettua tiedostoa jossa 5 lisäystä ja 3 poistoa
  1. 1 0
      Venus/Venus_RT/Config/System.sccfg
  2. 4 3
      Venus/Venus_RT/Devices/PendulumValve.cs

+ 1 - 0
Venus/Venus_RT/Config/System.sccfg

@@ -487,6 +487,7 @@
 		</configs>
 		<configs name="PendulumValve" nameView="Pendulum Valve">
 			<config default="COM66" name="Port" nameView="Port" description="serial port name of PendulumValve" max="" min="" paramter="" tag="" unit="" type="String" />
+			<config default="400" name="PressureFullRange" nameView="PressureFullRange" description="Pressure Full Range of PendulumValve" max="100000" min="0" paramter="" tag="" unit="mtorr" type="Integer" />
 		</configs>
 
 

+ 4 - 3
Venus/Venus_RT/Devices/PendulumValve.cs

@@ -157,7 +157,7 @@ namespace Venus_RT.Devices
         private readonly string EOF = "\r\n";
         private readonly int _readInterval = 1000;
         private readonly int _position_unit = 100;
-        private readonly int _pressure_unit = 10;
+        private readonly int _pressure_ful_range = 500;
         private int _queryFlag = 0;
         private readonly AsyncSerialPort _serial;
         private Stopwatch _queryWatch = new Stopwatch();
@@ -170,6 +170,7 @@ namespace Venus_RT.Devices
             Module          = mod.ToString();
             var _PortNum    = SC.GetStringValue($"{mod}.PendulumValve.Port");
             _serial         = new AsyncSerialPort(_PortNum, 9600, 8, System.IO.Ports.Parity.None, System.IO.Ports.StopBits.One, EOF);
+            _pressure_ful_range = SC.GetValue<int>($"{mod}.PendulumValve.PressureFullRange");
             IsOpen = false;
         }
 
@@ -229,7 +230,7 @@ namespace Venus_RT.Devices
                         {
                             int pressure;
                             if (int.TryParse(data[1], out pressure))
-                                Pressure = pressure / _pressure_unit;
+                                Pressure = pressure  * _pressure_ful_range  / 1000;
                         }
                         break;
                     case "A":
@@ -376,7 +377,7 @@ namespace Venus_RT.Devices
             if(_CheckStatus())
             {
                 IsOpen = true;
-                return SendCommand(Operation.SetPressure, pressure * _pressure_unit);
+                return SendCommand(Operation.SetPressure, pressure * 1000 / _pressure_ful_range);
             }
 
             return false;