kopia lustrzana https://github.com/dl2alf/AirScout
97 wiersze
4.4 KiB
C#
97 wiersze
4.4 KiB
C#
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
using System.Threading;
|
|
using System.Globalization;
|
|
using System.Reflection;
|
|
using AirScout.Database.Core;
|
|
using AirScout.Database.Aircrafts;
|
|
using ScoutBase.Core;
|
|
|
|
namespace AirScoutPlaneServer
|
|
{
|
|
|
|
public partial class MainDlg : Form
|
|
{
|
|
|
|
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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|