From 2c63d87a75c7c9cec8ebdb94bc7c0ed90027a157 Mon Sep 17 00:00:00 2001 From: Gavin <32365296+GavinYellow@users.noreply.github.com> Date: Fri, 30 Mar 2018 13:05:40 +0800 Subject: [PATCH] add dde driver --- SCADA/Program/.vs/DataExchange/v15/.suo | Bin 482304 -> 444416 bytes .../v15/Server/sqlite3/storage.ide | Bin 2646016 -> 3563520 bytes .../.vs/DataExchange/v15/sqlite3/storage.ide | Bin 3792896 -> 4796416 bytes SCADA/Program/DDEDriver/DDEDriver.cs | 743 ++++++++++++++++++ SCADA/Program/DDEDriver/DDEDriver.csproj | 64 ++ SCADA/Program/DDEDriver/DDELib.cs | 481 ++++++++++++ SCADA/Program/DDEDriver/DDEServer.cs | 620 +++++++++++++++ .../DDEDriver/Properties/AssemblyInfo.cs | 36 + SCADA/Program/DataExchange.sln | 18 +- SCADA/dll/DDEDriver.dll | Bin 0 -> 34816 bytes 10 files changed, 1961 insertions(+), 1 deletion(-) create mode 100644 SCADA/Program/DDEDriver/DDEDriver.cs create mode 100644 SCADA/Program/DDEDriver/DDEDriver.csproj create mode 100644 SCADA/Program/DDEDriver/DDELib.cs create mode 100644 SCADA/Program/DDEDriver/DDEServer.cs create mode 100644 SCADA/Program/DDEDriver/Properties/AssemblyInfo.cs create mode 100644 SCADA/dll/DDEDriver.dll diff --git a/SCADA/Program/.vs/DataExchange/v15/.suo b/SCADA/Program/.vs/DataExchange/v15/.suo index 9efd29ab3c7a0344fcc07a8b9f2d90a7fc5163ad..bd5ed9f77d6dbb55f3201c5a4d813a134f38dd72 100644 GIT binary patch delta 19970 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μ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 diff --git a/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide b/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide index 76b1dcdc144d30c3b6a9c3dce972775964e82f4f..dab93b04a31d40fce8a8b29858d732c21fd3fc17 100644 GIT binary patch delta 220195 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

