/// <summary> /// C9是否通过测试 /// </summary> /// <returns></returns> public override bool IsPass() { CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType); if (cid == CustomProductID.Unknow) { Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType); return(false); } ProductID pid = ProductIDConvertor.Custom2ProductID(cid); Hashtable alarmMetrix = null; uint depletealArmIndex = 0, lowVolArmIndex = 0; //耗尽和低电压索引 uint completeArmIndex = 0, willCompleteArmIndex = 0; //输液结束和输液即将结束 uint forgetStartAlarmIndex = 0; //遗忘操作 #region //查询耗尽、遗忘操作、低电、输液结束和输液即将结束5种类型的报警ID switch (pid) { case ProductID.GrasebyC9: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC9; depletealArmIndex = 15; lowVolArmIndex = 12; completeArmIndex = 17; willCompleteArmIndex = 14; forgetStartAlarmIndex = 13; break; default: break; } #endregion if (depletealArmIndex == 0 || lowVolArmIndex == 0 || completeArmIndex == 0 || willCompleteArmIndex == 0 || forgetStartAlarmIndex == 0 ) { return(false); } int findIndex = m_AlarmList.FindIndex((x) => { return(x > 0 && x != depletealArmIndex && x != lowVolArmIndex && x != completeArmIndex && x != willCompleteArmIndex && x != forgetStartAlarmIndex); }); if (findIndex >= 0) { return(false); } else { return(true); } }
/// <summary> /// 查找某C9类泵所有出现的报警ID对应的首次发生时间 /// </summary> /// <returns></returns> public override string GetAlarmStringAndOcurredTime() { CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType); if (cid == CustomProductID.Unknow) { Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType); return(string.Empty); } ProductID pid = ProductIDConvertor.Custom2ProductID(cid); Hashtable alarmMetrix = null; #region //查询所属报警的映射表 switch (pid) { case ProductID.GrasebyC9: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC9; break; default: break; } #endregion if (alarmMetrix == null) { return(""); } StringBuilder sb = new StringBuilder(); DateTime ocurredTime = DateTime.MinValue; foreach (var id in m_AlarmList) { if (id > 0) { if (m_AlarmOccurredTime.ContainsKey(id)) { ocurredTime = (DateTime)m_AlarmOccurredTime[id]; if (ocurredTime.Year > 2000) { sb.Append(ocurredTime.ToString("yyyy-MM-dd HH:mm:ss")); sb.Append("->"); } } sb.Append(alarmMetrix[id] as string); sb.Append("\n"); } } return(sb.ToString().TrimEnd('\n')); }
public override string GetAlarmString() { CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType); if (cid == CustomProductID.Unknow) { Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType); return(string.Empty); } ProductID pid = ProductIDConvertor.Custom2ProductID(cid); Hashtable alarmMetrix = null; #region //查询所属报警的映射表 switch (pid) { case ProductID.GrasebyC9: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC9; break; default: break; } #endregion if (alarmMetrix == null) { return(""); } StringBuilder sb = new StringBuilder(); int iCount = 0; foreach (var id in m_AlarmList) { if (alarmMetrix.ContainsKey(id)) { sb.Append(alarmMetrix[id] as string); sb.Append(";"); ++iCount; if (iCount % 2 == 0) { sb.Append("\n"); } } } return(sb.ToString()); }
/// <summary> /// 判断是否通过的标准就是除了低电和耗尽,其他的报警都算不通过(项目二期修改要求:输液即将结束、输液结束不作为报警存在) /// </summary> /// <returns></returns> public bool IsPass() { CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType); if (cid == CustomProductID.Unknow) { Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType); return(false); } ProductID pid = ProductIDConvertor.Custom2ProductID(cid); Hashtable alarmMetrix = null; uint depletealArmIndex = 0, lowVolArmIndex = 0; //耗尽和低电压索引 uint completeArmIndex = 0, willCompleteArmIndex = 0; //输液结束和输液即将结束 uint forgetStartAlarmIndex = 0; //未启动 #region //查询耗尽.低电输液结束和输液即将结束4种类型的报警索引 switch (pid) { case ProductID.GrasebyC6: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6; depletealArmIndex = 0x00000008; lowVolArmIndex = 0x00000100; completeArmIndex = 0x00000080; willCompleteArmIndex = 0; break; case ProductID.GrasebyC6T: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6T; depletealArmIndex = 0x00000008; lowVolArmIndex = 0x00000100; completeArmIndex = 0x00000080; willCompleteArmIndex = 0; break; case ProductID.GrasebyC8: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8; depletealArmIndex = 0x00010000; lowVolArmIndex = 0x00000001; completeArmIndex = 0x00040000; willCompleteArmIndex = 0x00000004; forgetStartAlarmIndex = 0x00000002; break; case ProductID.GrasebyF6: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixF6; depletealArmIndex = 0x00000008; lowVolArmIndex = 0x00000100; completeArmIndex = 0x00000080; willCompleteArmIndex = 0; break; case ProductID.GrasebyF8: //C8和F8是一样 alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8; depletealArmIndex = 0x00010000; lowVolArmIndex = 0x00000001; completeArmIndex = 0x00040000; willCompleteArmIndex = 0x00000004; forgetStartAlarmIndex = 0x00000002; break; case ProductID.Graseby1200: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200; depletealArmIndex = 0x00000010; lowVolArmIndex = 0x00004000; completeArmIndex = 0x00000100; willCompleteArmIndex = 0x00001000; break; case ProductID.Graseby1200En: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200En; depletealArmIndex = 0x00000020; lowVolArmIndex = 0x00008000; completeArmIndex = 0x00000200; willCompleteArmIndex = 0x00002000; break; case ProductID.Graseby2000: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2000; depletealArmIndex = 0x00000008; lowVolArmIndex = 0x00000100; completeArmIndex = 0x00000080; willCompleteArmIndex = 0; break; case ProductID.Graseby2100: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2100; depletealArmIndex = 0x00000008; lowVolArmIndex = 0x00000100; completeArmIndex = 0x00000080; willCompleteArmIndex = 0; break; default: break; } #endregion uint filterAlarm = m_Alarm & (~(depletealArmIndex | lowVolArmIndex | completeArmIndex | willCompleteArmIndex | forgetStartAlarmIndex)); if (filterAlarm > 0) { return(false); } else { return(true); } }
public string GetAlarmStringAndOcurredTime() { CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType); if (cid == CustomProductID.Unknow) { Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType); return(string.Empty); } ProductID pid = ProductIDConvertor.Custom2ProductID(cid); Hashtable alarmMetrix = null; #region //查询所属报警的映射表 switch (pid) { case ProductID.GrasebyC6: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6; break; case ProductID.GrasebyC6T: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6T; break; case ProductID.GrasebyC8: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8; break; case ProductID.GrasebyF6: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixF6; break; case ProductID.GrasebyF8: //C8和F8是一样 alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8; break; case ProductID.Graseby1200: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200; break; case ProductID.Graseby1200En: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200En; break; case ProductID.Graseby2000: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2000; break; case ProductID.Graseby2100: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2100; break; default: break; } #endregion StringBuilder sb = new StringBuilder(); DateTime ocurredTime = DateTime.MinValue; foreach (DictionaryEntry dic in alarmMetrix) { uint alarmID = (uint)dic.Key; if ((alarmID & m_Alarm) == alarmID) { if (m_AlarmOccurredTime.ContainsKey(alarmID)) { ocurredTime = (DateTime)m_AlarmOccurredTime[alarmID]; if (ocurredTime.Year > 2000) { sb.Append(ocurredTime.ToString("yyyy-MM-dd HH:mm:ss")); sb.Append("->"); } } sb.Append(dic.Value); sb.Append("\n"); } } return(sb.ToString().TrimEnd('\n')); }
public string GetAlarmString() { CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType); if (cid == CustomProductID.Unknow) { Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType); return(string.Empty); } ProductID pid = ProductIDConvertor.Custom2ProductID(cid); Hashtable alarmMetrix = null; #region //查询所属报警的映射表 switch (pid) { case ProductID.GrasebyC6: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6; break; case ProductID.GrasebyC6T: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6T; break; case ProductID.GrasebyC8: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8; break; case ProductID.GrasebyF6: alarmMetrix = AlarmMetrix.Instance().AlarmMetrixF6; break; case ProductID.GrasebyF8: //C8和F8是一样 alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8; break; case ProductID.Graseby1200: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200; break; case ProductID.Graseby1200En: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200En; break; case ProductID.Graseby2000: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2000; break; case ProductID.Graseby2100: alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2100; break; default: break; } #endregion StringBuilder sb = new StringBuilder(); int iCount = 0; foreach (DictionaryEntry dic in alarmMetrix) { uint alarmID = (uint)dic.Key; if ((alarmID & m_Alarm) == alarmID) { sb.Append(dic.Value); sb.Append(";"); ++iCount; if (iCount % 2 == 0) { sb.Append("\n"); } } } return(sb.ToString()); }