/// <summary> /// 获取系统运行状态 /// </summary> /// <param name="state">状态字节</param> /// <param name="str">输出状态字符串</param> /// <param name="statusCode">状态代码</param> /// <returns>返回系统运行状态</returns> public DsSystemState GetSysRunState(byte state, out string str, out string statusCode) { str = ""; statusCode = ""; statusCode = ByteHelper.ByteToBit(state); byte[] bys = ByteHelper.GetBooleanArray(state); DsSystemState status = new DsSystemState(); status.StatusTime = DateTime.Now; for (int i = 0; i < bys.Length; i++) { string name = Enum.GetName(typeof(DSSysStatus), i); string ste = (int.Parse(bys[i].ToString()) == 0 ? "正常" : "故障"); str += (Environment.NewLine + "【" + (i + 1) + ":" + str + ":" + ste + "】"); DSSysStatus sys = (DSSysStatus)Enum.Parse(typeof(DSSysStatus), i.ToString()); switch (sys) { case DSSysStatus.交流电状态: status.ACStatus = ste; break; case DSSysStatus.备用电池状态: status.Backipbattery = ste; break; case DSSysStatus.报告发送状态: status.Reportsent = ste; break; case DSSysStatus.控制状态: status.Control = ste; break; case DSSysStatus.MPX总线状态: status.MPXStatus = ste; break; case DSSysStatus.无线接收状态: status.Wirelessreceiving = ste; break; case DSSysStatus.辅助电源状态: status.Auxiliarypower = ste; break; case DSSysStatus.Option设备状态: status.OptionStatus = ste; break; default: break; } } str += Environment.NewLine; return(status); }