Sic.Framework-Nanjing-Baishi/MECF.Framework.RT.Equipment.../HardwareUnits/UPS/UPSGetHandler.cs

68 lines
2.1 KiB
C#

using Aitex.Core.RT.Log;
using MECF.Framework.Common.Communications;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.UPS
{
public class UPSGetHandler : UPSHandler
{
public UPSGetHandler(UPSBase device, string name, string messageType, string Oid)
: base(device, Oid)
{
Name = name;
MessageType = messageType;
}
public override bool HandleMessage(MessageBase msg, out bool handled)
{
var result = msg as UPSMessage;
handled = false;
if (!result.IsResponse) return true;
try
{
foreach (var dic in result.oidic)
{
var oid = Device.Oids.FirstOrDefault(m => m.Value.Substring(1) == dic.Key);
if (oid.Key == null)
{
continue;
}
if (oid.Key.Contains("InputVoltage"))
{
Device.ParseInputVoltage(dic.Value);
}
else if (oid.Key.Contains("BatteryVoltage"))
{
Device.ParseBatteryVoltage(dic.Value);
}
else if (oid.Key.Contains("BatteryRemainsTime"))
{
Device.ParseBatteryRemainsTime(dic.Value);
}
else if (oid.Key.Contains("BatteryUnderResidue"))
{
Device.SetBatteryUnderResidue(Convert.ToInt32(dic.Value));
}
else if (oid.Key.Contains("upsOutputSource"))
{
Device.ParseOutputSource(dic.Value);
}
}
}
catch (Exception ex)
{
LOG.Write(ex.Message);
}
Device.IsReceive = true;
Device._connectTimes = 0;
handled = true;
return true;
}
}
}