Пример #1
0
        public void clone(SpData cloneA)
        {
//			this.unique_id = cloneA.unique_id;
            this.class_type = cloneA.class_type;
            this.tag_id     = cloneA.tag_id;
            this.type       = cloneA.type;
            this.pos_x      = cloneA.pos_x;
            this.pos_y      = cloneA.pos_y;
            this.wave_id    = cloneA.wave_id;
            this.show_time  = cloneA.show_time;
            this.z_order    = cloneA.z_order;
            this.alert_x    = cloneA.alert_x;
            this.script_id  = cloneA.script_id;
            this.bg_name    = cloneA.bg_name;
            this.bg_scale_x = cloneA.bg_scale_x;
            this.rect_x1    = cloneA.rect_x1;
            this.rect_x2    = cloneA.rect_x2;
            this.rect_x3    = cloneA.rect_x3;
            this.rect_x4    = cloneA.rect_x4;
            this.rect_y1    = cloneA.rect_y1;
            this.rect_y2    = cloneA.rect_y2;
            this.rect_y3    = cloneA.rect_y3;
            this.rect_y4    = cloneA.rect_y4;

            this.display_x = cloneA.display_x;
            this.display_y = cloneA.display_y;

            this.create_inmap = cloneA.create_inmap;
            this.boss_dropped = cloneA.boss_dropped;
            this.max_monster  = cloneA.max_monster;
        }
Пример #2
0
        public double?FindSignalValue(string signal)
        {
            if (SpData.ContainsKey(signal))
            {
                return(SpData[signal]);
            }
            var graph = Graphs.FirstOrDefault(g => g.Signal == signal);

            if (graph != null)
            {
                return(graph.Number);
            }
            return(null);
        }
Пример #3
0
//        public double Speed { get; set; }

        /// <summary>
        /// 根据机泵运行情况构建的要获取的实时数据的结构
        /// </summary>
        public RtData()
        {
            #region 构建【单点数据】的结构,并设置如何映射到Redis中

            foreach (var ppGuid in RuntimeRepo.RunningPumpGuids)
            {
                foreach (var phy in SysConstants.SENSORSETTING.Values)
                {
                    var vibraSignal = $"${phy}_{ppGuid}";
                    SpData.Add(vibraSignal, default(double));
                    var sensor = Repo.SensorList.FirstOrDefault(p =>
                                                                SysConstants.SENSORSETTING[p.LOCATION + "_" + p.DIRECTION] == phy &&
                                                                ppGuid == p.PPGUID);
                    if (sensor != null)
                    {
                        var keyVibra = $"{{{sensor.SSGUID}}}_{SysConstants.VIBRADICT.OverAll}".ToUpper();
                        RedisKeyMap.Add(keyVibra, vibraSignal);
                    }
                    else
                    {
                        Log.Warn($"实时数据构建:振动传感器未找到: {phy} ppguid: {ppGuid} (将导致相关判据无法解析)");
                    }
                }

                foreach (var phynv in SysConstants.PHYDEF_NONVIBRA)
                {
                    var noVibraSignal = $"${phynv}_{ppGuid}";
                    SpData.Add(noVibraSignal, default(double));
                    var sensor = Repo.PhyDefNoVibra.FirstOrDefault(p => p.REMARK == phynv && ppGuid == p.PPGUID);
                    if (sensor != null)
                    {
                        var keyNoVibra = $"{{{ppGuid}}}_{sensor.PDNVCODE}".ToUpper();
                        RedisKeyMap.Add(keyNoVibra, noVibraSignal);
                    }
                    else
                    {
                        Log.Warn($"实时数据构建:非振动传感器未找到: {phynv} ppguid: {ppGuid} (将导致相关判据无法解析)");
                    }
                }

                var speedSignal = SpeedTransducer.FormatTdSpeedSignal(ppGuid.ToString());
                SpData.Add(speedSignal, default(double));
                var keySpeed = $"{{{ppGuid}}}_{SysConstants.VIBRADICT.Speed}".ToUpper();
                RedisKeyMap.Add(keySpeed, speedSignal);
            }

            #endregion


            #region 构建【振动图谱数据】的结构

            int graphNumber = 1;
            foreach (var pumpGuid in RuntimeRepo.RunningPumpGuids)
            {
                foreach (var sensorSetting in SysConstants.SENSORSETTING)
                {
                    var sensor =
                        Repo.SensorList.FirstOrDefault(
                            p => p.LOCATION + "_" + p.DIRECTION == sensorSetting.Key && pumpGuid == p.PPGUID);
                    var pos = FindPosFromSignal(sensorSetting.Value);
                    Debug.Assert(pos != null, "sensorSetting 传感器位置无法解析");
                    if (sensor == null)
                    {
                        continue;
                    }
                    Graphs.Add(new Graph {
                        Signal = PubFuncs.FormatGraphSignal(sensor.SSGUID.ToString(), GraphType.Spectrum),
                        Number = graphNumber++,
                        Pos    = pos.Value,
                        Type   = GraphType.Spectrum
                    });

                    Graphs.Add(new Graph {
                        Signal = PubFuncs.FormatGraphSignal(sensor.SSGUID.ToString(), GraphType.TimeWave),
                        Number = graphNumber++,
                        Pos    = pos.Value,
                        Type   = GraphType.TimeWave
                    });
                }
            }

            #endregion
        }