Bug fix in diverter.

This commit is contained in:
Milan Hanajik
2018-06-20 11:02:16 +02:00
parent ea8d4cb63d
commit 324be83f9b
+18 -18
View File
@@ -30,12 +30,12 @@ namespace TBF.BenchControl.Elde.Diverter
readonly int diverterNr0; /// 0-based diverter number
public int DiverterNr { get { return diverterNr0 + 1; } } /// 1-based public diverter number
readonly DiverterCfg diverterCfg;
readonly ControlBoardDev controlBoard;
readonly UInt128 mask; /// derived from bitPosition in the constructor
public int AdcNr { get { return diverterCfg.AdcNr; } }
readonly int flowMtrNr4Cmd;
readonly IOperation diverterToTankOp;
readonly IOperation diverterToSinkOp;
@@ -91,8 +91,20 @@ namespace TBF.BenchControl.Elde.Diverter
Name, controlBoard.RegValveCalib.GetLength(0), diverterCfg.AdcNr);
}
diverterToTankOp = new SwitchDiverterOp(controlBoard, true, Name.Contains("1") ? 1 : 3);
diverterToSinkOp = new SwitchDiverterOp(controlBoard, false, Name.Contains("1") ? 1 : 3);
int divNrFromName = int.Parse(Name.Substring(3));
#if GENESIS || PETERSBURG_50 || PETERSBURG_200 || FUZHOU_40 || FUZHOU150 || FUZHOU300
flowMtrNr4Cmd = divNrFromName + 1;
#elif BADGER_STREDNA_TRAT
flowMtrNr4Cmd = (divNrFromName == 1) ? 1 : ((divNrFromName == 2) ? 9 : 20);
#elif BADGER_VELKA_TRAT
flowMtrNr4Cmd = ((divNrFromName % 10) == 1) ? 0x11 : (((divNrFromName % 10) == 2) ? 0x22 : 0x33);
#else
flowMtrNr4Cmd = (divNrFromName == 1) ? 1 : 3;
#endif
diverterToTankOp = new SwitchDiverterOp(controlBoard, true, flowMtrNr4Cmd);
diverterToSinkOp = new SwitchDiverterOp(controlBoard, false, flowMtrNr4Cmd);
log.Debug(this.ToString());
}
@@ -149,18 +161,6 @@ namespace TBF.BenchControl.Elde.Diverter
DiverterCfg tmpcfg = args.Cfg as DiverterCfg;
if (tmpcfg != null && tmpcfg.Name.Equals(Name))
{
int divNrFromName = int.Parse(Name.Substring(3));
#if GENESIS || PETERSBURG_50 || PETERSBURG_200 || FUZHOU_40 || FUZHOU150 || FUZHOU300
int flowMtrNr = divNrFromName + 1;
#elif BADGER_STREDNA_TRAT
int flowMtrNr = (divNrFromName == 1) ? 1 : ((divNrFromName == 2) ? 9 : 20);
#elif BADGER_VELKA_TRAT
int flowMtrNr = ((divNrFromName % 10) == 1) ? 0x11 : (((divNrFromName % 10) == 2) ? 0x22 : 0x33);
#else
int flowMtrNr = (divNrFromName == 1) ? 1 : 3;
#endif
if (args.Command == CfgChangeCmd.CfgChange)
{
}
@@ -171,15 +171,15 @@ namespace TBF.BenchControl.Elde.Diverter
}
else if (args.Command == CfgChangeCmd.DivToTank)
{
controlBoard.DiverterToTank(flowMtrNr);
controlBoard.DiverterToTank(flowMtrNr4Cmd);
}
else if (args.Command == CfgChangeCmd.DivToSink)
{
controlBoard.DiverterToSink(flowMtrNr);
controlBoard.DiverterToSink(flowMtrNr4Cmd);
}
else if (args.Command == CfgChangeCmd.ReadDivTransition)
{
controlBoard.ReadDiverterTransition(flowMtrNr);
controlBoard.ReadDiverterTransition(flowMtrNr4Cmd);
}
}
};