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; }
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); }
// 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 }