92 lines
2.5 KiB
C#
92 lines
2.5 KiB
C#
|
using System.Xml;
|
|||
|
using Aitex.Core.RT.DataCenter;
|
|||
|
using Aitex.Core.RT.Event;
|
|||
|
using Aitex.Core.RT.IOCore;
|
|||
|
using Aitex.Core.RT.Log;
|
|||
|
using Aitex.Core.RT.OperationCenter;
|
|||
|
using Aitex.Core.Util;
|
|||
|
|
|||
|
namespace Aitex.Core.RT.Device.Unit
|
|||
|
{
|
|||
|
public class IoLift4 : BaseDevice, IDevice
|
|||
|
{
|
|||
|
private DIAccessor _diUp;
|
|||
|
private DIAccessor _diDown;
|
|||
|
private DOAccessor _doUp;
|
|||
|
private DOAccessor _doDown;
|
|||
|
|
|||
|
public bool IsUp
|
|||
|
{
|
|||
|
get { return _diUp == null ? false : _diUp.Value; }
|
|||
|
}
|
|||
|
|
|||
|
public bool IsDown
|
|||
|
{
|
|||
|
get { return _diDown == null ? false : _diDown.Value; }
|
|||
|
}
|
|||
|
|
|||
|
public IoLift4(string module, XmlElement node, string ioModule = "")
|
|||
|
{
|
|||
|
base.Module = string.IsNullOrEmpty(node.GetAttribute("module")) ? module : node.GetAttribute("module");
|
|||
|
base.Name = node.GetAttribute("id");
|
|||
|
base.Display = node.GetAttribute("display");
|
|||
|
base.DeviceID = node.GetAttribute("schematicId");
|
|||
|
|
|||
|
_diUp = ParseDiNode("diUp", node, ioModule);
|
|||
|
_diDown = ParseDiNode("diDown", node, ioModule);
|
|||
|
_doUp = ParseDoNode("doUp", node, ioModule);
|
|||
|
_doDown = ParseDoNode("doDown", node, ioModule);
|
|||
|
}
|
|||
|
|
|||
|
public bool Initialize()
|
|||
|
{
|
|||
|
DATA.Subscribe($"{Module}.{Name}.UpSensor", () => _diUp.Value);
|
|||
|
DATA.Subscribe($"{Module}.{Name}.DownSensor", () => _diDown.Value);
|
|||
|
DATA.Subscribe($"{Module}.{Name}.DoUp", () => _doUp.Value);
|
|||
|
DATA.Subscribe($"{Module}.{Name}.DoDown", () => _doDown.Value);
|
|||
|
|
|||
|
OP.Subscribe($"{Module}.{Name}.MoveUp", (function, args) =>
|
|||
|
{
|
|||
|
return MoveUp(out string reason);
|
|||
|
});
|
|||
|
OP.Subscribe($"{Module}.{Name}.MoveDown", (function, args) =>
|
|||
|
{
|
|||
|
return MoveDown(out string reason);
|
|||
|
});
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public void Terminate()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public bool MoveUp(out string reason)
|
|||
|
{
|
|||
|
_doDown.SetValue(false, out reason);
|
|||
|
_doUp.SetValue(true, out reason);
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
public bool MoveDown(out string reason)
|
|||
|
{
|
|||
|
_doDown.SetValue(true, out reason);
|
|||
|
_doUp.SetValue(false, out reason);
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
public void Reset()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
public void Monitor()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|