V_TF>{*Y#DxIG|j?(!yXb7{v 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

b?_?f*_*pRfLI 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 S2dzjka0txGg%mnO;Qs--v~e#0 delta 4984 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 diff --git a/SCADA/Program/DDEDriver/DDEDriver.cs b/SCADA/Program/DDEDriver/DDEDriver.cs new file mode 100644 index 0000000..e208123 --- /dev/null +++ b/SCADA/Program/DDEDriver/DDEDriver.cs @@ -0,0 +1,743 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Text; +using DataService; + +namespace DDEDriver +{ + [Description("DDE 通讯协议")] + public class DDEReader : IDriver + { + //DDE用常量定义#region DDE用常量定义 + /**/ + ///

+ /// /////////////////////////////////////////////////////////////////////////// + /// /***** conversation states (usState) *****/ + /**/ + /// + private int dwDDEInst; // DDE Instance value + private IntPtr hconvCurrent; + //private bool bAutoConnect; + + //public string LinkDesc; + private DdeCallback _Callback; + + short _id; + public string LinkName; + + public short ID + { + get + { + return _id; + } + } + + string _name; + public string Name + { + get + { + return _name; + } + } + + string _server; + public string ServerName + { + get { return _server; } + set { _server = value; } + } + + string _topic; + public string Topic + { + get + { + return _topic; + } + set + { + _topic = value; + } + } + + internal bool _connected; + public bool IsClosed + { + get { return !_connected; } + } + + int _timeOut; + public int TimeOut + { + get { return _timeOut; } + set { _timeOut = value; } + } + + List _groups = new List(3); + public IEnumerable Groups + { + get { return _groups; } + } + + IDataServer _parent; + public IDataServer Parent + { + get { return _parent; } + } + + public DDEValueChangeEventHandler DDEValueChange; + + public DDEReader(IDataServer parent, short id, string name, string server, int timeOut = 2000, string topic = null, string spare2 = null) + { + _id = id; + _parent = parent; + _name = name; + _server = server; + _timeOut = timeOut; + _topic = topic; + LinkName = _server + "|" + _topic; + _Callback = DdeClientCallback; + } + + public unsafe bool Connect() + { + IntPtr hConv, hszService, hszTopic; + + if (dwDDEInst != 0) + { + Ddeml.DdeUninitialize(dwDDEInst); + dwDDEInst = 0; + } + if (hconvCurrent != IntPtr.Zero) + { + Ddeml.DdeDisconnect(hconvCurrent); + hconvCurrent = IntPtr.Zero; + }; + //如果是第一次,则什么也不做 + Ddeml.DdeInitialize(ref dwDDEInst, _Callback, 0x3f000, 0); + // Connect to the server + hszTopic = Ddeml.DdeCreateStringHandle(dwDDEInst, _topic, Ddeml.CP_WINANSI); + hszService = Ddeml.DdeCreateStringHandle(dwDDEInst, _server, Ddeml.CP_WINANSI); + CONVCONTEXT cc = new CONVCONTEXT(); + cc.cb = sizeof(CONVCONTEXT); + hConv = Ddeml.DdeConnect(dwDDEInst, hszService, hszTopic, ref cc); + //int DdeErrcode = Win32.DdeGetLastError(dwDDEInst); + + Ddeml.DdeFreeStringHandle(dwDDEInst, hszTopic); + Ddeml.DdeFreeStringHandle(dwDDEInst, hszService); + + if (hConv != IntPtr.Zero) + { + if (hconvCurrent != IntPtr.Zero) + { + Ddeml.DdeDisconnect(hconvCurrent); + } + hconvCurrent = hConv; + _connected = true; + return true; + } + else + { + _connected = false; + return false; + } + } + + private IntPtr DdeClientCallback(int uType, ConversionFormat uFmt, IntPtr hConv, IntPtr hsz1, IntPtr hsz2, IntPtr hData, uint dwData1, uint dwData2) + { + int dwLength = 0; + //DateTime time = DateTime.Now; + unsafe + { + switch (uType) + { + case Ddeml.XTYP_ADVDATA: + try + { + sbyte* pData = (sbyte*)Ddeml.DdeAccessData(hData, ref dwLength); + if (pData != null) + { + sbyte* pSZ = stackalloc sbyte[0xFF]; + Ddeml.DdeQueryString(dwDDEInst, hsz2, pSZ, 0xFF, Ddeml.CP_WINANSI); + if (DDEValueChange != null) + DDEValueChange(this, new DDEValueChangeEventArgs(new string(pSZ).ToUpper(), new string(pData, 0, dwLength))); + } + } + catch { } + finally + { + if (hData != IntPtr.Zero) Ddeml.DdeUnaccessData(hData); + } + break; + case Ddeml.XTYP_DISCONNECT: + if (OnError != null) + OnError(this, new IOErrorEventArgs("XTYP_DISCONNECT")); + _connected = false; + break; + case Ddeml.XTYP_XACT_COMPLETE: + break; + default: + break; + } + } + return new IntPtr(Ddeml.DDE_FACK); + } + + //与Server建立Hoot连接 + public unsafe bool TransactItem(string name) + { + IntPtr hszItem, hDDEData; + int dwResult = 0; + if (string.IsNullOrEmpty(name)) return false; + if (hconvCurrent != IntPtr.Zero) + { + hszItem = Ddeml.DdeCreateStringHandle(dwDDEInst, name, Ddeml.CP_WINANSI); + + hDDEData = Ddeml.DdeClientTransaction(null, + 0, + hconvCurrent, + hszItem, + ConversionFormat.TEXT,//CF_TEXT, + Ddeml.XTYP_ADVSTART, + Ddeml.TIMEOUT_ASYNC, // ms timeout + ref dwResult); + + Ddeml.DdeFreeStringHandle(dwDDEInst, hszItem); + + if (hDDEData != IntPtr.Zero) + { + try + { + int dwLength = 0; + sbyte* pData = (sbyte*)Ddeml.DdeAccessData(hDDEData, ref dwLength); + if ((pData != null) && (dwLength != 0)) + { + if (DDEValueChange != null) + DDEValueChange(this, new DDEValueChangeEventArgs(name, new string(pData, 0, dwLength))); + } + } + catch { } + finally + { + Ddeml.DdeUnaccessData(hDDEData); + } + + return true; + } + else + { + return false; + } + } + else + return false; + } + + public int Execute(string command) + { + int res = 0; + byte[] data = Encoding.ASCII.GetBytes(command); + Ddeml.DdeClientTransaction(data, data.Length, hconvCurrent, IntPtr.Zero, ConversionFormat.NONE, Ddeml.XTYP_EXECUTE, _timeOut, ref res); + return res; + } + + //必须设置item.ItemName和item.ItemValue后调用 + public int Poke(string name, string value) + { + IntPtr hszItem, hDDEData; + int dwResult = 0; + if (string.IsNullOrEmpty(name)) return -2; + if (hconvCurrent != IntPtr.Zero) + { + hszItem = Ddeml.DdeCreateStringHandle(dwDDEInst, name, Ddeml.CP_WINANSI); + if (!string.IsNullOrEmpty(name)) + { + //int errcode=Win32.DdeGetLastError(dwDDEInst); + byte[] ByteArray = Encoding.ASCII.GetBytes(value); + IntPtr hd = Ddeml.DdeCreateDataHandle(dwDDEInst, ByteArray, ByteArray.Length, 0, hszItem, ConversionFormat.TEXT, 0); + hDDEData = Ddeml.DdeClientTransaction( + ByteArray, ByteArray.Length, + hconvCurrent, hszItem, + ConversionFormat.TEXT,//CF_TEXT, + Ddeml.XTYP_POKE, + Ddeml.TIMEOUT_ASYNC, // ms timeout + ref dwResult); + Ddeml.DdeFreeStringHandle(dwDDEInst, hszItem); + + if (hDDEData != IntPtr.Zero) + { + return 1; + } + } + return -1; + } + else + return -1; + } + + // [10/24/2003] + //主动请求Item的值 + public unsafe string Request(string name) + { + IntPtr hszItem, hDDEData; + int dwResult = 0; + int dwLength = 0; + if (name != null && hconvCurrent != IntPtr.Zero) + { + hszItem = Ddeml.DdeCreateStringHandle(dwDDEInst, name, Ddeml.CP_WINANSI); + + hDDEData = Ddeml.DdeClientTransaction(null, + 0, + hconvCurrent, + hszItem, + ConversionFormat.TEXT,//CF_TEXT, + (int)Ddeml.XTYP_REQUEST, + 5000, // ms timeout + ref dwResult); + Ddeml.DdeFreeStringHandle(dwDDEInst, hszItem); + + if (hDDEData != IntPtr.Zero) + { + sbyte* pData = (sbyte*)Ddeml.DdeAccessData(hDDEData, ref dwLength); + { + if ((pData != null) && (dwLength != 0)) + { + return new string(pData, 0, dwLength); + } + } + } + } + return null; + } + + + public IGroup AddGroup(string name, short id, int updateRate, float deadBand = 0f, bool active = false) + { + if (_groups.Count > 0) + return null; + DDEGroup grp = new DDEGroup(id, name, updateRate, active, this); + _groups.Add(grp); + return grp; + } + + public bool RemoveGroup(IGroup grp) + { + grp.IsActive = false; + return _groups.Remove(grp); + } + + public void Dispose() + { + foreach (IGroup grp in _groups) + { + grp.Dispose(); + } + _groups.Clear(); + Ddeml.DdeDisconnect(hconvCurrent); + } + + public event IOErrorEventHandler OnError; + } + + public class DDEGroup : IGroup + { + bool _isActive; + public bool IsActive + { + get + { + return _isActive; + } + set + { + _isActive = value; + } + } + + short _id; + public short ID + { + get + { + return _id; + } + } + + int _updateRate; + public int UpdateRate + { + get + { + return _updateRate; + } + set + { + _updateRate = value; + } + } + + string _name; + public string Name + { + get + { + return _name; + } + set + { + _name = value; + } + } + + float deadband; + public float DeadBand + { + get + { + return deadband; + } + set + { + deadband = value; + } + } + + DDEReader _plcReader; + public IDriver Parent + { + get + { + return _plcReader; + } + } + + + List _changedList; + public List ChangedList + { + get + { + return _changedList; + } + } + + + List _items; + public IEnumerable Items + { + get { return _items; } + } + + IDataServer _server; + public IDataServer Server + { + get + { + return _server; + } + } + + Dictionary _mapping; + + public DDEGroup(short id, string address, int updateRate, bool active, DDEReader plcReader) + { + this._id = id; + this._updateRate = updateRate; + this._isActive = active; + this._plcReader = plcReader; + this._name = address; + this._server = _plcReader.Parent; + this._changedList = new List(100); + plcReader.DDEValueChange += new DDEValueChangeEventHandler(plcReader_DDEValueChange); + } + + void plcReader_DDEValueChange(object sender, DDEValueChangeEventArgs e) + { + string name = e.Name; + string data = e.Data; + ITag tag = _server[name]; + if (tag != null) + { + Storage value = Storage.Empty; + switch (tag.Address.VarType) + { + case DataType.BOOL: + value.Boolean = bool.Parse(data); + break; + case DataType.BYTE: + value.Byte = byte.Parse(data); + break; + case DataType.WORD: + case DataType.SHORT: + value.Int16 = short.Parse(data); + break; + case DataType.INT: + value.Int32 = int.Parse(data); + break; + case DataType.STR: + var stag = tag as StringTag; + if (stag != null) + { + stag.String = data; + } + break; + } + tag.Update(value, DateTime.Now, QUALITIES.QUALITY_GOOD); + if (DataChange != null) + DataChange(this, new DataChangeEventArgs(1, new HistoryData[]{ + new HistoryData(tag.ID,QUALITIES.QUALITY_GOOD,tag.Value,tag.TimeStamp)})); + } + } + + + public bool AddItems(IList items) + { + int count = items.Count; + if (_items == null) + { + _items = new List(count); + _mapping = new Dictionary(count); + } + lock (_server.SyncRoot) + { + for (int i = 0; i < count; i++) + { + ITag dataItem = null; + TagMetaData meta = items[i]; + if (meta.GroupID == this._id) + { + DeviceAddress addr = new DeviceAddress { Start = meta.ID, DataSize = meta.Size, VarType = meta.DataType }; + switch (meta.DataType) + { + case DataType.BOOL: + dataItem = new BoolTag(meta.ID, addr, this); + break; + case DataType.BYTE: + dataItem = new ByteTag(meta.ID, addr, this); + break; + case DataType.WORD: + case DataType.SHORT: + dataItem = new ShortTag(meta.ID, addr, this); + break; + case DataType.DWORD: + case DataType.INT: + dataItem = new IntTag(meta.ID, addr, this); + break; + case DataType.FLOAT: + dataItem = new FloatTag(meta.ID, addr, this); + break; + case DataType.STR: + dataItem = new StringTag(meta.ID, addr, this); + break; + } + if (dataItem != null) + { + //dataItem.Active = meta.Active; + _items.Add(dataItem); + _plcReader.TransactItem(meta.Name); + _mapping.Add(meta.ID, meta.Address); + _server.AddItemIndex(meta.Name, dataItem); + } + } + } + return true; + } + } + + public bool AddTags(IEnumerable tags) + { + if (_items == null) + { + _items = new List(); + } + foreach (ITag tag in tags) + { + if (tag != null) + { + _items.Add(tag); + } + } + return true; + } + + public bool RemoveItems(params ITag[] items) + { + foreach (var item in items) + { + _server.RemoveItemIndex(item.GetTagName()); + _mapping.Remove(item.ID); + _items.Remove(item); + } + return true; + } + + public bool SetActiveState(bool active, params short[] items) + { + return true; + } + + public ITag FindItemByAddress(DeviceAddress addr) + { + return null; + } + + public ITag GetItemByID(short id) + { + return _server[id]; + } + + public HistoryData[] BatchRead(DataSource source, bool isSync, params ITag[] itemArray) + { + return ExtMethods.BatchRead(source, itemArray); + } + + public int BatchWrite(SortedDictionary items, bool isSync = true) + { + int rev = ExtMethods.BatchWrite(items); + if (DataChange != null && rev >= 0) + { + int len = items.Count; + HistoryData[] data = new HistoryData[len]; + int i = 0; + foreach (var item in items) + { + ITag tag = item.Key; + data[i].ID = tag.ID; + data[i].TimeStamp = tag.TimeStamp; + data[i].Quality = tag.Quality; + //data[i].Value = item.Value.ToStorge(); + i++; + } + foreach (DataChangeEventHandler deleg in DataChange.GetInvocationList()) + { + deleg.BeginInvoke(this, new DataChangeEventArgs(1, data), null, null); + } + } + return rev; + } + + public ItemData ReadInt32(DeviceAddress address, DataSource source = DataSource.Cache) + { + string data = _plcReader.Request(_mapping[(short)address.Start]); + return string.IsNullOrEmpty(data) ? new ItemData(0, 0, QUALITIES.QUALITY_BAD) : + new ItemData(int.Parse(data), 0, QUALITIES.QUALITY_GOOD); + } + + public ItemData ReadInt16(DeviceAddress address, DataSource source = DataSource.Cache) + { + string data = _plcReader.Request(_mapping[(short)address.Start]); + return string.IsNullOrEmpty(data) ? new ItemData(0, 0, QUALITIES.QUALITY_BAD) : + new ItemData(short.Parse(data), 0, QUALITIES.QUALITY_GOOD); + } + + public ItemData ReadUInt32(DeviceAddress address, DataSource source = DataSource.Cache) + { + string data = _plcReader.Request(_mapping[(short)address.Start]); + return string.IsNullOrEmpty(data) ? new ItemData(0, 0, QUALITIES.QUALITY_BAD) : + new ItemData(uint.Parse(data), 0, QUALITIES.QUALITY_GOOD); + } + + public ItemData ReadUInt16(DeviceAddress address, DataSource source = DataSource.Cache) + { + string data = _plcReader.Request(_mapping[(short)address.Start]); + return string.IsNullOrEmpty(data) ? new ItemData(0, 0, QUALITIES.QUALITY_BAD) : + new ItemData(ushort.Parse(data), 0, QUALITIES.QUALITY_GOOD); + } + + public ItemData ReadByte(DeviceAddress address, DataSource source = DataSource.Cache) + { + string data = _plcReader.Request(_mapping[(short)address.Start]); + return string.IsNullOrEmpty(data) ? new ItemData(0, 0, QUALITIES.QUALITY_BAD) : + new ItemData(byte.Parse(data), 0, QUALITIES.QUALITY_GOOD); + } + + public ItemData ReadFloat(DeviceAddress address, DataSource source = DataSource.Cache) + { + string data = _plcReader.Request(_mapping[(short)address.Start]); + return string.IsNullOrEmpty(data) ? new ItemData(0, 0, QUALITIES.QUALITY_BAD) : + new ItemData(float.Parse(data), 0, QUALITIES.QUALITY_GOOD); + } + + public ItemData ReadBool(DeviceAddress address, DataSource source = DataSource.Cache) + { + string data = _plcReader.Request(_mapping[(short)address.Start]); + return string.IsNullOrEmpty(data) ? new ItemData(false, 0, QUALITIES.QUALITY_BAD) : + new ItemData(bool.Parse(data), 0, QUALITIES.QUALITY_GOOD); + } + + public ItemData ReadString(DeviceAddress address, DataSource source = DataSource.Cache) + { + string data = _plcReader.Request(_mapping[(short)address.Start]); + return string.IsNullOrEmpty(data) ? new ItemData(null, 0, QUALITIES.QUALITY_BAD) : + new ItemData(data, 0, QUALITIES.QUALITY_GOOD); + } + + public int WriteInt32(DeviceAddress address, int value) + { + return _plcReader.Poke(_mapping[(short)address.Start], value.ToString()); + } + + public int WriteInt16(DeviceAddress address, short value) + { + return _plcReader.Poke(_mapping[(short)address.Start], value.ToString()); + } + + public int WriteUInt32(DeviceAddress address, uint value) + { + return _plcReader.Poke(_mapping[(short)address.Start], value.ToString()); + } + + public int WriteUInt16(DeviceAddress address, ushort value) + { + return _plcReader.Poke(_mapping[(short)address.Start], value.ToString()); + } + + public int WriteFloat(DeviceAddress address, float value) + { + return _plcReader.Poke(_mapping[(short)address.Start], value.ToString()); + } + + public int WriteString(DeviceAddress address, string value) + { + return _plcReader.Poke(_mapping[(short)address.Start], value); + } + + public int WriteBit(DeviceAddress address, bool value) + { + return _plcReader.Poke(_mapping[(short)address.Start], value.ToString()); + } + + public int WriteBits(DeviceAddress address, byte value) + { + return _plcReader.Poke(_mapping[(short)address.Start], value.ToString()); + } + + public event DataChangeEventHandler DataChange; + + public void Dispose() + { + _plcReader.DDEValueChange -= new DDEValueChangeEventHandler(plcReader_DDEValueChange); + _items.Clear(); + _mapping.Clear(); + _items = null; + _mapping = null; + } + } + + public delegate void DDEValueChangeEventHandler(object sender, DDEValueChangeEventArgs e); + + public class DDEValueChangeEventArgs : EventArgs + { + public DDEValueChangeEventArgs(string name, string data) + { + this.Name = name; + this.Data = data; + } + + public string Name; + public string Data; + } +} diff --git a/SCADA/Program/DDEDriver/DDEDriver.csproj b/SCADA/Program/DDEDriver/DDEDriver.csproj new file mode 100644 index 0000000..d813441 --- /dev/null +++ b/SCADA/Program/DDEDriver/DDEDriver.csproj @@ -0,0 +1,64 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {14938033-7870-477D-925C-A447933A44E7} + Library + Properties + DDEDriver + DDEDriver + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + + + + + + + + + + + + + {8965e389-6466-4b30-bd43-83c909044637} + DataService + + + + + \ No newline at end of file diff --git a/SCADA/Program/DDEDriver/DDELib.cs b/SCADA/Program/DDEDriver/DDELib.cs new file mode 100644 index 0000000..39c9c3b --- /dev/null +++ b/SCADA/Program/DDEDriver/DDELib.cs @@ -0,0 +1,481 @@ +using System; +using System.Runtime.InteropServices; + +namespace DDEDriver +{ + public delegate IntPtr DdeCallback( + int uType, ConversionFormat uFmt, IntPtr hConv, IntPtr hsz1, IntPtr hsz2, IntPtr hData, uint dwData1, uint dwData2); + + public static class Ddeml + { + public const int MAX_STRING_SIZE = 255; + + public const int APPCMD_CLIENTONLY = unchecked((int)0x00000010); + public const int APPCMD_FILTERINITS = unchecked((int)0x00000020); + public const int APPCMD_MASK = unchecked((int)0x00000FF0); + public const int APPCLASS_STANDARD = unchecked((int)0x00000000); + public const int APPCLASS_MONITOR = unchecked((int)0x00000001); + public const int APPCLASS_MASK = unchecked((int)0x0000000F); + + public const int CBR_BLOCK = unchecked((int)0xFFFFFFFF); + + public const int CBF_FAIL_SELFCONNECTIONS = unchecked((int)0x00001000); + public const int CBF_FAIL_CONNECTIONS = unchecked((int)0x00002000); + public const int CBF_FAIL_ADVISES = unchecked((int)0x00004000); + public const int CBF_FAIL_EXECUTES = unchecked((int)0x00008000); + public const int CBF_FAIL_POKES = unchecked((int)0x00010000); + public const int CBF_FAIL_REQUESTS = unchecked((int)0x00020000); + public const int CBF_FAIL_ALLSVRXACTIONS = unchecked((int)0x0003f000); + public const int CBF_SKIP_CONNECT_CONFIRMS = unchecked((int)0x00040000); + public const int CBF_SKIP_REGISTRATIONS = unchecked((int)0x00080000); + public const int CBF_SKIP_UNREGISTRATIONS = unchecked((int)0x00100000); + public const int CBF_SKIP_DISCONNECTS = unchecked((int)0x00200000); + public const int CBF_SKIP_ALLNOTIFICATIONS = unchecked((int)0x003c0000); + + public const int CF_TEXT = 1; + + public const int CP_WINANSI = 1004; + public const int CP_WINUNICODE = 1200; + + public const int DDE_FACK = unchecked((int)0x8000); + public const int DDE_FBUSY = unchecked((int)0x4000); + public const int DDE_FDEFERUPD = unchecked((int)0x4000); + public const int DDE_FACKREQ = unchecked((int)0x8000); + public const int DDE_FRELEASE = unchecked((int)0x2000); + public const int DDE_FREQUESTED = unchecked((int)0x1000); + public const int DDE_FAPPSTATUS = unchecked((int)0x00ff); + public const int DDE_FNOTPROCESSED = unchecked((int)0x0000); + + public const int DMLERR_NO_ERROR = unchecked((int)0x0000); + public const int DMLERR_FIRST = unchecked((int)0x4000); + public const int DMLERR_ADVACKTIMEOUT = unchecked((int)0x4000); + public const int DMLERR_BUSY = unchecked((int)0x4001); + public const int DMLERR_DATAACKTIMEOUT = unchecked((int)0x4002); + public const int DMLERR_DLL_NOT_INITIALIZED = unchecked((int)0x4003); + public const int DMLERR_DLL_USAGE = unchecked((int)0x4004); + public const int DMLERR_EXECACKTIMEOUT = unchecked((int)0x4005); + public const int DMLERR_INVALIDPARAMETER = unchecked((int)0x4006); + public const int DMLERR_LOW_MEMORY = unchecked((int)0x4007); + public const int DMLERR_MEMORY_ERROR = unchecked((int)0x4008); + public const int DMLERR_NOTPROCESSED = unchecked((int)0x4009); + public const int DMLERR_NO_CONV_ESTABLISHED = unchecked((int)0x400A); + public const int DMLERR_POKEACKTIMEOUT = unchecked((int)0x400B); + public const int DMLERR_POSTMSG_FAILED = unchecked((int)0x400C); + public const int DMLERR_REENTRANCY = unchecked((int)0x400D); + public const int DMLERR_SERVER_DIED = unchecked((int)0x400E); + public const int DMLERR_SYS_ERROR = unchecked((int)0x400F); + public const int DMLERR_UNADVACKTIMEOUT = unchecked((int)0x4010); + public const int DMLERR_UNFOUND_QUEUE_ID = unchecked((int)0x4011); + public const int DMLERR_LAST = unchecked((int)0x4011); + + public const int DNS_REGISTER = unchecked((int)0x0001); + public const int DNS_UNREGISTER = unchecked((int)0x0002); + public const int DNS_FILTERON = unchecked((int)0x0004); + public const int DNS_FILTEROFF = unchecked((int)0x0008); + + public const int EC_ENABLEALL = unchecked((int)0x0000); + public const int EC_ENABLEONE = unchecked((int)0x0080); + public const int EC_DISABLE = unchecked((int)0x0008); + public const int EC_QUERYWAITING = unchecked((int)0x0002); + + public const int HDATA_APPOWNED = unchecked((int)0x0001); + + public const int MF_HSZ_INFO = unchecked((int)0x01000000); + public const int MF_SENDMSGS = unchecked((int)0x02000000); + public const int MF_POSTMSGS = unchecked((int)0x04000000); + public const int MF_CALLBACKS = unchecked((int)0x08000000); + public const int MF_ERRORS = unchecked((int)0x10000000); + public const int MF_LINKS = unchecked((int)0x20000000); + public const int MF_CONV = unchecked((int)0x40000000); + + public const int MH_CREATE = 1; + public const int MH_KEEP = 2; + public const int MH_DELETE = 3; + public const int MH_CLEANUP = 4; + + public const int QID_SYNC = unchecked((int)0xFFFFFFFF); + public const int TIMEOUT_ASYNC = unchecked((int)0xFFFFFFFF); + + public const int XTYPF_NOBLOCK = unchecked((int)0x0002); + public const int XTYPF_NODATA = unchecked((int)0x0004); + public const int XTYPF_ACKREQ = unchecked((int)0x0008); + public const int XCLASS_MASK = unchecked((int)0xFC00); + public const int XCLASS_BOOL = unchecked((int)0x1000); + public const int XCLASS_DATA = unchecked((int)0x2000); + public const int XCLASS_FLAGS = unchecked((int)0x4000); + public const int XCLASS_NOTIFICATION = unchecked((int)0x8000); + public const int XTYP_ERROR = unchecked((int)(0x0000 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)); + public const int XTYP_ADVDATA = unchecked((int)(0x0010 | XCLASS_FLAGS)); + public const int XTYP_ADVREQ = unchecked((int)(0x0020 | XCLASS_DATA | XTYPF_NOBLOCK)); + public const int XTYP_ADVSTART = unchecked((int)(0x0030 | XCLASS_BOOL)); + public const int XTYP_ADVSTOP = unchecked((int)(0x0040 | XCLASS_NOTIFICATION)); + public const int XTYP_EXECUTE = unchecked((int)(0x0050 | XCLASS_FLAGS)); + public const int XTYP_CONNECT = unchecked((int)(0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK)); + public const int XTYP_CONNECT_CONFIRM = unchecked((int)(0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)); + public const int XTYP_XACT_COMPLETE = unchecked((int)(0x0080 | XCLASS_NOTIFICATION)); + public const int XTYP_POKE = unchecked((int)(0x0090 | XCLASS_FLAGS)); + public const int XTYP_REGISTER = unchecked((int)(0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)); + public const int XTYP_REQUEST = unchecked((int)(0x00B0 | XCLASS_DATA)); + public const int XTYP_DISCONNECT = unchecked((int)(0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)); + public const int XTYP_UNREGISTER = unchecked((int)(0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)); + public const int XTYP_WILDCONNECT = unchecked((int)(0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK)); + public const int XTYP_MONITOR = unchecked((int)(0x00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)); + public const int XTYP_ADVSTARTNODATA = unchecked(XTYP_ADVSTART | XTYPF_NODATA); + public const int XTYP_ADVSTARTACKREQ = unchecked(XTYP_ADVSTART | XTYPF_ACKREQ); + public const int XTYP_MASK = unchecked((int)0x00F0); + public const int XTYP_SHIFT = unchecked((int)0x0004); + + [DllImport("user32.dll", EntryPoint = "DdeAbandonTransaction", CharSet = CharSet.Ansi)] + public static extern bool DdeAbandonTransaction(int idInst, IntPtr hConv, int idTransaction); + + [DllImport("user32.dll", EntryPoint = "DdeAccessData", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeAccessData(IntPtr hData, ref int pcbDataSize); + + [DllImport("user32.dll", EntryPoint = "DdeAddData", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeAddData(IntPtr hData, byte[] pSrc, int cb, int cbOff); + + [DllImport("user32.dll", EntryPoint = "DdeClientTransaction", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeClientTransaction( + byte[] pData, int cbData, IntPtr hConv, IntPtr hszItem, ConversionFormat wFmt, int wType, int dwTimeout, ref int pdwResult); + + [DllImport("user32.dll", EntryPoint = "DdeCmpStringHandles", CharSet = CharSet.Ansi)] + public static extern int DdeCmpStringHandles(IntPtr hsz1, IntPtr hsz2); + + [DllImport("user32.dll", EntryPoint = "DdeConnect", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeConnect(int idInst, IntPtr hszService, IntPtr hszTopic, ref CONVCONTEXT pCC); + + [DllImport("user32.dll", EntryPoint = "DdeConnectList", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeConnectList(int idInst, IntPtr hszService, IntPtr hszTopic, IntPtr hConvList, ref CONVCONTEXT pCC); + + [DllImport("user32.dll", EntryPoint = "DdeCreateDataHandle", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeCreateDataHandle(int idInst, byte[] pSrc, int cb, int cbOff, IntPtr hszItem, ConversionFormat wFmt, int afCmd); + + [DllImport("user32.dll", EntryPoint = "DdeCreateStringHandle", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeCreateStringHandle(int idInst, string psz, int iCodePage); + + [DllImport("user32.dll", EntryPoint = "DdeDisconnect", CharSet = CharSet.Ansi)] + public static extern bool DdeDisconnect(IntPtr hConv); + + [DllImport("user32.dll", EntryPoint = "DdeDisconnectList", CharSet = CharSet.Ansi)] + public static extern bool DdeDisconnectList(IntPtr hConvList); + + [DllImport("user32.dll", EntryPoint = "DdeEnableCallback", CharSet = CharSet.Ansi)] + public static extern bool DdeEnableCallback(int idInst, IntPtr hConv, int wCmd); + + [DllImport("user32.dll", EntryPoint = "DdeFreeDataHandle", CharSet = CharSet.Ansi)] + public static extern bool DdeFreeDataHandle(IntPtr hData); + + [DllImport("user32.dll", EntryPoint = "DdeFreeStringHandle", CharSet = CharSet.Ansi)] + public static extern bool DdeFreeStringHandle(int idInst, IntPtr hsz); + + [DllImport("user32.dll", EntryPoint = "DdeGetData", CharSet = CharSet.Ansi)] + public unsafe static extern int DdeGetData(IntPtr hData, [Out] byte* pDst, int cbMax, int cbOff); + + [DllImport("user32.dll", EntryPoint = "DdeGetLastError", CharSet = CharSet.Ansi)] + public static extern int DdeGetLastError(int idInst); + + [DllImport("user32.dll", EntryPoint = "DdeImpersonateClient", CharSet = CharSet.Ansi)] + public static extern bool DdeImpersonateClient(IntPtr hConv); + + [DllImport("user32.dll", EntryPoint = "DdeInitialize", CharSet = CharSet.Ansi)] + public static extern int DdeInitialize(ref int pidInst, DdeCallback pfnCallback, int afCmd, int ulRes); + + [DllImport("user32.dll", EntryPoint = "DdeKeepStringHandle", CharSet = CharSet.Ansi)] + public static extern bool DdeKeepStringHandle(int idInst, IntPtr hsz); + + [DllImport("user32.dll", EntryPoint = "DdeNameService", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeNameService(int idInst, IntPtr hsz1, IntPtr hsz2, int afCmd); + + [DllImport("user32.dll", EntryPoint = "DdePostAdvise", CharSet = CharSet.Ansi)] + public static extern bool DdePostAdvise(int idInst, IntPtr hszTopic, IntPtr hszItem); + + [DllImport("user32.dll", EntryPoint = "DdeQueryConvInfo", CharSet = CharSet.Ansi)] + public static extern int DdeQueryConvInfo(IntPtr hConv, int idTransaction, IntPtr pConvInfo); + + [DllImport("user32.dll", EntryPoint = "DdeQueryNextServer", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeQueryNextServer(IntPtr hConvList, IntPtr hConvPrev); + + [DllImport("user32.dll", EntryPoint = "DdeQueryString", CharSet = CharSet.Ansi)] + public unsafe static extern int DdeQueryString(int idInst, IntPtr hsz, sbyte* psz, int cchMax, int iCodePage); + + [DllImport("user32.dll", EntryPoint = "DdeReconnect", CharSet = CharSet.Ansi)] + public static extern IntPtr DdeReconnect(IntPtr hConv); + + [DllImport("user32.dll", EntryPoint = "DdeSetUserHandle", CharSet = CharSet.Ansi)] + public static extern bool DdeSetUserHandle(IntPtr hConv, int id, IntPtr hUser); + + [DllImport("user32.dll", EntryPoint = "DdeUnaccessData", CharSet = CharSet.Ansi)] + public static extern bool DdeUnaccessData(IntPtr hData); + + [DllImport("user32.dll", EntryPoint = "DdeUninitialize", CharSet = CharSet.Ansi)] + public static extern bool DdeUninitialize(int idInst); + + public static String DDEGetErrorMsg(int error) + { + switch (error) + { + case DMLERR_NO_ERROR: + return "no DDE error."; + case DMLERR_ADVACKTIMEOUT: + return "a request for a synchronous advise transaction has timed out."; + + case DMLERR_BUSY: + return "the response to the transaction caused the DDE_FBUSY bit to be set."; + + case DMLERR_DATAACKTIMEOUT: + return "a request for a synchronous data transaction has timed out."; + + case DMLERR_DLL_NOT_INITIALIZED: + return "a DDEML function was called without first calling the DdeInitialize function,\nor an invalid instance identifier\nwas passed to a DDEML function."; + + case DMLERR_DLL_USAGE: + return "an application initialized as APPCLASS_MONITOR has\nattempted to perform a DDE transaction,\nor an application initialized as APPCMD_CLIENTONLY has \nattempted to perform server transactions."; + + case DMLERR_EXECACKTIMEOUT: + return "a request for a synchronous execute transaction has timed out."; + + case DMLERR_INVALIDPARAMETER: + return "a parameter failed to be validated by the DDEML."; + + case DMLERR_LOW_MEMORY: + return "a DDEML application has created a prolonged race condition."; + + case DMLERR_MEMORY_ERROR: + return "a memory allocation failed."; + + case DMLERR_NO_CONV_ESTABLISHED: + return "a client's attempt to establish a conversation has failed."; + + case DMLERR_NOTPROCESSED: + return "a transaction failed."; + + case DMLERR_POKEACKTIMEOUT: + return "a request for a synchronous poke transaction has timed out."; + + case DMLERR_POSTMSG_FAILED: + return "an internal call to the PostMessage function has failed. "; + + case DMLERR_REENTRANCY: + return "reentrancy problem."; + + case DMLERR_SERVER_DIED: + return "a server-side transaction was attempted on a conversation\nthat was terminated by the client, or the server\nterminated before completing a transaction."; + + case DMLERR_SYS_ERROR: + return "an internal error has occurred in the DDEML."; + + case DMLERR_UNADVACKTIMEOUT: + return "a request to end an advise transaction has timed out."; + + case DMLERR_UNFOUND_QUEUE_ID: + return "an invalid transaction identifier was passed to a DDEML function.\nOnce the application has returned from an XTYP_XACT_COMPLETE callback,\nthe transaction identifier for that callback is no longer valid."; + + default: + return "Unknown DDE error %08x"; + } + } + + } + + [StructLayout(LayoutKind.Sequential)] + public struct HSZPAIR + { + public IntPtr hszSvc; + public IntPtr hszTopic; + } + + [StructLayout(LayoutKind.Sequential)] + public struct SECURITY_QUALITY_OF_SERVICE + { // sqos + public ushort Length; + public int ImpersonationLevel; //SECURITY_IMPERSONATION_LEVEL + public int ContextTrackingMode; //SECURITY_CONTEXT_TRACKING_MODE + public bool EffectiveOnly; + } + + [StructLayout(LayoutKind.Sequential)] + public struct CONVINFO + { + public int cb; + public IntPtr hUser; + public IntPtr hConvPartner; + public IntPtr hszSvcPartner; + public IntPtr hszServiceReq; + public IntPtr hszTopic; + public IntPtr hszItem; + public int wFmt; + public int wType; + public int wStatus; + public int wConvst; + public int wLastError; + public IntPtr hConvList; + public CONVCONTEXT ConvCtxt; + public IntPtr hwnd; + public IntPtr hwndPartner; + + } // struct + + [StructLayout(LayoutKind.Sequential)] + public struct CONVCONTEXT + { + public int cb; + public int wFlags; + public int wCountryID; + public int iCodePage; + public int dwLangID; + public int dwSecurity; + public SECURITY_QUALITY_OF_SERVICE qos; + + } // struct + + [StructLayout(LayoutKind.Sequential)] + public struct MONCBSTRUCT + { + public int cb; + public int dwTime; + public IntPtr hTask; + public IntPtr dwRet; + public int wType; + public int wFmt; + public IntPtr hConv; + public IntPtr hsz1; + public IntPtr hsz2; + public IntPtr hData; + public uint dwData1; + public uint dwData2; + public CONVCONTEXT cc; + public int cbData; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] + public byte[] Data; + + } // struct + + [StructLayout(LayoutKind.Sequential)] + public struct MONCONVSTRUCT + { + public int cb; + public bool fConnect; + public int dwTime; + public IntPtr hTask; + public IntPtr hszSvc; + public IntPtr hszTopic; + public IntPtr hConvClient; + public IntPtr hConvServer; + + } // struct + + [StructLayout(LayoutKind.Sequential)] + public struct MONERRSTRUCT + { + public int cb; + public int wLastError; + public int dwTime; + public IntPtr hTask; + + } // struct + + [StructLayout(LayoutKind.Sequential)] + public struct MONHSZSTRUCT + { + public int cb; + public int fsAction; + public int dwTime; + public IntPtr hsz; + public IntPtr hTask; + public IntPtr str; + + } // struct + + [StructLayout(LayoutKind.Sequential)] + public struct MONLINKSTRUCT + { + public int cb; + public int dwTime; + public IntPtr hTask; + public bool fEstablished; + public bool fNoData; + public IntPtr hszSvc; + public IntPtr hszTopic; + public IntPtr hszItem; + public int wFmt; + public bool fServer; + public IntPtr hConvClient; + public IntPtr hConvServer; + + } // struct + + [StructLayout(LayoutKind.Sequential)] + public struct MONMSGSTRUCT + { + public int cb; + public IntPtr hwndTo; + public int dwTime; + public IntPtr hTask; + public int wMsg; + public IntPtr wParam; + public IntPtr lParam; + public DDEML_MSG_HOOK_DATA dmhd; + + } // struct + + [StructLayout(LayoutKind.Sequential)] + public struct DDEML_MSG_HOOK_DATA + { + public IntPtr uiLo; + public IntPtr uiHi; + public int cbData; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] + public byte[] Data; + + } // struct + + public enum ConversionFormat : uint + { + NONE = 0, + TEXT = 1, + BITMAP = 2, + METAFILEPICT = 3, + SYLK = 4, + DIF = 5, + TIFF = 6, + OEMTEXT = 7, + DIB = 8, + PALETTE = 9, + PENDATA = 10, + RIFF = 11, + WAVE = 12, + UNICODETEXT = 13, + ENHMETAFILE = 14, + HDROP = 15, + LOCALE = 16, + DIBV5 = 17, + OWNERDISPLAY = 0x0080, + DSPTEXT = 0x0081, + DSPBITMAP = 0x0082, + DSPMETAFILEPICT = 0x0083, + DSPENHMETAFILE = 0x008E, + // "Private" formats don't get GlobalFree()'d + PRIVATEFIRST = 0x0200, + PRIVATELAST = 0x02FF, + // "GDIOBJ" formats do get DeleteObject()'d + GDIOBJFIRST = 0x0300, + GDIOBJLAST = 0x03FF + } + + [Flags] + public enum DDEResult : uint + { + FACK = 0x8000U, + FBUSY = 0x4000U, + FDEFERUPD = 0x4000, + FACKREQ = 0x8000, + FRELEASE = 0x2000, + FREQUESTED = 0x1000, + FAPPSTATUS = 0x00ff, + FNOTPROCESSED = 0x0, + FACKRESERVED = (~(FACK | FBUSY | FAPPSTATUS)), + FADVRESERVED = (~(FACKREQ | FDEFERUPD)), + FDATRESERVED = (~(FACKREQ | FRELEASE | FREQUESTED)), + FPOKRESERVED = (~(FRELEASE)) + } +} diff --git a/SCADA/Program/DDEDriver/DDEServer.cs b/SCADA/Program/DDEDriver/DDEServer.cs new file mode 100644 index 0000000..aef8e01 --- /dev/null +++ b/SCADA/Program/DDEDriver/DDEServer.cs @@ -0,0 +1,620 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; + +namespace DDEDriver +{ + public abstract class DdemlServer : IDisposable + { + private int _InstanceId; // DDEML instance identifier + private string _Service; // DDEML service name + private IntPtr _ServiceHandle = IntPtr.Zero; // DDEML service handle + + private bool _Disposed = false; + private HashSet _ConversationTable = new HashSet(); + private DdeCallback _Callback; + + public DdemlServer() + { + _Callback = OnDdeCallback; + } + + ~DdemlServer() + { + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected void Dispose(bool disposing) + { + if (!_Disposed) + { + _Disposed = true; + if (IsRegistered) + { + // Unregister the service name. + Unregister(); + if (disposing) + { + _ServiceHandle = IntPtr.Zero; + _InstanceId = 0; + } + } + } + } + + public string Service + { + get { return _Service; } + } + + public bool IsRegistered + { + get { return _ServiceHandle != IntPtr.Zero; } + } + + internal bool IsDisposed + { + get { return _Disposed; } + } + + public int Initialize(int afCmd) + { + int instanceId = 0; + Ddeml.DdeInitialize(ref instanceId, _Callback, afCmd, 0); + return instanceId; + } + + public void Uninitialize() + { + Ddeml.DdeUninitialize(_InstanceId); + } + + public string Register(string service) + { + if (IsRegistered || _InstanceId != 0) + { + throw new InvalidOperationException("AlreadyRegisteredMessage"); + } + if (service == null || service.Length > Ddeml.MAX_STRING_SIZE) + { + throw new ArgumentNullException("service"); + } + _Service = service; + _ConversationTable.Clear(); + _InstanceId = Initialize(Ddeml.APPCLASS_STANDARD); + _ServiceHandle = Ddeml.DdeCreateStringHandle(_InstanceId, _Service, Ddeml.CP_WINANSI); + // Register the service name. + if (Ddeml.DdeNameService(_InstanceId, _ServiceHandle, IntPtr.Zero, Ddeml.DNS_REGISTER) == IntPtr.Zero) + { + Ddeml.DdeFreeStringHandle(_InstanceId, _ServiceHandle); + _ServiceHandle = IntPtr.Zero; + } + // If the service handle is null then the service name could not be registered. + if (_ServiceHandle == IntPtr.Zero) + { + int error = Ddeml.DdeGetLastError(_InstanceId); + return Ddeml.DDEGetErrorMsg(error); + } + return null; + } + + public void Unregister() + { + Ddeml.DdeNameService(_InstanceId, _ServiceHandle, IntPtr.Zero, Ddeml.DNS_UNREGISTER); + // Free the service string handle. + Ddeml.DdeFreeStringHandle(_InstanceId, _ServiceHandle); + // Indicate that the service name is no longer registered. + _ServiceHandle = IntPtr.Zero; + _InstanceId = 0; + } + + private IntPtr OnDdeCallback(int uType, ConversionFormat uFmt, IntPtr hConv, IntPtr hsz1, IntPtr hsz2, IntPtr hData, uint dwData1, uint dwData2) + { + // Create a new transaction object that will be dispatched to a DdemlClient, DdemlServer, or ITransactionFilter. + // Dispatch the transaction. + switch (uType) + { + case Ddeml.XTYP_MONITOR: + switch (dwData2) + { + case Ddeml.MF_CALLBACKS: + { + // Get the MONCBSTRUCT object. + int length = 0; + IntPtr phData = Ddeml.DdeAccessData(hData, ref length); + MONCBSTRUCT mon = (MONCBSTRUCT)Marshal.PtrToStructure(phData, typeof(MONCBSTRUCT)); + Ddeml.DdeUnaccessData(hData); + OnCallback(mon); + return IntPtr.Zero; + } + case Ddeml.MF_CONV: + { + // Get the MONCONVSTRUCT object. + int length = 0; + IntPtr phData = Ddeml.DdeAccessData(hData, ref length); + MONCONVSTRUCT mon = (MONCONVSTRUCT)Marshal.PtrToStructure(phData, typeof(MONCONVSTRUCT)); + Ddeml.DdeUnaccessData(hData); + OnConversation(mon); + return IntPtr.Zero; + } + case Ddeml.MF_ERRORS: + { + // Get the MONERRSTRUCT object. + int length = 0; + IntPtr phData = Ddeml.DdeAccessData(hData, ref length); + MONERRSTRUCT mon = (MONERRSTRUCT)Marshal.PtrToStructure(phData, typeof(MONERRSTRUCT)); + Ddeml.DdeUnaccessData(hData); + OnError(mon); + return IntPtr.Zero; + } + case Ddeml.MF_HSZ_INFO: + { + // Get the MONHSZSTRUCT object. + int length = 0; + IntPtr phData = Ddeml.DdeAccessData(hData, ref length); + MONHSZSTRUCT mon = (MONHSZSTRUCT)Marshal.PtrToStructure(phData, typeof(MONHSZSTRUCT)); + Ddeml.DdeUnaccessData(hData); + OnString(mon); + return IntPtr.Zero; + } + case Ddeml.MF_LINKS: + { + // Get the MONLINKSTRUCT object. + int length = 0; + IntPtr phData = Ddeml.DdeAccessData(hData, ref length); + MONLINKSTRUCT mon = (MONLINKSTRUCT)Marshal.PtrToStructure(phData, typeof(MONLINKSTRUCT)); + Ddeml.DdeUnaccessData(hData); + OnLink(mon); + return IntPtr.Zero; + } + case Ddeml.MF_POSTMSGS: + { + // Get the MONMSGSTRUCT object. + int length = 0; + IntPtr phData = Ddeml.DdeAccessData(hData, ref length); + MONMSGSTRUCT mon = (MONMSGSTRUCT)Marshal.PtrToStructure(phData, typeof(MONMSGSTRUCT)); + Ddeml.DdeUnaccessData(hData); + OnPost(mon); + return IntPtr.Zero; + } + case Ddeml.MF_SENDMSGS: + { + // Get the MONMSGSTRUCT object. + int length = 0; + IntPtr phData = Ddeml.DdeAccessData(hData, ref length); + MONMSGSTRUCT mon = (MONMSGSTRUCT)Marshal.PtrToStructure(phData, typeof(MONMSGSTRUCT)); + Ddeml.DdeUnaccessData(hData); + OnSend(mon); + return IntPtr.Zero; + } + } + break; + case Ddeml.XTYP_ADVDATA: + unsafe + { + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string item = new string(pSZ); + byte* bt = stackalloc byte[Ddeml.MAX_STRING_SIZE]; + len = Ddeml.DdeGetData(hData, bt, Ddeml.MAX_STRING_SIZE, 0); + byte[] bytes = new byte[len]; for (int i = 0; i < len; i++) { bytes[i] = *bt++; }; + if (hData != IntPtr.Zero) Ddeml.DdeUnaccessData(hData); + return new IntPtr((int)OnAdvData(uFmt, topic, item, bytes)); + } + case Ddeml.XTYP_ADVREQ: + unsafe + { + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string item = new string(pSZ); + byte[] data = OnAdvReq(uFmt, topic, item); + // Create and return the data handle representing the data being advised. + if (data != null && data.Length > 0) + { + return Ddeml.DdeCreateDataHandle(_InstanceId, data, data.Length, 0, hsz2, uFmt, 0); ; + } + // This transaction could not be Ddeml.DDE_FACK here. + return IntPtr.Zero; + } + case Ddeml.XTYP_ADVSTART: + unsafe + { + // Get the item name from the hsz2 string handle. + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string item = new string(pSZ); + // Get a value indicating whether an advise loop should be initiated from the subclass. + //AdvStart(hConv, item, uFmt, Ddeml.XTYPF_ACKREQ); + return OnAdvStart(uFmt, topic, item) ? new IntPtr(1) : IntPtr.Zero; + } + case Ddeml.XTYP_ADVSTOP: + unsafe + { + // Get the item name from the hsz2 string handle. + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string item = new string(pSZ); + // Inform the subclass that the advise loop has been terminated. + //AdvStop(hConv, item, uFmt); + OnAdvStop(uFmt, topic, item); + break; + } + case Ddeml.XTYP_CONNECT: + unsafe + { + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + // Get a value from the subclass indicating whether the connection should be allowed. + return OnConnect(topic, new CONVCONTEXT(), true) ? new IntPtr(1) : IntPtr.Zero; + } + case Ddeml.XTYP_CONNECT_CONFIRM: + unsafe + { + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + // Create a Conversation object and add it to the hConv table. + _ConversationTable.Add(hConv); + // Inform the subclass that a hConv has been established. + OnConnectConfirm(topic, true); + break; + } + case Ddeml.XTYP_DISCONNECT: + { + // Remove the Conversation from the hConv table. + _ConversationTable.Remove(hConv); + // Inform the subclass that the hConv has been disconnected. + OnDisconnect(true); + // Return zero to indicate that there are no problems. + return IntPtr.Zero; + } + case Ddeml.XTYP_EXECUTE: + unsafe + { + // Get the command from the data handle. + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + byte* bt = stackalloc byte[Ddeml.MAX_STRING_SIZE]; + len = Ddeml.DdeGetData(hData, bt, Ddeml.MAX_STRING_SIZE, 0); + string command = new string((sbyte*)bt); + // Send the command to the subclass and get the resul + return new IntPtr((int)OnExecute(topic, command.TrimEnd('\0'))); + } + case Ddeml.XTYP_POKE: + unsafe + { + // Get the item name from the hsz2 string handle. + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string item = new string(pSZ); + byte* bt = stackalloc byte[Ddeml.MAX_STRING_SIZE]; + len = Ddeml.DdeGetData(hData, bt, Ddeml.MAX_STRING_SIZE, 0); + byte[] data = new byte[len]; for (int i = 0; i < len; i++) { data[i] = *bt++; }; + // Send the data to the subclass and get the resul + return new IntPtr((int)OnPoke(uFmt, topic, item, data)); + } + case Ddeml.XTYP_REQUEST: + unsafe + { + // Get the item name from the hsz2 string handle. + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string item = new string(pSZ); + // Send the request to the subclass and get the resul + var result = OnRequest(uFmt, topic, item); + // Return a data handle if the subclass Ddeml.DDE_FACK the request successfully. + if (result != null) + { + return Ddeml.DdeCreateDataHandle(_InstanceId, result, result.Length, 0, hsz2, uFmt, 0); + } + // Return DDE_FDdeml.DDE_FNOTDdeml.DDE_FACK if the subclass did not process the command. + return new IntPtr(Ddeml.DDE_FNOTPROCESSED); + } + case Ddeml.XTYP_XACT_COMPLETE: + unsafe + { + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string topic = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string item = new string(pSZ); + OnXactComplete(uFmt, topic, item, hData, dwData1); + break; + } + case Ddeml.XTYP_WILDCONNECT: + { + // This library does not support wild connects. + return IntPtr.Zero; + } + + case Ddeml.XTYP_ERROR: + { + // Get the error code, but do nothing with it at this time. + return IntPtr.Zero; + } + case Ddeml.XTYP_REGISTER: + unsafe + { + // Get the service name from the hsz1 string handle. + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string bas = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string inst = new string(pSZ); + OnRegister(bas, inst); + return IntPtr.Zero; + } + + case Ddeml.XTYP_UNREGISTER: + unsafe + { + sbyte* pSZ = stackalloc sbyte[Ddeml.MAX_STRING_SIZE]; + int len = Ddeml.DdeQueryString(_InstanceId, hsz1, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string bas = new string(pSZ); + len = Ddeml.DdeQueryString(_InstanceId, hsz2, pSZ, Ddeml.MAX_STRING_SIZE, Ddeml.CP_WINANSI); + string inst = new string(pSZ); + OnUnRegister(bas, inst); + return IntPtr.Zero; + } + } + return IntPtr.Zero; + } + + public void Advise(string topic, string item) + { + if (IsDisposed) + { + throw new ObjectDisposedException(this.GetType().ToString()); + } + if (!IsRegistered) + { + throw new InvalidOperationException("NotRegisteredMessage"); + } + if (topic == null || topic.Length > Ddeml.MAX_STRING_SIZE) + { + throw new ArgumentNullException("topic"); + } + if (item == null || item.Length > Ddeml.MAX_STRING_SIZE) + { + throw new ArgumentNullException("item"); + } + // Assume the topic name and item name are wild. + IntPtr topicHandle = topic != "*" ? Ddeml.DdeCreateStringHandle(_InstanceId, topic, Ddeml.CP_WINANSI) : IntPtr.Zero; + IntPtr itemHandle = item != "*" ? Ddeml.DdeCreateStringHandle(_InstanceId, item, Ddeml.CP_WINANSI) : IntPtr.Zero; + // Check the result to see if the post failed. + if (!Ddeml.DdePostAdvise(_InstanceId, topicHandle, itemHandle)) + { + int error = Ddeml.DdeGetLastError(_InstanceId); + var msg = Ddeml.DDEGetErrorMsg(error); if (msg != null) { } + } + Ddeml.DdeFreeStringHandle(_InstanceId, itemHandle); + Ddeml.DdeFreeStringHandle(_InstanceId, topicHandle); + } + + public void Pause(IntPtr hConv) + { + if (IsDisposed) + { + throw new ObjectDisposedException(this.GetType().ToString()); + } + if (!IsRegistered) + { + throw new InvalidOperationException("NotRegisteredMessage"); + } + // Check the result to see if the DDEML callback was disabled. + if (!Ddeml.DdeEnableCallback(_InstanceId, hConv, Ddeml.EC_DISABLE)) + { + int error = Ddeml.DdeGetLastError(_InstanceId); + Ddeml.DDEGetErrorMsg(error); + } + } + + public void Resume(IntPtr hConv) + { + if (IsDisposed) + { + throw new ObjectDisposedException(this.GetType().ToString()); + } + if (!IsRegistered) + { + throw new InvalidOperationException("NotRegisteredMessage"); + } + // Check the result to see if the DDEML callback was enabled. + if (!Ddeml.DdeEnableCallback(_InstanceId, hConv, Ddeml.EC_ENABLEALL)) + { + int error = Ddeml.DdeGetLastError(_InstanceId); + Ddeml.DDEGetErrorMsg(error); + } + } + + public void Disconnect(IntPtr hConv) + { + if (IsDisposed) + { + throw new ObjectDisposedException(this.GetType().ToString()); + } + if (!IsRegistered) + { + throw new InvalidOperationException("NotRegisteredMessage"); + } + if (_ConversationTable.Contains(hConv)) + { + // Terminate the hConv. + Ddeml.DdeDisconnect(hConv); + // Remove the Conversation from the hConv table. + _ConversationTable.Remove(hConv); + } + } + + public void Disconnect() + { + if (IsDisposed) + { + throw new ObjectDisposedException(this.GetType().ToString()); + } + if (!IsRegistered) + { + throw new InvalidOperationException("NotRegisteredMessage"); + } + // Terminate all conversations. + foreach (IntPtr hConv in _ConversationTable) + { + Ddeml.DdeDisconnect(hConv); + } + // clear the hConv table. + _ConversationTable.Clear(); + } + + // Démarre une transaction Advise. + public bool AdvStart(IntPtr hConv, string item, ConversionFormat wFormat, int wFlag) + { + if (!IsRegistered) + return false; + int res = 0; + // Création de la chaîne DDE de l'élément. + IntPtr hszItem = Ddeml.DdeCreateStringHandle(_InstanceId, item, Ddeml.CP_WINANSI); + if ((hszItem == IntPtr.Zero) && (item.Length != 0)) + return false; + // Exécution de la transaction. + Ddeml.DdeClientTransaction(null, 0, hConv, hszItem, wFormat, (wFlag == Ddeml.XTYPF_ACKREQ) ? + (Ddeml.XTYP_ADVSTARTACKREQ) : ((wFlag == Ddeml.XTYPF_NODATA) ? (Ddeml.XTYP_ADVSTARTNODATA) : (Ddeml.XTYP_ADVSTART)), Ddeml.TIMEOUT_ASYNC, ref res); + // Libération de la chaîne DDE. + if (hszItem != IntPtr.Zero) + Ddeml.DdeFreeStringHandle(_InstanceId, hszItem); + return res != 0; + } + + // Arrête une transaction Advise. + public void AdvStop(IntPtr hConv, string item, ConversionFormat wFormat) + { + if (!IsRegistered) + return; + // Création de la chaîne DDE de l'élément. + IntPtr hszItem = Ddeml.DdeCreateStringHandle(_InstanceId, item, Ddeml.CP_WINANSI); + if ((hszItem == IntPtr.Zero) && (item.Length != 0)) + return; + // Exécution de la transaction. + int res = 0; + Ddeml.DdeClientTransaction(null, 0, hConv, hszItem, wFormat, Ddeml.XTYP_ADVSTOP, Ddeml.TIMEOUT_ASYNC, ref res); + // Libération de la chaîne DDE. + if (hszItem != IntPtr.Zero) + Ddeml.DdeFreeStringHandle(_InstanceId, hszItem); + } + + + protected virtual DDEResult OnAdvData(ConversionFormat uFormat, string topic, string item, byte[] data) + { + return DDEResult.FNOTPROCESSED; + } + + protected virtual byte[] OnAdvReq(ConversionFormat uFormat, string topic, string item) + { + return null; + } + + protected virtual bool OnAdvStart(ConversionFormat uFormat, string topic, string item) + { + return true; + } + + protected virtual void OnAdvStop(ConversionFormat uFormat, string topic, string item) + { + } + + protected virtual bool OnConnect(string topic, CONVCONTEXT context, bool sameInstance) + { + return true; + } + + protected virtual void OnConnectConfirm(string topic, bool sameInstance) + { + } + + protected virtual void OnDisconnect(bool sameInstance) + { + } + + protected virtual void OnError(ushort errorCode) + { + } + + protected virtual DDEResult OnExecute(string topic, string command) + { + return DDEResult.FNOTPROCESSED; + } + + protected virtual byte[] OnRequest(ConversionFormat ufmt, string topic, string item) + { + return null; + } + + protected virtual DDEResult OnPoke(ConversionFormat uFormat, string topic, string item, byte[] data) + { + return DDEResult.FNOTPROCESSED; + } + + protected virtual void OnRegister(string baseServiceName, string instanceServiceName) + { + } + + protected virtual void OnUnRegister(string baseServiceName, string instanceServiceName) + { + } + + protected virtual void OnXactComplete(ConversionFormat uFormat, string topic, string item, IntPtr data, uint transactionID) + { + } + + protected virtual void OnCallback(MONCBSTRUCT mon) + { + } + + protected virtual void OnConversation(MONCONVSTRUCT mon) + { + } + + protected virtual void OnError(MONERRSTRUCT mon) + { + } + + protected virtual void OnString(MONHSZSTRUCT mon) + { + } + + protected virtual void OnLink(MONLINKSTRUCT mon) + { + } + + protected virtual void OnPost(MONMSGSTRUCT mon) + { + } + + protected virtual void OnSend(MONMSGSTRUCT mon) + { + } + /// + /// This class is needed to dispose of DDEML resources correctly since the DDEML is thread specific. + + } // class + +} diff --git a/SCADA/Program/DDEDriver/Properties/AssemblyInfo.cs b/SCADA/Program/DDEDriver/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0743eeb --- /dev/null +++ b/SCADA/Program/DDEDriver/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DDEDriver")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DDEDriver")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6d9e7bae-896d-4ac9-a3c3-2b8e01c96fe0")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SCADA/Program/DataExchange.sln b/SCADA/Program/DataExchange.sln index 8caf0ec..48ca860 100644 --- a/SCADA/Program/DataExchange.sln +++ b/SCADA/Program/DataExchange.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.27130.2020 +VisualStudioVersion = 15.0.27130.2027 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OPCDriver", "OPCDriver\OPCDriver.csproj", "{054DB7AC-EB2C-439F-80D4-63E823B279C8}" EndProject @@ -37,6 +37,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OmronPlcDriver", "OmronPlcD EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ABPLCDriver", "ABPLCReader\ABPLCDriver.csproj", "{02EA8F3A-29F0-4E11-B4F6-3BF87242D99F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DDEDriver", "DDEDriver\DDEDriver.csproj", "{14938033-7870-477D-925C-A447933A44E7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -343,6 +345,20 @@ Global {02EA8F3A-29F0-4E11-B4F6-3BF87242D99F}.Release|x64.Build.0 = Release|x64 {02EA8F3A-29F0-4E11-B4F6-3BF87242D99F}.Release|x86.ActiveCfg = Release|Any CPU {02EA8F3A-29F0-4E11-B4F6-3BF87242D99F}.Release|x86.Build.0 = Release|Any CPU + {14938033-7870-477D-925C-A447933A44E7}.Debug|Any CPU.ActiveCfg = Debug|x86 + {14938033-7870-477D-925C-A447933A44E7}.Debug|Itanium.ActiveCfg = Debug|x86 + {14938033-7870-477D-925C-A447933A44E7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {14938033-7870-477D-925C-A447933A44E7}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {14938033-7870-477D-925C-A447933A44E7}.Debug|x64.ActiveCfg = Debug|x86 + {14938033-7870-477D-925C-A447933A44E7}.Debug|x86.ActiveCfg = Debug|x86 + {14938033-7870-477D-925C-A447933A44E7}.Debug|x86.Build.0 = Debug|x86 + {14938033-7870-477D-925C-A447933A44E7}.Release|Any CPU.ActiveCfg = Release|x86 + {14938033-7870-477D-925C-A447933A44E7}.Release|Itanium.ActiveCfg = Release|x86 + {14938033-7870-477D-925C-A447933A44E7}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {14938033-7870-477D-925C-A447933A44E7}.Release|Mixed Platforms.Build.0 = Release|x86 + {14938033-7870-477D-925C-A447933A44E7}.Release|x64.ActiveCfg = Release|x86 + {14938033-7870-477D-925C-A447933A44E7}.Release|x86.ActiveCfg = Release|x86 + {14938033-7870-477D-925C-A447933A44E7}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/SCADA/dll/DDEDriver.dll b/SCADA/dll/DDEDriver.dll new file mode 100644 index 0000000000000000000000000000000000000000..f6494f257fa7dc14e05fdcefb98efb714a664a68 GIT binary patch literal 34816 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 E0rT