12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System;
- using System.Xml;
- using Aitex.Core.RT.IOCore;
- namespace Aitex.Core.RT.Device.Unit
- {
- public class IoPlcDateTime : BaseDevice, IDevice
- {
- private AIAccessor _aiYear;
- private AIAccessor _aiMonth;
- private AIAccessor _aiDay;
- private AIAccessor _aiHour;
- private AIAccessor _aiMinute;
- private AIAccessor _aiSecond;
- public const int YEAR_OFFSET = 2000;
- public DateTime CurrentDateTime
- {
- get
- {
- if (Year == 0 && Month == 0 && Day == 0 && Hour == 0 && Minute == 0 && Second == 0)
- return DateTime.Now;
- return new DateTime(Year, Month, Day, Hour, Minute, Second);
- }
- }
- public bool IsValid
- {
- get
- {
- return !(Year == -1 || Month == -1 || -1 == Day || -1 == Hour || -1 == Minute || -1 == Second);
- }
- }
- public int Year
- {
- get
- {
- int res = -1;
- if (_aiYear != null)
- {
- float a = (_aiYear.Value > 0 && _aiYear.Value < 100) ? (_aiYear.Value + YEAR_OFFSET) : _aiYear.Value;
- res = (int)a;
- }
- return res;
- }
- }
- public int Month => _aiMonth == null ? -1 : (int)_aiMonth.Value;
- public int Day => _aiDay == null ? -1 : (int)_aiDay.Value;
- public int Hour => _aiHour == null ? -1 : (int)_aiHour.Value;
- public int Minute => _aiMinute == null ? -1 : (int)_aiMinute.Value;
- public int Second => _aiSecond == null ? -1 : (int)_aiSecond.Value;
- public IoPlcDateTime(string module, XmlElement node)
- {
- base.Module = module;
- base.Name = node.GetAttribute("id");
- base.Display = node.GetAttribute("display");
- base.DeviceID = node.GetAttribute("schematicId");
- _aiYear = ParseAiNode("aiYear", node);
- _aiMonth = ParseAiNode("aiMonth", node);
- _aiDay = ParseAiNode("aiDay", node);
- _aiHour = ParseAiNode("aiHour", node);
- _aiMinute = ParseAiNode("aiMinute", node);
- _aiSecond = ParseAiNode("aiSecond", node);
- }
- public bool Initialize() { return true;}
- public void Terminate() { }
- public void Monitor() { }
- public void Reset() { }
- }
- }
|