You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.3 KiB

using Common.Const;
using Entity.DbModel.Station;
using HybirdFrameworkCore.Autofac.Attribute;
using HybirdFrameworkCore.Const;
using HybirdFrameworkDriver.ModbusTcpMaster;
using log4net;
using Repository.Station;
using Service.Ammeter.Msg;
using Service.FireControl.Msg;
namespace Service.FireControl.Client;
[Scope]
public class AmmeterClient : ModbusTcpMaster
{
private static readonly ILog Log = LogManager.GetLogger(typeof(AmmeterClient));
public AmmeterClient()
{
ReadAction = BatchRead;
Ip = "";//172.0.50.100
Port = 502;
Duration = 1000;
AutoReConnect = true;
ByteSeq = EndingConst.ByteSeq.BA;
WordSeq= EndingConst.WordSeq.CD;
}
private bool BatchRead(ModbusTcpMaster master)
{
bool connectResult = false;
Log.Info("Ammeter start read");
#region 电表
//var bytes03 = master.Read("s=2;x=3;1", 3).Content;//0x03
var readPowerValue = master.Read("x=3;39424", 2).Content;
if (readPowerValue != null)
{
connectResult = true;
ModbusDecoder.Decode<ACMeters>(readPowerValue, AmmeterMgr.ACMeters, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
#endregion
return connectResult;
}
}