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.
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|