Exemplo n.º 1
0
        public void InitPointModel(List <AnalogPointModel> analogPointModels, List <FluxPointModel> fluxPointModels,
                                   List <FluxRunModel> fluxRunModels)
        {
            lock (_lock)
            {
                AnalogPointModels.Clear();
                AnalogPointModels.AddRange(analogPointModels);
                FluxPointModels.Clear();
                FluxPointModels.AddRange(fluxPointModels);

                AnalogPointModels.ForEach(p => p.InitPointModel());
                FluxPointModels.ForEach(p => p.InitPointModel(fluxRunModels?.FirstOrDefault(q => q.FluxID == p.FluxID)));
            }
            InitRealDataModel(RealDataModel);
        }
Exemplo n.º 2
0
 internal void Update(DateTime now, SubStationData substationData)
 {
     RealDataModel.Update(now, "正常", PointState.OK);
     AnalogPointModels.ForEach(p => p.Update(now, substationData.SensorRealDataInfos));
     try
     {
         lock (_lock)
         {
             FluxPointModels.ForEach(p => p.Update(now, AnalogPointModels.Select(p => p.RealDataModel).ToList()));
         }
         SubStationRunModel.UpdateSubStationRun(ref _subStationRunModel, _subStationRunModels, RealDataModel, this);
     }
     catch (Exception ex)
     {
         LogD.Error(ex.ToString());
     }
 }
Exemplo n.º 3
0
        protected override void ParseContent(List <string> lines, DateTime realTime)
        {
            var lineContents     = lines.Select(p => GetLines(p));
            var tempAnalogPoints = lineContents.Where(p => p.Length == 20).Select(p => new AnalogPoint(p, realTime)).Where(p => p.IsValid);

            if (tempAnalogPoints != null && tempAnalogPoints.Any())
            {
                AnalogPointModels.Clear();
                var analogPointModels = tempAnalogPoints.Select(p => p.AnalogPointModel).ToList();
                var analogPointDt     = ListToDataTableHelper.Models2Datatable <AnalogPointModel>("AnalogPoint", analogPointModels);
                DataRepo.Dapper.BulkUpdate(analogPointDt, "AnalogPoint", "EquipId");
                AnalogPointModels.AddRange(analogPointModels);
            }
            var tempSwitchPoints = lineContents.Where(p => p.Length == 15).Select(p => new SwitchPoint(p, realTime)).Where(p => p.IsValid);

            if (tempSwitchPoints != null && tempSwitchPoints.Any())
            {
                SwitchPointModels.Clear();
                var switchPointModels = tempSwitchPoints.Select(p => p.SwitchPointModel).ToList();
                var switchPointDt     = ListToDataTableHelper.Models2Datatable <SwitchPointModel>("SwitchPoint", switchPointModels);
                DataRepo.Dapper.BulkUpdate(switchPointDt, "SwitchPoint", "EquipId");
                SwitchPointModels.AddRange(switchPointModels);
            }
            var tempControlPoints = lineContents.Where(p => p.Length == 4).Select(p => new ControlPoint(p, realTime)).Where(p => p.IsValid);

            if (tempControlPoints != null && tempControlPoints.Any())
            {
                ControlPointModels.Clear();
                var controlPointModels = tempControlPoints.Select(p => p.ControlPointModel);
                var controlPointDt     = ListToDataTableHelper.Models2Datatable <ControlPointModel>("ControlPoint", controlPointModels);
                DataRepo.Dapper.BulkUpdate(controlPointDt, "ControlPoint", "EquipId");
                ControlPointModels.AddRange(controlPointModels);
            }
            var equipmentInfoModels = tempAnalogPoints.Select(p => p.EquipmentInfo).Union(tempSwitchPoints.Select(p => p.EquipmentInfo)).Union(tempControlPoints.Select(p => p.EquipmentInfo));

            if (equipmentInfoModels.Any())
            {
                var equipmentInfoDt = ListToDataTableHelper.Models2Datatable <EquipmentInfoModel>("EquipmentInfo", equipmentInfoModels);
                DataRepo.Dapper.BulkUpdate(equipmentInfoDt, "EquipmentInfo", "EquipId");
                EquipmentInfoModels.AddRange(equipmentInfoModels);
            }
        }
Exemplo n.º 4
0
        public void UpdateNetOff(DateTime now)
        {
            var value = "网络中断";
            var state = PointState.OFF;

            _tcpOffCount++;
            if (_tcpOffCount < DasConfig.NetworkOffCount &&
                this.RealDataModel.RealState == (int)PointState.OK)
            {
                RealDataModel.Update(now);
                AnalogPointModels.ForEach(p => p.Update(now));
            }
            else
            {
                RealDataModel.Update(now, value, state, FeedState.OK);
                AnalogPointModels.ForEach(p => p.UpdateWhenSubstationOff(now));
            }

            SubStationRunModel.UpdateSubStationRun(ref _subStationRunModel, _subStationRunModels, RealDataModel, this);
        }
Exemplo n.º 5
0
        protected override void ParseContent(List <string> lines, DateTime realTime)
        {
            var lineContents     = lines.Select(p => GetLines(p));
            var tempAnalogPoints = lineContents.Where(p => p.Length == 20).Select(GetAnalogPointModel).Where(p => p != default);

            if (tempAnalogPoints != null && tempAnalogPoints.Any())
            {
                AnalogPointModels.Clear();
                var dt = ListToDataTableHelper.Models2Datatable <KJ370_AnalogPointModel>("KJ370_AnalogPoint", tempAnalogPoints);
                DataRepo.Dapper.BulkUpdate(dt, "KJ370_AnalogPoint", "PointId");
                AnalogPointModels.AddRange(tempAnalogPoints);
            }
            var tempFluxPointsLines = lineContents.Where(p => p.Length == 7);
            var fluxFluxPoints      = GetKJ370_FluxPointModels(tempFluxPointsLines);

            if (fluxFluxPoints.Any())
            {
                FluxPointModels.Clear();
                var dt = ListToDataTableHelper.Models2Datatable <KJ370_FluxPointModel>("KJ370_FluxPoint", fluxFluxPoints);
                DataRepo.Dapper.BulkUpdate(dt, "KJ370_FluxPoint", "FluxId");
                FluxPointModels.AddRange(fluxFluxPoints);
            }
        }
Exemplo n.º 6
0
 public void UpdateAnalogOff(DateTime now)
 {
     RealDataModel.Update(now, "正常", PointState.OK);
     SubStationRunModel.UpdateSubStationRun(ref _subStationRunModel, _subStationRunModels, RealDataModel, this);
     AnalogPointModels.ForEach(p => p.Update(now));
 }