diff --git a/SCADA/Example/BatchCoreTest.exe b/SCADA/Example/BatchCoreTest.exe index be72798..a76ca9e 100644 Binary files a/SCADA/Example/BatchCoreTest.exe and b/SCADA/Example/BatchCoreTest.exe differ diff --git a/SCADA/Example/CoreTest.exe b/SCADA/Example/CoreTest.exe index 016e451..ccab608 100644 Binary files a/SCADA/Example/CoreTest.exe and b/SCADA/Example/CoreTest.exe differ diff --git a/SCADA/Program/FileDriver/TagDriver.cs b/SCADA/Program/FileDriver/TagDriver.cs index 4f731de..d9acb4a 100644 --- a/SCADA/Program/FileDriver/TagDriver.cs +++ b/SCADA/Program/FileDriver/TagDriver.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.ComponentModel; using DataService; +using System; namespace FileDriver { @@ -184,37 +185,93 @@ namespace FileDriver public int WriteBit(DeviceAddress address, bool bit) { - return 0; + var tag = _parent[(short)address.CacheIndex]; + if (tag != null) + { + Storage v = tag.Value; + v.Boolean = bit; + tag.Update(v, DateTime.Now, QUALITIES.QUALITY_GOOD); + return 0; + } + return -1; } public int WriteBits(DeviceAddress address, byte bits) { - return 0; + var tag = _parent[(short)address.CacheIndex]; + if (tag != null) + { + Storage v = tag.Value; + v.Byte = bits; + tag.Update(v, DateTime.Now, QUALITIES.QUALITY_GOOD); + return 0; + } + return -1; } public int WriteInt16(DeviceAddress address, short value) { - return 0; + var tag = _parent[(short)address.CacheIndex]; + if (tag != null) + { + Storage v = tag.Value; + v.Int16 = value; + tag.Update(v, DateTime.Now, QUALITIES.QUALITY_GOOD); + return 0; + } + return -1; } public int WriteUInt16(DeviceAddress address, ushort value) { - return 0; + var tag = _parent[(short)address.CacheIndex]; + if (tag != null) + { + Storage v = tag.Value; + v.Word = value; + tag.Update(v, DateTime.Now, QUALITIES.QUALITY_GOOD); + return 0; + } + return -1; } public int WriteUInt32(DeviceAddress address, uint value) { - return 0; + var tag = _parent[(short)address.CacheIndex]; + if (tag != null) + { + Storage v = tag.Value; + v.DWord = value; + tag.Update(v, DateTime.Now, QUALITIES.QUALITY_GOOD); + return 0; + } + return -1; } public int WriteInt32(DeviceAddress address, int value) { - return 0; + var tag = _parent[(short)address.CacheIndex]; + if (tag != null) + { + Storage v = tag.Value; + v.Int32 = value; + tag.Update(v, DateTime.Now, QUALITIES.QUALITY_GOOD); + return 0; + } + return -1; } public int WriteFloat(DeviceAddress address, float value) { - return 0; + var tag = _parent[(short)address.CacheIndex]; + if (tag != null) + { + Storage v = tag.Value; + v.Single = value; + tag.Update(v, DateTime.Now, QUALITIES.QUALITY_GOOD); + return 0; + } + return -1; } public int WriteString(DeviceAddress address, string str) diff --git a/SCADA/dll/FileDriver.dll b/SCADA/dll/FileDriver.dll index 7b44f9c..f2ac39e 100644 Binary files a/SCADA/dll/FileDriver.dll and b/SCADA/dll/FileDriver.dll differ