/// <summary> /// 报警的上下限配置在排产的 Bom 表中,由于 Bom 表的逻辑在 DMesCore 中,所以这里仅仅是将需要检查的参数派发出去 /// </summary> /// <param name="machineCode">报警机台</param> /// <param name="cpms">机台的参数列表</param> void dispatchCheckBomAlarm(string machineCode, List <Cpm> cpms) { cpms?.ForEach(cpm => { if (MachineConfig.MachineDict[machineCode].CodeToMqBomAlarmCpmDict.TryGetValue(cpm.Code, out var alarmCpm)) { if (cpm.ValueType != SmParamType.Signal) { Logger.Error($"机台 {machineCode} 参数 {cpm.Name} 的值不是浮点类型,不能报警", 36000); return; } var bomKeys = alarmCpm.MqAlarmBomKeys; if (bomKeys?.Length != 2) { Logger.Error($"机台 {machineCode} 参数 {cpm.Name} 的报警配置有误,长度不为 2 ", 36000); return; } string max = null; string min = null; string std = null; foreach (var key in bomKeys) { if (key.ToLower().Contains("max")) { max = key; } else if (key.ToLower().Contains("min")) { min = key; } else { std = key; } } var alarmCheck = new AlarmBomCheck() { Cpm = cpm, MaxBomKey = max, MinBomKey = min, StdBomKey = std }; App.Store.Dispatch(new AlarmActions.CheckCpmBomAlarm(machineCode, alarmCheck)); } }); }
public CheckCpmBomAlarm(string machineCode, AlarmBomCheck alarmBomCheck) { MachineCode = machineCode; AlarmBomCheck = alarmBomCheck; }