Exemplo n.º 1
0
        /// <summary>
        /// 检测升级
        /// </summary>
        private bool update_Main()
        {
            try
            {
                LogisTrac.WriteLog("kangjiamain--开始检查升级状态");
                string basth = yoyoConst.KANGJIA_PATH;

                model = htt_Upload();

                bool doflag = false;
                if (model == null)
                {
                    LogisTrac.WriteLog("kangjiamain--无法连接服务判断");
                    return(true);
                }
                string resVersion = OperateIniFile.ReadVersionIniData("RES_VERSION");
                string appVersion = OperateIniFile.ReadVersionIniData("MAIN_VERSION");
                string mcpVersion = OperateIniFile.ReadVersionIniData("HARD_VERSION");
                if (model.data.resVersion != null && resVersion != null && model.data.resVersion.Trim() != resVersion.Trim())
                {
                    //下载解压
                    doflag = update_downloadAndUnZipFile(model.data.resUrl, this.up_resVersion_url);
                    if (!doflag)
                    {
                        LogisTrac.WriteLog("kangjiamain--资源文件下载解压失败,版本" + model.data.resVersion);
                        return(doflag);
                    }
                    LogisTrac.WriteLog("kangjiamain--资源文件下载解压成功" + resVersion + "end");//model.data.
                    //复制到指定目录,删除原始文件
                    doflag = update_replaceFile(this.up_resVersion_url, basth + "\\res");
                    if (!doflag)
                    {
                        LogisTrac.WriteLog("kangjiamain--资源文件替换失败,版本" + model.data.resVersion + "end");
                        return(doflag);
                    }
                    FileHelper.DeleteFolder(this.up_resVersion_url);
                    OperateIniFile.WriteVersionIniData("RES_VERSION", model.data.resVersion);
                    LogisTrac.WriteLog("kangjiamain--资源文件更新成功,版本" + model.data.resVersion + "end");
                }
                if (model.data.appVersion != null && appVersion != null && model.data.appVersion.Trim() != appVersion.Trim())
                {
                    //下载解压
                    doflag = update_downloadAndUnZipFile(model.data.appUrl, this.up_appVersion_url);
                    if (!doflag)
                    {
                        LogisTrac.WriteLog("kangjiamain--主程序文件下载解压失败,版本" + model.data.appVersion + "end");
                        return(doflag);
                    }
                    //复制到指定目录,删除原始文件
                    doflag = update_replaceFile(this.up_appVersion_url, basth);
                    if (!doflag)
                    {
                        LogisTrac.WriteLog("kangjiamain--主程序文件替换失败,版本" + model.data.appVersion + "end");
                        return(doflag);
                    }
                    FileHelper.DeleteFolder(this.up_appVersion_url);
                    OperateIniFile.WriteVersionIniData("MAIN_VERSION", model.data.appVersion);
                    LogisTrac.WriteLog("kangjiamain--主程序文件更新成功,版本" + model.data.appVersion + "end");
                }
                if (model.data.mcpVersion.Length <= 9 || yoyoConst.VERSION.Length <= 9)
                {
                    return(false);
                }
                //if (model.data.mcpVersion != yoyoConst.VERSION.Substring(9))//TODO

                string[] list1 = new string[2];//yoyoConst.VERSION.Split('H');
                list1[0] = yoyoConst.VERSION.Substring(0, 9);
                list1[1] = yoyoConst.VERSION.Substring(9);

                string[] list2 = new string[2];//model.data.mcpVersion.Split('H');
                list2[0] = model.data.mcpVersion.Trim().Substring(0, 9);
                list2[1] = model.data.mcpVersion.Trim().Substring(9);

                if (list1.Length == 2 && list1.Length == list2.Length && list1[0] != list2[0] && list1[1] == list2[1])
                {
                    //下载解压
                    doflag = update_downloadAndUnZipFile(model.data.mcpUrl, this.up_mcpVersion_url);
                    if (!doflag)
                    {
                        LogisTrac.WriteLog("kangjiamain--固件文件下载解压失败,版本" + model.data.mcpVersion + "end");
                        return(doflag);
                    }
                    string filename = FileHelper.getFilename(this.up_mcpVersion_url, ".bin");

                    if (!string.IsNullOrEmpty(filename))
                    {
                        Init_Device_doing = true;
                        testuploadByte    = FileHelper.GetFileData(filename);
                        cmdnew.hardLength = FileHelper.FileSize(filename);
                        devicemanager.Write(new Cmd_S_Ready());
                    }
                    else
                    {
                        LogisTrac.WriteLog("kangjiamain--固件升级文件不是bin文件");
                        return(true);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                LogisTrac.WriteLog(ex.Message);
                return(false);
            }
        }