MissionPlanner.Utilities.Firmware.getAPMVersion C# (CSharp) Method

getAPMVersion() private method

Get fw version from firmeware.diydrones.com
private getAPMVersion ( object tempin ) : void
tempin object
return void
        void getAPMVersion(object tempin)
        {
            System.Threading.Thread.CurrentThread.CurrentUICulture = L10N.ConfigLang;

            try
            {
                software temp = (software) tempin;

                string baseurl = temp.urlpx4v2;

                if (baseurl == "" || !baseurl.ToLower().StartsWith("http")) return;

                L10N.ReplaceMirrorUrl(ref baseurl);

                Uri url = new Uri(new Uri(baseurl), "git-version.txt");

                log.Info("Get url " + url.ToString());

                updateProgress(-1, Strings.GettingFWVersion);

                WebRequest wr = WebRequest.Create(url);
                wr.Timeout = 10000;
                WebResponse wresp = wr.GetResponse();

                StreamReader sr = new StreamReader(wresp.GetResponseStream());

                while (!sr.EndOfStream)
                {
                    string line = sr.ReadLine();

                    if (line.Contains("APMVERSION:"))
                    {
                        log.Info(line);

                        // get index
                        var index = softwares.IndexOf(temp);
                        // get item to modify
                        var item = softwares[index];
                        // change name
                        item.name = line.Substring(line.IndexOf(':') + 2);
                        // save back to list
                        softwares[index] = item;

                        return;
                    }
                }

                log.Info("no answer");
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
            finally
            {
                lock (this)
                {
                    ingetapmversion--;
                }
            }
        }