Initialization of 30 components changed, done in Initialize( ).

This commit is contained in:
Milan Hanajik
2021-04-03 00:54:27 +02:00
parent cb1a66381f
commit a58fe1f997
30 changed files with 347 additions and 445 deletions
+31 -30
View File
@@ -47,8 +47,8 @@ namespace TBF.Rig.Uni.Diverter
public bool State { get { return (uniCB.Route & mask) != 0; } }
readonly IOperation diverterToTankOp;
readonly IOperation diverterToSinkOp;
IOperation diverterToTankOp;
IOperation diverterToSinkOp;
FloatBox switchTimeStart;
FloatBox switchTimeEnd;
@@ -74,32 +74,21 @@ namespace TBF.Rig.Uni.Diverter
uniCB = TbfComponents.FindComponent(cfg.ParentName, components) as UniCB;
if (uniCB == null) throw new Exception("Cannot find " + Name + " parent");
if (cfg.DebugLevel != Config.Entities.DebugMode.Off)
{
if (divCfg.BitNr < 0 || divCfg.BitNr >= 64) throw new ArgumentOutOfRangeException("position");
this.mask = (((UInt128)1) << divCfg.BitNr);
if (divCfg.BitNr < 0 || divCfg.BitNr > 127) throw new ArgumentOutOfRangeException("position");
mask = (((UInt128)1) << divCfg.BitNr);
switchTimeStart = new FloatBox(divCfg.DfltSwithTimeStartMs / 1000.0f);
switchTimeEnd = new FloatBox(divCfg.DfltSwithTimeEndMs / 1000.0f);
log.Warn(this.ToString());
}
///// Prepare arguments of SendCalibData()
//if (diverterCfg.AdcNr >= 0 && diverterCfg.AdcNr < cBoard.RegValveCalib.GetLength(0))
//{
// cBoard.RegValveCalib[diverterCfg.AdcNr, 0] = (uint)diverterCfg.AdcValueToSink;
// cBoard.RegValveCalib[diverterCfg.AdcNr, 1] = (uint)diverterCfg.AdcValueToTank;
//}
//else
//{
// log.ErrorFormat("Unable to set {0} ADC levels: RegValveCalib array size={1}, diverter AdcNr={2}",
// Name, cBoard.RegValveCalib.GetLength(0), diverterCfg.AdcNr);
//}
public override void Initialize()
{
switchTimeStart = new FloatBox(divCfg.DfltSwithTimeStartMs / 1000.0f);
switchTimeEnd = new FloatBox(divCfg.DfltSwithTimeEndMs / 1000.0f);
diverterToTankOp = new SwitchDiverterOp(uniCB, DiverterNr, true);
diverterToSinkOp = new SwitchDiverterOp(uniCB, DiverterNr, false);
log.FatalFormat("{0} - Device successfully initialized", Name);
}
diverterToTankOp = new SwitchDiverterOp(uniCB, DiverterNr, true);
diverterToSinkOp = new SwitchDiverterOp(uniCB, DiverterNr, false);
log.Warn(this.ToString());
}
}
///
/// Calendar support
@@ -139,12 +128,12 @@ namespace TBF.Rig.Uni.Diverter
///
/// IDevice interface implementation
///
public void Initialize() { }
public void RunDeviceBefore()
{
Int16 adcValue = uniCB.Data.AnalogInput[divCfg.AdcNr];
Handlers.OnAdcChanged(this, new CmdResponseArgs(CfgChangeCmd.GetAdc, divCfg.BitNr, adcValue));
}
public void RunDeviceAfter() { }
public void StopDevice() { }
public void StopDevice2() { }
@@ -158,14 +147,26 @@ namespace TBF.Rig.Uni.Diverter
/// Returned strings are added to the combo-box
public string ConditionName(int i)
{
if (i == 0) return string.Format("{0} {1}", Name, Strings.Start);
else return string.Format("{0} {1}", Name, Strings.End);
switch (i)
{
case 0:
return string.Format("{0} {1}", Name, Strings.Start);
case 1:
default:
return string.Format("{0} {1}", Name, Strings.End);
}
}
public IOperation ConditionOp(int i)
{
if (i == 0) return diverterToTankOp;
else return diverterToSinkOp;
switch (i)
{
case 0:
return diverterToTankOp;
case 1:
default:
return diverterToSinkOp;
}
}
+7 -8
View File
@@ -23,7 +23,6 @@ namespace TBF.Rig.Uni.RegValve
public IDictionary<double, double> Dict { get { return dict; } }
public readonly UniCB UniCB;
readonly int adcChannel;
public ValveCategory Category { get { return regValveCfg.Category; } }
public int Idx1 { get { return regValveCfg.Idx1; } } /// 1 .. 8
@@ -62,6 +61,7 @@ namespace TBF.Rig.Uni.RegValve
/// TODO
}
int adcChannel;
public RegValveState RegValveState;
public double TargetRegValvePosition;
@@ -129,29 +129,28 @@ namespace TBF.Rig.Uni.RegValve
#endregion Configuration Change Handling
public RegValve()
{
}
public RegValve() { }
public RegValve(Generic.IComponentCfg cfg, IList<Generic.IComponent> components)
: base(cfg)
{
regValveCfg = cfg as RegValveCfg;
adcChannel = regValveCfg.Idx1 - 1;
this.UniCB = TbfComponents.FindComponent(cfg.ParentName, components) as UniCB;
if (this.UniCB == null) throw new Exception(string.Format("Cannot find {0} (a parent of {1})", cfg.ParentName, Name));
this.dict = new Dictionary<double, double>();
log.Warn(this.ToString());
}
public override void Initialize()
{
adcChannel = regValveCfg.Idx1 - 1;
this.dict = new Dictionary<double, double>();
}
///
/// IDevice interface implementation
///
public void Initialize() { }
public void RunDeviceBefore()
{
Int16 adcValue = UniCB.AnalogInput(adcChannel);