Route handling rewritten, the order of StopDevice( ) calls reversed.

This commit is contained in:
Milan Hanajik
2021-03-18 16:17:11 +01:00
parent d7e65ff04b
commit be9d912489
8 changed files with 172 additions and 108 deletions
+53 -28
View File
@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Xml.Serialization;
using Config.Entities;
using SchematicDrawing;
using TBF.Resources;
using TBF.Rig.Generic;
namespace TBF.Rig.ControlBoard.Uni
@@ -27,8 +28,9 @@ namespace TBF.Rig.ControlBoard.Uni
public int DivertersCount;
public int DrainValvesCount;
public int RegValvesCount;
public int VirtValvesRangeLo;
public int VirtValvesRangeHi;
public bool RelaysFInstalled;
public bool RelaysGInstalled;
public bool RelaysHInstalled;
/// Schematic drawing info
public Shape Shape { get; set; }
@@ -77,8 +79,12 @@ namespace TBF.Rig.ControlBoard.Uni
public void InitializeAll()
{
ComPortNr = 1;
VirtValvesRangeLo = 90;
VirtValvesRangeHi = 99;
DivertersCount = 3;
DrainValvesCount = 4;
RegValvesCount = 5;
RelaysFInstalled = true;
RelaysGInstalled = true;
RelaysHInstalled = true;
}
string[] paramNames = new string[]
@@ -87,23 +93,38 @@ namespace TBF.Rig.ControlBoard.Uni
"Diverters count (1..5)",
"Drain valves count (0..8)",
"Regulation valves count (4..8)",
"Virtual valves range LO [bit#]",
"Virtual valves range HI [bit#]",
"Relays F are installed",
"Relays G are installed",
"Relays H are installed",
};
public string ParamName(int i) { return paramNames[i]; }
public int ParamsCount() { return paramNames.Length; }
public ICollection<string> ParamValues(int i)
{
return null;
switch (i)
{
case 1:
return new string[] { "1", "2", "3", "4", "5" };
case 2:
return new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8" };
case 3:
return new string[] { "4", "5", "6", "7", "8" };
case 4:
case 5:
case 6:
return new string[] { Strings.yes, Strings.no };
default:
return null;
}
}
public string ToString(int i)
{
if (i == -1)
{
return string.Format("{0}: COM{1} DIVs={2} VBs={3} RVs={4} VirtVRangeLo={5}, VirtVRangeHi={6}",
Name, ComPortNr, DivertersCount, DrainValvesCount, RegValvesCount, VirtValvesRangeLo, VirtValvesRangeHi);
return string.Format("{0}: COM{1} DIVs={2} VBs={3} RVs={4} RelaysF={5} RelaysG={6} RelaysH={7}",
Name, ComPortNr, DivertersCount, DrainValvesCount, RegValvesCount, RelaysFInstalled, RelaysGInstalled, RelaysHInstalled);
}
switch (i)
@@ -112,27 +133,29 @@ namespace TBF.Rig.ControlBoard.Uni
case 1: return DivertersCount.ToString();
case 2: return DrainValvesCount.ToString();
case 3: return RegValvesCount.ToString();
case 4: return VirtValvesRangeLo.ToString();
case 5: return VirtValvesRangeHi.ToString();
case 4: return RelaysFInstalled ? Strings.yes : Strings.no;
case 5: return RelaysGInstalled ? Strings.yes : Strings.no;
case 6: return RelaysHInstalled ? Strings.yes : Strings.no;
default: return string.Empty;
}
}
public CfgUpdateFlags UpdateParam(int i, string strValue)
public CfgUpdateFlags UpdateParam(int i, string str)
{
switch (i)
{
case 0: ComPortNr = int.Parse(strValue); return CfgUpdateFlags.RestartRqrd;
case 1: DivertersCount = int.Parse(strValue); return CfgUpdateFlags.RestartRqrd;
case 2: DrainValvesCount = int.Parse(strValue); return CfgUpdateFlags.RestartRqrd;
case 3: RegValvesCount = int.Parse(strValue); return CfgUpdateFlags.RestartRqrd;
case 4: VirtValvesRangeLo = int.Parse(strValue); return CfgUpdateFlags.RestartRqrd;
case 5: VirtValvesRangeHi = int.Parse(strValue); return CfgUpdateFlags.RestartRqrd;
case 0: ComPortNr = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 1: DivertersCount = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 2: DrainValvesCount = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 3: RegValvesCount = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 4: RelaysFInstalled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
case 5: RelaysGInstalled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
case 6: RelaysHInstalled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
default: return CfgUpdateFlags.None;
}
}
public bool ValidateParam(int i, string strValue, out string message)
public bool ValidateParam(int i, string str, out string message)
{
message = string.Empty;
int n;
@@ -140,20 +163,21 @@ namespace TBF.Rig.ControlBoard.Uni
switch (i)
{
case 0:
if (int.TryParse(strValue, out n) && (n >= 1)) return true;
if (int.TryParse(str, out n) && (n >= 1)) return true;
break;
case 1:
if (int.TryParse(strValue, out n) && (n >= 1) && n <= 5) return true;
if (int.TryParse(str, out n) && (n >= 1) && n <= 5) return true;
break;
case 2:
if (int.TryParse(strValue, out n) && (n >= 0) && n <= 8) return true;
if (int.TryParse(str, out n) && (n >= 0) && n <= 8) return true;
break;
case 3:
if (int.TryParse(strValue, out n) && (n >= 4) && n <= 8) return true;
if (int.TryParse(str, out n) && (n >= 4) && n <= 8) return true;
break;
case 4:
case 5:
if (int.TryParse(strValue, out n) && (n >= 0) && n <= 127) return true;
case 6:
if (ParamValues(i).Contains(str)) return true;
break;
default:
message = "Invalid index";
@@ -167,11 +191,12 @@ namespace TBF.Rig.ControlBoard.Uni
void CopyContentTo(UniCBCfg prms)
{
prms.ComPortNr = ComPortNr;
prms.DivertersCount = DivertersCount;
prms.DivertersCount = DivertersCount;
prms.DrainValvesCount = DrainValvesCount;
prms.RegValvesCount = RegValvesCount;
prms.VirtValvesRangeLo = VirtValvesRangeLo;
prms.VirtValvesRangeHi = VirtValvesRangeHi;
prms.RegValvesCount = RegValvesCount;
prms.RelaysFInstalled = RelaysFInstalled;
prms.RelaysGInstalled = RelaysGInstalled;
prms.RelaysHInstalled = RelaysHInstalled;
}
public Config.Entities.IParamsProvider Clone()