Modbus.PressureMeter.Meret : data request sent every 3 seconds, ver. 2.17.681

This commit is contained in:
Milan Hanajik 2017-09-29 13:20:23 +02:00
parent 8a8f4fa563
commit 3dc347c66a

View File

@ -1,5 +1,5 @@
///
/// Copyright (c) 2016 Sensus Metering Systems
/// Copyright (c) 2016-2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
@ -79,7 +79,13 @@ namespace TBF.BenchControl.Modbus.PressureMeter.Meret
/// <summary>Run this device</summary>
public void RunDeviceBefore()
{
if (modbus.ReceivedTelegrams[pressureMtrCfg.ModbusAddress].Count > 0)
if (pressureMtrCfg.DebugLevel == Config.Entities.DebugMode.Simulate ||
pressureMtrCfg.DebugLevel == Config.Entities.DebugMode.FailureDuringOperation)
{
return;
}
if (modbus.ReceivedTelegrams[pressureMtrCfg.ModbusAddress].Count > 0)
{
byte[] telegram = modbus.ReceivedTelegrams[pressureMtrCfg.ModbusAddress].Dequeue();
if (telegram.Length == 9 && telegram[1] == 4 && telegram[2] == 4)
@ -97,14 +103,18 @@ namespace TBF.BenchControl.Modbus.PressureMeter.Meret
receivedPressure = System.BitConverter.ToSingle(telegram, 3);
}
}
if ((StateMachine.Time % 3) == (pressureMtrCfg.ModbusAddress % 3)) /// Each 3 seconds
{
const byte Function = 4; /// Read input registers
const ushort Address = 0; /// Pressure
modbus.SendMessage(pressureMtrCfg.ModbusAddress, Function, Address, 2);
}
}
/// <summary>Run this device</summary>
public void RunDeviceAfter()
{
const byte Function = 4; /// Read input registers
const ushort Address = 0; /// Pressure
modbus.SendMessage(pressureMtrCfg.ModbusAddress, Function, Address, 2);
}
/// <summary>Stop this device</summary>