示例#1
0
        private void ReadAircraftsFromURL(string url, string filename)
        {
            string json = "";

            try
            {
                AutoDecompressionWebClient cl = new AutoDecompressionWebClient();
                cl.DownloadFileIfNewer(url, filename, true);
                if (!File.Exists(filename))
                {
                    return;
                }
                // deserialize JSON file
                JObject o = (JObject)JsonConvert.DeserializeObject(json);
                // clear collections
                JArrays.Clear();
                JProperties.Clear();
                // parse all child tokens recursively --> can be either a property or an array
                ParseToken(o);
                // we've got all properties and arrays here
                // store array values in DataTable
                DataTableAircrafts dt = new DataTableAircrafts();
                foreach (KeyValuePair <string, JArray> a in JArrays)
                {
                    DataRow row = dt.NewRow();
                    row[0] = a.Value[0].ToString();
                    row[1] = a.Value[1].ToString();
                    row[2] = a.Value[2].ToString();
                    row[3] = a.Value[6].ToString();
                    dt.Rows.Add(row);
                }
                AircraftDatabase_old.InsertOrUpdateTable(dt);
            }
            catch (Exception ex)
            {
                // Error loading database
                Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().ToString() + "[" + url + "]: " + ex.Message);
            }
        }
示例#2
0
文件: MainDlg.cs 项目: dh1df/AirScout
 private void InitializeDatabase()
 {
     Log.WriteMessage("Initialize database: " + AircraftDatabase_old.GetDBLocation());
 }
示例#3
0
 private void bw_JSONWriter_DoWork(object sender, DoWorkEventArgs e)
 {
     while (!bw_JSONWriter.CancellationPending)
     {
         Thread.Sleep(60000);
         DataTable dt = new DataTable();
         // DataTable dt = FlightRadar.GetPlanePositions((int)Properties.Settings.Default.Planes_Lifetime);
         // get planes each minute
         // write json file
         try
         {
             using (StreamWriter sw = new StreamWriter(TmpDirectory + Path.DirectorySeparatorChar + "planes.json"))
             {
                 int major = Assembly.GetExecutingAssembly().GetName().Version.Major;
                 sw.Write("{\"full_count\":" + dt.Rows.Count.ToString() + ",\"version\":" + major.ToString());
                 for (int i = 0; i < dt.Rows.Count; i++)
                 {
                     string             index  = "\"" + i.ToString("x8") + "\"";
                     string             hex    = "\"" + dt.Rows[i]["Hex"].ToString() + "\"";
                     string             lat    = ((double)dt.Rows[i]["Lat"]).ToString("F4", CultureInfo.InvariantCulture);
                     string             lon    = ((double)dt.Rows[i]["Lon"]).ToString("F4", CultureInfo.InvariantCulture);
                     string             track  = dt.Rows[i]["Track"].ToString();
                     string             alt    = UnitConverter.m_ft((double)dt.Rows[i]["Alt"]).ToString("F0");
                     string             speed  = UnitConverter.kmh_kts((double)dt.Rows[i]["Speed"]).ToString("F0");
                     string             squawk = "\"" + dt.Rows[i]["Squawk"].ToString() + "\"";
                     string             radar  = "\"" + dt.Rows[i]["Radar"].ToString() + "\"";
                     AircraftDesignator d      = AircraftDatabase_old.AircraftFindByHex(dt.Rows[i]["Hex"].ToString());
                     string             type;
                     if (d != null)
                     {
                         type = "\"" + d.TypeCode + "\"";
                     }
                     else
                     {
                         type = "\"" + "\"";
                     }
                     string   reg   = "\"" + dt.Rows[i]["Reg"].ToString() + "\"";
                     DateTime rtime = System.Convert.ToDateTime(dt.Rows[i]["Time"].ToString());
                     rtime = rtime.ToUniversalTime();
                     DateTime sTime  = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                     string   time   = ((long)(rtime - sTime).TotalSeconds).ToString();
                     string   dep    = "\"\"";
                     string   dest   = "\"\"";
                     string   flight = "\"\"";
                     string   dummy0 = "\"\"";
                     string   dummy1 = "0";
                     string   dummy2 = "0";
                     string   call   = "\"" + dt.Rows[i]["Call"].ToString() + "\"";
                     string   dummy3 = "0";
                     sw.WriteLine("," + index + ":[" +
                                  hex + "," +
                                  lat + "," +
                                  lon + "," +
                                  track + "," +
                                  alt + "," +
                                  speed + "," +
                                  squawk + "," +
                                  radar + "," +
                                  type + "," +
                                  reg + "," +
                                  time + "," +
                                  dep + "," +
                                  dest + "," +
                                  flight + "," +
                                  dummy1 + "," +
                                  dummy2 + "," +
                                  call + "," +
                                  dummy3 +
                                  "]");
                 }
                 sw.WriteLine("}");
             }
         }
         catch
         {
             // do nothing
         }
     }
 }