예제 #1
0
        private void OnConnectedFail(object state)//由于是主线程的同步对象Post调用,这个是在主线程中执行的
        {
            //labVersion.Text = state.ToString();


            toolTip1.SetToolTip(this.labVersion, "检测新版本失败,请点击确认是否有新版本更新");
            versionInfo = null;

            labVersion.Text      = labVersion.Text + "(×)";
            labVersion.ForeColor = Color.FromArgb(0, 0, 255);
            labVersion.Cursor    = Cursors.Hand;
            Font s = new Font(this.labVersion.Font.FontFamily, this.labVersion.Font.Size, FontStyle.Underline);

            labVersion.Font   = s;
            labVersion.Click += LabVersion_Click;



            //这里就回到了主线程里面了
            //做一些事情
        }
예제 #2
0
        private void OnConnected(object state)//由于是主线程的同步对象Post调用,这个是在主线程中执行的
        {
            if (state != null)
            {
                toolTip1.SetToolTip(this.labVersion, "检测到新版本,点击更新");
                versionInfo = (OTAInfo)state;

                labVersion.Text      = labVersion.Text + "(×)";
                labVersion.ForeColor = Color.FromArgb(0, 0, 255);
                labVersion.Cursor    = Cursors.Hand;
                Font s = new Font(this.labVersion.Font.FontFamily, this.labVersion.Font.Size, FontStyle.Underline);
                labVersion.Font   = s;
                labVersion.Click += LabVersion_Click;
            }
            else
            {
                labVersion.Cursor = Cursors.Default;
                toolTip1.SetToolTip(this.labVersion, "已是最新版本");
                labVersion.Text = labVersion.Text + "(√)";
            }
        }
예제 #3
0
        private void ThreadMain(object v)
        {
            OTAInfo otaInfo = new OTAInfo();

            try
            {
                String JsonStr = getWebHtml("https://gitee.com/api/v5/repos/a2633063/SmartControl_PC/releases/latest");
                if (JsonStr == null || JsonStr.Length < 3)
                {
                    throw new Exception("获取最新版本信息失败");
                }

                //Console.WriteLine(s);
                JObject obj = JObject.Parse(JsonStr);

                otaInfo            = new OTAInfo();
                otaInfo.title      = obj["name"].ToString();
                otaInfo.message    = obj["body"].ToString();
                otaInfo.tag_name   = obj["tag_name"].ToString();
                otaInfo.created_at = obj["created_at"].ToString();

                String tag_name_old = v.ToString();
                if (tag_name_old.Equals(otaInfo.tag_name))
                {
                    Console.WriteLine("已经是最新版本");
                    mainThreadSynContext.Post(new SendOrPostCallback(OnConnected), null);//通知主线程
                    return;
                }


                // Toast.makeText(getActivity(), "已是最新版本", Toast.LENGTH_SHORT).show();
                Console.WriteLine("当前版本:" + tag_name_old + ",发布版本:" + otaInfo.tag_name);
                bool     show_ota    = true;
                String[] version_new = otaInfo.tag_name.Replace("v", "").Split('.');
                String[] version_old = tag_name_old.Replace("v", "").Split('.');
                #region 判断当前是否是更新版本
                for (int i = 0; i < version_new.Length && i < version_old.Length; i++)
                {
                    try
                    {
                        int a = Convert.ToInt32(version_new[i]);
                        int b = Convert.ToInt32(version_old[i]);
                        if (b < a)
                        {
                            break;
                        }
                        else if (b > a)
                        {
                            show_ota = false;
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        //e.printStackTrace();
                    }
                }

                if (!show_ota)
                {
                    //Toast.makeText(MainActivity.this, "当前版本暂时未发布,测试中\n当前版本:" + tag_name_old + "\n发布版本:" + tag_name, Toast.LENGTH_LONG).show();
                    mainThreadSynContext.Post(new SendOrPostCallback(OnConnected), null);//通知主线程
                    return;
                }
                #endregion

                JsonStr = getWebHtml("https://gitee.com/api/v5/repos/a2633063/Release/releases/tags/zControl_PC");
                obj     = JObject.Parse(JsonStr);

                if (obj["name"].ToString().Equals("zControl_PC发布地址_" + otaInfo.tag_name))
                {
                    String otauriAll = obj["body"].ToString();
                    otaInfo.url = otauriAll.Trim();
                    mainThreadSynContext.Post(new SendOrPostCallback(OnConnected), otaInfo);//通知主线程
                }
                else
                {
                    throw new Exception("获取固件下载地址获取失败");
                }
            }
            catch (Exception e)
            {
                mainThreadSynContext.Post(new SendOrPostCallback(OnConnectedFail), e.Message);//通知主线程
                //throw;
            }
        }