public DataTransmitClientService() : base() { _cache = new Manager <string, Tag>(); _transmits = new ConcurrentDictionary <TransmitClient, IList <TagConfig> >(); _channelManager = new ChannelManager(); _connDictionary = new ConcurrentDictionary <string, SocketAsyncEventArgs>(); _transmitTasks = new List <Thread>(); using (TransmitClientService tcs = TransmitClientService.Instance) { IList <TransmitClient> tcList = tcs.GetAllTransmitClient(); if (tcList.Count > 0) { using (PublicTagService pts = PublicTagService.Instance) { foreach (TransmitClient tc in tcList) { IList <TagConfig> tagConfigs = pts.GetPublicTagsOfService(tc.Id); foreach (TagConfig tag in tagConfigs) { if (TagConfigs.FirstOrDefault(t => t.Id == tag.Id) == null) { TagConfigs.Add(tag); } } _transmits.TryAdd(tc, tagConfigs); } } } } }
public override int GetHashCode() { unchecked { return(((TagConfigs != null ? TagConfigs.GetHashCode() : 0) * 397) ^ (ScrollConfigs != null ? ScrollConfigs.GetHashCode() : 0)); } }
public DataTransmitServerService() : base() { _cache = new Manager <string, Tag>(); try { using (TransmitServerConnectService tscs = TransmitServerConnectService.Instance) { tscs.DeleteAllTransmitServerConnect(); } using (TransmitServerService tss = TransmitServerService.Instance) { _transmitServer = tss.GetTransmitServer(); if (_transmitServer != null) { using (PublicTagService ptc = PublicTagService.Instance) { IList <TagConfig> publicTags = ptc.GetPublicTagsOfService(_transmitServer.Id); foreach (TagConfig tc in publicTags) { TagConfigs.Add(tc); } } } } } catch (Exception ex) { OnServiceLog(ex.Message); } }
public OPCServerService() : base() { try { using (PublicOpcServerService poss = PublicOpcServerService.Instance) { _posModel = poss.GetPublicOpcServer(); if (_posModel != null) { using (PublicTagService ptc = PublicTagService.Instance) { IList <TagConfig> publicTags = ptc.GetPublicTagsOfService(_posModel.Id); foreach (TagConfig tc in publicTags) { TagConfigs.Add(tc); } } } } } catch (Exception ex) { OnServiceLog(ex.Message); } }
public override void TagValueSubscriber(TagValuePublishedArgs args) { if (_transmits.Count <= 0) { return; } if (TagConfigs.FirstOrDefault(t => t.TagName == args.TagName) != null) { string key = args.TagName; if (!_cache.ContainsKey(key)) { Tag tag = new Tag() { Timestamp = args.NewTimestamp, TagId = args.TagId, TagName = args.TagName, TagValue = args.NewValue }; _cache.TryAdd(key, tag); } else { Tag oldValue; if (_cache.TryGetValue(key, out oldValue)) { if (oldValue == null) { Tag tag = new Tag() { Timestamp = args.NewTimestamp, TagId = args.TagId, TagName = args.TagName, TagValue = args.NewValue }; _cache.TryAdd(key, tag); } else { if (oldValue.TagValue != args.NewValue) { oldValue.Timestamp = args.NewTimestamp; oldValue.TagId = args.TagId; oldValue.TagName = args.TagName; oldValue.TagValue = args.NewValue; //_cache.TryUpdate(key, tag, oldValue); } } } } } }
public override void TagValueSubscriber(TagValuePublishedArgs args) { if (_posModel == null || !_posModel.IsStart) { return; } if (!OPCServerInstance.IsRunning) { OnServiceLog("OPC Server 没有启动"); return; } if (TagConfigs.FirstOrDefault(t => t.TagName == args.TagName) != null) { string key = args.TagName; object val = args.NewValue; if (!_cache.ContainsKey(key)) { _cache.TryAdd(key, val); OPCServerInstance.UpdateTag(key, val); } else { object oldValue; if (_cache.TryGetValue(key, out oldValue)) { if (val != oldValue) { _cache.TryUpdate(key, val, oldValue); OPCServerInstance.UpdateTag(key, val); } } } } }