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
@@ -36,10 +36,10 @@ namespace TBF.Rig.Modbus.UltrasoundLevelMeter
/// <summary>Measurement time stamp when MsrmntState == MsrmntState.Valid</summary>
int msrmntTimeStamp;
int ticketNumber; /// 1 .. number of devices registered for regular polling
public LevelMeter()
{
}
public LevelMeter() { }
public LevelMeter(Generic.IComponentCfg cfg, IList<Generic.IComponent> components)
: base(cfg)
@@ -72,6 +72,7 @@ namespace TBF.Rig.Modbus.UltrasoundLevelMeter
}
msrmntState = MsrmntState.Busy;
ticketNumber = modbus.RegisterForPolling();
log.FatalFormat("Successfully initialized device {0}", ToString());
}
@@ -124,11 +125,13 @@ namespace TBF.Rig.Modbus.UltrasoundLevelMeter
Debug.WriteLine(line);
}
}
}
byte[] msg = new byte[8]; /// Buffer for data to send
if ((StateMachine.Time % 3) == 0) /// Each 3 seconds
public void RunDeviceAfter()
{
if (myCfg.DebugLevel != Config.Entities.DebugMode.Simulate &&
myCfg.DebugLevel != Config.Entities.DebugMode.FailureDuringOperation &&
modbus.IsMyTurn(ticketNumber))
{
///
/// Read distance, level, quantity, percentage and temperature in IEEE754 (DWORD-s)
@@ -137,17 +140,15 @@ namespace TBF.Rig.Modbus.UltrasoundLevelMeter
UInt16 count = 5;
/// Prepare data to be sent
byte[] msg = new byte[8]; /// Buffer for data to send
msg[0] = myCfg.ModbusAddress;
msg[1] = 3; /// CMD =
msg[2] = (byte)(regAddr >> 8); /// Control Word Hi
msg[3] = (byte)(regAddr & 0xFF); /// Control Word Lo
msg[4] = (byte)(count >> 8); /// Serial Com Reference Hi
msg[5] = (byte)(count & 0xFF); /// Serial Com Reference Lo
modbus.SendMessage(msg);
}
else if ((StateMachine.Time % 3) == 1) /// Each 3 seconds
{
/////
///// Read STATUS1
/////
@@ -155,17 +156,15 @@ namespace TBF.Rig.Modbus.UltrasoundLevelMeter
//UInt16 count = 1;
///// Prepare data to be sent
//byte[] msg = new byte[8]; /// Buffer for data to send
//msg[0] = myCfg.ModbusAddress;
//msg[1] = 3; /// CMD =
//msg[2] = (byte)(regAddr >> 8); /// Control Word Hi
//msg[3] = (byte)(regAddr & 0xFF); /// Control Word Lo
//msg[4] = (byte)(count >> 8); /// Serial Com Reference Hi
//msg[5] = (byte)(count & 0xFF); /// Serial Com Reference Lo
//modbus.SendMessage(msg);
}
else if ((StateMachine.Time % 3) == 2) /// Each 3 seconds
{
/////
///// Read distance, level, quantity, percentage and temperature in IEEE754 (DWORD-s)
/////
@@ -173,18 +172,17 @@ namespace TBF.Rig.Modbus.UltrasoundLevelMeter
//UInt16 count = 10;
///// Prepare data to be sent
//byte[] msg = new byte[8]; /// Buffer for data to send
//msg[0] = myCfg.ModbusAddress;
//msg[1] = 3; /// CMD =
//msg[2] = (byte)(regAddr >> 8); /// Control Word Hi
//msg[3] = (byte)(regAddr & 0xFF); /// Control Word Lo
//msg[4] = (byte)(count >> 8); /// Serial Com Reference Hi
//msg[5] = (byte)(count & 0xFF); /// Serial Com Reference Lo
//modbus.SendMessage(msg);
}
}
public void RunDeviceAfter() { }
public void StopDevice() { }
public void StopDevice2() { }
}