public static void SaveChannel(XmlElement node, IChannel channel) { OPCBaseChannel channelBase = (OPCBaseChannel)channel; node.SetAttribute("name", channelBase.Name); node.SetAttribute("opcChannel", channelBase.OpcChannel); node.SetAttribute("opcServer", channelBase.OpcServer); node.SetAttribute("opcHost", channelBase.OpcHost); }
public bool Connect() { if (IsConnected) { return(false); } connectionGroups.Clear(); System.GC.Collect(); if (channels.Count > 0) { List <IChannel> originalChannels = new List <IChannel>(); originalChannels.AddRange(channels); do { List <OPCBaseChannel> groupChannels = new List <OPCBaseChannel>(); OPCBaseChannel lhc = (OPCBaseChannel)originalChannels[0]; groupChannels.Add(lhc); originalChannels.RemoveAt(0); for (int i = originalChannels.Count - 1; i >= 0; i--) { OPCBaseChannel rhc = (OPCBaseChannel)originalChannels[i]; if (lhc.OpcServer == rhc.OpcServer && lhc.OpcHost == rhc.OpcHost) { groupChannels.Add(rhc); originalChannels.RemoveAt(i); } } connectionGroups.Add(new ConnectionGroup(lhc.OpcServer, lhc.OpcHost, groupChannels)); } while (originalChannels.Count > 0); } connectedFlag = true; return(IsConnected); }