Exemplo n.º 1
0
        /// <summary>
        /// 根据vobc烧录文件类型获取对应该类型的nameof值
        /// </summary>
        /// <param name="type">vobc烧录文件类型</param>
        /// <returns></returns>
        public static string GetFileByType(vobcFileType type)
        {
            //返回值变量定义
            string rtnString = "";

            //根据输入的子系统文件类型 转译成子系统文件名称
            switch (type)
            {
            case vobcFileType.BootLoader:
                rtnString = "引导文件";
                break;

            case vobcFileType.CCOVConfig:
                rtnString = "配置";
                break;

            case vobcFileType.CORE:
                rtnString = "内核";
                break;

            case vobcFileType.DATA:
                rtnString = "数据";
                break;

            case vobcFileType.NVRAM:
                rtnString = "NvRam";
                break;

            default:
                break;
            }

            return(rtnString);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 外部接口设置VOBC某产品实体的某设备烧录进度状态属性
        /// </summary>
        /// <param name="ip">vobc产品IP</param>
        /// <param name="deviceProc">要设置的进度信息(百分比)</param>
        /// <param name="type">产品子系统类型</param>
        /// <param name="file">产品子系统文件类型</param>
        /// <returns>无</returns>
        public void SetProductVOBCDeviceProc(string ip, int deviceProc, vobcSystemType type, vobcFileType file)
        {
            //根据IP获取对应的product内容
            IProduct product = this.Find(x => (x.Ip == ip));

            //product非空验证
            if (null != product)
            {
                //依据检索出的product 根据产品实体名称 获取对应的device内容
                IDevice device = product.CBelongsDevice.Find(y => y.DeviceName == CommonMethod.GetStringByType(type));

                //device非空验证
                if (null != device)
                {
                    //设置进度信息
                    device.ProcessState = CommonMethod.GetFileByType(file) + ":" + deviceProc.ToString() + "%";

                    if (deviceProc != 100)
                    {
                        device.State = "更新执行中";
                    }

                    //如果进度为100%,设置状态为下发完成
                    if (deviceProc == 100)
                    {
                        device.State = "下发完成";
                    }

                    ///通知界面数据变化
                    dataModify.Modify();

                    //记录日志
                    LogManager.InfoLog.LogProcInfo("IProContainer", "SetProductVOBCDeviceProcState", "设置IP为" + ip + "的产品" + product.ProductID + "中的设备" + device.DeviceName + "的进度为" + deviceProc);

                    //待定:未收到更新回复超时
                    //if (device.State == "下发完成")
                    //{
                    //    int skipCount = 0;
                    //    while ((device.State != "更新成功") || (device.State != "更新失败"))
                    //    {
                    //        if (skipCount > 30)
                    //        {
                    //            device.State = "更新失败";
                    //            LogManager.InfoLog.LogProcInfo("VOBCProduct", "GenConfigHLHT", "未收到下位机允许上传回复超时或下位机拒绝上传文件");

                    //            break;
                    //        }
                    //        else
                    //        {
                    //            //跳出计数+1
                    //            skipCount++;

                    //            //休眠1秒
                    //            Thread.Sleep(1000);
                    //        }
                    //    }
                    //}
                }
                else
                {
                    //记录异常日志
                    LogManager.InfoLog.LogProcError("IProContainer", "SetProductVOBCDeviceProcState", "设置IP为" + ip + "的产品" + product.ProductID + "中的设备" + CommonMethod.GetStringByType(type) + "的进度时,未检索到该device");
                }
            }
            else
            {
                //记录异常日志
                LogManager.InfoLog.LogProcError("IProContainer", "SetProductVOBCDeviceProcState", "设置VOBC产品实体烧录进度时,未获取到IP为" + ip + "的产品");
            }
        }