64 lines
2.0 KiB
C#
64 lines
2.0 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.InputVoltage = Convert.ToSingle(dic.Value);
|
|||
|
}
|
|||
|
else if (oid.Key.Contains("BatteryVoltage"))
|
|||
|
{
|
|||
|
Device.BatteryVoltage = Convert.ToSingle(dic.Value);
|
|||
|
}
|
|||
|
else if (oid.Key.Contains("BatteryRemainsTime"))
|
|||
|
{
|
|||
|
Device.BatteryRemainsTime = Convert.ToInt32(dic.Value);
|
|||
|
}
|
|||
|
else if (oid.Key.Contains("BatteryUnderResidue"))
|
|||
|
{
|
|||
|
Device.SetBatteryUnderResidue(Convert.ToInt32(dic.Value));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
LOG.Write(ex.Message);
|
|||
|
}
|
|||
|
Device.IsReceive = true;
|
|||
|
Device._connectTimes = 0;
|
|||
|
handled = true;
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|