Modbus modified, UniCB Init. modified, RunDeviceAfter() called in reversed order, ver. 3.1.1597

This commit is contained in:
Milan Hanajik
2021-03-18 16:16:49 +01:00
parent ff70a11cad
commit d7e65ff04b
14 changed files with 293 additions and 157 deletions
+26 -19
View File
@@ -24,9 +24,10 @@ namespace TBF.Rig.Modbus.Easytherm
public float requiredTemp { get { return easythermCfg.ProcParams.RequiredTemp; } }
public Easytherm()
{
}
int ticketNumber; /// 1 .. number of devices registered for regular polling
public Easytherm() { }
public Easytherm(Generic.IComponentCfg cfg, IList<Generic.IComponent> components)
: base(cfg)
@@ -47,6 +48,7 @@ namespace TBF.Rig.Modbus.Easytherm
temperatureSetPointValid = false;
temperatureSetPointRequested = false;
actualTemperatureIsValid = false;
ticketNumber = modbus.RegisterForPolling();
}
/// <summary>Run this device</summary>
@@ -81,26 +83,31 @@ namespace TBF.Rig.Modbus.Easytherm
// StateMachine.ControlBoard.UpdateUI("ReservoirTemp", easythermCfg.ReservoirNr, actualTemperature);
}
}
}
if (!temperatureSetPointValid && !temperatureSetPointRequested)
{
RequestTemperatureSetpoint();
temperatureSetPointRequested = true;
}
else if (temperatureSetPointValid && requiredTemp != temperatureSetPoint)
{
SetTemperatureSetpoint(requiredTemp);
log.InfoFormat("{0} - Set new temperature setpoint = {1}", Name, requiredTemp);
}
else if ((StateMachine.Time % 10) == (easythermCfg.ModbusAddress % 10)) /// This is to prevent overflow of the Modbus component queue for sending data
}
}
public void RunDeviceAfter()
{
if (easythermCfg.DebugLevel != Config.Entities.DebugMode.Simulate &&
easythermCfg.DebugLevel != Config.Entities.DebugMode.FailureDuringOperation)
{
RequestActualTemperature();
if (!temperatureSetPointValid && !temperatureSetPointRequested)
{
RequestTemperatureSetpoint();
temperatureSetPointRequested = true;
}
else if (temperatureSetPointValid && requiredTemp != temperatureSetPoint)
{
SetTemperatureSetpoint(requiredTemp);
log.InfoFormat("{0} - Set new temperature setpoint = {1}", Name, requiredTemp);
}
else if (modbus.IsMyTurn(ticketNumber))
{
RequestActualTemperature();
}
}
}
public void RunDeviceAfter() { }
public void StopDevice() { }
public void StopDevice2() { }