コード例 #1
0
        /// <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);
        }