public BatchHelper(ICollectorStore store) { _store = store; if (LineBatch != null) { LineBatch.Clear(); } else { LineBatch = new ConcurrentDictionary <string, Ps_Batch>(); } var batch = new Ps_Batch(); batch.Status = 1; LineBatch.TryAdd(line1_key, batch); batch = new Ps_Batch(); batch.Status = 1; LineBatch.TryAdd(line2_key, batch); batch = new Ps_Batch(); batch.Status = 1; LineBatch.TryAdd(line4_key, batch); batch = new Ps_Batch(); batch.Status = 1; LineBatch.TryAdd(line5_key, batch); }
public ScanInstance(Channel _channel, LogicGroup _group, int _interval, ICollectorStore _store) { ScanEnabled = false; Channel = _channel; Group = _group; Interval = _interval; store = _store; DataList = new Dictionary <VarType, Dictionary <int, List <DataItem> > >(); var keys = Group.TargetNodeIdList.GetValueOrDefault(Interval); foreach (var key in keys) { var node = Channel.Nodes[key]; if (!DataList.ContainsKey(node.VarType)) { var pageData = new Dictionary <int, List <DataItem> >(); pageData.Add(1, new List <DataItem>()); pageData[1].Add((DataItem)Channel.Nodes[key]); DataList.Add(node.VarType, pageData); } else { if (node.VarType == VarType.String || node.VarType == VarType.StringEx) { var iPageIndex = DataList[node.VarType].Keys.Last(); if (DataList[node.VarType][iPageIndex].Count >= 1) { var iNewPage = iPageIndex + 1; DataList[node.VarType].Add(iNewPage, new List <DataItem>()); DataList[node.VarType][iNewPage].Add((DataItem)Channel.Nodes[key]); } else { DataList[node.VarType][iPageIndex].Add((DataItem)Channel.Nodes[key]); } } else { var iPageIndex = DataList[node.VarType].Keys.Last(); if (DataList[node.VarType][iPageIndex].Count >= 10) { var iNewPage = iPageIndex + 1; DataList[node.VarType].Add(iNewPage, new List <DataItem>()); DataList[node.VarType][iNewPage].Add((DataItem)Channel.Nodes[key]); } else { DataList[node.VarType][iPageIndex].Add((DataItem)Channel.Nodes[key]); } } } } }
private DataCenter() { successed = false; store = new CollectorStoreImple(); Lines = new Dictionary <int, LineManager>(); InitKeyLineRelation(); LoadLinesAsync().Wait(); }
/// <summary> /// 停止 /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override async Task StopAsync(CancellationToken cancellationToken) { Data.Clear(); foreach (var line in Lines) { line.Stop(); } Lines.Clear(); Lines = null; _helper = null; _store = null; await base.StopAsync(cancellationToken); }
/// <summary> /// 启动 /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> public override async Task StartAsync(CancellationToken cancellationToken) { Data = new Dictionary <string, object>(); var _configuration = _serviceScopeFactory.CreateScope().ServiceProvider.GetRequiredService <IConfiguration>(); ConnectionString = _configuration["Configurations:ConnectionString"]; RedisConnectionString = _configuration["Configurations:Redis"]; _store = new CollectorStoreImple(ConnectionString); RedisHelper.Initialization(new CSRedis.CSRedisClient(RedisConnectionString)); _helper = new BatchHelper(_store); await LoadLinesAsync(); await base.StartAsync(cancellationToken); }
// 禁止外部实例化 private TerminalClient() { store = new CollectorStoreImple(); PlcDic = new Dictionary <Int64, Plc>(); ChannelList = new List <Channel>(); var list = store.GetPlcListAsync().Result; foreach (var entity in list) { var channel = new Channel(entity.Id, entity.Name); channel.CpuType = entity.CpuType; channel.Slot = entity.Slot; channel.Rack = entity.Rack; channel.Port = entity.Port; channel.IP = entity.Ip; channel.IsAvailable = false; channel.IsConnected = false; ChannelList.Add(channel); } }
public CollectorServer(ICollectorStore _store) { InstanceList = new List <ScanInstance>(); store = _store; ins = DataCenter.Instance; }