pull/3/head
dl2alf 2021-12-31 09:08:48 +01:00
rodzic 8a6f8748e5
commit c463c0ba5a
495 zmienionych plików z 73108 dodań i 7033 usunięć

Wyświetl plik

@ -96,8 +96,8 @@
<HintPath>..\..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Design" />
<Reference Include="System.Drawing" />
@ -246,11 +246,11 @@
<MSBuild Condition=" $(TargetFrameworkVersion.Replace(&quot;v&quot;,&quot;&quot;)) == 2.0 " Projects="$(MSBuildProjectFile)" Properties="TargetFrameworkVersion=v3.5" RunEachTargetSeparately="true" />
<MSBuild Condition=" $(TargetFrameworkVersion.Replace(&quot;v&quot;,&quot;&quot;)) == 3.5 " Projects="$(MSBuildProjectFile)" Properties="TargetFrameworkVersion=v4.0" RunEachTargetSeparately="true" />
</Target>
<Import Project="..\..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
</Project>

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

Wyświetl plik

@ -37,8 +37,8 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
@ -93,12 +93,12 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

Wyświetl plik

@ -37,8 +37,8 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
@ -96,12 +96,12 @@
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Wyświetl plik

@ -167,33 +167,45 @@ namespace AirScout.Aircrafts
public long AircraftCount()
{
object count = db.ExecuteScalar("SELECT COUNT(*) FROM " + AircraftDesignator.TableName);
if (IsValid(count))
return (long)count;
lock (db)
{
object count = db.ExecuteScalar("SELECT COUNT(*) FROM " + AircraftDesignator.TableName);
if (IsValid(count))
return (long)count;
}
return 0;
}
public long AircraftCountUnknownCall()
{
object count = db.ExecuteScalar("SELECT COUNT(*) FROM " + AircraftDesignator.TableName + " WHERE Call = '[unknown]'");
if (IsValid(count))
return (long)count;
lock (db)
{
object count = db.ExecuteScalar("SELECT COUNT(*) FROM " + AircraftDesignator.TableName + " WHERE Call = '[unknown]'");
if (IsValid(count))
return (long)count;
}
return 0;
}
public long AircraftCountUnknownHex()
{
object count = db.ExecuteScalar("SELECT COUNT(*) FROM " + AircraftDesignator.TableName + " WHERE Hex = '[unknown]'");
if (IsValid(count))
return (long)count;
lock (db)
{
object count = db.ExecuteScalar("SELECT COUNT(*) FROM " + AircraftDesignator.TableName + " WHERE Hex = '[unknown]'");
if (IsValid(count))
return (long)count;
}
return 0;
}
public long AircraftCountUnknownType()
{
object count = db.ExecuteScalar("SELECT COUNT(*) FROM " + AircraftDesignator.TableName + " WHERE TypeCode = '[unknown]'");
if (IsValid(count))
return (long)count;
lock (db)
{
object count = db.ExecuteScalar("SELECT COUNT(*) FROM " + AircraftDesignator.TableName + " WHERE TypeCode = '[unknown]'");
if (IsValid(count))
return (long)count;
}
return 0;
}
@ -2433,6 +2445,11 @@ namespace AirScout.Aircrafts
info.Lon = newpos.Lon;
info.Time = at;
// Test!!!
if (info.Call.StartsWith("xxx"))
{
int k = 3;
}
// calculate four possible intersections
// i1 --> plane heading
@ -2465,7 +2482,7 @@ namespace AirScout.Aircrafts
if ((i4 != null) && ((imin == null) || (i4.QRB < imin.QRB)))
imin = i4;
// check hot planes which are very near the path first
if ((imin != null) && (imin.QRB <= maxdist))
if ((imin != null) && (imin.QRB <= maxdist) && (imin.Dist1 <= ppath.Distance))
{
// plane is near path
// use the minimum qrb info
@ -2506,7 +2523,7 @@ namespace AirScout.Aircrafts
else
{
// plane is far from path --> check only intersection i1 = planes moves towards path
if ((i1 != null) && (i1.Min_H <= maxalt))
if ((i1 != null) && (i1.Min_H <= maxalt) && (i1.Dist1 <= ppath.Distance))
{
plane.IntPoint = new LatLon.GPoint(i1.Lat, i1.Lon);
plane.IntQRB = i1.QRB;

Wyświetl plik

@ -81,7 +81,7 @@ namespace AirScout.Aircrafts
DataColumn ICAO = this.Columns.Add("ICAO", typeof(string));
DataColumn Airline = this.Columns.Add("Airline", typeof(string));
DataColumn Country = this.Columns.Add("Country", typeof(string));
DataColumn LastUpdated = this.Columns.Add("LastUpdated", typeof(string));
DataColumn LastUpdated = this.Columns.Add("LastUpdated", typeof(int));
// create primary key
DataColumn[] keys = new DataColumn[2];
keys[0] = IATA;

Wyświetl plik

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using AirScout.Core;
using System.IO;
namespace AirScout.Aircrafts
{
@ -20,7 +21,7 @@ namespace AirScout.Aircrafts
PlaneInfo oldplane = null;
if (!this.TryGetValue(plane.Hex, out oldplane))
{
// add plane
// not found --> add plane
this.Add(plane.Hex, plane);
i = 1;
}
@ -29,6 +30,15 @@ namespace AirScout.Aircrafts
// plane already in cache --> check time and update if newer
if (plane.Time > oldplane.Time)
{
// keep old values
oldplane.OldTime = oldplane.Time;
oldplane.OldLat = oldplane.Lat;
oldplane.OldLon = oldplane.Lon;
oldplane.OldAlt = oldplane.Alt;
oldplane.OldSpeed = oldplane.Speed;
oldplane.OldTrack = oldplane.Track;
// update values
oldplane.Alt = plane.Alt;
oldplane.AltDiff = plane.AltDiff;
oldplane.Angle = plane.Angle;
@ -121,21 +131,89 @@ namespace AirScout.Aircrafts
return null;
// create new plane info
PlaneInfo info = new PlaneInfo(plane);
// estimate new position
// estimate new values
double alt = 0;
double speed = 0;
double speed_kmh = 0;
double track = 0;
double dist = 0;
LatLon.GPoint newpos;
// use stored old values if available
if (plane.OldTime != DateTime.MinValue)
{
double oldtimediff = (plane.Time - plane.OldTime).TotalSeconds;
double newtimediff = (at - plane.Time).TotalSeconds;
// adjust values if there is a valid timespan in history
if ((oldtimediff > 0) && (newtimediff > 0))
{
alt = (plane.Alt - plane.OldAlt) / oldtimediff * newtimediff + plane.Alt;
track = (plane.Track - plane.OldTrack) / oldtimediff * newtimediff + plane.Track;
speed = (plane.Speed - plane.OldSpeed) / oldtimediff * newtimediff + plane.Speed;
}
else
{
// do nothing
}
}
else
{
// no stored values available
}
// --> estimate new position using speed and track
// do plausibility check of calculated new absolute values
if ((alt > 0) && (alt <= 50000) &&
(track > 0) && (track <= 360) &&
(speed > 0) && (speed <= 700))
{
// change speed to km/h
speed_kmh = UnitConverter.kts_kmh(speed);
// calculate distance after timespan
dist = speed_kmh * (at - info.Time).TotalHours;
// estimate new position
newpos = LatLon.DestinationPoint(info.Lat, info.Lon, track, dist);
// check resulting motion vector against last reported track
// should be well inside the bounds
// a plane cannot move to a position to where it is not pointing to
double calctrack = LatLon.Bearing(info.Lat, info.Lon, newpos.Lat, newpos.Lon);
if (Math.Abs(info.Track - calctrack) < 45)
{
// valid --> use the calculated values
info.Lat = newpos.Lat;
info.Lon = newpos.Lon;
info.Alt = alt;
info.Track = track;
info.Speed = speed;
info.Time = at;
// return calculated info
return info;
}
}
// one of plausibility checks failed --> use last reported constant values for estimation
// change speed to km/h
double speed = info.Speed_kmh;
speed_kmh = info.Speed_kmh;
// calculate distance after timespan
double dist = speed * (at - info.Time).TotalHours;
dist = speed_kmh * (at - info.Time).TotalHours;
// estimate new position
LatLon.GPoint newpos = LatLon.DestinationPoint(info.Lat, info.Lon, info.Track, dist);
newpos = LatLon.DestinationPoint(info.Lat, info.Lon, info.Track, dist);
info.Lat = newpos.Lat;
info.Lon = newpos.Lon;
info.Time = at;
// return calculated info
return info;
}
public List<PlaneInfo> GetAll(DateTime at, int ttl)
{
string filename = "positions.csv";
string call = "CSN464";
List<PlaneInfo> l = new List<PlaneInfo>();
DateTime to = at;
DateTime from = to - new TimeSpan(0, ttl, 0);
@ -147,14 +225,86 @@ namespace AirScout.Aircrafts
continue;
// create new plane info
PlaneInfo info = new PlaneInfo(plane);
// estimate new position
// estimate new values
// use stored old values if available
if (plane.OldTime != DateTime.MinValue)
{
double oldtimediff = (plane.Time - plane.OldTime).TotalSeconds;
double newtimediff = (at - plane.Time).TotalSeconds;
// adjust values if there is a valid timespan in history
if ((oldtimediff > 0) && (newtimediff > 0))
{
double newalt = (plane.Alt - plane.OldAlt) / oldtimediff * newtimediff + plane.Alt;
double newtrack = (plane.Track - plane.OldTrack) / oldtimediff * newtimediff + plane.Track;
double newspeed = (plane.Speed - plane.OldSpeed) / oldtimediff * newtimediff + plane.Speed;
if (plane.Call == call)
{
File.AppendAllText(filename, oldtimediff.ToString() + ";" +
newtimediff.ToString() + ";" +
plane.OldAlt.ToString("F8") + ";" +
plane.Alt.ToString("F8") + ";" +
newalt.ToString("F8") + ";" +
plane.OldTrack.ToString("F8") + ";" +
plane.Track.ToString("F8") + ";" +
newtrack.ToString("F8") + ";" +
plane.OldSpeed.ToString("F8") + ";" +
plane.Speed.ToString("F8") + ";" +
newspeed.ToString("F8") + ";" +
Environment.NewLine);
}
// do plausibility check of calculated values
if ((newalt > 0) && (newalt < 50000) &&
(newtrack > 0) && (newtrack < 360) &&
(newspeed > 0) && (newspeed < 700))
{
info.Alt = newalt;
info.Track = newtrack;
info.Speed = newspeed;
}
else
{
// do nothing
if (plane.Call == call)
{
File.AppendAllText(filename, oldtimediff.ToString() + ";" +
newtimediff.ToString() + ";" +
plane.OldAlt.ToString("F8") + ";" +
plane.Alt.ToString("F8") + ";" +
newalt.ToString("F8") + ";" +
plane.OldTrack.ToString("F8") + ";" +
plane.Track.ToString("F8") + ";" +
newtrack.ToString("F8") + ";" +
plane.OldSpeed.ToString("F8") + ";" +
plane.Speed.ToString("F8") + ";" +
newspeed.ToString("F8") + ":" +
"invalid values!" +
Environment.NewLine);
}
}
}
else
{
// do nothing
if (plane.Call == call)
{
File.AppendAllText(filename, oldtimediff.ToString() + ";" + newtimediff.ToString() + "invalid timediff!" + Environment.NewLine);
}
}
}
else
{
// no stored values available
}
// --> estimate new position using speed and track
// change speed to km/h
double speed = info.Speed_kmh;
// calculate distance after timespan
double dist = speed * (at - info.Time).TotalHours;
// estimate new position
LatLon.GPoint newpos = LatLon.DestinationPoint(info.Lat, info.Lon, info.Track, dist);
double d = LatLon.Distance(info.Lat, info.Lon, newpos.Lat, newpos.Lon);
info.Lat = newpos.Lat;
info.Lon = newpos.Lon;
info.Time = at;

Wyświetl plik

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.3.0.0")]
[assembly: AssemblyFileVersion("1.3.0.0")]
[assembly: AssemblyVersion("1.3.1.0")]
[assembly: AssemblyFileVersion("1.3.1.0")]

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

Wyświetl plik

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AirScout.CAT</RootNamespace>
<AssemblyName>AirScout.CAT</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="IRig.cs" />
<Compile Include="CATWorker.cs" />
<Compile Include="Enums.cs" />
<Compile Include="ExtOmniRig.cs" />
<Compile Include="OmniRigX.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="ScoutBaseRig.cs" />
<Compile Include="SupportedRig.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>PublicSettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ScoutBase\ScoutBase.CAT\ScoutBase.CAT.csproj">
<Project>{c9291203-b5d0-4179-888d-04bc670b158f}</Project>
<Name>ScoutBase.CAT</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Wyświetl plik

@ -0,0 +1,289 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data.OleDb;
using System.Globalization;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading;
using ScoutBase.CAT;
namespace AirScout.CAT
{
public class CATWorkerStartOptions
{
public string Name;
public string RigType = "";
public string PortName = "";
public int Baudrate = 9600;
public int DataBits = 8;
public PARITY Parity = PARITY.NONE;
public STOPBITS StopBits = STOPBITS.ONE;
public FLOWCONTROL RTS = FLOWCONTROL.LOW;
public FLOWCONTROL DTR = FLOWCONTROL.LOW;
public int Poll = 100;
public int Timeout = 500;
}
public class CATWorker : BackgroundWorker
{
public CATWorkerStartOptions StartOptions;
public IRig Rig = null;
// doppler tracking
public DOPPLERSTRATEGY DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_NONE;
public long RxFrequency = 0;
public long TxFrequency = 0;
public CATWorker()
{
this.WorkerReportsProgress = true;
this.WorkerSupportsCancellation = true;
}
#region OmniRig
#endregion
// provides a list of supported rigs
public static List<SupportedRig> SupportedRigs()
{
List<SupportedRig> rigs = new List<SupportedRig>();
// try to get external OmniRig supported rigs
try
{
List<SupportedRig> omnirigs = OmniRigX.SupportedRigs();
foreach (SupportedRig omnirig in omnirigs)
{
rigs.Add(omnirig);
}
}
catch (Exception ex)
{
// add nothing if something goes wrong
}
// try to get ScoutBase OmniRig supported rigs
try
{
List<SupportedRig> scoutbaserigs = ScoutBaseRig.SupportedRigs();
foreach (SupportedRig scoutbaserig in scoutbaserigs)
{
rigs.Add(scoutbaserig);
}
}
catch (Exception ex)
{
// add nothing if something goes wrong
}
// try to collect other rigs from other CAT interfaces here
// return supported rigs
return rigs;
}
protected override void OnDoWork(DoWorkEventArgs e)
{
StartOptions = (CATWorkerStartOptions)e.Argument;
this.ReportProgress(0, StartOptions.Name + " started.");
// name the thread for debugging
if (String.IsNullOrEmpty(Thread.CurrentThread.Name))
Thread.CurrentThread.Name = StartOptions.Name + "_" + this.GetType().Name;
// check if any CAT is working by getting all supported rigs
// handle exceptions
List<SupportedRig> rigs = new List<SupportedRig>();
try
{
rigs = CATWorker.SupportedRigs();
}
catch (Exception ex)
{
this.ReportProgress(-1, "Error while getting supported rigs from CAT: " + ex.Message);
this.ReportProgress(1, RIGSTATUS.NOCAT);
return;
}
// check if any rig is found
if (rigs.Count == 0)
{
this.ReportProgress(-1, "Error while getting supported rigs from CAT: No available CAT found!");
this.ReportProgress(1, RIGSTATUS.NORIG);
return;
}
// check if the rig is among the currently supported rigs --> get a new IRig object
// be careful with ActiveX objects an handle exceptions
Rig = null;
try
{
foreach (SupportedRig rig in rigs)
{
if (rig.Type == StartOptions.RigType)
{
switch (rig.CATEngine)
{
case CATENGINE.OMNIRIGX: Rig = new OmniRigX(); break;
case CATENGINE.SCOUTBASE: Rig = new ScoutBaseRig(); break;
}
// OK, we have a valid CAT and rig --> complete and download settings
RigSettings settings = new RigSettings();
settings.Type = rig.Type;
settings.Model = rig.Model;
settings.PortName = StartOptions.PortName;
settings.Baudrate = StartOptions.Baudrate;
settings.DataBits = StartOptions.DataBits;
settings.Parity = StartOptions.Parity;
settings.StopBits = StartOptions.StopBits;
settings.RtsMode = StartOptions.RTS;
settings.DtrMode = StartOptions.DTR;
settings.PollMs = StartOptions.Poll;
settings.TimeoutMs = StartOptions.Timeout;
Rig.Settings = settings;
// stop search
break;
}
}
}
catch (Exception ex)
{
this.ReportProgress(-1, "Error while trying to get a rig object from CAT: " + ex.ToString());
}
// report error if rig is still null
if (Rig == null)
{
this.ReportProgress(-1, "Rig is not supported by any available CAT!");
this.ReportProgress(1, RIGSTATUS.NORIG);
return;
}
this.ReportProgress(0, "Opening CAT: Success!");
this.ReportProgress(2, Rig);
// old values for check changes
DOPPLERSTRATEGY olddoppler = DOPPLERSTRATEGY.DOPPLER_NONE;
RIGSTATUS oldrigstat = RIGSTATUS.NONE;
RIGMODE oldrigmode = RIGMODE.NONE;
RIGSPLIT oldrigsplit = RIGSPLIT.NONE;
RIGRIT oldrigrit = RIGRIT.NONE;
long oldrxfreq = -1;
long oldtxfreq = -1;
// run polling loop
while (!this.CancellationPending)
{
try
{
RIGSTATUS rigstatus = Rig.GetStatus();
if (oldrigstat != rigstatus)
{
oldrigstat = rigstatus;
this.ReportProgress(1, rigstatus);
}
// get rig infos when rig is online
if (rigstatus == RIGSTATUS.ONLINE)
{
// get mode
RIGMODE rigmode = Rig.GetMode();
if ( oldrigmode != rigmode)
{
lock (Rig)
{
oldrigmode = rigmode;
this.ReportProgress(2, Rig);
}
}
// get split
RIGSPLIT rigsplit = Rig.GetSplit();
if (oldrigsplit != rigsplit)
{
lock (Rig)
{
oldrigsplit = rigsplit;
this.ReportProgress(2, Rig);
}
}
// get rit
RIGRIT rigrit = Rig.GetRit();
if (oldrigrit != rigrit)
{
lock (Rig)
{
oldrigrit = rigrit;
this.ReportProgress(2, Rig);
}
}
// get RX frequency
long rxfreq = Rig.GetRxFrequency();
if (oldrxfreq != rxfreq)
{
lock (Rig)
{
oldrxfreq = rxfreq;
this.ReportProgress(2, Rig);
}
}
// get TX frequency
long txfreq = Rig.GetTxFrequency();
if (oldtxfreq != txfreq)
{
lock (Rig)
{
oldtxfreq = txfreq;
this.ReportProgress(2, Rig);
}
}
}
// check for Doppler settings changes
if (olddoppler != DopplerStrategy)
{
olddoppler = DopplerStrategy;
// check for Doppler tracking enabled
if ((DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_A) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_B) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_C) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_D))
{
// enter doppler tracking
Rig.SetDopplerStrategy(DopplerStrategy);
Rig.EnterDoppler();
}
else
{
// leave doppler tracking
Rig.SetDopplerStrategy(DOPPLERSTRATEGY.DOPPLER_NONE);
Rig.LeaveDoppler();
}
}
// Doppler tracking
if ((DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_A) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_B) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_C) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_D))
{
Rig.SetSplitMode(RxFrequency, TxFrequency);
}
}
catch (Exception ex)
{
}
Thread.Sleep(Properties.Settings.Default.CAT_Update);
}
// reset status
this.ReportProgress(1, RIGSTATUS.NONE);
}
}
}

Wyświetl plik

@ -0,0 +1,125 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
namespace AirScout.CAT
{
public enum CATENGINE
{
NONE = 0,
OMNIRIGX = 1,
SCOUTBASE = 2,
HAMLIB = 3
}
[Description("Rig Status")]
public enum RIGSTATUS
{
[Description("None")]
NONE = 0,
[Description("CAT not available")]
NOCAT = 1,
[Description("Port not available")]
NOPORT = 2,
[Description("Rig not available")]
NORIG = 4,
[Description("Rig not suitable")]
NOTSUITABLE = 8,
[Description("Rig offline")]
OFFLINE = 16,
[Description("Rig online")]
ONLINE = 64,
[Description("Error")]
ERROR = 128
}
public enum RIGSPLIT
{
NONE = 0,
SPLITOFF = 1,
SPLITON = 2,
ERROR = 128
}
public enum RIGRIT
{
NONE = 0,
RITON = 1,
RITOFF = 2,
ERROR = 128
}
public enum RIGMODE
{
NONE = 0,
CW = 1,
CW_R = 2,
LSB = 3,
USB = 4,
DIG = 5,
DIG_R = 6,
AM = 7,
FM = 8,
OTHER = 9,
ERROR = 128
}
public enum RIGVFO
{
NONE = 0,
A = 1,
B = 2,
ERROR = 128
}
[Description("Flow Control")]
public enum FLOWCONTROL
{
[Description("Low")]
LOW,
[Description("High")]
HIGH,
[Description("Handshake")]
HANDSHAKE
}
[Description("Stopbits")]
public enum STOPBITS
{
[Description("1")]
ONE,
[Description("1,5")]
ONE_5,
[Description("2")]
TWO
}
[Description("Parity")]
public enum PARITY
{
[Description("None")]
NONE,
[Description("Odd")]
ODD,
[Description("Even")]
EVEN,
[Description("Mark")]
MARK,
[Description("Space")]
SPACE
}
public enum DOPPLERSTRATEGY
{
DOPPLER_NONE = 0,
DOPPLER_A = 1,
DOPPLER_B = 2,
DOPPLER_C = 4,
DOPPLER_D = 8,
ERROR = 128
}
}

Wyświetl plik

@ -0,0 +1,526 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Runtime.InteropServices;
using System.Text;
namespace AirScout.CAT
{
// can handle different versions dynamically
public static class ExtOmniRig
{
private static dynamic OmniRigEngine = null;
private static string OmniRigVersion = "";
private static OMNIRIGSTATUS Status = OMNIRIGSTATUS.ST_NOTCONFIGURED;
private static int Retries = 0;
public static RIGSTATUS GetRigStatus(string rig)
{
try
{
OMNIRIGSTATUS omnistat = OMNIRIGSTATUS.ST_NOTCONFIGURED;
if (rig == "OmniRig Rig 1")
{
omnistat = (OMNIRIGSTATUS)ExtOmniRig.OmniRigEngine.Rig1.Status;
}
else if (rig == "OmniRig Rig 2")
{
omnistat = (OMNIRIGSTATUS)ExtOmniRig.OmniRigEngine.Rig2.Status;
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 3")
)
{
omnistat = (OMNIRIGSTATUS)ExtOmniRig.OmniRigEngine.Rig3.Status;
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 4")
)
{
omnistat = (OMNIRIGSTATUS)ExtOmniRig.OmniRigEngine.Rig4.Status;
}
// suppress sporadic "offline" status
if (omnistat != OMNIRIGSTATUS.ST_ONLINE)
{
if (Retries < 3)
{
omnistat = Status;
Retries++;
}
}
else
{
Status = omnistat;
Retries = 0;
}
// translate OmniRig status to rig status
switch (omnistat)
{
case OMNIRIGSTATUS.ST_ONLINE:
return RIGSTATUS.ONLINE;
case OMNIRIGSTATUS.ST_NOTRESPONDING:
return RIGSTATUS.OFFLINE;
default:
return RIGSTATUS.ERROR;
}
}
catch (Exception ex)
{
// do nothing
}
return RIGSTATUS.ERROR;
}
public static RIGRIT GetRit(string rig)
{
try
{
if (rig == "OmniRig Rig 1")
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig1.Rit)
{
case OMNIRIGPARAM.PM_RITOFF:
return RIGRIT.RITOFF;
case OMNIRIGPARAM.PM_RITON:
return RIGRIT.RITON;
default:
return RIGRIT.ERROR;
}
}
else if (rig == "OmniRig Rig 2")
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig2.Rit)
{
case OMNIRIGPARAM.PM_RITOFF:
return RIGRIT.RITOFF;
case OMNIRIGPARAM.PM_RITON:
return RIGRIT.RITON;
default:
return RIGRIT.ERROR;
}
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 3")
)
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig3.Rit)
{
case OMNIRIGPARAM.PM_RITOFF:
return RIGRIT.RITOFF;
case OMNIRIGPARAM.PM_RITON:
return RIGRIT.RITON;
default:
return RIGRIT.ERROR;
}
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 4")
)
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig4.Rit)
{
case OMNIRIGPARAM.PM_RITOFF:
return RIGRIT.RITOFF;
case OMNIRIGPARAM.PM_RITON:
return RIGRIT.RITON;
default:
return RIGRIT.ERROR;
}
}
}
catch (Exception ex)
{
// do nothing
}
return RIGRIT.ERROR; ;
}
public static RIGSPLIT GetSplit(string rig)
{
try
{
if (rig == "OmniRig Rig 1")
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig1.Split)
{
case OMNIRIGPARAM.PM_SPLITOFF:
return RIGSPLIT.SPLITOFF;
case OMNIRIGPARAM.PM_SPLITON:
return RIGSPLIT.SPLITON;
default:
return RIGSPLIT.ERROR;
}
}
else if (rig == "OmniRig Rig 2")
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig2.Split)
{
case OMNIRIGPARAM.PM_SPLITOFF:
return RIGSPLIT.SPLITOFF;
case OMNIRIGPARAM.PM_SPLITON:
return RIGSPLIT.SPLITON;
default:
return RIGSPLIT.ERROR;
}
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 3")
)
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig3.Split)
{
case OMNIRIGPARAM.PM_SPLITOFF:
return RIGSPLIT.SPLITOFF;
case OMNIRIGPARAM.PM_SPLITON:
return RIGSPLIT.SPLITON;
default:
return RIGSPLIT.ERROR;
}
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 4")
)
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig4.Split)
{
case OMNIRIGPARAM.PM_SPLITOFF:
return RIGSPLIT.SPLITOFF;
case OMNIRIGPARAM.PM_SPLITON:
return RIGSPLIT.SPLITON;
default:
return RIGSPLIT.ERROR;
}
}
}
catch (Exception ex)
{
// do nothing
}
return RIGSPLIT.ERROR; ;
}
public static RIGMODE GetMode(string rig)
{
try
{
if (rig == "OmniRig Rig 1")
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig1.Mode)
{
case OMNIRIGPARAM.PM_CW_L:
return RIGMODE.CW;
case OMNIRIGPARAM.PM_CW_U:
return RIGMODE.CW_R;
case OMNIRIGPARAM.PM_SSB_L:
return RIGMODE.LSB;
case OMNIRIGPARAM.PM_SSB_U:
return RIGMODE.USB;
case OMNIRIGPARAM.PM_FM:
return RIGMODE.FM;
case OMNIRIGPARAM.PM_AM:
return RIGMODE.AM;
default:
return RIGMODE.OTHER;
}
}
else if (rig == "OmniRig Rig 2")
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig2.Mode)
{
case OMNIRIGPARAM.PM_CW_L:
return RIGMODE.CW;
case OMNIRIGPARAM.PM_CW_U:
return RIGMODE.CW_R;
case OMNIRIGPARAM.PM_SSB_L:
return RIGMODE.LSB;
case OMNIRIGPARAM.PM_SSB_U:
return RIGMODE.USB;
case OMNIRIGPARAM.PM_FM:
return RIGMODE.FM;
case OMNIRIGPARAM.PM_AM:
return RIGMODE.AM;
default:
return RIGMODE.OTHER;
}
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 3")
)
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig3.Mode)
{
case OMNIRIGPARAM.PM_CW_L:
return RIGMODE.CW;
case OMNIRIGPARAM.PM_CW_U:
return RIGMODE.CW_R;
case OMNIRIGPARAM.PM_SSB_L:
return RIGMODE.LSB;
case OMNIRIGPARAM.PM_SSB_U:
return RIGMODE.USB;
case OMNIRIGPARAM.PM_FM:
return RIGMODE.FM;
case OMNIRIGPARAM.PM_AM:
return RIGMODE.AM;
default:
return RIGMODE.OTHER;
}
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 4")
)
{
switch ((OMNIRIGPARAM)OmniRigEngine.Rig4.Mode)
{
case OMNIRIGPARAM.PM_CW_L:
return RIGMODE.CW;
case OMNIRIGPARAM.PM_CW_U:
return RIGMODE.CW_R;
case OMNIRIGPARAM.PM_SSB_L:
return RIGMODE.LSB;
case OMNIRIGPARAM.PM_SSB_U:
return RIGMODE.USB;
case OMNIRIGPARAM.PM_FM:
return RIGMODE.FM;
case OMNIRIGPARAM.PM_AM:
return RIGMODE.AM;
default:
return RIGMODE.OTHER;
}
}
}
catch (Exception ex)
{
// do nothing
}
return RIGMODE.ERROR; ;
}
public static long GetRXFrequency(string rig)
{
try
{
if (rig == "OmniRig Rig 1")
{
return (long)OmniRigEngine.Rig1.GetRxFrequency();
}
else if (rig == "OmniRig Rig 2")
{
return (long)OmniRigEngine.Rig2.GetRxFrequency();
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 3")
)
{
return (long)OmniRigEngine.Rig3.GetRxFrequency();
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 4")
)
{
return (long)OmniRigEngine.Rig4.GetRxFrequency();
}
}
catch (Exception ex)
{
// do nothing
}
return 0;
}
public static bool SetSplit(string rig, long rx, long tx)
{
try
{
if (rig == "OmniRig Rig 1")
{
// OmniRig can handle Int32 only
if ((rx > Int32.MaxValue) || (tx > Int32.MaxValue))
return false;
OmniRigEngine.Rig1.Split = OMNIRIGPARAM.PM_SPLITON;
OmniRigEngine.Rig1.FreqA = (int)rx;
OmniRigEngine.Rig1.FreqB = (int)tx;
return true;
}
else if (rig == "OmniRig Rig 2")
{
// OmniRig can handle Int32 only
if ((rx > Int32.MaxValue) || (tx > Int32.MaxValue))
return false;
OmniRigEngine.Rig2.Split = OMNIRIGPARAM.PM_SPLITON;
OmniRigEngine.Rig2.FreqA = (int)rx;
OmniRigEngine.Rig2.FreqB = (int)tx;
return true;
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 3")
)
{
// OmniRig can handle Int32 only
if ((rx > Int32.MaxValue) || (tx > Int32.MaxValue))
return false;
OmniRigEngine.Rig3.Split = OMNIRIGPARAM.PM_SPLITON;
OmniRigEngine.Rig3.FreqA = (int)rx;
OmniRigEngine.Rig3.FreqB = (int)tx;
return true;
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 4")
)
{
// OmniRig can handle Int32 only
if ((rx > Int32.MaxValue) || (tx > Int32.MaxValue))
return false;
OmniRigEngine.Rig4.Split = OMNIRIGPARAM.PM_SPLITON;
OmniRigEngine.Rig4.FreqA = (int)rx;
OmniRigEngine.Rig4.FreqB = (int)tx;
return true;
}
}
catch (Exception ex)
{
// do nothing
}
return false;
}
public static bool SetSimplex(string rig, long rx)
{
try
{
if (rig == "OmniRig Rig 1")
{
// OmniRig can handle Int32 only
if (rx > Int32.MaxValue)
return false;
OmniRigEngine.Rig1.Split = OMNIRIGPARAM.PM_SPLITOFF;
OmniRigEngine.Rig1.FreqA = (int)rx;
return true;
}
else if (rig == "OmniRig Rig 2")
{
// OmniRig can handle Int32 only
if (rx > Int32.MaxValue)
return false;
OmniRigEngine.Rig2.Split = OMNIRIGPARAM.PM_SPLITOFF;
OmniRigEngine.Rig2.FreqA = (int)rx;
return true;
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 3")
)
{
// OmniRig can handle Int32 only
if (rx > Int32.MaxValue)
return false;
OmniRigEngine.Rig3.Split = OMNIRIGPARAM.PM_SPLITOFF;
OmniRigEngine.Rig3.FreqA = (int)rx;
return true;
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 4")
)
{
// OmniRig can handle Int32 only
if (rx > Int32.MaxValue)
return false;
OmniRigEngine.Rig4.Split = OMNIRIGPARAM.PM_SPLITOFF;
OmniRigEngine.Rig4.FreqA = (int)rx;
return true;
}
}
catch (Exception ex)
{
// do nothing
}
return false;
}
public static bool SetRit(string rig, RIGRIT rit)
{
try
{
if (rig == "OmniRig Rig 1")
{
OmniRigEngine.Rig1.Rit = (rit == RIGRIT.RITON) ? OMNIRIGPARAM.PM_RITON : OMNIRIGPARAM.PM_RITOFF;
return true;
}
else if (rig == "OmniRig Rig 2")
{
OmniRigEngine.Rig2.Rit = (rit == RIGRIT.RITON) ? OMNIRIGPARAM.PM_RITON : OMNIRIGPARAM.PM_RITOFF;
return true;
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 3")
)
{
OmniRigEngine.Rig3.Rit = (rit == RIGRIT.RITON) ? OMNIRIGPARAM.PM_RITON : OMNIRIGPARAM.PM_RITOFF;
return true;
}
else if ((OmniRigEngine.InterfaceVersion >= 0x210) &&
(OmniRigEngine.InterfaceVersion >= 0x299) &&
(rig == "OmniRig 4")
)
{
OmniRigEngine.Rig3.Rit = (rit == RIGRIT.RITON) ? OMNIRIGPARAM.PM_RITON : OMNIRIGPARAM.PM_RITOFF;
return true;
}
}
catch (Exception ex)
{
// do nothing
}
return false;
}
}
}

Wyświetl plik

@ -0,0 +1,71 @@
using ScoutBase.CAT;
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Text;
namespace AirScout.CAT
{
public class RigSettings
{
// rig type name
public string Type { get; set; } = "";
public string Model { get; set; } = "";
// port settings
public string PortName { get; set; } = "";
public int Baudrate { get; set; } = 0;
public int DataBits { get; set; } = 0;
public PARITY Parity { get; set; } = PARITY.NONE;
public STOPBITS StopBits { get; set; } = STOPBITS.ONE;
public FLOWCONTROL RtsMode { get; set; } = FLOWCONTROL.LOW;
public FLOWCONTROL DtrMode { get; set; } = FLOWCONTROL.LOW;
// time settings
public int PollMs { get; set; } = 1000;
public int TimeoutMs { get; set; } = 5000;
}
// repesents an interface to a rig connected via CAT interface
// supports variuos kinds of connections
public interface IRig
{
// Rig
RigSettings Settings { get; set; }
CATENGINE CatEngine { get; }
string CatVersion { get; }
// rig status, read-only
RIGSTATUS GetStatus();
// get rig values
RIGMODE GetMode();
RIGSPLIT GetSplit();
RIGRIT GetRit();
RIGVFO GetVfo();
long GetRxFrequency();
long GetTxFrequency();
// set rig values
bool SetMode(RIGMODE mode);
bool SetSplit(RIGSPLIT split);
bool SetRit(RIGRIT rit);
bool SetVfo(RIGVFO vfo);
bool SetRxFrequency(long rx);
bool SetTxFrequency(long tx);
// rig capabilities
bool SetSimplexMode(long freq, RIGMODE mode = RIGMODE.NONE);
bool SetSplitMode(long rxfreq, long txfreq, RIGMODE mode = RIGMODE.NONE);
// doppler tracking
bool SetDopplerStrategy(DOPPLERSTRATEGY doppler);
bool EnterDoppler();
bool LeaveDoppler();
}
}

Plik diff jest za duży Load Diff

Wyświetl plik

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("AirScout.CAT")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AirScout.CAT")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("ffdec390-7bbc-4dec-9826-1dd04279f3fa")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Wyświetl plik

@ -0,0 +1,182 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AirScout.CAT.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")]
public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool CAT_Activate {
get {
return ((bool)(this["CAT_Activate"]));
}
set {
this["CAT_Activate"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("500")]
public int CAT_Update {
get {
return ((int)(this["CAT_Update"]));
}
set {
this["CAT_Update"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("500")]
public int CAT_ResponseTimeout {
get {
return ((int)(this["CAT_ResponseTimeout"]));
}
set {
this["CAT_ResponseTimeout"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string CAT_RigType {
get {
return ((string)(this["CAT_RigType"]));
}
set {
this["CAT_RigType"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string CAT_PortName {
get {
return ((string)(this["CAT_PortName"]));
}
set {
this["CAT_PortName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("9600")]
public int CAT_Baudrate {
get {
return ((int)(this["CAT_Baudrate"]));
}
set {
this["CAT_Baudrate"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("8")]
public int CAT_DataBits {
get {
return ((int)(this["CAT_DataBits"]));
}
set {
this["CAT_DataBits"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("NONE")]
public global::AirScout.CAT.PARITY CAT_Parity {
get {
return ((global::AirScout.CAT.PARITY)(this["CAT_Parity"]));
}
set {
this["CAT_Parity"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("ONE")]
public global::AirScout.CAT.STOPBITS CAT_StopBits {
get {
return ((global::AirScout.CAT.STOPBITS)(this["CAT_StopBits"]));
}
set {
this["CAT_StopBits"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("LOW")]
public global::AirScout.CAT.FLOWCONTROL CAT_RTS {
get {
return ((global::AirScout.CAT.FLOWCONTROL)(this["CAT_RTS"]));
}
set {
this["CAT_RTS"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("LOW")]
public global::AirScout.CAT.FLOWCONTROL CAT_DTR {
get {
return ((global::AirScout.CAT.FLOWCONTROL)(this["CAT_DTR"]));
}
set {
this["CAT_DTR"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("100")]
public int CAT_Poll {
get {
return ((int)(this["CAT_Poll"]));
}
set {
this["CAT_Poll"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("500")]
public int CAT_Timeout {
get {
return ((int)(this["CAT_Timeout"]));
}
set {
this["CAT_Timeout"] = value;
}
}
}
}

Wyświetl plik

@ -0,0 +1,45 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="AirScout.CAT.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="CAT_Activate" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CAT_Update" Type="System.Int32" Scope="User">
<Value Profile="(Default)">500</Value>
</Setting>
<Setting Name="CAT_ResponseTimeout" Type="System.Int32" Scope="User">
<Value Profile="(Default)">500</Value>
</Setting>
<Setting Name="CAT_RigType" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="CAT_PortName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="CAT_Baudrate" Type="System.Int32" Scope="User">
<Value Profile="(Default)">9600</Value>
</Setting>
<Setting Name="CAT_DataBits" Type="System.Int32" Scope="User">
<Value Profile="(Default)">8</Value>
</Setting>
<Setting Name="CAT_Parity" Type="AirScout.CAT.PARITY" Scope="User">
<Value Profile="(Default)">NONE</Value>
</Setting>
<Setting Name="CAT_StopBits" Type="AirScout.CAT.STOPBITS" Scope="User">
<Value Profile="(Default)">ONE</Value>
</Setting>
<Setting Name="CAT_RTS" Type="AirScout.CAT.FLOWCONTROL" Scope="User">
<Value Profile="(Default)">LOW</Value>
</Setting>
<Setting Name="CAT_DTR" Type="AirScout.CAT.FLOWCONTROL" Scope="User">
<Value Profile="(Default)">LOW</Value>
</Setting>
<Setting Name="CAT_Poll" Type="System.Int32" Scope="User">
<Value Profile="(Default)">100</Value>
</Setting>
<Setting Name="CAT_Timeout" Type="System.Int32" Scope="User">
<Value Profile="(Default)">500</Value>
</Setting>
</Settings>
</SettingsFile>

Wyświetl plik

@ -0,0 +1,706 @@
using ScoutBase.CAT;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mime;
using System.Text;
using System.Xml.Schema;
namespace AirScout.CAT
{
// represents a rig connected directly via ScoutBase.CAT (OmniRig style)
public class ScoutBaseRig : ScoutBase.CAT.Rig, IRig
{
private RigSettings Settings = new RigSettings();
// doppler tracking strategy
DOPPLERSTRATEGY DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_NONE;
// save rig settings
private RIGMODE SaveRigMode;
private RIGSPLIT SaveRigSplit;
private RIGRIT SaveRigRit;
private long SaveRxFrequency;
private long SaveTxFrequency;
// ************************ Interface *********************************
RigSettings IRig.Settings
{
get
{
return Settings;
}
set
{
Settings = value;
this.Enabled = false;
// copy settings to rig settings
ScoutBase.CAT.RigSettings settings = new ScoutBase.CAT.RigSettings();
settings.RigType = Settings.Model;
settings.PortName = Settings.PortName;
settings.Baudrate = Settings.Baudrate;
settings.DataBits = Settings.DataBits;
switch(Settings.Parity)
{
case PARITY.EVEN: settings.Parity = Parity.ptEven; break;
case PARITY.ODD: settings.Parity = Parity.ptOdd; break;
case PARITY.MARK: settings.Parity = Parity.ptMark; break;
case PARITY.SPACE: settings.Parity = Parity.ptSpace; break;
default: settings.Parity = Parity.ptNone; break;
}
switch(Settings.StopBits)
{
case STOPBITS.ONE_5: settings.StopBits = StopBits.sbOne_5; break;
case STOPBITS.TWO: settings.StopBits = StopBits.sbTwo; break;
default: settings.StopBits = StopBits.sbOne; break;
}
switch (Settings.RtsMode)
{
case FLOWCONTROL.HIGH: settings.RtsMode = FlowControl.fcHigh; break;
case FLOWCONTROL.HANDSHAKE: settings.RtsMode = FlowControl.fcHandShake; break;
default: settings.RtsMode = FlowControl.fcLow; break;
}
switch (Settings.DtrMode)
{
case FLOWCONTROL.HIGH: settings.DtrMode = FlowControl.fcHigh; break;
case FLOWCONTROL.HANDSHAKE: settings.DtrMode = FlowControl.fcHandShake; break;
default: settings.DtrMode = FlowControl.fcLow; break;
}
settings.PollMs = Settings.PollMs;
settings.TimeoutMs = Settings.TimeoutMs;
// transfer settings to rig and restart
settings.ToRig(this);
// enable rig
this.Enabled = true;
}
}
CATENGINE IRig.CatEngine
{
get
{
return CATENGINE.SCOUTBASE;
}
}
string IRig.CatVersion
{
get
{
return "ScoutBase.CAT V" + ScoutBase.CAT.OmniRig.InterfaceVersion;
}
}
public RIGSTATUS GetStatus()
{
try
{
// translate result to RIGSTATUS values
switch ((RigCtlStatus)this.Status)
{
case RigCtlStatus.stPortBusy: return RIGSTATUS.NOPORT;
case RigCtlStatus.stNotConfigured: return RIGSTATUS.NORIG;
case RigCtlStatus.stDisabled: return RIGSTATUS.NORIG;
case RigCtlStatus.stNotResponding: return RIGSTATUS.OFFLINE;
}
// rig is online
// check for rig capabilities here
if (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_A)
{
// rig must support at least split operation
if ((!this.IsParamReadable(RigParam.pmSplitOff)) ||
(!this.IsParamReadable(RigParam.pmSplitOn)) ||
(!this.IsParamWriteable(RigParam.pmSplitOff)) ||
(!this.IsParamWriteable(RigParam.pmSplitOn)) ||
(!this.IsParamWriteable(RigParam.pmVfoEqual))
)
{
return RIGSTATUS.NOTSUITABLE;
}
}
// return online
return RIGSTATUS.ONLINE;
}
catch (Exception ex)
{
}
return RIGSTATUS.NONE;
}
public RIGMODE GetMode()
{
try
{
switch ((RigParam)this.Mode)
{
case RigParam.pmCW_L: return RIGMODE.CW;
case RigParam.pmCW_U: return RIGMODE.CW_R;
case RigParam.pmSSB_L: return RIGMODE.LSB;
case RigParam.pmSSB_U: return RIGMODE.USB;
case RigParam.pmDIG_L: return RIGMODE.DIG;
case RigParam.pmDIG_U: return RIGMODE.DIG_R;
case RigParam.pmAM: return RIGMODE.AM;
case RigParam.pmFM: return RIGMODE.FM;
}
return RIGMODE.NONE;
}
catch (Exception ex)
{
}
return RIGMODE.NONE;
}
public RIGSPLIT GetSplit()
{
try
{
switch ((RigParam)this.Split)
{
case RigParam.pmSplitOff: return RIGSPLIT.SPLITOFF;
case RigParam.pmSplitOn: return RIGSPLIT.SPLITON;
}
}
catch (Exception ex)
{
}
return RIGSPLIT.NONE;
}
public RIGRIT GetRit()
{
try
{
switch ((RigParam)this.Rit)
{
case RigParam.pmRitOff: return RIGRIT.RITOFF;
case RigParam.pmRitOn: return RIGRIT.RITON;
}
}
catch (Exception ex)
{
}
return RIGRIT.NONE;
}
public RIGVFO GetVfo()
{
try
{
switch ((RigParam)this.Vfo)
{
case RigParam.pmVfoA: return RIGVFO.A;
case RigParam.pmVfoB: return RIGVFO.B;
}
}
catch (Exception ex)
{
}
return RIGVFO.NONE;
}
long IRig.GetRxFrequency()
{
try
{
if ((RigParam)this.Split == RigParam.pmSplitOff)
{
// check if pmFreq is readable --> return Freq
if (this.Freq > 0)
return this.Freq;
// check if pmFreqA is readable --> return FreqA instead
if (this.FreqA > 0)
return this.FreqA;
}
else
{
// check if pmFreqA is readable --> return FreqA instead
if (this.FreqA > 0)
return this.FreqA;
}
}
catch (Exception ex)
{
}
return 0;
}
long IRig.GetTxFrequency()
{
try
{
if ((RigParam)this.Split == RigParam.pmSplitOff)
{
// check if pmFreq is readable --> return Freq
if (this.Freq > 0)
return this.Freq;
// check if pmFreqA is readable --> return FreqA instead
if (this.FreqA > 0)
return this.FreqA;
}
else
{
// check if pmFreqB is readable --> return FreqB instead
if (this.FreqB > 0)
return this.FreqB;
}
}
catch (Exception ex)
{
}
return 0;
}
// ********************************************************************
public bool SetMode(RIGMODE mode)
{
try
{
switch (mode)
{
case RIGMODE.CW: this.Mode = RigParam.pmCW_L; return true;
case RIGMODE.CW_R: this.Mode = RigParam.pmCW_U; return true;
case RIGMODE.LSB: this.Mode = RigParam.pmSSB_L; return true;
case RIGMODE.USB: this.Mode = RigParam.pmSSB_U; return true;
case RIGMODE.DIG: this.Mode = RigParam.pmDIG_L; return true;
case RIGMODE.DIG_R: this.Mode = RigParam.pmDIG_U; return true;
case RIGMODE.AM: this.Mode = RigParam.pmAM; return true;
case RIGMODE.FM: this.Mode = RigParam.pmFM; return true;
}
}
catch (Exception ex)
{
}
return false;
}
public bool SetSplit(RIGSPLIT split)
{
try
{
switch (split)
{
case RIGSPLIT.SPLITOFF: this.Split = RigParam.pmSplitOff; return true;
case RIGSPLIT.SPLITON: this.Split = RigParam.pmSplitOn; return true;
}
}
catch (Exception ex)
{
}
return false;
}
public bool SetRit(RIGRIT rit)
{
try
{
switch (rit)
{
case RIGRIT.RITOFF: this.Rit = RigParam.pmRitOff; return true;
case RIGRIT.RITON: this.Rit = RigParam.pmRitOn; return true;
}
}
catch (Exception ex)
{
}
return false;
}
public bool SetVfo(RIGVFO vfo)
{
try
{
switch (vfo)
{
case RIGVFO.A: this.Vfo = RigParam.pmVfoA; return true;
case RIGVFO.B: this.Vfo = RigParam.pmVfoB; return true;
}
}
catch (Exception ex)
{
}
return false;
}
public bool SetRxFrequency(long rx)
{
try
{
if ((RigParam)this.Split == RigParam.pmSplitOff)
{
// check if pmFreq is writeable --> set Freq
if (this.IsParamWriteable(RigParam.pmFreq))
{
this.Freq = (int)rx;
return true;
}
// check if pmFreqA is writeable --> set FreqA instead
if (this.IsParamWriteable(RigParam.pmFreqA))
{
this.FreqA = (int)rx;
return true;
}
}
else
{
// check if pmFreqA is writeable --> set FreqA instead
if (this.IsParamWriteable(RigParam.pmFreqA))
{
this.FreqA = (int)rx;
return true;
}
}
}
catch (Exception ex)
{
}
return false;
}
public bool SetTxFrequency(long tx)
{
try
{
if ((RigParam)this.Split == RigParam.pmSplitOff)
{
// check if pmFreq is writeable --> set Freq
if (this.IsParamWriteable(RigParam.pmFreq))
{
this.Freq = (int)tx;
return true;
}
// check if pmFreqA is writeable --> set FreqA instead
if (this.IsParamWriteable(RigParam.pmFreqA))
{
this.FreqA = (int)tx;
return true;
}
}
else
{
// check if pmFreqB is writeable --> set FreqB instead
if (this.IsParamWriteable(RigParam.pmFreqB))
{
this.FreqB = (int)tx;
return true;
}
}
}
catch (Exception ex)
{
}
return false;
}
public bool IntSetSimplexMode(dynamic rig, long freq, RIGMODE mode)
{
return false;
}
public bool SetSimplexMode(long freq, RIGMODE mode = RIGMODE.NONE)
{
// set frequency and switch split off
try
{
if (this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmVfoAA))
{
this.Vfo = RigParam.pmVfoAA;
this.FreqA = freq;
}
else if (this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmVfoA) && this.IsParamWriteable(RigParam.pmSplitOff))
{
this.Vfo = RigParam.pmVfoA;
this.FreqA = freq;
}
else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoA) && this.IsParamWriteable(RigParam.pmVfoB))
{
this.Vfo = RigParam.pmVfoB;
this.Freq = freq;
this.Vfo = RigParam.pmVfoA;
this.Freq = freq;
}
else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoEqual))
{
this.Freq = freq;
this.Vfo = RigParam.pmVfoEqual;
}
else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoSwap))
{
this.Vfo = RigParam.pmVfoSwap;
this.Freq = freq;
this.Vfo = RigParam.pmVfoSwap;
this.Freq = freq;
}
// Added by RA6UAZ for Icom Marine Radio NMEA Command
else if (this.IsParamWriteable(RigParam.pmFreq) && !this.IsParamWriteable(RigParam.pmVfoA) && this.IsParamWriteable(RigParam.pmFreqB))
{
this.Freq = freq;
this.FreqB = freq;
}
else if (this.IsParamWriteable(RigParam.pmFreq))
{
this.Freq = freq;
}
if (this.IsParamWriteable(RigParam.pmSplitOff))
{
this.Split = RigParam.pmSplitOff;
}
// simply set mode on current VFO
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
}
return true;
}
catch (Exception ex)
{
}
return false;
}
private bool CanWriteMode()
{
// check if modes are writable
if (!this.IsParamWriteable(RigParam.pmCW_L))
return false;
if (!this.IsParamWriteable(RigParam.pmCW_U))
return false;
if (!this.IsParamWriteable(RigParam.pmSSB_L))
return false;
if (!this.IsParamWriteable(RigParam.pmSSB_U))
return false;
if (!this.IsParamWriteable(RigParam.pmDIG_L))
return false;
if (!this.IsParamWriteable(RigParam.pmDIG_U))
return false;
if (!this.IsParamWriteable(RigParam.pmAM))
return false;
if (!this.IsParamWriteable(RigParam.pmFM))
return false;
return true;
}
public bool SetSplitMode(long rxfreq, long txfreq, RIGMODE mode = RIGMODE.NONE)
{
//set rx and tx frequencies and split
try
{
// try to set mode on both Vfos via VfoEqual which is the easiest way
if (this.IsParamWriteable(RigParam.pmVfoEqual))
{
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
this.Vfo = RigParam.pmVfoEqual;
}
}
if (this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmFreqB) && this.IsParamWriteable(RigParam.pmVfoAB))
{
// TS-570
this.Vfo = RigParam.pmVfoAB;
this.FreqA = rxfreq;
this.FreqB = txfreq;
// try to set mode once for both VFOs
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
}
}
else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoEqual))
{
// IC-746
this.Freq = txfreq;
// should work fine for both VFOs because of VfoEqual
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
}
this.Vfo = RigParam.pmVfoEqual;
this.Freq = rxfreq;
}
else if (this.IsParamWriteable(RigParam.pmVfoB) && this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoA))
{
// FT-100D
this.Vfo = RigParam.pmVfoB;
this.Freq = txfreq;
// should work fine for both VFOs because of switching to both VFOs
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
}
this.Vfo = RigParam.pmVfoA;
this.Freq = rxfreq;
// should work fine for both VFOs because of switching to both VFOs
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
}
}
else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoSwap))
{
// FT-817 ?
this.Vfo = RigParam.pmVfoSwap;
this.Freq = txfreq;
// should work fine for both VFOs because of VfoSwap
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
}
this.Vfo = RigParam.pmVfoSwap;
this.Freq = rxfreq;
// should work fine for both VFOs because of VfoSwap
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
}
}
else if (this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmFreqB) && this.IsParamWriteable(RigParam.pmVfoA))
{
//FT-1000 MP, IC-7610
this.Vfo = RigParam.pmVfoA;
this.FreqA = rxfreq;
this.FreqB = txfreq;
// can set only mode on VFO A
if (CanWriteMode() && (mode != RIGMODE.NONE))
{
this.SetMode(mode);
}
}
// Added by RA6UAZ for Icom Marine Radio NMEA Command
else if (this.IsParamWriteable(RigParam.pmFreq) && !this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmFreqB))
{
this.Freq = rxfreq;
this.FreqB = txfreq;
}
if (this.IsParamWriteable(RigParam.pmSplitOn))
{
this.Split = RigParam.pmSplitOn;
}
return true;
}
catch (Exception ex)
{
}
return false;
}
public bool SetDopplerStrategy(DOPPLERSTRATEGY doppler)
{
DopplerStrategy = doppler;
return true;
}
public bool EnterDoppler()
{
// return false if we are not online or rig not suitable
if (GetStatus() != RIGSTATUS.ONLINE)
return false;
// save rig settings
SaveRigMode = this.GetMode();
SaveRigSplit = this.GetSplit();
SaveRigRit = this.GetRit();
SaveRxFrequency = this.GetRxFrequency();
SaveTxFrequency = this.GetTxFrequency();
SetSplitMode(SaveRxFrequency, SaveRxFrequency, SaveRigMode);
return true;
}
public bool LeaveDoppler()
{
// restore rig settings
if (SaveRigMode != RIGMODE.NONE)
SetMode(SaveRigMode);
if (SaveRigSplit != RIGSPLIT.NONE)
SetSplit(SaveRigSplit);
if (SaveRigRit != RIGRIT.NONE)
SetRit(SaveRigRit);
if (SaveRxFrequency > 0)
SetRxFrequency(SaveRxFrequency);
if (SaveTxFrequency > 0)
SetTxFrequency(SaveTxFrequency);
SetSimplexMode(SaveRxFrequency, SaveRigMode);
return true;
}
public static List<SupportedRig> SupportedRigs()
{
List<SupportedRig> rigs = new List<SupportedRig>();
List<string> rigtypes = ScoutBase.CAT.OmniRig.SupportedRigs();
foreach (string rigtype in rigtypes)
{
SupportedRig rig = new SupportedRig();
rig.Type = "[Serial] " + rigtype;
rig.Model = rigtype;
rig.CATEngine = CATENGINE.SCOUTBASE;
rigs.Add(rig);
}
// return list of rigs
return rigs;
}
}
}

Wyświetl plik

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AirScout.CAT
{
public class SupportedRig
{
public string Type { get; set; } = "";
public string Model { get; set; } = "";
public CATENGINE CATEngine { get; set; } = CATENGINE.NONE;
}
}

Wyświetl plik

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="AirScout.CAT.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<AirScout.CAT.Properties.Settings>
<setting name="CAT_Activate" serializeAs="String">
<value>False</value>
</setting>
<setting name="CAT_Update" serializeAs="String">
<value>500</value>
</setting>
<setting name="CAT_ResponseTimeout" serializeAs="String">
<value>500</value>
</setting>
<setting name="CAT_RigType" serializeAs="String">
<value />
</setting>
<setting name="CAT_PortName" serializeAs="String">
<value />
</setting>
<setting name="CAT_Baudrate" serializeAs="String">
<value>9600</value>
</setting>
<setting name="CAT_DataBits" serializeAs="String">
<value>8</value>
</setting>
<setting name="CAT_Parity" serializeAs="String">
<value>NONE</value>
</setting>
<setting name="CAT_StopBits" serializeAs="String">
<value>ONE</value>
</setting>
<setting name="CAT_RTS" serializeAs="String">
<value>LOW</value>
</setting>
<setting name="CAT_DTR" serializeAs="String">
<value>LOW</value>
</setting>
<setting name="CAT_Poll" serializeAs="String">
<value>100</value>
</setting>
<setting name="CAT_Timeout" serializeAs="String">
<value>500</value>
</setting>
</AirScout.CAT.Properties.Settings>
</userSettings>
</configuration>

Wyświetl plik

@ -37,8 +37,8 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
@ -73,12 +73,12 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Wyświetl plik

@ -29,4 +29,11 @@ namespace AirScout.Core
FASTFORWARD = 5
}
public enum AIRSCOUTTRACKMODE
{
NONE = 0,
SINGLE = 1,
TRACK = 2,
ERROR = 128
}
}

Wyświetl plik

@ -90,6 +90,14 @@ namespace AirScout.Core
public bool Ambiguous = false;
public string Comment = "";
// old values if available
public DateTime OldTime;
public double OldLat;
public double OldLon;
public double OldAlt;
public double OldTrack;
public double OldSpeed;
public PlaneInfo()
{
Time = DateTime.UtcNow;
@ -108,6 +116,7 @@ namespace AirScout.Core
From = "";
To = "";
VSpeed = 0;
}
public PlaneInfo(DateTime time, string call, string reg, string hex, double lat, double lon, double track, double alt, double speed, string type, string manufacturer, string model, PLANECATEGORY category)
@ -125,6 +134,13 @@ namespace AirScout.Core
Manufacturer = manufacturer;
Model = model;
Category = category;
OldTime = DateTime.MinValue;
OldLat = 0;
OldLon = 0;
OldAlt = 0;
OldTrack = 0;
OldSpeed = 0;
}
// LEGACY!!!
@ -143,10 +159,18 @@ namespace AirScout.Core
Manufacturer = (string)row[10];
Model = (string)row[11];
Category = (PLANECATEGORY)row[12];
OldTime = DateTime.MinValue;
OldLat = 0;
OldLon = 0;
OldAlt = 0;
OldTrack = 0;
OldSpeed = 0;
}
public PlaneInfo (PlaneInfo plane)
{
this.Ambiguous = plane.Ambiguous;
this.Alt = plane.Alt;
this.AltDiff = plane.AltDiff;
@ -174,6 +198,13 @@ namespace AirScout.Core
this.Track = plane.Track;
this.Type = plane.Type;
this.OldTime = plane.OldTime;
this.OldLat = plane.OldLat;
this.OldLon = plane.OldLon;
this.OldAlt = plane.OldAlt;
this.OldTrack = plane.OldTrack;
this.OldSpeed = plane.OldSpeed;
}
public override string ToString()

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

Wyświetl plik

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.3.3.0")]
[assembly: AssemblyFileVersion("1.3.3.0")]
[assembly: AssemblyVersion("1.3.3.1")]
[assembly: AssemblyFileVersion("1.3.3.1")]

Wyświetl plik

@ -43,7 +43,98 @@ namespace System.Net
return clientExtensions;
}
public static string DownloadFile (string url, int timeout)
private static bool ReadContent(Stream stream, int contentlength, int timeout, ref string response)
{
// set stop watch as timout
Stopwatch st = new Stopwatch();
st.Start();
string resp = "";
int count = 0;
// assign buffer
byte[] buff = new byte[1];
int bytesread = 0;
// read content bytewise
while (bytesread < contentlength)
{
bytesread += stream.Read(buff, 0, buff.Length);
// add it to response
resp += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
string trailer = "";
// reassign buffer
buff = new byte[1];
// read stream bytewise until CRLFCRLF is detected, should be the next two bytes
do
{
count = stream.Read(buff, 0, buff.Length);
trailer += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
while (!trailer.Contains("\r\n"));
Console.WriteLine("Reading content [" + contentlength.ToString() + " bytes]: " + resp);
response += resp;
return true;
}
private static bool ReadChunkedContent(Stream stream, int timeout, ref string response)
{
// set stop watch as timout
Stopwatch st = new Stopwatch();
st.Start();
string resp = "";
byte[] buff = new byte[1];
int count = 0;
string strcontentlength = "";
int contentlength = 0;
// chunked transfer, first line should contain content length
// read stream bytewise until CRLF is detected
do
{
count = stream.Read(buff, 0, buff.Length);
strcontentlength += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
while (!strcontentlength.Contains("\r\n"));
strcontentlength = strcontentlength.Replace("\r\n", "");
contentlength = int.Parse(strcontentlength, System.Globalization.NumberStyles.HexNumber);
// finished reading all chunks
if (contentlength == 0)
{
Console.WriteLine("Reading chunked content finished");
return true;
}
int bytesread = 0;
// read content bytewise
while (bytesread < contentlength)
{
bytesread += stream.Read(buff, 0, buff.Length);
// add it to response
resp += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
string trailer = "";
// reassign buffer
buff = new byte[1];
// read stream bytewise until CRLFCRLF is detected, should be the next two bytes
do
{
count = stream.Read(buff, 0, buff.Length);
trailer += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
while (!trailer.Contains("\r\n"));
Console.WriteLine("Reading chunked content [" + contentlength.ToString() + " bytes]: " + resp);
response += resp;
return false;
}
public static string DownloadFile(string url, int timeout)
{
string response = "";
Uri uri = null;
@ -76,13 +167,15 @@ namespace System.Net
var dataToSend = Encoding.ASCII.GetBytes(hdr.ToString());
stream.Write(dataToSend, 0, dataToSend.Length);
byte[] buff;
// set stop watch as timout
Stopwatch st = new Stopwatch();
st.Start();
//read header bytewise
string header = "";
int totalRead = 0;
byte[] buff = new byte[1];
buff = new byte[1];
do
{
totalRead = stream.Read(buff, 0, buff.Length);
@ -91,47 +184,20 @@ namespace System.Net
throw new TimeoutException("Connection to " + url + " timed out.");
}
while (!header.Contains("\r\n\r\n"));
Console.Write(header);
int contentlength = 0;
if (header.Contains("Transfer-Encoding: chunked"))
{
// chunked transfer, first line should contain content length
string strcontentlength = "";
do
{
totalRead = stream.Read(buff, 0, buff.Length);
strcontentlength += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection to " + url + " timed out.");
}
while (!strcontentlength.Contains("\r\n"));
strcontentlength = strcontentlength.Replace("\r\n", "");
contentlength = int.Parse(strcontentlength, System.Globalization.NumberStyles.HexNumber);
// chunked transfer, read all chunks until complete
while (!ReadChunkedContent(stream, timeout, ref response))
{ }
}
else
{
// get content length from header
Regex strcontentlength = new Regex("(?<=Content-Length:\\s)\\d+", RegexOptions.IgnoreCase);
contentlength = int.Parse(strcontentlength.Match(header).Value);
}
// re-assign buffer
// read response
buff = new byte[1000];
totalRead = 0;
do
{
int bytesRead = stream.Read(buff, 0, buff.Length);
string part = Encoding.UTF8.GetString(buff, 0, bytesRead);
Console.WriteLine(part);
response += part;
totalRead += bytesRead;
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection to " + url + " timed out.");
}
while (totalRead < contentlength);
// cut response at the end
if (response.Contains("\r\n"))
{
response = response.Substring(0, response.IndexOf("\r\n"));
Regex rcontentlength = new Regex("(?<=Content-Length:\\s)\\d+", RegexOptions.IgnoreCase);
contentlength = int.Parse(rcontentlength.Match(header).Value);
ReadContent(stream, contentlength, timeout, ref response);
}
st.Stop();
}

Wyświetl plik

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.3.3.0")]
[assembly: AssemblyFileVersion("1.3.3.0")]
[assembly: AssemblyVersion("1.3.3.4")]
[assembly: AssemblyFileVersion("1.3.3.4")]

Wyświetl plik

@ -4,11 +4,13 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
namespace System.Net
{
@ -41,6 +43,104 @@ namespace System.Net
return clientExtensions;
}
private static bool ReadContent(Stream stream, int contentlength, int timeout, ref string response)
{
// set stop watch as timout
Stopwatch st = new Stopwatch();
st.Start();
string resp = "";
int count = 0;
// assign buffer
byte[] buff = new byte[1];
int bytesread = 0;
// read content bytewise
while (bytesread < contentlength)
{
bytesread += stream.Read(buff, 0, buff.Length);
// add it to response
resp += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
string trailer = "";
// reassign buffer
buff = new byte[1];
// read stream bytewise until CRLFCRLF is detected, should be the next two bytes
do
{
count = stream.Read(buff, 0, buff.Length);
trailer += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
while (!trailer.Contains("\r\n"));
// Console.WriteLine("Reading content [" + contentlength.ToString() + " bytes]: " + resp);
response += resp;
return true;
}
private static bool ReadChunkedContent(Stream stream, int timeout, ref string response)
{
// set stop watch as timout
Stopwatch st = new Stopwatch();
st.Start();
string resp = "";
byte[] buff = new byte[1];
int count = 0;
string strcontentlength = "";
int contentlength = 0;
// chunked transfer, first line should contain content length
// read stream bytewise until CRLF is detected
try
{
do
{
count = stream.Read(buff, 0, buff.Length);
strcontentlength += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
while (!strcontentlength.Contains("\r\n"));
strcontentlength = strcontentlength.Replace("\r\n", "");
contentlength = int.Parse(strcontentlength, System.Globalization.NumberStyles.HexNumber);
// finished reading all chunks
if (contentlength == 0)
{
Console.WriteLine("Reading chunked content finished");
return true;
}
int bytesread = 0;
// read content bytewise
while (bytesread < contentlength)
{
bytesread += stream.Read(buff, 0, buff.Length);
// add it to response
resp += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
string trailer = "";
// reassign buffer
buff = new byte[1];
// read stream bytewise until CRLFCRLF is detected, should be the next two bytes
do
{
count = stream.Read(buff, 0, buff.Length);
trailer += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection timed out.");
}
while (!trailer.Contains("\r\n"));
}
catch (Exception ex)
{
Console.WriteLine("Error while reading chunked content: " + ex.Message);
}
// Console.WriteLine("Reading chunked content [" + contentlength.ToString() + " bytes]: " + resp);
response += resp;
return false;
}
public static string DownloadFile (string url, int timeout, string apikey)
{
string response = "";
@ -75,13 +175,15 @@ namespace System.Net
var dataToSend = Encoding.ASCII.GetBytes(hdr.ToString());
stream.Write(dataToSend, 0, dataToSend.Length);
byte[] buff;
// set stop watch as timout
Stopwatch st = new Stopwatch();
st.Start();
//read header bytewise
string header = "";
int totalRead = 0;
byte[] buff = new byte[1];
buff = new byte[1];
do
{
totalRead = stream.Read(buff, 0, buff.Length);
@ -90,47 +192,20 @@ namespace System.Net
throw new TimeoutException("Connection to " + url + " timed out.");
}
while (!header.Contains("\r\n\r\n"));
Console.Write(header);
int contentlength = 0;
if (header.Contains("Transfer-Encoding: chunked"))
{
// chunked transfer, first line should contain content length
string strcontentlength = "";
do
{
totalRead = stream.Read(buff, 0, buff.Length);
strcontentlength += Encoding.ASCII.GetString(buff, 0, buff.Length);
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection to " + url + " timed out.");
}
while (!strcontentlength.Contains("\r\n"));
strcontentlength = strcontentlength.Replace("\r\n", "");
contentlength = int.Parse(strcontentlength, System.Globalization.NumberStyles.HexNumber);
// chunked transfer, read all chunks until complete
while (!ReadChunkedContent(stream, timeout, ref response))
{ }
}
else
{
// get content length from header
Regex strcontentlength = new Regex("(?<=Content-Length:\\s)\\d+", RegexOptions.IgnoreCase);
contentlength = int.Parse(strcontentlength.Match(header).Value);
}
// re-assign buffer
// read response
buff = new byte[1000];
totalRead = 0;
do
{
int bytesRead = stream.Read(buff, 0, buff.Length);
string part = Encoding.UTF8.GetString(buff, 0, bytesRead);
Console.WriteLine(part);
response += part;
totalRead += bytesRead;
if (st.ElapsedMilliseconds > timeout)
throw new TimeoutException("Connection to " + url + " timed out.");
}
while (totalRead < contentlength);
// cut response at the end
if (response.Contains("\r\n"))
{
response = response.Substring(0, response.IndexOf("\r\n"));
Regex rcontentlength = new Regex("(?<=Content-Length:\\s)\\d+", RegexOptions.IgnoreCase);
contentlength = int.Parse(rcontentlength.Match(header).Value);
ReadContent(stream, contentlength, timeout, ref response);
}
st.Stop();
}

Wyświetl plik

@ -368,7 +368,6 @@ namespace AirScout.PlaneFeeds.Plugin.VirtualRadarServer
Console.WriteLine("[" + this.GetType().Name + "]: Analyzing data");
// JavaScriptSerializer js = new JavaScriptSerializer();
// dynamic root = js.Deserialize<dynamic>(json);
dynamic root = JsonConvert.DeserializeObject(json);
// 2017-07-23: workaround for "jumping planes" due to incorrect time stamps
// try to get the server time to adjust the time stamps in plane positions
// --> compare server time with local time and calculate offset
@ -376,6 +375,8 @@ namespace AirScout.PlaneFeeds.Plugin.VirtualRadarServer
long toffset = 0;
try
{
// deserialize JSON
dynamic root = JsonConvert.DeserializeObject(json);
// get local time of request in milliseconds
DateTime lt = DateTime.UtcNow;
long ltime = (long)(lt - new DateTime(1970, 1, 1)).TotalMilliseconds;

Wyświetl plik

@ -59,8 +59,8 @@
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Security" />
<Reference Include="System.Windows.Forms" />
@ -123,12 +123,12 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

Wyświetl plik

@ -37,8 +37,8 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
@ -80,12 +80,12 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

Wyświetl plik

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29609.76
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout", "AirScout\AirScout.csproj", "{17498590-2CFF-4D24-BFB8-549D14BD2545}"
EndProject
@ -31,8 +31,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AeroWizard", "AeroWizard\Ae
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SerializableGenerics", "SerializableGenerics\SerializableGenerics.csproj", "{EF2EB181-4D5B-4418-A280-BFA1D53550BE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScoutDatabaseManager", "AirScoutDatabaseManager\AirScoutDatabaseManager.csproj", "{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElevationTileGenerator", "ElevationTileGenerator\ElevationTileGenerator.csproj", "{955CEA7D-37F6-4122-B4CA-B08C2B73969F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SQLiteDatabase", "SQLiteDatabase\SQLiteDatabase\SQLiteDatabase.csproj", "{6056D3BE-7002-4A6A-A9EA-6FF45122A3C7}"
@ -83,12 +81,26 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout.PlaneFeeds.Plugin.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout.PlaneFeeds.Plugin.OpenSky", "AirScout.PlaneFeeds.Plugin.OpenSky\AirScout.PlaneFeeds.Plugin.OpenSky.csproj", "{23F584DB-EB5E-452D-B49F-7C1CABB713FF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout.PlaneFeeds.Plugin.PlaneFinder", "AirScout.PlaneFeeds.Plugin.PlaneFinder\AirScout.PlaneFeeds.Plugin.PlaneFinder.csproj", "{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScoutBase.Maps", "ScoutBase\ScoutBase.Maps\ScoutBase.Maps.csproj", "{B3B005A5-CC05-430B-B966-20BE5E5985BF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MapTileGenerator", "MapTileGenerator\MapTileGenerator.csproj", "{3D5AADC3-E4CA-4C12-8939-8DC778F6018E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CATCheck", "CATCheck\CATCheck.csproj", "{0F0B27D0-7957-4CE0-9121-2C89746AF136}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScoutBase.CAT", "ScoutBase\ScoutBase.CAT\ScoutBase.CAT.csproj", "{C9291203-B5D0-4179-888D-04BC670B158F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout.CAT", "AirScout.CAT\AirScout.CAT.csproj", "{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RainScout", "RainScout\RainScout.csproj", "{F14C9DB2-D556-45F4-8CB5-E9B402C36087}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RainScout.Radars", "RainScout.Radars\RainScout.Radars.csproj", "{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RainScout.Core", "RainScout.Core\RainScout.Core.csproj", "{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElevationCoverageMapper", "ElevationCoverageMapper\ElevationCoverageMapper.csproj", "{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinTestSimulator", "WinTestSimulator\WinTestSimulator.csproj", "{B7B00B6B-4288-4562-9773-116556607857}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -250,16 +262,6 @@ Global
{EF2EB181-4D5B-4418-A280-BFA1D53550BE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{EF2EB181-4D5B-4418-A280-BFA1D53550BE}.Release|x86.ActiveCfg = Release|Any CPU
{EF2EB181-4D5B-4418-A280-BFA1D53550BE}.Release|x86.Build.0 = Release|Any CPU
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Debug|Mixed Platforms.Build.0 = Debug|x86
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Debug|x86.ActiveCfg = Debug|x86
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Release|Any CPU.ActiveCfg = Release|x86
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Release|Mixed Platforms.ActiveCfg = Release|x86
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Release|Mixed Platforms.Build.0 = Release|x86
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Release|x86.ActiveCfg = Release|x86
{00062ABB-C482-4B06-BD1B-C49DE9ABA9E5}.Release|x86.Build.0 = Release|x86
{955CEA7D-37F6-4122-B4CA-B08C2B73969F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{955CEA7D-37F6-4122-B4CA-B08C2B73969F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{955CEA7D-37F6-4122-B4CA-B08C2B73969F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
@ -551,18 +553,6 @@ Global
{23F584DB-EB5E-452D-B49F-7C1CABB713FF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{23F584DB-EB5E-452D-B49F-7C1CABB713FF}.Release|x86.ActiveCfg = Release|Any CPU
{23F584DB-EB5E-452D-B49F-7C1CABB713FF}.Release|x86.Build.0 = Release|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Debug|x86.ActiveCfg = Debug|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Debug|x86.Build.0 = Debug|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Release|Any CPU.Build.0 = Release|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Release|x86.ActiveCfg = Release|Any CPU
{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}.Release|x86.Build.0 = Release|Any CPU
{B3B005A5-CC05-430B-B966-20BE5E5985BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B3B005A5-CC05-430B-B966-20BE5E5985BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B3B005A5-CC05-430B-B966-20BE5E5985BF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@ -587,6 +577,102 @@ Global
{3D5AADC3-E4CA-4C12-8939-8DC778F6018E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3D5AADC3-E4CA-4C12-8939-8DC778F6018E}.Release|x86.ActiveCfg = Release|Any CPU
{3D5AADC3-E4CA-4C12-8939-8DC778F6018E}.Release|x86.Build.0 = Release|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Debug|x86.ActiveCfg = Debug|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Debug|x86.Build.0 = Debug|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Release|Any CPU.Build.0 = Release|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Release|x86.ActiveCfg = Release|Any CPU
{0F0B27D0-7957-4CE0-9121-2C89746AF136}.Release|x86.Build.0 = Release|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Debug|x86.ActiveCfg = Debug|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Debug|x86.Build.0 = Debug|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Release|Any CPU.Build.0 = Release|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Release|x86.ActiveCfg = Release|Any CPU
{C9291203-B5D0-4179-888D-04BC670B158F}.Release|x86.Build.0 = Release|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Debug|x86.ActiveCfg = Debug|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Debug|x86.Build.0 = Debug|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Release|Any CPU.Build.0 = Release|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Release|x86.ActiveCfg = Release|Any CPU
{FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}.Release|x86.Build.0 = Release|Any CPU
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Debug|Mixed Platforms.Build.0 = Debug|x86
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Debug|x86.ActiveCfg = Debug|x86
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Debug|x86.Build.0 = Debug|x86
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Release|Any CPU.Build.0 = Release|Any CPU
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Release|Mixed Platforms.ActiveCfg = Release|x86
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Release|Mixed Platforms.Build.0 = Release|x86
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Release|x86.ActiveCfg = Release|x86
{F14C9DB2-D556-45F4-8CB5-E9B402C36087}.Release|x86.Build.0 = Release|x86
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Debug|x86.ActiveCfg = Debug|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Debug|x86.Build.0 = Debug|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Release|Any CPU.Build.0 = Release|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Release|x86.ActiveCfg = Release|Any CPU
{58A3209F-1BF2-4B59-9A2A-0983CE232CB0}.Release|x86.Build.0 = Release|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Debug|x86.ActiveCfg = Debug|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Debug|x86.Build.0 = Debug|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Release|Any CPU.Build.0 = Release|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Release|x86.ActiveCfg = Release|Any CPU
{2AA51078-C9E9-4AD0-A8CD-2A028A6BC886}.Release|x86.Build.0 = Release|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Debug|x86.ActiveCfg = Debug|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Debug|x86.Build.0 = Debug|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Release|Any CPU.Build.0 = Release|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Release|x86.ActiveCfg = Release|Any CPU
{3ABFFAF3-5169-4DF6-9F64-BF44FCCD26F1}.Release|x86.Build.0 = Release|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Debug|x86.ActiveCfg = Debug|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Debug|x86.Build.0 = Debug|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Release|Any CPU.Build.0 = Release|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Release|x86.ActiveCfg = Release|Any CPU
{B7B00B6B-4288-4562-9773-116556607857}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Wyświetl plik

@ -117,8 +117,8 @@
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Design" />
<Reference Include="System.Management" />
@ -136,6 +136,8 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Enums.cs" />
<Compile Include="GMapLocatorPolygon.cs" />
<Compile Include="MapPreloader.cs">
<SubType>Form</SubType>
</Compile>
@ -285,6 +287,7 @@
<DependentUpon>Splash.cs</DependentUpon>
</Compile>
<Compile Include="TooltipDataPoint.cs" />
<Compile Include="TrackValues.cs" />
<Compile Include="TrafficDlg.cs">
<SubType>Form</SubType>
</Compile>
@ -320,6 +323,7 @@
<None Include="Resources\AirScout_Marker.png" />
<None Include="Resources\AirScout_Watchlist.png" />
<None Include="Resources\Settings.png" />
<Content Include="Requirements.txt" />
<Content Include="VersionHistory.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
@ -446,6 +450,10 @@
<Project>{288a26ec-b690-41a2-84e5-61c9b7b74046}</Project>
<Name>AirScout.Aircrafts</Name>
</ProjectReference>
<ProjectReference Include="..\AirScout.CAT\AirScout.CAT.csproj">
<Project>{ffdec390-7bbc-4dec-9826-1dd04279f3fa}</Project>
<Name>AirScout.CAT</Name>
</ProjectReference>
<ProjectReference Include="..\AirScout.Core\AirScout.Core.csproj">
<Project>{41b66be4-6086-4ae3-be31-c81ee6b10154}</Project>
<Name>AirScout.Core</Name>
@ -486,6 +494,10 @@
<Project>{507de008-21ac-469b-bc30-23b239832af6}</Project>
<Name>OxyPlot</Name>
</ProjectReference>
<ProjectReference Include="..\ScoutBase\ScoutBase.CAT\ScoutBase.CAT.csproj">
<Project>{c9291203-b5d0-4179-888d-04bc670b158f}</Project>
<Name>ScoutBase.CAT</Name>
</ProjectReference>
<ProjectReference Include="..\ScoutBase\ScoutBase.Core\ScoutBase.Core.csproj">
<Project>{EE86E933-D883-4B18-80EB-0FBA55EC67C6}</Project>
<Name>ScoutBase.Core</Name>
@ -582,12 +594,12 @@
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

24
AirScout/Enums.cs 100644
Wyświetl plik

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AirScout
{
public enum TRACKSTATUS
{
NONE = 0,
STOPPED = 1,
SINGLE = 2,
TRACKING = 3,
ERROR = 128
}
public enum ROTSTATUS
{
NONE = 0,
STOPPED = 1,
TRACKING = 2,
ERROR = 128
}
}

Wyświetl plik

@ -311,7 +311,7 @@ namespace AirScout
{
using (StreamWriter sw = new StreamWriter(Dlg.FileName))
{
sw.WriteLine("Bearing[deg];Distance[km];Eps_Min[deg];Elevation[m]");
sw.WriteLine("Bearing[deg];Eps_Min[deg];Distance[km];Elevation[m]");
for (int i = 0; i < 360; i++)
{
sw.WriteLine(i.ToString() + ";" +

Wyświetl plik

@ -2760,7 +2760,34 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
********************************************************************************
Licence Information for Ini-Parser
(included in AirScout.CAT)
********************************************************************************
The MIT License (MIT)
Copyright (c) 2008 Ricardo Amores Hernández
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* * *
2020-04-06
2021-04-14

113
AirScout/MapDlg.Designer.cs wygenerowano
Wyświetl plik

@ -37,6 +37,7 @@
this.sc_Map = new System.Windows.Forms.SplitContainer();
this.tc_Map = new System.Windows.Forms.TabControl();
this.tp_Map = new System.Windows.Forms.TabPage();
this.pa_Rig = new System.Windows.Forms.Panel();
this.ag_Azimuth = new AquaControls.AquaGauge();
this.ag_Elevation = new AquaControls.AquaGauge();
this.gm_Main = new GMap.NET.WindowsForms.GMapControl();
@ -107,6 +108,9 @@
this.tsl_Database_LED_SRTM1 = new System.Windows.Forms.ToolStripStatusLabel();
this.tsl_Database_LED_ASTER3 = new System.Windows.Forms.ToolStripStatusLabel();
this.tsl_Database_LED_ASTER1 = new System.Windows.Forms.ToolStripStatusLabel();
this.tsl_Track = new System.Windows.Forms.ToolStripStatusLabel();
this.tsl_Rot = new System.Windows.Forms.ToolStripStatusLabel();
this.tsl_CAT = new System.Windows.Forms.ToolStripStatusLabel();
this.tt_Main = new System.Windows.Forms.ToolTip(this.components);
this.btn_Map_PlayPause = new System.Windows.Forms.Button();
this.btn_Map_Save = new System.Windows.Forms.Button();
@ -247,7 +251,7 @@
this.sc_Map.Panel2.BackColor = System.Drawing.SystemColors.Control;
this.sc_Map.Panel2.Controls.Add(this.tc_Main);
this.sc_Map.Size = new System.Drawing.Size(852, 706);
this.sc_Map.SplitterDistance = 341;
this.sc_Map.SplitterDistance = 342;
this.sc_Map.SplitterWidth = 5;
this.sc_Map.TabIndex = 20;
this.sc_Map.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.sc_Map_SplitterMoved);
@ -261,12 +265,13 @@
this.tc_Map.Location = new System.Drawing.Point(0, 0);
this.tc_Map.Name = "tc_Map";
this.tc_Map.SelectedIndex = 0;
this.tc_Map.Size = new System.Drawing.Size(852, 341);
this.tc_Map.Size = new System.Drawing.Size(852, 342);
this.tc_Map.TabIndex = 14;
this.tc_Map.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tc_Map_Selecting);
//
// tp_Map
//
this.tp_Map.Controls.Add(this.pa_Rig);
this.tp_Map.Controls.Add(this.ag_Azimuth);
this.tp_Map.Controls.Add(this.ag_Elevation);
this.tp_Map.Controls.Add(this.gm_Main);
@ -274,12 +279,20 @@
this.tp_Map.Location = new System.Drawing.Point(4, 22);
this.tp_Map.Name = "tp_Map";
this.tp_Map.Padding = new System.Windows.Forms.Padding(3);
this.tp_Map.Size = new System.Drawing.Size(844, 315);
this.tp_Map.Size = new System.Drawing.Size(844, 316);
this.tp_Map.TabIndex = 0;
this.tp_Map.Text = "Map";
this.tp_Map.UseVisualStyleBackColor = true;
this.tp_Map.Enter += new System.EventHandler(this.tp_Map_Enter);
//
// pa_Rig
//
this.pa_Rig.Location = new System.Drawing.Point(489, 182);
this.pa_Rig.Name = "pa_Rig";
this.pa_Rig.Size = new System.Drawing.Size(349, 80);
this.pa_Rig.TabIndex = 30;
this.pa_Rig.Visible = false;
//
// ag_Azimuth
//
this.ag_Azimuth.BackColor = System.Drawing.Color.Transparent;
@ -342,12 +355,15 @@
this.gm_Main.RoutesEnabled = true;
this.gm_Main.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
this.gm_Main.ShowTileGridLines = false;
this.gm_Main.Size = new System.Drawing.Size(838, 309);
this.gm_Main.Size = new System.Drawing.Size(838, 310);
this.gm_Main.TabIndex = 4;
this.gm_Main.Zoom = 0D;
this.gm_Main.OnMarkerClick += new GMap.NET.WindowsForms.MarkerClick(this.gm_Main_OnMarkerClick);
this.gm_Main.OnMarkerEnter += new GMap.NET.WindowsForms.MarkerEnter(this.gm_Main_OnMarkerEnter);
this.gm_Main.OnMarkerLeave += new GMap.NET.WindowsForms.MarkerLeave(this.gm_Main_OnMarkerLeave);
this.gm_Main.OnPositionChanged += new GMap.NET.PositionChanged(this.gm_Main_OnPositionChanged);
this.gm_Main.OnTileLoadComplete += new GMap.NET.TileLoadComplete(this.gm_Main_OnTileLoadComplete);
this.gm_Main.OnMapDrag += new GMap.NET.MapDrag(this.gm_Main_OnMapDrag);
this.gm_Main.OnMapZoomChanged += new GMap.NET.MapZoomChanged(this.gm_Main_OnMapZoomChanged);
this.gm_Main.SizeChanged += new System.EventHandler(this.gm_Main_SizeChanged);
this.gm_Main.Paint += new System.Windows.Forms.PaintEventHandler(this.gm_Main_Paint);
@ -377,7 +393,7 @@
this.gm_Cache.RoutesEnabled = true;
this.gm_Cache.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
this.gm_Cache.ShowTileGridLines = false;
this.gm_Cache.Size = new System.Drawing.Size(838, 309);
this.gm_Cache.Size = new System.Drawing.Size(838, 310);
this.gm_Cache.TabIndex = 29;
this.gm_Cache.Zoom = 0D;
//
@ -385,7 +401,7 @@
//
this.tp_News.Location = new System.Drawing.Point(4, 22);
this.tp_News.Name = "tp_News";
this.tp_News.Size = new System.Drawing.Size(844, 315);
this.tp_News.Size = new System.Drawing.Size(844, 316);
this.tp_News.TabIndex = 3;
this.tp_News.Text = "Latest News";
this.tp_News.UseVisualStyleBackColor = true;
@ -403,7 +419,7 @@
this.tc_Main.MinimumSize = new System.Drawing.Size(0, 200);
this.tc_Main.Name = "tc_Main";
this.tc_Main.SelectedIndex = 0;
this.tc_Main.Size = new System.Drawing.Size(852, 360);
this.tc_Main.Size = new System.Drawing.Size(852, 359);
this.tc_Main.TabIndex = 0;
this.tc_Main.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tc_Main_DrawItem);
this.tc_Main.SelectedIndexChanged += new System.EventHandler(this.tc_Main_SelectedIndexChanged);
@ -412,10 +428,11 @@
// tp_Elevation
//
this.tp_Elevation.BackColor = System.Drawing.SystemColors.Control;
this.tp_Elevation.ForeColor = System.Drawing.Color.DarkGray;
this.tp_Elevation.Location = new System.Drawing.Point(4, 22);
this.tp_Elevation.Name = "tp_Elevation";
this.tp_Elevation.Padding = new System.Windows.Forms.Padding(3);
this.tp_Elevation.Size = new System.Drawing.Size(844, 334);
this.tp_Elevation.Size = new System.Drawing.Size(844, 333);
this.tp_Elevation.TabIndex = 0;
this.tp_Elevation.Text = "Path Profile";
this.tp_Elevation.Enter += new System.EventHandler(this.tp_Elevation_Enter);
@ -431,7 +448,7 @@
this.tp_Spectrum.Location = new System.Drawing.Point(4, 22);
this.tp_Spectrum.Name = "tp_Spectrum";
this.tp_Spectrum.Padding = new System.Windows.Forms.Padding(3);
this.tp_Spectrum.Size = new System.Drawing.Size(844, 334);
this.tp_Spectrum.Size = new System.Drawing.Size(844, 333);
this.tp_Spectrum.TabIndex = 1;
this.tp_Spectrum.Text = "Spectrum";
this.tp_Spectrum.Enter += new System.EventHandler(this.tp_Spectrum_Enter);
@ -455,7 +472,7 @@
this.gb_Spectrum_NearestInfo.Controls.Add(this.label2);
this.gb_Spectrum_NearestInfo.Location = new System.Drawing.Point(489, 54);
this.gb_Spectrum_NearestInfo.Name = "gb_Spectrum_NearestInfo";
this.gb_Spectrum_NearestInfo.Size = new System.Drawing.Size(175, 271);
this.gb_Spectrum_NearestInfo.Size = new System.Drawing.Size(175, 270);
this.gb_Spectrum_NearestInfo.TabIndex = 8;
this.gb_Spectrum_NearestInfo.TabStop = false;
this.gb_Spectrum_NearestInfo.Text = "Nearest Plane Info";
@ -607,7 +624,7 @@
this.gb_NearestPlaneMap.Controls.Add(this.gm_Nearest);
this.gb_NearestPlaneMap.Location = new System.Drawing.Point(670, 54);
this.gb_NearestPlaneMap.Name = "gb_NearestPlaneMap";
this.gb_NearestPlaneMap.Size = new System.Drawing.Size(168, 274);
this.gb_NearestPlaneMap.Size = new System.Drawing.Size(168, 273);
this.gb_NearestPlaneMap.TabIndex = 6;
this.gb_NearestPlaneMap.TabStop = false;
this.gb_NearestPlaneMap.Text = "Nearest Plane Map";
@ -634,7 +651,7 @@
this.gm_Nearest.RoutesEnabled = true;
this.gm_Nearest.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
this.gm_Nearest.ShowTileGridLines = false;
this.gm_Nearest.Size = new System.Drawing.Size(162, 255);
this.gm_Nearest.Size = new System.Drawing.Size(162, 254);
this.gm_Nearest.TabIndex = 0;
this.gm_Nearest.Zoom = 0D;
//
@ -645,7 +662,7 @@
| System.Windows.Forms.AnchorStyles.Right)));
this.gb_Spectrum.Location = new System.Drawing.Point(8, 54);
this.gb_Spectrum.Name = "gb_Spectrum";
this.gb_Spectrum.Size = new System.Drawing.Size(475, 274);
this.gb_Spectrum.Size = new System.Drawing.Size(475, 273);
this.gb_Spectrum.TabIndex = 5;
this.gb_Spectrum.TabStop = false;
this.gb_Spectrum.Text = "Spectrum";
@ -657,7 +674,7 @@
this.tp_Analysis.Controls.Add(this.panel1);
this.tp_Analysis.Location = new System.Drawing.Point(4, 22);
this.tp_Analysis.Name = "tp_Analysis";
this.tp_Analysis.Size = new System.Drawing.Size(844, 334);
this.tp_Analysis.Size = new System.Drawing.Size(844, 333);
this.tp_Analysis.TabIndex = 3;
this.tp_Analysis.Text = "Analysis";
this.tp_Analysis.Enter += new System.EventHandler(this.tp_Analysis_Enter);
@ -670,7 +687,7 @@
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(0, 137);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(844, 197);
this.panel2.Size = new System.Drawing.Size(844, 196);
this.panel2.TabIndex = 1;
//
// gb_Analysis_Player
@ -682,7 +699,7 @@
this.gb_Analysis_Player.Location = new System.Drawing.Point(0, 0);
this.gb_Analysis_Player.MinimumSize = new System.Drawing.Size(565, 58);
this.gb_Analysis_Player.Name = "gb_Analysis_Player";
this.gb_Analysis_Player.Size = new System.Drawing.Size(591, 197);
this.gb_Analysis_Player.Size = new System.Drawing.Size(591, 196);
this.gb_Analysis_Player.TabIndex = 4;
this.gb_Analysis_Player.TabStop = false;
this.gb_Analysis_Player.Text = "Player";
@ -695,7 +712,7 @@
this.dtp_Analysis_MaxValue.Enabled = false;
this.dtp_Analysis_MaxValue.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dtp_Analysis_MaxValue.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dtp_Analysis_MaxValue.Location = new System.Drawing.Point(463, 161);
this.dtp_Analysis_MaxValue.Location = new System.Drawing.Point(463, 160);
this.dtp_Analysis_MaxValue.Name = "dtp_Analysis_MaxValue";
this.dtp_Analysis_MaxValue.Size = new System.Drawing.Size(122, 20);
this.dtp_Analysis_MaxValue.TabIndex = 25;
@ -708,7 +725,7 @@
this.dtp_Analysis_MinValue.Enabled = false;
this.dtp_Analysis_MinValue.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dtp_Analysis_MinValue.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dtp_Analysis_MinValue.Location = new System.Drawing.Point(6, 161);
this.dtp_Analysis_MinValue.Location = new System.Drawing.Point(6, 160);
this.dtp_Analysis_MinValue.Name = "dtp_Analysis_MinValue";
this.dtp_Analysis_MinValue.Size = new System.Drawing.Size(123, 20);
this.dtp_Analysis_MinValue.TabIndex = 24;
@ -717,7 +734,7 @@
// sb_Analysis_Play
//
this.sb_Analysis_Play.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.sb_Analysis_Play.Location = new System.Drawing.Point(146, 161);
this.sb_Analysis_Play.Location = new System.Drawing.Point(146, 160);
this.sb_Analysis_Play.Maximum = 1000000;
this.sb_Analysis_Play.Name = "sb_Analysis_Play";
this.sb_Analysis_Play.Orientation = CustomScrollBar.ScrollBarOrientation.Horizontal;
@ -736,7 +753,7 @@
this.gb_Analysis_Controls.Dock = System.Windows.Forms.DockStyle.Right;
this.gb_Analysis_Controls.Location = new System.Drawing.Point(591, 0);
this.gb_Analysis_Controls.Name = "gb_Analysis_Controls";
this.gb_Analysis_Controls.Size = new System.Drawing.Size(253, 197);
this.gb_Analysis_Controls.Size = new System.Drawing.Size(253, 196);
this.gb_Analysis_Controls.TabIndex = 2;
this.gb_Analysis_Controls.TabStop = false;
this.gb_Analysis_Controls.Text = "Controls";
@ -747,7 +764,7 @@
this.btn_Analysis_FastForward.Enabled = false;
this.btn_Analysis_FastForward.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_Analysis_FastForward.Image = ((System.Drawing.Image)(resources.GetObject("btn_Analysis_FastForward.Image")));
this.btn_Analysis_FastForward.Location = new System.Drawing.Point(202, 154);
this.btn_Analysis_FastForward.Location = new System.Drawing.Point(202, 153);
this.btn_Analysis_FastForward.Margin = new System.Windows.Forms.Padding(0);
this.btn_Analysis_FastForward.Name = "btn_Analysis_FastForward";
this.btn_Analysis_FastForward.Size = new System.Drawing.Size(47, 29);
@ -763,7 +780,7 @@
this.btn_Analysis_Forward.Enabled = false;
this.btn_Analysis_Forward.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_Analysis_Forward.Image = ((System.Drawing.Image)(resources.GetObject("btn_Analysis_Forward.Image")));
this.btn_Analysis_Forward.Location = new System.Drawing.Point(153, 154);
this.btn_Analysis_Forward.Location = new System.Drawing.Point(153, 153);
this.btn_Analysis_Forward.Margin = new System.Windows.Forms.Padding(0);
this.btn_Analysis_Forward.Name = "btn_Analysis_Forward";
this.btn_Analysis_Forward.Size = new System.Drawing.Size(47, 29);
@ -779,7 +796,7 @@
this.btn_Analysis_Pause.Enabled = false;
this.btn_Analysis_Pause.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_Analysis_Pause.Image = ((System.Drawing.Image)(resources.GetObject("btn_Analysis_Pause.Image")));
this.btn_Analysis_Pause.Location = new System.Drawing.Point(104, 154);
this.btn_Analysis_Pause.Location = new System.Drawing.Point(104, 153);
this.btn_Analysis_Pause.Margin = new System.Windows.Forms.Padding(0);
this.btn_Analysis_Pause.Name = "btn_Analysis_Pause";
this.btn_Analysis_Pause.Size = new System.Drawing.Size(47, 29);
@ -795,7 +812,7 @@
this.btn_Analysis_Back.Enabled = false;
this.btn_Analysis_Back.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_Analysis_Back.Image = ((System.Drawing.Image)(resources.GetObject("btn_Analysis_Back.Image")));
this.btn_Analysis_Back.Location = new System.Drawing.Point(55, 154);
this.btn_Analysis_Back.Location = new System.Drawing.Point(55, 153);
this.btn_Analysis_Back.Margin = new System.Windows.Forms.Padding(0);
this.btn_Analysis_Back.Name = "btn_Analysis_Back";
this.btn_Analysis_Back.Size = new System.Drawing.Size(47, 29);
@ -811,7 +828,7 @@
this.btn_Analysis_Rewind.Enabled = false;
this.btn_Analysis_Rewind.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_Analysis_Rewind.Image = ((System.Drawing.Image)(resources.GetObject("btn_Analysis_Rewind.Image")));
this.btn_Analysis_Rewind.Location = new System.Drawing.Point(6, 154);
this.btn_Analysis_Rewind.Location = new System.Drawing.Point(6, 153);
this.btn_Analysis_Rewind.Margin = new System.Windows.Forms.Padding(0);
this.btn_Analysis_Rewind.Name = "btn_Analysis_Rewind";
this.btn_Analysis_Rewind.Size = new System.Drawing.Size(47, 29);
@ -1063,6 +1080,7 @@
//
// ss_Main
//
this.ss_Main.AutoSize = false;
this.ss_Main.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsl_Status,
this.tsl_Dummy,
@ -1074,7 +1092,10 @@
this.tsl_Database_LED_SRTM3,
this.tsl_Database_LED_SRTM1,
this.tsl_Database_LED_ASTER3,
this.tsl_Database_LED_ASTER1});
this.tsl_Database_LED_ASTER1,
this.tsl_Track,
this.tsl_Rot,
this.tsl_CAT});
this.ss_Main.Location = new System.Drawing.Point(0, 706);
this.ss_Main.Name = "ss_Main";
this.ss_Main.ShowItemToolTips = true;
@ -1089,7 +1110,7 @@
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom)));
this.tsl_Status.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner;
this.tsl_Status.Name = "tsl_Status";
this.tsl_Status.Size = new System.Drawing.Size(714, 19);
this.tsl_Status.Size = new System.Drawing.Size(606, 19);
this.tsl_Status.Spring = true;
this.tsl_Status.Text = "No Messages.";
this.tsl_Status.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -1212,6 +1233,39 @@
this.tsl_Database_LED_ASTER1.Text = " SRTM3 database status LED";
this.tsl_Database_LED_ASTER1.ToolTipText = "SRTM3 database status LED";
//
// tsl_Track
//
this.tsl_Track.AutoSize = false;
this.tsl_Track.BackColor = System.Drawing.SystemColors.Control;
this.tsl_Track.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tsl_Track.ForeColor = System.Drawing.Color.DarkGray;
this.tsl_Track.Margin = new System.Windows.Forms.Padding(2, 5, 2, 5);
this.tsl_Track.Name = "tsl_Track";
this.tsl_Track.Size = new System.Drawing.Size(32, 14);
this.tsl_Track.Text = "TRK";
//
// tsl_Rot
//
this.tsl_Rot.AutoSize = false;
this.tsl_Rot.BackColor = System.Drawing.SystemColors.Control;
this.tsl_Rot.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tsl_Rot.ForeColor = System.Drawing.Color.DarkGray;
this.tsl_Rot.Margin = new System.Windows.Forms.Padding(2, 5, 2, 5);
this.tsl_Rot.Name = "tsl_Rot";
this.tsl_Rot.Size = new System.Drawing.Size(32, 14);
this.tsl_Rot.Text = "ROT";
//
// tsl_CAT
//
this.tsl_CAT.AutoSize = false;
this.tsl_CAT.BackColor = System.Drawing.SystemColors.Control;
this.tsl_CAT.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tsl_CAT.ForeColor = System.Drawing.Color.DarkGray;
this.tsl_CAT.Margin = new System.Windows.Forms.Padding(2, 5, 2, 5);
this.tsl_CAT.Name = "tsl_CAT";
this.tsl_CAT.Size = new System.Drawing.Size(32, 14);
this.tsl_CAT.Text = "CAT";
//
// btn_Map_PlayPause
//
this.btn_Map_PlayPause.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
@ -2062,7 +2116,6 @@
this.pa_CommonInfo.PerformLayout();
this.gb_Map_Buttons.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
@ -2213,6 +2266,10 @@
private GMap.NET.WindowsForms.GMapControl gm_Cache;
private System.Windows.Forms.ToolStripStatusLabel tsl_Database_LED_ASTER3;
private System.Windows.Forms.ToolStripStatusLabel tsl_Database_LED_ASTER1;
private System.Windows.Forms.Panel pa_Rig;
private System.Windows.Forms.ToolStripStatusLabel tsl_CAT;
private System.Windows.Forms.ToolStripStatusLabel tsl_Rot;
private System.Windows.Forms.ToolStripStatusLabel tsl_Track;
}
}

Plik diff jest za duży Load Diff

Wyświetl plik

@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc
DQAAAk1TRnQBSQFMAgEBAwEAAagBCwGoAQsBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
DQAAAk1TRnQBSQFMAgEBAwEAARABDAEQAQwBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABgAMAASADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@ -193,7 +193,7 @@
<data name="btn_Analysis_FastForward.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHbSURBVGhD7Zg/
aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHbSURBVGhD7Zg/
S8NAGIejIAo6OCiiVnqNRRQXxclV3QUXQcTRr+DaUXAQWpOYSXBx1dk/30Ad3ZwUpA7VXFJEqfEuvi1t
c4kpmEuU94HfcO9d7+4Z7npEQRAEQRAEQRAkCGJUiOK6XdAMhBy5fVnTGYVm+lA1WlB1epUvVjNQEpIv
0uGcTl9U3d6AUrrgImyDLkuFaHQdyj5AhI9jsY5ntfIAdKWDJpHGJkf2nvqhu0GrCI99nz20FqE7efwi
@ -211,7 +211,7 @@
<data name="btn_Analysis_Forward.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEfSURBVGhD7dg9
aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEfSURBVGhD7dg9
a8JwFMXhbAVbbZ2EDqJpoIPfy6WDn6DgWHAQhEQy9ONZROsLjXt6lHtBRXxLSO4fzgN3sGg8P+ikR0RE
RERElwTx+q0Tzp7kpbvaUfKB+/OjzVczWtflz+6RkFTO3aCjkIOg1nD1Im+zD6NPhei5E4Sx50L07Adh
5DUhegs/TPp+vHyWj9uBcbeE6P2aC8Koe0L07ARhTJYQvV1QMFrU5LHFw4g8QvTmpQXhy/MMWbbHyWcp
@ -222,7 +222,7 @@
<data name="btn_Analysis_Pause.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACGSURBVGhD7dix
aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACGSURBVGhD7dix
CcMwEEBRjeJ0WcqQPvMkIdt5Btm9E4E6XZHiMMS8B6p0J/xbFwAA4BfTu14vz/U+nNc295FBu4t22lt9
5HjTo96+H7GPpy59ZNDuop32Vh85npBgR0gGIcGOkAxCgh0hGYQEO0IyCAl2hGQQEuwIyXCekLP8fAAA
gD9Sygf13QPKE81S/AAAAABJRU5ErkJggg==
@ -275,7 +275,7 @@
XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOawAADmsBVP4NBgAAAVJJREFUaEPdmL1KA0EU
6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOaQAADmkBKwDOjwAAAVJJREFUaEPdmL1KA0EU
RtMFTDRaCRaSrAsWvpeNhU8QsAykCAR2ZQsfzxDy5+Kmn4zghWX4srk4S2Y+PzjNaeYe2DTpGGP+BVAy
AiUjUDICJSNQMgIlI1AyAiUjUDICJSNQMgIlI1AyAqWGtveUrfppUT6gtzRAqaGt3eflTZLvJ6O8+ra8
oLc0QKnBd06A+YUnZDj7ugYBPCEnAoR4Q5QBQnwhSbEbJFn1Zo/bOsc2EU9ILWDjHKkhfIhngBAuJJ1v
@ -287,7 +287,7 @@
<data name="btn_Analysis_Rewind.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHmSURBVGhD7Zg/
aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHmSURBVGhD7Zg/
S8NAGIerIAo6OCiiVnuJRfwziZOruAtOIuLoV3DtKDgIrUnMJLi4iqvoN1BHNycFqUM1lxZRNL4v9Opx
vUTBkhzyPvCjzeUgvwcu16M5giAIgiAIgiA6TcGvj7KjqK95GU8UdTGvxppXZmG74Ybl8udimQ83h7QU
y4287fJL2+Gl5pAZzDvVAcsNjkEiwiSJMI+voyzOM0qkcBgsWW54JyTiREb2HvtlWYwZIqWoG4tAoXe5
@ -305,43 +305,43 @@
<data name="tsl_Database_LED_Aircraft.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
</value>
</data>
<data name="tsl_Database_LED_Stations.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
</value>
</data>
<data name="tsl_Database_LED_GLOBE.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
</value>
</data>
<data name="tsl_Database_LED_SRTM3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
</value>
</data>
<data name="tsl_Database_LED_SRTM1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
</value>
</data>
<data name="tsl_Database_LED_ASTER3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
</value>
</data>
<data name="tsl_Database_LED_ASTER1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
</value>
</data>
<metadata name="il_Sat.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -352,7 +352,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACM
DAAAAk1TRnQBSQFMAwEBAAEQAQoBEAEKASABAAEgAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
DAAAAk1TRnQBSQFMAwEBAAF4AQoBeAEKASABAAEgAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AYADAAEgAwABAQEAAQgGAAEQGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm

Plik diff jest za duży Load Diff

Wyświetl plik

@ -31,6 +31,7 @@ using ScoutBase;
using Newtonsoft.Json;
using static ScoutBase.Core.ZIP;
using AirScout.PlaneFeeds.Plugin.MEFContract;
using AirScout.CAT;
namespace AirScout
{
@ -52,6 +53,8 @@ namespace AirScout
private LogWriter Log = LogWriter.Instance;
private bool LoadingTab = false;
public OptionsDlg(MapDlg parentDlg)
{
InitializeComponent();
@ -2538,7 +2541,45 @@ namespace AirScout
private void tab_Options_Track_Enter(object sender, EventArgs e)
{
if (AirScout.CAT.Properties.Settings.Default.CAT_Activate)
{
gb_Options_Doppler.Enabled = true;
}
else
{
gb_Options_Doppler.Enabled = false;
}
// check/uncheck radio buttons
// do not use property binding here!
if (Properties.Settings.Default.Track_Serial_None) { rb_Options_Track_Serial_None.Checked = true; }
else if (Properties.Settings.Default.Track_Serial_GS232_AZ) { rb_Options_Track_Serial_GS232_AZ.Checked = true; }
else if (Properties.Settings.Default.Track_Serial_GS232_AZEL) { rb_Options_Track_Serial_GS232_AZEL.Checked = true; }
if (Properties.Settings.Default.Track_DDE_None) { rb_Options_Track_DDE_None.Checked = true; }
else if (Properties.Settings.Default.Track_DDE_HRD) { rb_Options_Track_DDE_HRD.Checked = true; }
if (Properties.Settings.Default.Track_UDP_None) { rb_Options_Track_UDP_None.Checked = true; }
else if (Properties.Settings.Default.Track_UDP_WinTest) { rb_Options_Track_UDP_WinTest.Checked = true; }
else if (Properties.Settings.Default.Track_UDP_AirScout) { rb_Options_Track_UDP_AirScout.Checked = true; }
if (Properties.Settings.Default.Track_File_None) { rb_Options_Track_File_None.Checked = true; }
else if (Properties.Settings.Default.Track_File_Native) { rb_Options_Track_File_Native.Checked = true; }
else if (Properties.Settings.Default.Track_File_WSJT) { rb_Options_Track_File_WSJT.Checked = true; }
if (Properties.Settings.Default.Doppler_Strategy_None) { rb_Options_Doppler_Strategy_None.Checked = true; }
else if (Properties.Settings.Default.Doppler_Strategy_A) { rb_Options_Doppler_Strategy_A.Checked = true; }
else if (Properties.Settings.Default.Doppler_Strategy_B) { rb_Options_Doppler_Strategy_B.Checked = true; }
else if (Properties.Settings.Default.Doppler_Strategy_C) { rb_Options_Doppler_Strategy_C.Checked = true; }
else if (Properties.Settings.Default.Doppler_Strategy_D) { rb_Options_Doppler_Strategy_D.Checked = true; }
ud_Options_CAT_Update.Value = AirScout.CAT.Properties.Settings.Default.CAT_Update;
tb_Options_Track_DialFreq.SilentValue = Properties.Settings.Default.Doppler_DialFreq;
cb_Options_Track_Activate_CheckedChanged(this, null);
}
private void tb_Options_CAT_DialFreq_TextChanged(object sender, EventArgs e)
{
}
private void tc_Track_Validating(object sender, CancelEventArgs e)
@ -2560,8 +2601,403 @@ namespace AirScout
}
}
private void cb_Options_Track_Activate_CheckedChanged(object sender, EventArgs e)
{
if (cb_Options_Track_Activate.Checked)
{
gb_Options_Track_Serial.Enabled = true;
gb_Options_Track_UDP.Enabled = true;
gb_Options_Track_DDE.Enabled = true;
gb_Options_Track_File.Enabled = true;
if (AirScout.CAT.Properties.Settings.Default.CAT_Activate)
{
gb_Options_Doppler.Enabled = true;
}
}
else
{
gb_Options_Track_Serial.Enabled = false;
gb_Options_Track_UDP.Enabled = false;
gb_Options_Track_DDE.Enabled = false;
gb_Options_Track_File.Enabled = false;
gb_Options_Doppler.Enabled = false;
}
}
private void gb_Options_Track_Serial_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.Track_Serial_None = rb_Options_Track_Serial_None.Checked;
Properties.Settings.Default.Track_Serial_GS232_AZ = rb_Options_Track_Serial_GS232_AZ.Checked;
Properties.Settings.Default.Track_Serial_GS232_AZEL = rb_Options_Track_Serial_GS232_AZEL.Checked;
}
private void gb_Options_Track_DDE_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.Track_DDE_None = rb_Options_Track_DDE_None.Checked;
Properties.Settings.Default.Track_DDE_HRD = rb_Options_Track_DDE_HRD.Checked;
}
private void gb_Options_Track_UDP_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.Track_UDP_None = rb_Options_Track_UDP_None.Checked;
Properties.Settings.Default.Track_UDP_WinTest = rb_Options_Track_UDP_WinTest.Checked;
Properties.Settings.Default.Track_UDP_AirScout = rb_Options_Track_UDP_AirScout.Checked;
}
private void gb_Options_Track_File_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.Track_File_None = rb_Options_Track_File_None.Checked;
Properties.Settings.Default.Track_File_Native = rb_Options_Track_File_Native.Checked;
Properties.Settings.Default.Track_File_WSJT = rb_Options_Track_File_WSJT.Checked;
}
private void gb_Options_Doppler_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.Doppler_Strategy_None = rb_Options_Doppler_Strategy_None.Checked;
Properties.Settings.Default.Doppler_Strategy_A = rb_Options_Doppler_Strategy_A.Checked;
Properties.Settings.Default.Doppler_Strategy_B = rb_Options_Doppler_Strategy_B.Checked;
Properties.Settings.Default.Doppler_Strategy_C = rb_Options_Doppler_Strategy_C.Checked;
Properties.Settings.Default.Doppler_Strategy_D = rb_Options_Doppler_Strategy_D.Checked;
}
#endregion
#region tab_Options_CAT
private void tab_Options_CAT_Enter(object sender, EventArgs e)
{
LoadingTab = true;
cb_Options_CAT_Activate.Checked = AirScout.CAT.Properties.Settings.Default.CAT_Activate;
// get a list of supported rigs and add them to combo box
List<SupportedRig> rigs = CATWorker.SupportedRigs();
cb_Options_CAT_Rig.Items.Clear();
foreach (SupportedRig rig in rigs)
{
cb_Options_CAT_Rig.Items.Add(rig);
}
// try to select settings
if (AirScout.CAT.Properties.Settings.Default.CAT_RigType != null)
{
try
{
int index = cb_Options_CAT_Rig.FindString(AirScout.CAT.Properties.Settings.Default.CAT_RigType);
if (index >= 0)
{
cb_Options_CAT_Rig.SelectedIndex = index;
}
}
catch
{
// do nothing if something goes wrong
}
}
try
{
cb_Options_CAT_PortName.DataSource = System.IO.Ports.SerialPort.GetPortNames();
cb_Options_CAT_PortName.SelectedItem = AirScout.CAT.Properties.Settings.Default.CAT_PortName;
}
catch (Exception ex)
{
// do nothing if fails
}
try
{
cb_Options_CAT_Baudrate.DataSource = new string[] { "110", "300", "600", "1200", "2400", "4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200", "128000", "256000" };
cb_Options_CAT_Baudrate.SelectedItem = AirScout.CAT.Properties.Settings.Default.CAT_Baudrate.ToString();
}
catch (Exception ex)
{
// do nothing if fails
}
try
{
cb_Options_CAT_DataBits.DataSource = new string[] { "5", "6", "7", "8" };
cb_Options_CAT_DataBits.SelectedItem = AirScout.CAT.Properties.Settings.Default.CAT_DataBits.ToString();
}
catch (Exception ex)
{
// do nothing if fails
}
try
{
EnumHelpers.BindToEnum<PARITY>(cb_Options_CAT_Parity);
cb_Options_CAT_Parity.SelectedValue = (int)AirScout.CAT.Properties.Settings.Default.CAT_Parity;
}
catch (Exception ex)
{
// do nothing if fails
}
try
{
EnumHelpers.BindToEnum<STOPBITS>(cb_Options_CAT_StopBits);
cb_Options_CAT_StopBits.SelectedValue = (int)AirScout.CAT.Properties.Settings.Default.CAT_StopBits;
}
catch (Exception ex)
{
// do nothing if fails
}
try
{
EnumHelpers.BindToEnum<FLOWCONTROL>(cb_Options_CAT_RTS);
cb_Options_CAT_RTS.SelectedValue = (int)AirScout.CAT.Properties.Settings.Default.CAT_RTS;
}
catch (Exception ex)
{
// do nothing if fails
}
try
{
EnumHelpers.BindToEnum<FLOWCONTROL>(cb_Options_CAT_DTR);
cb_Options_CAT_DTR.SelectedValue = (int)AirScout.CAT.Properties.Settings.Default.CAT_DTR;
}
catch (Exception ex)
{
// do nothing if fails
}
try
{
ud_Options_CAT_Poll.Value = AirScout.CAT.Properties.Settings.Default.CAT_Poll;
}
catch (Exception ex)
{
// do nothing if fails
}
try
{
ud_Options_CAT_Timeout.Value = AirScout.CAT.Properties.Settings.Default.CAT_Timeout;
}
catch (Exception ex)
{
// do nothing if fails
}
cb_Options_CAT_Activate_CheckedChanged(this, null);
LoadingTab = false;
}
private void cb_Options_CAT_Activate_CheckedChanged(object sender, EventArgs e)
{
AirScout.CAT.Properties.Settings.Default.CAT_Activate = cb_Options_CAT_Activate.Checked;
// check if port settings must be enabled (depending on rig type)
bool portenabled = true;
try
{
SupportedRig rig = (SupportedRig)cb_Options_CAT_Rig.SelectedItem;
if (rig.CATEngine == CATENGINE.OMNIRIGX)
portenabled = false;
}
catch
{
}
if (cb_Options_CAT_Activate.Checked)
{
ud_Options_CAT_Update.Enabled = true;
gb_Options_CAT_RigType.Enabled = true;
if (portenabled)
gb_Options_CAT_PortSettings.Enabled = true;
else
gb_Options_CAT_PortSettings.Enabled = false;
gb_Options_CAT_OperatingInstructions.Enabled = true;
if (Properties.Settings.Default.Track_Activate)
{
gb_Options_Doppler.Enabled = true;
}
}
else
{
ud_Options_CAT_Update.Enabled = false;
gb_Options_CAT_RigType.Enabled = false;
gb_Options_CAT_PortSettings.Enabled = false;
gb_Options_CAT_OperatingInstructions.Enabled = false;
gb_Options_Doppler.Enabled = false;
}
}
private void cb_Options_CAT_Rig_SelectedIndexChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
SupportedRig rig = (SupportedRig)cb_Options_CAT_Rig.SelectedItem;
if (rig != null)
{
AirScout.CAT.Properties.Settings.Default.CAT_RigType = rig.Type;
// disable port settings when using OmniRig ActiveX
if (rig.CATEngine == CATENGINE.OMNIRIGX)
{
gb_Options_CAT_PortSettings.Enabled = false;
}
else
{
gb_Options_CAT_PortSettings.Enabled = true;
}
}
}
catch
{
// do nothing if fails
}
}
private void ud_Options_CAT_Update_ValueChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
AirScout.CAT.Properties.Settings.Default.CAT_Update = (int)ud_Options_CAT_Update.Value;
}
private void cb_Options_CAT_PortName_SelectedIndexChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_PortName = (string)cb_Options_CAT_PortName.SelectedItem;
}
catch
{
// do nothing if fails
}
}
private void cb_Options_CAT_Baudrate_SelectedIndexChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_Baudrate = System.Convert.ToInt32(cb_Options_CAT_Baudrate.SelectedItem);
}
catch
{
// do nothing if fails
}
}
private void cb_Options_CAT_DataBits_SelectedIndexChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_DataBits = System.Convert.ToInt32(cb_Options_CAT_DataBits.SelectedItem);
}
catch
{
// do nothing if fails
}
}
private void cb_Parity_SelectedIndexChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_Parity = (PARITY)cb_Options_CAT_Parity.SelectedValue;
}
catch
{
// do nothing if fails
}
}
private void cb_Options_CAT_Stopbits_SelectedIndexChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_StopBits = (STOPBITS)cb_Options_CAT_StopBits.SelectedValue;
}
catch
{
// do nothing if fails
}
}
private void cb_Options_CAT_RTS_SelectedIndexChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_RTS = (FLOWCONTROL)cb_Options_CAT_RTS.SelectedValue;
}
catch
{
// do nothing if fails
}
}
private void cb_Options_CAT_DTR_SelectedIndexChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_DTR = (FLOWCONTROL)cb_Options_CAT_DTR.SelectedValue;
}
catch
{
// do nothing if fails
}
}
private void ud_Options_CAT_Poll_ValueChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_Poll = (int)ud_Options_CAT_Poll.Value; }
catch
{
// do nothing if fails
}
}
private void ud_Options_CAT_Timeout_ValueChanged(object sender, EventArgs e)
{
if (LoadingTab)
return;
try
{
AirScout.CAT.Properties.Settings.Default.CAT_Timeout = (int)ud_Options_CAT_Timeout.Value;
}
catch
{
// do nothing if fails
}
}
#endregion
#region tab_Options_Info
private void tab_Options_Info_Enter(object sender, EventArgs e)

Wyświetl plik

@ -120,65 +120,6 @@
<metadata name="tt_Options.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="label61.Text" xml:space="preserve">
<value>You can select different map provider from the list below. Depending on your selection some maps may not be available for your choosen area. Please note that the selection of maps is taken from Great Maps regardless of their legal status. Some of them might be copyrighted or otherwise restricted in use.
You were asked to agree with the terms of use first.
Open Street Map is recommended as a default.</value>
</data>
<data name="label52.Text" xml:space="preserve">
<value>Information from callsign database and other sources are used to prefill fields. You can overwrite and complete entries here. Your local database is updated. If you want to share the information with the AirScout community please use the "Send Update!" buttons.</value>
</data>
<data name="label86.Text" xml:space="preserve">
<value>CAUTION: Running a web service is a potential security hole! You should activate this function only inside a private network.
Depending on your user profile you will prompted several times by the Operating System on first run. Please accept all security queries with "Yes" or "Accept".
Otherwise the web service will not run properly.</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>AirScout can work as a server in a network.
UDP Server:
You can ask for a path calculation between two stations and AirScout will return the planes near path and their portential for a reflection.
HTTP Server:
You can ask for latest plane positions via simple http-request (e.g. from a web browser. The result is delivered as a JSON file which can used to run own services and calculations.
See documentation for further details.</value>
</data>
<data name="label65.Text" xml:space="preserve">
<value>AirScout can get FFT data from Spectrum Lab software via Network. You must have Spectrum Lab software installed with default settings. Do not forget to activate http - server functionaltiy in Spectrum Lab.</value>
</data>
<data name="label37.Text" xml:space="preserve">
<value>Watchlist allows you to pick a number of stations out of your database.
This is very helpful especially when working in Multi-Path Mode.
All stations on watchlist can be shown on map with small markers and callsign labels for quick showing/hiding path to them.
If a station is selected from watchlist by checking the assigned checkbox, path is shown on map and entry is coloured according to aircraft scatter potential.
Watchlist can be synchronized with ON4KST chat user list instead of a local managed list to show all stations currently logged in in chat (Needs wtKST software and network functions enabbled).</value>
</data>
<metadata name="bw_SRTM3_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>130, 17</value>
</metadata>
<metadata name="ss_Options.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>353, 17</value>
</metadata>
<metadata name="bw_SRTM1_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>483, 17</value>
</metadata>
<metadata name="bw_GLOBE_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>706, 17</value>
</metadata>
<metadata name="bw_StationDataUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>890, 17</value>
</metadata>
<metadata name="bw_ASTER3_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1071, 17</value>
</metadata>
<metadata name="bw_ASTER1_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1259, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pb_Donate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@ -298,4 +239,77 @@ Watchlist can be synchronized with ON4KST chat user list instead of a local mana
bOQwu7KRw+zKRg6zKxs5zK5s5DC7spHD7MpGDrMrGznMrkwUwn8BkAmqaXV391cAAAAASUVORK5CYII=
</value>
</data>
<data name="label61.Text" xml:space="preserve">
<value>You can select different map provider from the list below. Depending on your selection some maps may not be available for your choosen area. Please note that the selection of maps is taken from Great Maps regardless of their legal status. Some of them might be copyrighted or otherwise restricted in use.
You were asked to agree with the terms of use first.
Open Street Map is recommended as a default.</value>
</data>
<data name="label52.Text" xml:space="preserve">
<value>Information from callsign database and other sources are used to prefill fields. You can overwrite and complete entries here. Your local database is updated. If you want to share the information with the AirScout community please use the "Send Update!" buttons.</value>
</data>
<data name="label86.Text" xml:space="preserve">
<value>CAUTION: Running a web service is a potential security hole! You should activate this function only inside a private network.
Depending on your user profile you will prompted several times by the Operating System on first run. Please accept all security queries with "Yes" or "Accept".
Otherwise the web service will not run properly.</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>AirScout can work as a server in a network.
UDP Server:
You can ask for a path calculation between two stations and AirScout will return the planes near path and their portential for a reflection.
HTTP Server:
You can ask for latest plane positions via simple http-request (e.g. from a web browser. The result is delivered as a JSON file which can used to run own services and calculations.
See documentation for further details.</value>
</data>
<data name="label65.Text" xml:space="preserve">
<value>AirScout can get FFT data from Spectrum Lab software via Network. You must have Spectrum Lab software installed with default settings. Do not forget to activate http - server functionaltiy in Spectrum Lab.</value>
</data>
<data name="richTextBox4.Text" xml:space="preserve">
<value>Rig must support a minimum of CAT control capabilities:
- set frequency of VFO A and VFO B
- set/reset Split Mode
A restart of AirScout might be required after settings change, especially when changing between different CAT engines.</value>
</data>
<data name="richTextBox1.Text" xml:space="preserve">
<value>CAT control is introduced for Doppler shift compensation (see "Track" tab for details).
AirScout is calculating tracking and Doppler shifts once per second by default. Each communication with rig must be completed within this period. The recommended settings for OmniRig are:
- Polling interval: 100ms ...500ms
- Timeout: 500ms .. 1sec (essential for OmniRig)</value>
</data>
<data name="label37.Text" xml:space="preserve">
<value>Watchlist allows you to pick a number of stations out of your database.
This is very helpful especially when working in Multi-Path Mode.
All stations on watchlist can be shown on map with small markers and callsign labels for quick showing/hiding path to them.
If a station is selected from watchlist by checking the assigned checkbox, path is shown on map and entry is coloured according to aircraft scatter potential.
Watchlist can be synchronized with ON4KST chat user list instead of a local managed list to show all stations currently logged in in chat (Needs wtKST software and network functions enabbled).</value>
</data>
<metadata name="bw_SRTM3_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>130, 17</value>
</metadata>
<metadata name="ss_Options.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>353, 17</value>
</metadata>
<metadata name="bw_SRTM1_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>483, 17</value>
</metadata>
<metadata name="bw_GLOBE_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>706, 17</value>
</metadata>
<metadata name="bw_StationDataUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>890, 17</value>
</metadata>
<metadata name="bw_ASTER3_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1071, 17</value>
</metadata>
<metadata name="bw_ASTER1_MapUpdater.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1259, 17</value>
</metadata>
</root>

Wyświetl plik

@ -263,7 +263,7 @@ namespace AirScout
Log.WriteMessage(Name + " error processing call [" + ld.Call + "]: " + ex.ToString());
}
// keep cpu load low --> TODO: find better solution here
Thread.Sleep(10);
Thread.Sleep(100);
}
// save station database timestamp
SaveDatabaseTimeStamp();

Wyświetl plik

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.4.0.0")]
[assembly: AssemblyFileVersion("1.4.0.0")]
[assembly: AssemblyVersion("1.4.1.0")]
[assembly: AssemblyFileVersion("1.4.1.0")]

Wyświetl plik

@ -12,7 +12,7 @@ namespace AirScout.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@ -2455,5 +2455,233 @@ Digital data base on the World Wide Web (URL: http://www.ngdc.noaa.gov/mgg/topo/
this["Map_Opacity"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public long Doppler_DialFreq {
get {
return ((long)(this["Doppler_DialFreq"]));
}
set {
this["Doppler_DialFreq"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public double Doppler_MyDoppler {
get {
return ((double)(this["Doppler_MyDoppler"]));
}
set {
this["Doppler_MyDoppler"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public double Doppler_DXDoppler {
get {
return ((double)(this["Doppler_DXDoppler"]));
}
set {
this["Doppler_DXDoppler"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool Doppler_Strategy_A {
get {
return ((bool)(this["Doppler_Strategy_A"]));
}
set {
this["Doppler_Strategy_A"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool Doppler_Strategy_B {
get {
return ((bool)(this["Doppler_Strategy_B"]));
}
set {
this["Doppler_Strategy_B"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool Doppler_Strategy_C {
get {
return ((bool)(this["Doppler_Strategy_C"]));
}
set {
this["Doppler_Strategy_C"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool Doppler_Strategy_D {
get {
return ((bool)(this["Doppler_Strategy_D"]));
}
set {
this["Doppler_Strategy_D"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public long Doppler_RXFreq {
get {
return ((long)(this["Doppler_RXFreq"]));
}
set {
this["Doppler_RXFreq"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public long Doppler_TXFreq {
get {
return ((long)(this["Doppler_TXFreq"]));
}
set {
this["Doppler_TXFreq"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string Track_CurrentPlane {
get {
return ((string)(this["Track_CurrentPlane"]));
}
set {
this["Track_CurrentPlane"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int Track_Offset {
get {
return ((int)(this["Track_Offset"]));
}
set {
this["Track_Offset"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool Doppler_Strategy_None {
get {
return ((bool)(this["Doppler_Strategy_None"]));
}
set {
this["Doppler_Strategy_None"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("NONE")]
public global::AirScout.CAT.RIGSPLIT Doppler_DialSplit {
get {
return ((global::AirScout.CAT.RIGSPLIT)(this["Doppler_DialSplit"]));
}
set {
this["Doppler_DialSplit"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("NONE")]
public global::AirScout.CAT.RIGMODE Doppler_DialMode {
get {
return ((global::AirScout.CAT.RIGMODE)(this["Doppler_DialMode"]));
}
set {
this["Doppler_DialMode"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("NONE")]
public global::AirScout.CAT.RIGRIT Doppler_DialRit {
get {
return ((global::AirScout.CAT.RIGRIT)(this["Doppler_DialRit"]));
}
set {
this["Doppler_DialRit"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1000")]
public int Track_Update {
get {
return ((int)(this["Track_Update"]));
}
set {
this["Track_Update"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("\\ScoutBase\\RigData")]
public string Rig_Directory {
get {
return ((string)(this["Rig_Directory"]));
}
set {
this["Rig_Directory"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool Map_ShowLocators {
get {
return ((bool)(this["Map_ShowLocators"]));
}
set {
this["Map_ShowLocators"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool Map_ShowDistances {
get {
return ((bool)(this["Map_ShowDistances"]));
}
set {
this["Map_ShowDistances"] = value;
}
}
}
}

Wyświetl plik

@ -664,5 +664,62 @@ NASA/METI/AIST/Japan Spacesystems, and U.S./Japan ASTER Science Team (2019). AST
<Setting Name="Map_Opacity" Type="System.Decimal" Scope="User">
<Value Profile="(Default)">1</Value>
</Setting>
<Setting Name="Doppler_DialFreq" Type="System.Int64" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="Doppler_MyDoppler" Type="System.Double" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="Doppler_DXDoppler" Type="System.Double" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="Doppler_Strategy_A" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="Doppler_Strategy_B" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="Doppler_Strategy_C" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="Doppler_Strategy_D" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="Doppler_RXFreq" Type="System.Int64" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="Doppler_TXFreq" Type="System.Int64" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="Track_CurrentPlane" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="Track_Offset" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="Doppler_Strategy_None" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="Doppler_DialSplit" Type="AirScout.CAT.RIGSPLIT" Scope="User">
<Value Profile="(Default)">NONE</Value>
</Setting>
<Setting Name="Doppler_DialMode" Type="AirScout.CAT.RIGMODE" Scope="User">
<Value Profile="(Default)">NONE</Value>
</Setting>
<Setting Name="Doppler_DialRit" Type="AirScout.CAT.RIGRIT" Scope="User">
<Value Profile="(Default)">NONE</Value>
</Setting>
<Setting Name="Track_Update" Type="System.Int32" Scope="User">
<Value Profile="(Default)">1000</Value>
</Setting>
<Setting Name="Rig_Directory" Type="System.String" Scope="User">
<Value Profile="(Default)">\ScoutBase\RigData</Value>
</Setting>
<Setting Name="Map_ShowLocators" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="Map_ShowDistances" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>

Wyświetl plik

@ -0,0 +1,5 @@
***************** AirScout Requirements **************************
- Snooze button for alarm on main window, clickable in PLAY mode ()

Wyświetl plik

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AirScout
{
// keeps tracking values
public class TrackValues
{
public DateTime Timestamp = DateTime.UtcNow;
public string Hex = "";
public double MyAzimuth = double.NaN;
public double MyElevation = double.NaN;
public double MyDistance = double.NaN;
public double MySlantRange = double.NaN;
public double MyDoppler = 0;
public double DXAzimuth = double.NaN;
public double DXElevation = double.NaN;
public double DXDistance = double.NaN;
public double DXSlantRange = double.NaN;
public double DXDoppler = 0;
public long RXFrequency = 0;
public long TXFrequency = 0;
}
}

Wyświetl plik

@ -1,10 +1,51 @@
2020-xx-xx: V1.4.0.0
2021-xx-xx: V1.4.1.0
====================
- Bugfix: RIT on rig is reset when tracking started --> fixed
- Bugfix: Exceptions while accessing elevation database from background processes and more than one elevation model was ticked --> database status shows "Error" --> fixed
- Bugfix: Exceptions while accessing elevation database and local obstructions have NULL values --> fixed
- Bugfix: Database update was not started when last status was "Error" and no other changes occured
- Bugfix: Exceptions were thrown sometimes on concurrent database access from different threads, missing database locks --> fixed
- Feature: configurable update rate for tracking
- Feature: configurable time offset for tracking
- Feature: optional show a locator grid on map
- Feature: optional show distance circles around own location
2021-04-13: V1.4.0.2
====================
- Feature: complete rework of tracking module with Status visualization
- Feature: CAT now handles OmniRi V1.19 or V2.x dynamically
- Feature: refined extrapolation of plane positions
- Bugfix: Planes were shown as hot when crossing path "behind" the DX station --> fixed
2021-04-5: V1.4.0.1
====================
- Feature: introducing CAT Interface with OmniRig V2.1
- Feature: introducing Doppler shift compensation with CAT
2021-xx-xx: V1.4.0.0 (not published)
====================
- Feature: introducing ASTER Digital Elevation Model covering earth surface almost complete, but data are very raw and have to filtered, only useful when coverage > 60° needed
- Feature: new OpenTopoMap provider, not really suitable for surpervising aircraft travel but has very nice contour levels (based on SRTM)
- Feature: new OpenTopoMap provider, not really suitable for supervising aircraft travel but has very nice contour levels (based on SRTM)
- Feature: adjust main map opacity via "Options/Map" which is helpful in case map colors are very prominent
2021-12-23: V1.3.3.6
====================
- Feature: Elevation grid overlay on "Optionms/Stations/Map" to better understand elevation resolution issues and local situation (for zoom levels >= 17)
- Bugfix: AirScout crashes when opening Crossing History Dialog window --> fixed (tnx PU34HAG)
- Bugfix: Near field suppression did not work correctly, showing strange local obstructions under some circumstances --> fixed
- Bugfix: No more planes visible (Exception messages shown in status bar and log file) with some language settings (at least Turkish) --> fixed (tnx TA2NC)
2020-04-25: V1.3.3.5
====================
- Bugfix: Chunked transport of web content failed while fetching plane feeds (OpenSky, Virtual Radar Server) --> fixed
- Bugfix: Drawing map throws an exception under some circumstances --> fixed, added some error handling (tnx SM7LCB)
2020-04-25: V1.3.3.4
====================

Wyświetl plik

@ -228,7 +228,7 @@
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(180, 25);
this.label2.TabIndex = 15;
this.label2.Text = "Availbale Callsigns";
this.label2.Text = "Available Callsigns";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label3

Wyświetl plik

@ -663,6 +663,63 @@ NASA/METI/AIST/Japan Spacesystems, and U.S./Japan ASTER Science Team (2019). AST
<setting name="Map_Opacity" serializeAs="String">
<value>1</value>
</setting>
<setting name="Doppler_DialFreq" serializeAs="String">
<value>0</value>
</setting>
<setting name="Doppler_MyDoppler" serializeAs="String">
<value>0</value>
</setting>
<setting name="Doppler_DXDoppler" serializeAs="String">
<value>0</value>
</setting>
<setting name="Doppler_Strategy_A" serializeAs="String">
<value>False</value>
</setting>
<setting name="Doppler_Strategy_B" serializeAs="String">
<value>False</value>
</setting>
<setting name="Doppler_Strategy_C" serializeAs="String">
<value>False</value>
</setting>
<setting name="Doppler_Strategy_D" serializeAs="String">
<value>False</value>
</setting>
<setting name="Doppler_RXFreq" serializeAs="String">
<value>0</value>
</setting>
<setting name="Doppler_TXFreq" serializeAs="String">
<value>0</value>
</setting>
<setting name="Track_CurrentPlane" serializeAs="String">
<value />
</setting>
<setting name="Track_Offset" serializeAs="String">
<value>0</value>
</setting>
<setting name="Doppler_Strategy_None" serializeAs="String">
<value>True</value>
</setting>
<setting name="Doppler_DialSplit" serializeAs="String">
<value>NONE</value>
</setting>
<setting name="Doppler_DialMode" serializeAs="String">
<value>NONE</value>
</setting>
<setting name="Doppler_DialRit" serializeAs="String">
<value>NONE</value>
</setting>
<setting name="Track_Update" serializeAs="String">
<value>1000</value>
</setting>
<setting name="Rig_Directory" serializeAs="String">
<value>\ScoutBase\RigData</value>
</setting>
<setting name="Map_ShowLocators" serializeAs="String">
<value>False</value>
</setting>
<setting name="Map_ShowDistances" serializeAs="String">
<value>False</value>
</setting>
</AirScout.Properties.Settings>
</userSettings>
<startup>

Wyświetl plik

@ -2,5 +2,6 @@
<packages>
<package id="DeviceId" version="4.5.0" targetFramework="net40" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

Plik diff jest za duży Load Diff

Wyświetl plik

@ -1,376 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AirScoutDatabaseManager.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("-15")]
public double MinLon {
get {
return ((double)(this["MinLon"]));
}
set {
this["MinLon"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("30")]
public double MaxLon {
get {
return ((double)(this["MaxLon"]));
}
set {
this["MaxLon"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("35")]
public double MinLat {
get {
return ((double)(this["MinLat"]));
}
set {
this["MinLat"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("60")]
public double MaxLat {
get {
return ((double)(this["MaxLat"]));
}
set {
this["MaxLat"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("OpenStreetMap")]
public string Map_Provider {
get {
return ((string)(this["Map_Provider"]));
}
set {
this["Map_Provider"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("http://www.qrz.com/db/")]
public string QRZ_URL_Database {
get {
return ((string)(this["QRZ_URL_Database"]));
}
set {
this["QRZ_URL_Database"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("\\Log")]
public string Log_Directory {
get {
return ((string)(this["Log_Directory"]));
}
set {
this["Log_Directory"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("\\Database")]
public string Database_Directory {
get {
return ((string)(this["Database_Directory"]));
}
set {
this["Database_Directory"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("\\Tmp")]
public string Tmp_Directory {
get {
return ((string)(this["Tmp_Directory"]));
}
set {
this["Tmp_Directory"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("\\Export")]
public string Export_Directory {
get {
return ((string)(this["Export_Directory"]));
}
set {
this["Export_Directory"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("http://www.airscout.eu/downloads/ScoutBase/1/StationData/")]
public string Station_URL {
get {
return ((string)(this["Station_URL"]));
}
set {
this["Station_URL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("https://xmldata.qrz.com/xml/current/?username=dl2alf;password=271192;agent=AirSco" +
"ut")]
public string QRZ_URL_Login {
get {
return ((string)(this["QRZ_URL_Login"]));
}
set {
this["QRZ_URL_Login"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("http://xmldata.qrz.com/xml/current/")]
public string QRZ_URL_XMLData {
get {
return ((string)(this["QRZ_URL_XMLData"]));
}
set {
this["QRZ_URL_XMLData"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("www.airscout.eu")]
public string SFTP_URL {
get {
return ((string)(this["SFTP_URL"]));
}
set {
this["SFTP_URL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("u45565180-airscout")]
public string SFTP_User {
get {
return ((string)(this["SFTP_User"]));
}
set {
this["SFTP_User"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("airscout")]
public string SFTP_Password {
get {
return ((string)(this["SFTP_Password"]));
}
set {
this["SFTP_Password"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("https://www.flightradar24.com/_json/airlines.php")]
public string Airlines_Update_URL {
get {
return ((string)(this["Airlines_Update_URL"]));
}
set {
this["Airlines_Update_URL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("https://www.flightradar24.com/_json/airports2.php")]
public string Airports_Update_URL {
get {
return ((string)(this["Airports_Update_URL"]));
}
set {
this["Airports_Update_URL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("https://data.flightradar24.com/zones/fcgi/feed.js?faa=1&mlat=1&flarm=0&adsb=1&gnd" +
"=0&air=1&vehicles=0&estimated=0&maxage=0&gliders=0&stats=1")]
public string Aircrafts_BaseURL {
get {
return ((string)(this["Aircrafts_BaseURL"]));
}
set {
this["Aircrafts_BaseURL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Z:\\CSharp\\AirScout\\Database\\ScoutBase\\V1")]
public string StationDatabase_Export_LocalDir {
get {
return ((string)(this["StationDatabase_Export_LocalDir"]));
}
set {
this["StationDatabase_Export_LocalDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("/wsb4556518002/downloads/ScoutBase/1/StationData")]
public string StationDatabase_Export_RemoteDir {
get {
return ((string)(this["StationDatabase_Export_RemoteDir"]));
}
set {
this["StationDatabase_Export_RemoteDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("u45565180")]
public string StationDatabase_Export_User {
get {
return ((string)(this["StationDatabase_Export_User"]));
}
set {
this["StationDatabase_Export_User"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string StationDatabase_Export_Password {
get {
return ((string)(this["StationDatabase_Export_Password"]));
}
set {
this["StationDatabase_Export_Password"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("home208518495.1and1-/data.host")]
public string StationDatabase_Export_RemoteHost {
get {
return ((string)(this["StationDatabase_Export_RemoteHost"]));
}
set {
this["StationDatabase_Export_RemoteHost"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Z:\\CSharp\\AirScout\\Database\\AirScout\\V1")]
public string AircraftDatabase_Export_LocalDir {
get {
return ((string)(this["AircraftDatabase_Export_LocalDir"]));
}
set {
this["AircraftDatabase_Export_LocalDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string AircraftDatabase_Export_Password {
get {
return ((string)(this["AircraftDatabase_Export_Password"]));
}
set {
this["AircraftDatabase_Export_Password"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("/wsb4556518002/downloads/AirScout/1/AircraftData")]
public string AircraftDatabase_Export_RemoteDir {
get {
return ((string)(this["AircraftDatabase_Export_RemoteDir"]));
}
set {
this["AircraftDatabase_Export_RemoteDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("home208518495.1and1-/data.host")]
public string AircraftDatabase_Export_RemoteHost {
get {
return ((string)(this["AircraftDatabase_Export_RemoteHost"]));
}
set {
this["AircraftDatabase_Export_RemoteHost"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("u45565180")]
public string AircraftDatabase_Export_User {
get {
return ((string)(this["AircraftDatabase_Export_User"]));
}
set {
this["AircraftDatabase_Export_User"] = value;
}
}
}
}

Wyświetl plik

@ -1,93 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="AirScoutDatabaseManager.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="MinLon" Type="System.Double" Scope="User">
<Value Profile="(Default)">-15</Value>
</Setting>
<Setting Name="MaxLon" Type="System.Double" Scope="User">
<Value Profile="(Default)">30</Value>
</Setting>
<Setting Name="MinLat" Type="System.Double" Scope="User">
<Value Profile="(Default)">35</Value>
</Setting>
<Setting Name="MaxLat" Type="System.Double" Scope="User">
<Value Profile="(Default)">60</Value>
</Setting>
<Setting Name="Map_Provider" Type="System.String" Scope="User">
<Value Profile="(Default)">OpenStreetMap</Value>
</Setting>
<Setting Name="QRZ_URL_Database" Type="System.String" Scope="User">
<Value Profile="(Default)">http://www.qrz.com/db/</Value>
</Setting>
<Setting Name="Log_Directory" Type="System.String" Scope="User">
<Value Profile="(Default)">\Log</Value>
</Setting>
<Setting Name="Database_Directory" Type="System.String" Scope="User">
<Value Profile="(Default)">\Database</Value>
</Setting>
<Setting Name="Tmp_Directory" Type="System.String" Scope="User">
<Value Profile="(Default)">\Tmp</Value>
</Setting>
<Setting Name="Export_Directory" Type="System.String" Scope="User">
<Value Profile="(Default)">\Export</Value>
</Setting>
<Setting Name="Station_URL" Type="System.String" Scope="User">
<Value Profile="(Default)">http://www.airscout.eu/downloads/ScoutBase/1/StationData/</Value>
</Setting>
<Setting Name="QRZ_URL_Login" Type="System.String" Scope="User">
<Value Profile="(Default)">https://xmldata.qrz.com/xml/current/?username=dl2alf;password=271192;agent=AirScout</Value>
</Setting>
<Setting Name="QRZ_URL_XMLData" Type="System.String" Scope="User">
<Value Profile="(Default)">http://xmldata.qrz.com/xml/current/</Value>
</Setting>
<Setting Name="SFTP_URL" Type="System.String" Scope="User">
<Value Profile="(Default)">www.airscout.eu</Value>
</Setting>
<Setting Name="SFTP_User" Type="System.String" Scope="User">
<Value Profile="(Default)">u45565180-airscout</Value>
</Setting>
<Setting Name="SFTP_Password" Type="System.String" Scope="User">
<Value Profile="(Default)">airscout</Value>
</Setting>
<Setting Name="Airlines_Update_URL" Type="System.String" Scope="User">
<Value Profile="(Default)">https://www.flightradar24.com/_json/airlines.php</Value>
</Setting>
<Setting Name="Airports_Update_URL" Type="System.String" Scope="User">
<Value Profile="(Default)">https://www.flightradar24.com/_json/airports2.php</Value>
</Setting>
<Setting Name="Aircrafts_BaseURL" Type="System.String" Scope="User">
<Value Profile="(Default)">https://data.flightradar24.com/zones/fcgi/feed.js?faa=1&amp;mlat=1&amp;flarm=0&amp;adsb=1&amp;gnd=0&amp;air=1&amp;vehicles=0&amp;estimated=0&amp;maxage=0&amp;gliders=0&amp;stats=1</Value>
</Setting>
<Setting Name="StationDatabase_Export_LocalDir" Type="System.String" Scope="User">
<Value Profile="(Default)">Z:\CSharp\AirScout\Database\ScoutBase\V1</Value>
</Setting>
<Setting Name="StationDatabase_Export_RemoteDir" Type="System.String" Scope="User">
<Value Profile="(Default)">/wsb4556518002/downloads/ScoutBase/1/StationData</Value>
</Setting>
<Setting Name="StationDatabase_Export_User" Type="System.String" Scope="User">
<Value Profile="(Default)">u45565180</Value>
</Setting>
<Setting Name="StationDatabase_Export_Password" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="StationDatabase_Export_RemoteHost" Type="System.String" Scope="User">
<Value Profile="(Default)">home208518495.1and1-/data.host</Value>
</Setting>
<Setting Name="AircraftDatabase_Export_LocalDir" Type="System.String" Scope="User">
<Value Profile="(Default)">Z:\CSharp\AirScout\Database\AirScout\V1</Value>
</Setting>
<Setting Name="AircraftDatabase_Export_Password" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="AircraftDatabase_Export_RemoteDir" Type="System.String" Scope="User">
<Value Profile="(Default)">/wsb4556518002/downloads/AirScout/1/AircraftData</Value>
</Setting>
<Setting Name="AircraftDatabase_Export_RemoteHost" Type="System.String" Scope="User">
<Value Profile="(Default)">home208518495.1and1-/data.host</Value>
</Setting>
<Setting Name="AircraftDatabase_Export_User" Type="System.String" Scope="User">
<Value Profile="(Default)">u45565180</Value>
</Setting>
</Settings>
</SettingsFile>

Wyświetl plik

@ -1,132 +0,0 @@

using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Threading;
using System.Diagnostics;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Globalization;
using System.Drawing;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using ScoutBase.Core;
using ScoutBase.Elevation;
using ScoutBase.Stations;
namespace AirScoutDatabaseManager
{
public partial class MainDlg : Form
{
#region StationDatabaseUpdater
private bool ReadLocationsFromURL(string url, string filename)
{
try
{
AutoDecompressionWebClient cl = new AutoDecompressionWebClient();
DOWNLOADFILESTATUS status = cl.DownloadFileIfNewer(url, filename, true, true);
if ((status & DOWNLOADFILESTATUS.ERROR) > 0)
{
Log.WriteMessage("Error while downloading and extracting " + filename, LogLevel.Error);
return false;
}
else if (((status & DOWNLOADFILESTATUS.NEWER) > 0) || ((status & DOWNLOADFILESTATUS.NOTNEWER) > 0))
{
string json = "";
using (StreamReader sr = new StreamReader(filename))
json = sr.ReadToEnd();
List<LocationDesignator> lds = StationData.Database.LocationFromJSON(json);
// chek for empty database
if (StationData.Database.LocationCount() == 0)
{
// do bulk insert
StationData.Database.LocationBulkInsert(lds);
}
else
{
// do update on single elements
foreach(LocationDesignator ld in lds)
{
StationData.Database.LocationInsertOrUpdateIfNewer(ld);
// return if cancellation is pending
if (bw_DatabaseUpdater.CancellationPending)
return false;
}
}
return true;
}
}
catch (Exception ex)
{
// Error loading database
Log.WriteMessage("[" + url + "]: " + ex.ToString(), LogLevel.Error);
}
return false;
}
private void bw_DatabaseUpdater_DoWork(object sender, DoWorkEventArgs e)
{
Log.WriteMessage("Started.");
// name the thread for debugging
if (String.IsNullOrEmpty(Thread.CurrentThread.Name))
Thread.CurrentThread.Name = nameof(bw_DatabaseUpdater);
bw_DatabaseUpdater.ReportProgress(0, "Updating database...");
// get temp directory
string TmpDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Application.CompanyName, Application.ProductName, "Tmp").TrimEnd(Path.DirectorySeparatorChar);
if (!Directory.Exists(TmpDirectory))
Directory.CreateDirectory(TmpDirectory);
int errors = 0;
try
{
Stopwatch st = new Stopwatch();
st.Start();
// update callsign database
bw_DatabaseUpdater.ReportProgress(0, "Updating callsigns from web database...");
if (!ReadLocationsFromURL(Properties.Settings.Default.Station_URL + "locations.json", Path.Combine(TmpDirectory, "locations.json")))
errors++;
st.Stop();
Log.WriteMessage("Database update completed in " + st.Elapsed.ToString(@"hh\:mm\:ss") + ", errors: " + errors.ToString());
// sleep once to get all messages to main thread
Thread.Sleep(1000);
}
catch (Exception ex)
{
Log.WriteMessage(ex.ToString(), LogLevel.Error);
}
bw_DatabaseUpdater.ReportProgress(0, "Updating callsigns finished.");
Log.WriteMessage("Finished.");
}
private void bw_DatabaseUpdater_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
try
{
if (e.ProgressPercentage == 0)
{
// status message received
string msg = (string)e.UserState;
Say(msg);
}
}
catch (Exception ex)
{
Log.WriteMessage(ex.ToString(), LogLevel.Error);
}
}
private void bw_DatabaseUpdater_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
tc_Main.Enabled = true;
}
#endregion
}
}

Wyświetl plik

@ -1,107 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="AirScoutDatabaseManager.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<AirScoutDatabaseManager.Properties.Settings>
<setting name="MinLon" serializeAs="String">
<value>-15</value>
</setting>
<setting name="MaxLon" serializeAs="String">
<value>30</value>
</setting>
<setting name="MinLat" serializeAs="String">
<value>35</value>
</setting>
<setting name="MaxLat" serializeAs="String">
<value>60</value>
</setting>
<setting name="Map_Provider" serializeAs="String">
<value>OpenStreetMap</value>
</setting>
<setting name="QRZ_URL_Database" serializeAs="String">
<value>http://www.qrz.com/db/</value>
</setting>
<setting name="Log_Directory" serializeAs="String">
<value>\Log</value>
</setting>
<setting name="Database_Directory" serializeAs="String">
<value>\Database</value>
</setting>
<setting name="Tmp_Directory" serializeAs="String">
<value>\Tmp</value>
</setting>
<setting name="Export_Directory" serializeAs="String">
<value>\Export</value>
</setting>
<setting name="Station_URL" serializeAs="String">
<value>http://www.airscout.eu/downloads/ScoutBase/1/StationData/</value>
</setting>
<setting name="QRZ_URL_Login" serializeAs="String">
<value>https://xmldata.qrz.com/xml/current/?username=dl2alf;password=271192;agent=AirScout</value>
</setting>
<setting name="QRZ_URL_XMLData" serializeAs="String">
<value>http://xmldata.qrz.com/xml/current/</value>
</setting>
<setting name="SFTP_URL" serializeAs="String">
<value>www.airscout.eu</value>
</setting>
<setting name="SFTP_User" serializeAs="String">
<value>u45565180-airscout</value>
</setting>
<setting name="SFTP_Password" serializeAs="String">
<value>airscout</value>
</setting>
<setting name="Airlines_Update_URL" serializeAs="String">
<value>https://www.flightradar24.com/_json/airlines.php</value>
</setting>
<setting name="Airports_Update_URL" serializeAs="String">
<value>https://www.flightradar24.com/_json/airports2.php</value>
</setting>
<setting name="Aircrafts_BaseURL" serializeAs="String">
<value>https://data.flightradar24.com/zones/fcgi/feed.js?faa=1&amp;mlat=1&amp;flarm=0&amp;adsb=1&amp;gnd=0&amp;air=1&amp;vehicles=0&amp;estimated=0&amp;maxage=0&amp;gliders=0&amp;stats=1</value>
</setting>
<setting name="StationDatabase_Export_LocalDir" serializeAs="String">
<value>Z:\CSharp\AirScout\Database\ScoutBase\V1</value>
</setting>
<setting name="StationDatabase_Export_RemoteDir" serializeAs="String">
<value>/wsb4556518002/downloads/ScoutBase/1/StationData</value>
</setting>
<setting name="StationDatabase_Export_User" serializeAs="String">
<value>u45565180</value>
</setting>
<setting name="StationDatabase_Export_Password" serializeAs="String">
<value />
</setting>
<setting name="StationDatabase_Export_RemoteHost" serializeAs="String">
<value>home208518495.1and1-/data.host</value>
</setting>
<setting name="AircraftDatabase_Export_LocalDir" serializeAs="String">
<value>Z:\CSharp\AirScout\Database\AirScout\V1</value>
</setting>
<setting name="AircraftDatabase_Export_Password" serializeAs="String">
<value />
</setting>
<setting name="AircraftDatabase_Export_RemoteDir" serializeAs="String">
<value>/wsb4556518002/downloads/AirScout/1/AircraftData</value>
</setting>
<setting name="AircraftDatabase_Export_RemoteHost" serializeAs="String">
<value>home208518495.1and1-/data.host</value>
</setting>
<setting name="AircraftDatabase_Export_User" serializeAs="String">
<value>u45565180</value>
</setting>
</AirScoutDatabaseManager.Properties.Settings>
</userSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.108.0" newVersion="1.0.108.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

Wyświetl plik

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="HtmlAgilityPack" version="1.8.4" targetFramework="net40-client" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40-client" />
<package id="SSH.NET" version="2016.1.0" targetFramework="net40-client" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40-client" />
</packages>

Wyświetl plik

@ -69,8 +69,8 @@
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
@ -158,12 +158,12 @@
</Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40-client" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40-client" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40-client" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40-client" />
</packages>

Wyświetl plik

@ -39,8 +39,8 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
@ -62,9 +62,12 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Settings.cs" />
<EmbeddedResource Include="MapViewDlg.resx">
<DependentUpon>MapViewDlg.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="SettingsDlg.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SettingsDlg.Designer.cs">
<DependentUpon>SettingsDlg.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@ -74,10 +77,14 @@
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<EmbeddedResource Include="SettingsDlg.resx">
<DependentUpon>SettingsDlg.cs</DependentUpon>
</EmbeddedResource>
<None Include="app.config" />
<None Include="LICENSE">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<EmbeddedResource Include="MapViewDlg.resx" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
@ -151,12 +158,12 @@
</Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Wyświetl plik

@ -29,16 +29,26 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
ScoutBase.Core.LatLon.GPoint gPoint5 = new ScoutBase.Core.LatLon.GPoint();
ScoutBase.Core.LatLon.GPoint gPoint6 = new ScoutBase.Core.LatLon.GPoint();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MapViewDlg));
ScoutBase.Core.LatLon.GPoint gPoint1 = new ScoutBase.Core.LatLon.GPoint();
ScoutBase.Core.LatLon.GPoint gPoint2 = new ScoutBase.Core.LatLon.GPoint();
this.mnu_Main = new System.Windows.Forms.MenuStrip();
this.tsi_Exit = new System.Windows.Forms.ToolStripMenuItem();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mnu_Settings = new System.Windows.Forms.ToolStripMenuItem();
this.tsi_Info = new System.Windows.Forms.ToolStripMenuItem();
this.ss_Main = new System.Windows.Forms.StatusStrip();
this.tsl_Status = new System.Windows.Forms.ToolStripStatusLabel();
this.tsl_ConnectionStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.gb_Info = new System.Windows.Forms.GroupBox();
this.gb_Map_Zoom = new System.Windows.Forms.GroupBox();
this.pa_Map_Zoom = new System.Windows.Forms.Panel();
this.cb_Map_AutoCenter = new System.Windows.Forms.CheckBox();
this.tb_Map_Zoom = new System.Windows.Forms.TextBox();
this.btn_Map_Zoom_Out = new System.Windows.Forms.Button();
this.btn_Map_Zoom_In = new System.Windows.Forms.Button();
this.gb_Control = new System.Windows.Forms.GroupBox();
this.btn_Map_PlayPause = new System.Windows.Forms.Button();
this.il_Main = new System.Windows.Forms.ImageList(this.components);
this.cb_DXLoc = new ScoutBase.Core.LocatorComboBox();
this.cb_MyLoc = new ScoutBase.Core.LocatorComboBox();
this.label8 = new System.Windows.Forms.Label();
@ -67,34 +77,24 @@
this.il_Airports = new System.Windows.Forms.ImageList(this.components);
this.il_Planes_M = new System.Windows.Forms.ImageList(this.components);
this.ti_ShowLegends = new System.Windows.Forms.Timer(this.components);
this.btn_Map_PlayPause = new System.Windows.Forms.Button();
this.gb_Control = new System.Windows.Forms.GroupBox();
this.il_Main = new System.Windows.Forms.ImageList(this.components);
this.gb_Map_Zoom = new System.Windows.Forms.GroupBox();
this.pa_Map_Zoom = new System.Windows.Forms.Panel();
this.tb_Map_Zoom = new System.Windows.Forms.TextBox();
this.btn_Map_Zoom_Out = new System.Windows.Forms.Button();
this.btn_Map_Zoom_In = new System.Windows.Forms.Button();
this.tsl_ConnectionStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.cb_Map_AutoCenter = new System.Windows.Forms.CheckBox();
this.mnu_Main.SuspendLayout();
this.ss_Main.SuspendLayout();
this.gb_Info.SuspendLayout();
this.gb_Map_Zoom.SuspendLayout();
this.pa_Map_Zoom.SuspendLayout();
this.gb_Control.SuspendLayout();
this.gb_Map.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.spc_Main)).BeginInit();
this.spc_Main.Panel1.SuspendLayout();
this.spc_Main.Panel2.SuspendLayout();
this.spc_Main.SuspendLayout();
this.gb_Control.SuspendLayout();
this.gb_Map_Zoom.SuspendLayout();
this.pa_Map_Zoom.SuspendLayout();
this.SuspendLayout();
//
// mnu_Main
//
this.mnu_Main.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsi_Exit,
this.settingsToolStripMenuItem,
this.mnu_Settings,
this.tsi_Info});
this.mnu_Main.Location = new System.Drawing.Point(0, 0);
this.mnu_Main.Name = "mnu_Main";
@ -105,15 +105,16 @@
// tsi_Exit
//
this.tsi_Exit.Name = "tsi_Exit";
this.tsi_Exit.Size = new System.Drawing.Size(37, 20);
this.tsi_Exit.Size = new System.Drawing.Size(38, 20);
this.tsi_Exit.Text = "E&xit";
this.tsi_Exit.Click += new System.EventHandler(this.tsi_Exit_Click);
//
// settingsToolStripMenuItem
// mnu_Settings
//
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(61, 20);
this.settingsToolStripMenuItem.Text = "&Settings";
this.mnu_Settings.Name = "mnu_Settings";
this.mnu_Settings.Size = new System.Drawing.Size(61, 20);
this.mnu_Settings.Text = "&Settings";
this.mnu_Settings.Click += new System.EventHandler(this.mnu_Settings_Click);
//
// tsi_Info
//
@ -141,6 +142,12 @@
this.tsl_Status.Text = "Status";
this.tsl_Status.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// tsl_ConnectionStatus
//
this.tsl_ConnectionStatus.Name = "tsl_ConnectionStatus";
this.tsl_ConnectionStatus.Size = new System.Drawing.Size(39, 17);
this.tsl_ConnectionStatus.Text = "Status";
//
// gb_Info
//
this.gb_Info.Controls.Add(this.gb_Map_Zoom);
@ -170,6 +177,105 @@
this.gb_Info.TabStop = false;
this.gb_Info.Text = "Info";
//
// gb_Map_Zoom
//
this.gb_Map_Zoom.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.gb_Map_Zoom.Controls.Add(this.pa_Map_Zoom);
this.gb_Map_Zoom.Dock = System.Windows.Forms.DockStyle.Bottom;
this.gb_Map_Zoom.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gb_Map_Zoom.Location = new System.Drawing.Point(3, 357);
this.gb_Map_Zoom.Name = "gb_Map_Zoom";
this.gb_Map_Zoom.Size = new System.Drawing.Size(139, 79);
this.gb_Map_Zoom.TabIndex = 66;
this.gb_Map_Zoom.TabStop = false;
this.gb_Map_Zoom.Text = "Map Zoom";
//
// pa_Map_Zoom
//
this.pa_Map_Zoom.Controls.Add(this.cb_Map_AutoCenter);
this.pa_Map_Zoom.Controls.Add(this.tb_Map_Zoom);
this.pa_Map_Zoom.Controls.Add(this.btn_Map_Zoom_Out);
this.pa_Map_Zoom.Controls.Add(this.btn_Map_Zoom_In);
this.pa_Map_Zoom.Dock = System.Windows.Forms.DockStyle.Fill;
this.pa_Map_Zoom.Location = new System.Drawing.Point(3, 16);
this.pa_Map_Zoom.Name = "pa_Map_Zoom";
this.pa_Map_Zoom.Size = new System.Drawing.Size(133, 60);
this.pa_Map_Zoom.TabIndex = 65;
//
// cb_Map_AutoCenter
//
this.cb_Map_AutoCenter.AutoSize = true;
this.cb_Map_AutoCenter.Checked = global::AirScoutViewClient.Properties.Settings.Default.Map_AutoCenter;
this.cb_Map_AutoCenter.CheckState = System.Windows.Forms.CheckState.Checked;
this.cb_Map_AutoCenter.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScoutViewClient.Properties.Settings.Default, "Map_AutoCenter", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.cb_Map_AutoCenter.Location = new System.Drawing.Point(12, 37);
this.cb_Map_AutoCenter.Name = "cb_Map_AutoCenter";
this.cb_Map_AutoCenter.Size = new System.Drawing.Size(93, 17);
this.cb_Map_AutoCenter.TabIndex = 24;
this.cb_Map_AutoCenter.Text = "Auto Center";
this.cb_Map_AutoCenter.UseVisualStyleBackColor = true;
//
// tb_Map_Zoom
//
this.tb_Map_Zoom.BackColor = System.Drawing.Color.FloralWhite;
this.tb_Map_Zoom.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tb_Map_Zoom.Location = new System.Drawing.Point(45, 9);
this.tb_Map_Zoom.Name = "tb_Map_Zoom";
this.tb_Map_Zoom.Size = new System.Drawing.Size(41, 22);
this.tb_Map_Zoom.TabIndex = 23;
//
// btn_Map_Zoom_Out
//
this.btn_Map_Zoom_Out.Location = new System.Drawing.Point(92, 8);
this.btn_Map_Zoom_Out.Name = "btn_Map_Zoom_Out";
this.btn_Map_Zoom_Out.Size = new System.Drawing.Size(30, 23);
this.btn_Map_Zoom_Out.TabIndex = 22;
this.btn_Map_Zoom_Out.Text = "-";
this.btn_Map_Zoom_Out.UseVisualStyleBackColor = true;
this.btn_Map_Zoom_Out.Click += new System.EventHandler(this.btn_Map_Zoom_Out_Click);
//
// btn_Map_Zoom_In
//
this.btn_Map_Zoom_In.Location = new System.Drawing.Point(9, 8);
this.btn_Map_Zoom_In.Name = "btn_Map_Zoom_In";
this.btn_Map_Zoom_In.Size = new System.Drawing.Size(30, 23);
this.btn_Map_Zoom_In.TabIndex = 21;
this.btn_Map_Zoom_In.Text = "+";
this.btn_Map_Zoom_In.UseVisualStyleBackColor = true;
this.btn_Map_Zoom_In.Click += new System.EventHandler(this.btn_Map_Zoom_In_Click);
//
// gb_Control
//
this.gb_Control.Controls.Add(this.btn_Map_PlayPause);
this.gb_Control.Dock = System.Windows.Forms.DockStyle.Bottom;
this.gb_Control.Location = new System.Drawing.Point(3, 436);
this.gb_Control.Name = "gb_Control";
this.gb_Control.Size = new System.Drawing.Size(139, 55);
this.gb_Control.TabIndex = 64;
this.gb_Control.TabStop = false;
//
// btn_Map_PlayPause
//
this.btn_Map_PlayPause.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btn_Map_PlayPause.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_Map_PlayPause.ImageIndex = 1;
this.btn_Map_PlayPause.ImageList = this.il_Main;
this.btn_Map_PlayPause.Location = new System.Drawing.Point(14, 17);
this.btn_Map_PlayPause.Name = "btn_Map_PlayPause";
this.btn_Map_PlayPause.Size = new System.Drawing.Size(114, 29);
this.btn_Map_PlayPause.TabIndex = 64;
this.btn_Map_PlayPause.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btn_Map_PlayPause.UseVisualStyleBackColor = true;
this.btn_Map_PlayPause.Click += new System.EventHandler(this.btn_Map_PlayPause_Click);
//
// il_Main
//
this.il_Main.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("il_Main.ImageStream")));
this.il_Main.TransparentColor = System.Drawing.Color.Transparent;
this.il_Main.Images.SetKeyName(0, "PauseHS.png");
this.il_Main.Images.SetKeyName(1, "PlayHS.png");
this.il_Main.Images.SetKeyName(2, "RecordHS.png");
//
// cb_DXLoc
//
this.cb_DXLoc.AutoLength = false;
@ -180,7 +286,7 @@
this.cb_DXLoc.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cb_DXLoc.ForeColor = System.Drawing.SystemColors.WindowText;
this.cb_DXLoc.FormattingEnabled = true;
this.cb_DXLoc.GeoLocation = gPoint5;
this.cb_DXLoc.GeoLocation = gPoint1;
this.cb_DXLoc.Location = new System.Drawing.Point(6, 243);
this.cb_DXLoc.Name = "cb_DXLoc";
this.cb_DXLoc.Precision = 3;
@ -200,7 +306,7 @@
this.cb_MyLoc.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cb_MyLoc.ForeColor = System.Drawing.SystemColors.WindowText;
this.cb_MyLoc.FormattingEnabled = true;
this.cb_MyLoc.GeoLocation = gPoint6;
this.cb_MyLoc.GeoLocation = gPoint2;
this.cb_MyLoc.Location = new System.Drawing.Point(6, 161);
this.cb_MyLoc.Name = "cb_MyLoc";
this.cb_MyLoc.Precision = 3;
@ -411,6 +517,7 @@
this.gm_Main.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
this.gm_Main.Name = "gm_Main";
this.gm_Main.NegativeMode = false;
this.gm_Main.Opacity = 1D;
this.gm_Main.PolygonsEnabled = true;
this.gm_Main.RetryLoadTile = 0;
this.gm_Main.RoutesEnabled = true;
@ -481,111 +588,6 @@
this.ti_ShowLegends.Interval = 5000;
this.ti_ShowLegends.Tick += new System.EventHandler(this.ti_ShowLegends_Tick);
//
// btn_Map_PlayPause
//
this.btn_Map_PlayPause.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btn_Map_PlayPause.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_Map_PlayPause.ImageIndex = 1;
this.btn_Map_PlayPause.ImageList = this.il_Main;
this.btn_Map_PlayPause.Location = new System.Drawing.Point(14, 17);
this.btn_Map_PlayPause.Name = "btn_Map_PlayPause";
this.btn_Map_PlayPause.Size = new System.Drawing.Size(114, 29);
this.btn_Map_PlayPause.TabIndex = 64;
this.btn_Map_PlayPause.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btn_Map_PlayPause.UseVisualStyleBackColor = true;
this.btn_Map_PlayPause.Click += new System.EventHandler(this.btn_Map_PlayPause_Click);
//
// gb_Control
//
this.gb_Control.Controls.Add(this.btn_Map_PlayPause);
this.gb_Control.Dock = System.Windows.Forms.DockStyle.Bottom;
this.gb_Control.Location = new System.Drawing.Point(3, 436);
this.gb_Control.Name = "gb_Control";
this.gb_Control.Size = new System.Drawing.Size(139, 55);
this.gb_Control.TabIndex = 64;
this.gb_Control.TabStop = false;
//
// il_Main
//
this.il_Main.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("il_Main.ImageStream")));
this.il_Main.TransparentColor = System.Drawing.Color.Transparent;
this.il_Main.Images.SetKeyName(0, "PauseHS.png");
this.il_Main.Images.SetKeyName(1, "PlayHS.png");
this.il_Main.Images.SetKeyName(2, "RecordHS.png");
//
// gb_Map_Zoom
//
this.gb_Map_Zoom.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.gb_Map_Zoom.Controls.Add(this.pa_Map_Zoom);
this.gb_Map_Zoom.Dock = System.Windows.Forms.DockStyle.Bottom;
this.gb_Map_Zoom.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gb_Map_Zoom.Location = new System.Drawing.Point(3, 357);
this.gb_Map_Zoom.Name = "gb_Map_Zoom";
this.gb_Map_Zoom.Size = new System.Drawing.Size(139, 79);
this.gb_Map_Zoom.TabIndex = 66;
this.gb_Map_Zoom.TabStop = false;
this.gb_Map_Zoom.Text = "Map Zoom";
//
// pa_Map_Zoom
//
this.pa_Map_Zoom.Controls.Add(this.cb_Map_AutoCenter);
this.pa_Map_Zoom.Controls.Add(this.tb_Map_Zoom);
this.pa_Map_Zoom.Controls.Add(this.btn_Map_Zoom_Out);
this.pa_Map_Zoom.Controls.Add(this.btn_Map_Zoom_In);
this.pa_Map_Zoom.Dock = System.Windows.Forms.DockStyle.Fill;
this.pa_Map_Zoom.Location = new System.Drawing.Point(3, 16);
this.pa_Map_Zoom.Name = "pa_Map_Zoom";
this.pa_Map_Zoom.Size = new System.Drawing.Size(133, 60);
this.pa_Map_Zoom.TabIndex = 65;
//
// tb_Map_Zoom
//
this.tb_Map_Zoom.BackColor = System.Drawing.Color.FloralWhite;
this.tb_Map_Zoom.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tb_Map_Zoom.Location = new System.Drawing.Point(45, 9);
this.tb_Map_Zoom.Name = "tb_Map_Zoom";
this.tb_Map_Zoom.Size = new System.Drawing.Size(41, 22);
this.tb_Map_Zoom.TabIndex = 23;
//
// btn_Map_Zoom_Out
//
this.btn_Map_Zoom_Out.Location = new System.Drawing.Point(92, 8);
this.btn_Map_Zoom_Out.Name = "btn_Map_Zoom_Out";
this.btn_Map_Zoom_Out.Size = new System.Drawing.Size(30, 23);
this.btn_Map_Zoom_Out.TabIndex = 22;
this.btn_Map_Zoom_Out.Text = "-";
this.btn_Map_Zoom_Out.UseVisualStyleBackColor = true;
this.btn_Map_Zoom_Out.Click += new System.EventHandler(this.btn_Map_Zoom_Out_Click);
//
// btn_Map_Zoom_In
//
this.btn_Map_Zoom_In.Location = new System.Drawing.Point(9, 8);
this.btn_Map_Zoom_In.Name = "btn_Map_Zoom_In";
this.btn_Map_Zoom_In.Size = new System.Drawing.Size(30, 23);
this.btn_Map_Zoom_In.TabIndex = 21;
this.btn_Map_Zoom_In.Text = "+";
this.btn_Map_Zoom_In.UseVisualStyleBackColor = true;
this.btn_Map_Zoom_In.Click += new System.EventHandler(this.btn_Map_Zoom_In_Click);
//
// tsl_ConnectionStatus
//
this.tsl_ConnectionStatus.Name = "tsl_ConnectionStatus";
this.tsl_ConnectionStatus.Size = new System.Drawing.Size(39, 17);
this.tsl_ConnectionStatus.Text = "Status";
//
// cb_Map_AutoCenter
//
this.cb_Map_AutoCenter.AutoSize = true;
this.cb_Map_AutoCenter.Checked = global::AirScoutViewClient.Properties.Settings.Default.Map_AutoCenter;
this.cb_Map_AutoCenter.CheckState = System.Windows.Forms.CheckState.Checked;
this.cb_Map_AutoCenter.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScoutViewClient.Properties.Settings.Default, "Map_AutoCenter", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.cb_Map_AutoCenter.Location = new System.Drawing.Point(12, 37);
this.cb_Map_AutoCenter.Name = "cb_Map_AutoCenter";
this.cb_Map_AutoCenter.Size = new System.Drawing.Size(93, 17);
this.cb_Map_AutoCenter.TabIndex = 24;
this.cb_Map_AutoCenter.Text = "Auto Center";
this.cb_Map_AutoCenter.UseVisualStyleBackColor = true;
//
// MapViewDlg
//
this.AcceptButton = this.btn_Map_PlayPause;
@ -608,15 +610,15 @@
this.ss_Main.PerformLayout();
this.gb_Info.ResumeLayout(false);
this.gb_Info.PerformLayout();
this.gb_Map_Zoom.ResumeLayout(false);
this.pa_Map_Zoom.ResumeLayout(false);
this.pa_Map_Zoom.PerformLayout();
this.gb_Control.ResumeLayout(false);
this.gb_Map.ResumeLayout(false);
this.spc_Main.Panel1.ResumeLayout(false);
this.spc_Main.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.spc_Main)).EndInit();
this.spc_Main.ResumeLayout(false);
this.gb_Control.ResumeLayout(false);
this.gb_Map_Zoom.ResumeLayout(false);
this.pa_Map_Zoom.ResumeLayout(false);
this.pa_Map_Zoom.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -629,7 +631,7 @@
private System.Windows.Forms.ToolStripMenuItem tsi_Info;
private System.Windows.Forms.StatusStrip ss_Main;
private System.Windows.Forms.ToolStripStatusLabel tsl_Status;
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem mnu_Settings;
private System.Windows.Forms.GroupBox gb_Info;
private System.Windows.Forms.GroupBox gb_Map;
private System.Windows.Forms.Timer ti_Progress;

Wyświetl plik

@ -141,7 +141,7 @@ namespace AirScoutViewClient
SortedList<string, PlaneInfo> ActivePlanes = new SortedList<string, PlaneInfo>();
private List<string> SelectedPlanes = new List<string>();
private VIEWCLIENTSTATUS VieClientStatus = VIEWCLIENTSTATUS.NONE;
private VIEWCLIENTSTATUS ViewClientStatus = VIEWCLIENTSTATUS.NONE;
[CategoryAttribute("Directories")]
[DescriptionAttribute("Application Directory")]
@ -268,7 +268,7 @@ namespace AirScoutViewClient
BAND band = Properties.Settings.Default.Band;
cb_Band.SelectedItem = Bands.GetStringValue(band);
PlayMode = AIRSCOUTPLAYMODE.PAUSE;
VieClientStatus = VIEWCLIENTSTATUS.CONNECTED;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTED;
UpdateStatus();
Say("");
}
@ -627,10 +627,10 @@ namespace AirScoutViewClient
{
string json = "";
// get settings
json = GetJSONFromURL(GetServerURL(Properties.Settings.Default.Server_URL, Properties.Settings.Default.Server_Port, "settings.json"));
json = GetJSONFromURL(GetServerURL(Properties.Settings.Default.Server_URL, (int)Properties.Settings.Default.Server_Port, "settings.json"));
if (String.IsNullOrEmpty(json))
{
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
return false;
}
if (json.StartsWith("Error:"))
@ -689,14 +689,14 @@ namespace AirScoutViewClient
{
string url = GetServerURL(
Properties.Settings.Default.Server_URL,
Properties.Settings.Default.Server_Port,
(int)Properties.Settings.Default.Server_Port,
"location.json",
"call=" + Properties.Settings.Default.MyCall +
"&loc=all");
json = GetJSONFromURL(url);
if (String.IsNullOrEmpty(json))
{
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
return null;
}
if (json.StartsWith("Error:"))
@ -727,14 +727,14 @@ namespace AirScoutViewClient
{
string url = GetServerURL(
Properties.Settings.Default.Server_URL,
Properties.Settings.Default.Server_Port,
(int)Properties.Settings.Default.Server_Port,
"location.json",
"call=" + Properties.Settings.Default.MyCall +
"&loc=" + MaidenheadLocator.LocFromLatLon(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon, false, 3));
json = GetJSONFromURL(url);
if (String.IsNullOrEmpty(json))
{
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
return null;
}
if (json.StartsWith("Error:"))
@ -760,14 +760,14 @@ namespace AirScoutViewClient
{
string url = GetServerURL(
Properties.Settings.Default.Server_URL,
Properties.Settings.Default.Server_Port,
(int)Properties.Settings.Default.Server_Port,
"location.json",
"call=" + Properties.Settings.Default.DXCall +
"&loc=all");
json = GetJSONFromURL(url);
if (String.IsNullOrEmpty(json))
{
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
return null;
}
if (json.StartsWith("Error:"))
@ -798,14 +798,14 @@ namespace AirScoutViewClient
{
string url = GetServerURL(
Properties.Settings.Default.Server_URL,
Properties.Settings.Default.Server_Port,
(int)Properties.Settings.Default.Server_Port,
"location.json",
"&call=" + Properties.Settings.Default.DXCall +
"&loc=" + MaidenheadLocator.LocFromLatLon(Properties.Settings.Default.DXLat, Properties.Settings.Default.DXLon, false, 3));
json = GetJSONFromURL(url);
if (String.IsNullOrEmpty(json))
{
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
return null;
}
if (json.StartsWith("Error:"))
@ -830,7 +830,7 @@ namespace AirScoutViewClient
{
json = GetJSONFromURL(GetServerURL(
Properties.Settings.Default.Server_URL,
Properties.Settings.Default.Server_Port,
(int)Properties.Settings.Default.Server_Port,
"elevationpath.json",
"mycall=" + Properties.Settings.Default.MyCall +
"&myloc=" + MaidenheadLocator.LocFromLatLon(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon, false, 3) +
@ -838,7 +838,7 @@ namespace AirScoutViewClient
"&dxloc=" + MaidenheadLocator.LocFromLatLon(Properties.Settings.Default.DXLat, Properties.Settings.Default.DXLon, false, 3)));
if (String.IsNullOrEmpty(json))
{
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
return null;
}
if (json.StartsWith("Error:"))
@ -863,7 +863,7 @@ namespace AirScoutViewClient
{
json = GetJSONFromURL(GetServerURL(
Properties.Settings.Default.Server_URL,
Properties.Settings.Default.Server_Port,
(int)Properties.Settings.Default.Server_Port,
"propagationpath.json",
"mycall=" + Properties.Settings.Default.MyCall +
"&myloc=" + MaidenheadLocator.LocFromLatLon(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon, false, 3) +
@ -871,7 +871,7 @@ namespace AirScoutViewClient
"&dxloc=" + MaidenheadLocator.LocFromLatLon(Properties.Settings.Default.DXLat, Properties.Settings.Default.DXLon, false, 3)));
if (String.IsNullOrEmpty(json))
{
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
return null;
}
if (json.StartsWith("Error:"))
@ -897,7 +897,7 @@ namespace AirScoutViewClient
{
json = GetJSONFromURL(GetServerURL(
Properties.Settings.Default.Server_URL,
Properties.Settings.Default.Server_Port,
(int)Properties.Settings.Default.Server_Port,
"nearestplanes.json",
"mycall=" + Properties.Settings.Default.MyCall +
"&myloc=" + MaidenheadLocator.LocFromLatLon(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon, false, 3) +
@ -905,7 +905,7 @@ namespace AirScoutViewClient
"&dxloc=" + MaidenheadLocator.LocFromLatLon(Properties.Settings.Default.DXLat, Properties.Settings.Default.DXLon, false, 3)));
if (String.IsNullOrEmpty(json))
{
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
return null;
}
if (json.StartsWith("Error:"))
@ -1385,8 +1385,8 @@ namespace AirScoutViewClient
private void ti_Progress_Tick(object sender, EventArgs e)
{
tsl_ConnectionStatus.Text = VieClientStatus.ToString();
switch (VieClientStatus)
tsl_ConnectionStatus.Text = ViewClientStatus.ToString();
switch (ViewClientStatus)
{
case VIEWCLIENTSTATUS.CONNECTING:
{
@ -1423,13 +1423,13 @@ namespace AirScoutViewClient
private void MapViewDlg_Load(object sender, EventArgs e)
{
VieClientStatus = VIEWCLIENTSTATUS.INIT;
ViewClientStatus = VIEWCLIENTSTATUS.INIT;
InitializeIcons();
InitializeCharts();
this.Text = "AirScout View Client V" + Application.ProductVersion;
this.Show();
ti_Progress.Start();
VieClientStatus = VIEWCLIENTSTATUS.CONNECTING;
ViewClientStatus = VIEWCLIENTSTATUS.CONNECTING;
}
private void tsi_Exit_Click(object sender, EventArgs e)
@ -1723,5 +1723,20 @@ namespace AirScoutViewClient
}
}
private void mnu_Settings_Click(object sender, EventArgs e)
{
SettingsDlg Dlg = new SettingsDlg();
if (Dlg.ShowDialog() == DialogResult.OK)
{
Properties.Settings.Default.Save();
ViewClientStatus = VIEWCLIENTSTATUS.INIT;
InitializeSettings();
}
else
{
Properties.Settings.Default.Reload();
}
}
}
}

Wyświetl plik

@ -123,30 +123,6 @@
<metadata name="ss_Main.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>126, 17</value>
</metadata>
<metadata name="ti_Progress.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>220, 17</value>
</metadata>
<metadata name="ti_Startup.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>331, 17</value>
</metadata>
<metadata name="il_Planes_H.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>435, 17</value>
</metadata>
<metadata name="il_Planes_L.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>546, 17</value>
</metadata>
<metadata name="il_Planes_S.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>654, 17</value>
</metadata>
<metadata name="il_Airports.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>763, 17</value>
</metadata>
<metadata name="il_Planes_M.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>869, 17</value>
</metadata>
<metadata name="ti_ShowLegends.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>983, 17</value>
</metadata>
<metadata name="il_Main.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1122, 17</value>
</metadata>
@ -155,7 +131,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc
DQAAAk1TRnQBSQFMAgEBAwEAARABCwEQAQsBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
DQAAAk1TRnQBSQFMAgEBAwEAARgBCwEYAQsBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABgAMAASADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@ -216,6 +192,30 @@
DP8EAAz/BAAL
</value>
</data>
<metadata name="ti_Progress.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>220, 17</value>
</metadata>
<metadata name="ti_Startup.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>331, 17</value>
</metadata>
<metadata name="il_Planes_H.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>435, 17</value>
</metadata>
<metadata name="il_Planes_L.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>546, 17</value>
</metadata>
<metadata name="il_Planes_S.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>654, 17</value>
</metadata>
<metadata name="il_Airports.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>763, 17</value>
</metadata>
<metadata name="il_Planes_M.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>869, 17</value>
</metadata>
<metadata name="ti_ShowLegends.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>983, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

Wyświetl plik

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.3.0.4")]
[assembly: AssemblyFileVersion("1.3.0.4")]
[assembly: AssemblyVersion("1.3.0.5")]
[assembly: AssemblyFileVersion("1.3.0.5")]

Wyświetl plik

@ -12,7 +12,7 @@ namespace AirScoutViewClient.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@ -38,9 +38,9 @@ namespace AirScoutViewClient.Properties {
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("9880")]
public int Server_Port {
public decimal Server_Port {
get {
return ((int)(this["Server_Port"]));
return ((decimal)(this["Server_Port"]));
}
set {
this["Server_Port"] = value;

Wyświetl plik

@ -5,7 +5,7 @@
<Setting Name="Server_URL" Type="System.String" Scope="User">
<Value Profile="(Default)">localhost</Value>
</Setting>
<Setting Name="Server_Port" Type="System.Int32" Scope="User">
<Setting Name="Server_Port" Type="System.Decimal" Scope="User">
<Value Profile="(Default)">9880</Value>
</Setting>
<Setting Name="RefreshRate" Type="System.Int32" Scope="User">
@ -110,7 +110,7 @@
<Setting Name="Planes_Filter_Min_Alt" Type="System.Int32" Scope="User">
<Value Profile="(Default)">5000</Value>
</Setting>
<Setting Name="Planes_Filter_Min_Category" Type="AirScout.Aircrafts.PLANECATEGORY" Scope="User">
<Setting Name="Planes_Filter_Min_Category" Type="AirScout.Core.PLANECATEGORY" Scope="User">
<Value Profile="(Default)">NONE</Value>
</Setting>
<Setting Name="Path_Band_Settings" Type="AirScout.Core.BandSettings" Scope="User">

Wyświetl plik

@ -0,0 +1,140 @@
namespace AirScoutViewClient
{
partial class SettingsDlg
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.ud_Settings_Server_Port = new System.Windows.Forms.NumericUpDown();
this.tb_Settings_Server_URL = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.btn_OK = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.ud_Settings_Server_Port)).BeginInit();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.ud_Settings_Server_Port);
this.groupBox1.Controls.Add(this.tb_Settings_Server_URL);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox1.Location = new System.Drawing.Point(12, 12);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(266, 103);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Connection Settings";
//
// ud_Settings_Server_Port
//
this.ud_Settings_Server_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutViewClient.Properties.Settings.Default, "Server_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.ud_Settings_Server_Port.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ud_Settings_Server_Port.Location = new System.Drawing.Point(91, 57);
this.ud_Settings_Server_Port.Maximum = new decimal(new int[] {
65535,
0,
0,
0});
this.ud_Settings_Server_Port.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.ud_Settings_Server_Port.Name = "ud_Settings_Server_Port";
this.ud_Settings_Server_Port.Size = new System.Drawing.Size(76, 20);
this.ud_Settings_Server_Port.TabIndex = 3;
this.ud_Settings_Server_Port.Value = global::AirScoutViewClient.Properties.Settings.Default.Server_Port;
//
// tb_Settings_Server_URL
//
this.tb_Settings_Server_URL.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutViewClient.Properties.Settings.Default, "Server_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.tb_Settings_Server_URL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tb_Settings_Server_URL.Location = new System.Drawing.Point(91, 24);
this.tb_Settings_Server_URL.Name = "tb_Settings_Server_URL";
this.tb_Settings_Server_URL.Size = new System.Drawing.Size(138, 20);
this.tb_Settings_Server_URL.TabIndex = 2;
this.tb_Settings_Server_URL.Text = global::AirScoutViewClient.Properties.Settings.Default.Server_URL;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(6, 59);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(69, 13);
this.label2.TabIndex = 1;
this.label2.Text = "Server - Port:";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(6, 27);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(60, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Server - IP:";
//
// btn_OK
//
this.btn_OK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btn_OK.Location = new System.Drawing.Point(12, 134);
this.btn_OK.Name = "btn_OK";
this.btn_OK.Size = new System.Drawing.Size(266, 23);
this.btn_OK.TabIndex = 1;
this.btn_OK.Text = "OK";
this.btn_OK.UseVisualStyleBackColor = true;
//
// SettingsDlg
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(298, 169);
this.Controls.Add(this.btn_OK);
this.Controls.Add(this.groupBox1);
this.Name = "SettingsDlg";
this.Text = "AirScout View Client Settings";
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.ud_Settings_Server_Port)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TextBox tb_Settings_Server_URL;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.NumericUpDown ud_Settings_Server_Port;
private System.Windows.Forms.Button btn_OK;
}
}

Wyświetl plik

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AirScoutViewClient
{
public partial class SettingsDlg : Form
{
public SettingsDlg()
{
InitializeComponent();
}
}
}

Wyświetl plik

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

Wyświetl plik

@ -42,8 +42,8 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll</HintPath>
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
@ -69,12 +69,12 @@
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net40\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

Wyświetl plik

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net40" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net40" />
</packages>

103
CATCheck/AboutDlg.Designer.cs wygenerowano 100644
Wyświetl plik

@ -0,0 +1,103 @@
namespace CATCheck
{
partial class AboutDlg
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btn_OK = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.lbl_Version = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// btn_OK
//
this.btn_OK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btn_OK.Location = new System.Drawing.Point(107, 122);
this.btn_OK.Name = "btn_OK";
this.btn_OK.Size = new System.Drawing.Size(75, 23);
this.btn_OK.TabIndex = 0;
this.btn_OK.Text = "OK";
this.btn_OK.UseVisualStyleBackColor = true;
//
// label1
//
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(39, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(218, 55);
this.label1.TabIndex = 1;
this.label1.Text = "CAT communication checker for Windows & Linux";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.label1.UseMnemonic = false;
//
// lbl_Version
//
this.lbl_Version.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbl_Version.Location = new System.Drawing.Point(43, 53);
this.lbl_Version.Name = "lbl_Version";
this.lbl_Version.Size = new System.Drawing.Size(214, 30);
this.lbl_Version.TabIndex = 2;
this.lbl_Version.Text = "V x.x.x (c) 2021 DL2ALF";
this.lbl_Version.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbl_Version.UseMnemonic = false;
//
// label3
//
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label3.Location = new System.Drawing.Point(12, 83);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(280, 30);
this.label3.TabIndex = 3;
this.label3.Text = "based on the great OmniRig project by VE3NEA";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.label3.UseMnemonic = false;
//
// AboutDlg
//
this.AcceptButton = this.btn_OK;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(295, 157);
this.Controls.Add(this.label3);
this.Controls.Add(this.lbl_Version);
this.Controls.Add(this.label1);
this.Controls.Add(this.btn_OK);
this.Name = "AboutDlg";
this.Text = "About";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btn_OK;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label3;
public System.Windows.Forms.Label lbl_Version;
}
}

Wyświetl plik

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CATCheck
{
public partial class AboutDlg : Form
{
public AboutDlg()
{
InitializeComponent();
}
}
}

Wyświetl plik

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

Wyświetl plik

@ -0,0 +1,571 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{0F0B27D0-7957-4CE0-9121-2C89746AF136}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>CATCheck</RootNamespace>
<AssemblyName>CATCheck</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AboutDlg.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AboutDlg.Designer.cs">
<DependentUpon>AboutDlg.cs</DependentUpon>
</Compile>
<Compile Include="ComboBoxItem.cs" />
<Compile Include="FrequencyOfToneDlg.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrequencyOfToneDlg.Designer.cs">
<DependentUpon>FrequencyOfToneDlg.cs</DependentUpon>
</Compile>
<Compile Include="Helpers.cs" />
<Compile Include="MainDlg.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainDlg.Designer.cs">
<DependentUpon>MainDlg.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SetFrequencyDlg.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SetFrequencyDlg.Designer.cs">
<DependentUpon>SetFrequencyDlg.cs</DependentUpon>
</Compile>
<Compile Include="Settings.cs" />
<EmbeddedResource Include="AboutDlg.resx">
<DependentUpon>AboutDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrequencyOfToneDlg.resx">
<DependentUpon>FrequencyOfToneDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainDlg.resx">
<DependentUpon>MainDlg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<EmbeddedResource Include="SetFrequencyDlg.resx">
<DependentUpon>SetFrequencyDlg.cs</DependentUpon>
</EmbeddedResource>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<None Include="Rigs\ADT-200A.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\AORAR5000.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\AR8600.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\Bearcat996x.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\CODAN.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\DX-77.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\Elad-FDMSW2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\Elecraft K2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\Elecraft K3.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\Elecraft KX2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\Elecraft KX3.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\ExpertSDR.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FRG-100.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-100 D.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-1000 MP.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-1000.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-2000.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-2000PEPV3.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-2KAFSKPEPV3.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-2KFSKPEPV3.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-450.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-450Dmod.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-747.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-747GX.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-747GX1.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-747GX2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-757GXII.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-817.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-840.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-847.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-857.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-891.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-897.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-900.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-920.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-950.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-990.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-991-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FT-991.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FTDX-1200-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FTDX-1200.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FTDX-3000-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FTDX-3000.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FTDX-5000MP-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FTDX-5000MP.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\FTDX-9000.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\HRD.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC- 821.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC- 970D.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-275H.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7000.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7000v2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-703.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-703a.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-706 MKII.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-706 MKIIG.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-706.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7100.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7100e4-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7100e4.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-718.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7200.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7200v2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-725.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-725a.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-726.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-728.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7300-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7300.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7315.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-735.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-736 %28untested%29.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-737.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-738.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7410 %281%29.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7410.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7410v2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-746 Pro.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-746.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-751.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-756 Pro II.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-756 Pro III.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-756 Pro II_LSB.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-756 Pro.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-756.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7600.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7600v2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-761.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7610-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7610.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-765.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7700.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7700v2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-775.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-78.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7800.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7800v3.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-781.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-781_2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7850-DATA-FIL1.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7850-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7850.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7851-DATA-FIL1.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7851-DATA.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-7851.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-821PST.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-910.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-9100.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-9100v2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\ic-9700-data.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\ic-9700-dl2alf.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-9700.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-M710.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-R75-chromos.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-R75.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-R8500.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-R9000.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\IC-R9500.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\ID-5100A.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\JST-245.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\Kenwood.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\NRD-535DG.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\Perseus.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\PowerRX2.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\PowerSDR.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\SmartSDR.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TenTec Eagle.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TenTec Jupiter.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TenTec Omni VII.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TenTec Omni VI_plus.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TenTec Orion.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TenTec Paragon II.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TenTec RX-350.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TH-F6A.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TH-F7E.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TS-2000.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TS-440.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TS-480.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TS-590.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TS-690.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TS-870.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\TS-930.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Rigs\ZS-1.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="Rigs\CODAN-Comments.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Rigs\DX-77-Comments.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Rigs\FT-2K_Readme.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Rigs\IC-756 Pro ini comments.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ScoutBase\ScoutBase.CAT\ScoutBase.CAT.csproj">
<Project>{c9291203-b5d0-4179-888d-04bc670b158f}</Project>
<Name>ScoutBase.CAT</Name>
</ProjectReference>
<ProjectReference Include="..\ScoutBase\ScoutBase.Core\ScoutBase.Core.csproj">
<Project>{ee86e933-d883-4b18-80eb-0fba55ec67c6}</Project>
<Name>ScoutBase.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>

Wyświetl plik

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CATCheck
{
public class ComboBoxItem<T>
{
private string Text { get; set; }
public T Value { get; set; }
public override string ToString()
{
return Text;
}
public ComboBoxItem(string text, T value)
{
Text = text;
Value = value;
}
}
}

130
CATCheck/FrequencyOfToneDlg.Designer.cs wygenerowano 100644
Wyświetl plik

@ -0,0 +1,130 @@
namespace CATCheck
{
partial class FrequencyOfToneDlg
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.ud_Tone = new System.Windows.Forms.NumericUpDown();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.tb_Freq = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.ud_Tone)).BeginInit();
this.SuspendLayout();
//
// ud_Tone
//
this.ud_Tone.Location = new System.Drawing.Point(271, 12);
this.ud_Tone.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.ud_Tone.Name = "ud_Tone";
this.ud_Tone.Size = new System.Drawing.Size(81, 20);
this.ud_Tone.TabIndex = 0;
this.ud_Tone.Value = new decimal(new int[] {
1,
0,
0,
0});
this.ud_Tone.ValueChanged += new System.EventHandler(this.ud_Tone_ValueChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(35, 14);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(35, 13);
this.label1.TabIndex = 1;
this.label1.Text = "Tone:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(358, 14);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(20, 13);
this.label2.TabIndex = 2;
this.label2.Text = "Hz";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(35, 44);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(96, 13);
this.label3.TabIndex = 3;
this.label3.Text = "Frequency of tone:";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(358, 44);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(20, 13);
this.label4.TabIndex = 4;
this.label4.Text = "Hz";
//
// tb_Freq
//
this.tb_Freq.Location = new System.Drawing.Point(177, 41);
this.tb_Freq.Name = "tb_Freq";
this.tb_Freq.ReadOnly = true;
this.tb_Freq.Size = new System.Drawing.Size(175, 20);
this.tb_Freq.TabIndex = 5;
//
// FrequencyOfToneDlg
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(390, 90);
this.Controls.Add(this.tb_Freq);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.ud_Tone);
this.Name = "FrequencyOfToneDlg";
this.Text = "Calculate Frequency of Tone";
((System.ComponentModel.ISupportInitialize)(this.ud_Tone)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.NumericUpDown ud_Tone;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox tb_Freq;
}
}

Wyświetl plik

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ScoutBase.CAT;
namespace CATCheck
{
public partial class FrequencyOfToneDlg : Form
{
Rig Rig = null;
public FrequencyOfToneDlg(Rig rig)
{
Rig = rig;
InitializeComponent();
if ((Rig != null) && Rig.Online)
{
ud_Tone.Value = Rig.Pitch;
}
}
private void ud_Tone_ValueChanged(object sender, EventArgs e)
{
if ((Rig != null) && Rig.Online)
{
tb_Freq.Text = Rig.FrequencyOfTone((int)ud_Tone.Value).ToString();
}
else
{
tb_Freq.Text = "Rig not avalibale";
}
}
}
}

Wyświetl plik

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

Wyświetl plik

@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
namespace CATCheck
{
public static class Helpers
{
public static string GetEnumDescription(this Enum value)
{
Type type = value.GetType();
string name = Enum.GetName(type, value);
if (name != null)
{
FieldInfo field = type.GetField(name);
if (field != null)
{
DescriptionAttribute attr =
Attribute.GetCustomAttribute(field,
typeof(DescriptionAttribute)) as DescriptionAttribute;
if (attr != null)
{
return attr.Description;
}
}
}
return null;
}
public static void BindToEnum<TEnum>(this ComboBox comboBox)
{
var enumType = typeof(TEnum);
var fields = enumType.GetMembers()
.OfType<FieldInfo>()
.Where(p => p.MemberType == MemberTypes.Field)
.Where(p => p.IsLiteral)
.ToList();
var valuesByName = new Dictionary<string, object>();
foreach (var field in fields)
{
var descriptionAttribute = field.GetCustomAttributes(typeof(DescriptionAttribute), false)[0] as DescriptionAttribute;
var value = (int)field.GetValue(null);
var description = string.Empty;
if (!string.IsNullOrEmpty(descriptionAttribute?.Description))
{
description = descriptionAttribute.Description;
}
else
{
description = field.Name;
}
valuesByName[description] = value;
}
comboBox.DataSource = valuesByName.ToList();
comboBox.DisplayMember = "Key";
comboBox.ValueMember = "Value";
}
}
}

1320
CATCheck/MainDlg.Designer.cs wygenerowano 100644

Plik diff jest za duży Load Diff

1305
CATCheck/MainDlg.cs 100644

Plik diff jest za duży Load Diff

Wyświetl plik

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="tt_Set.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="mnu_Main.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>99, 17</value>
</metadata>
<metadata name="il_MessageStates.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>299, 17</value>
</metadata>
<data name="il_MessageStates.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACg
CwAAAk1TRnQBSQFMAgEBBAEAATABAAEwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ABQAH/wEL
CP8EAAH/AfABtQKRAbUB8gH/BAAB/wGZBSoDAwQqAQMBURAABv8C+Qj/AwAB8wH3AZEBvAH0AfMBBwGR
AfcB8wMAAfQBMQE3ATgDNwEwAUoBUgQ3ATgBUgQAAfQBvAFzAUUBRAFuAQcB9AQABP8L+QH/AgAB8wG1
AfMB/wL2AvQB9gHvAa4B8wIAAfYBeQFZAV4DOAEiAV8BbQH7AzgBNwFzAwAB8AFvASQDJQEkAQEBRAG8
AwAC/wEODPkB/wEAAfQBtQH0Av8BCQGGAYsBuwL2Ae8BkQH/AgABGwFZAl4BOAH7ATABIgExAzgB+wEw
ARwCAAEbAUwHJQEkAUQBvAIAAf8B3g35Av8BBwG8A/8B3QGmAYYB8wH/AfMB9AGuAbwCAAH/AXkDXgL7
ATcB+wI4AV4BNwEDAf8BAAH0AW8JJQEkAUQB9AEAA/8BAQv5Af8B9AG1BP8B8gKtAv8C9AEHAZEDAAEb
AVkB5QFeAfsBNwFEATcCOAH7ATABHAIAARoBRgImAv8CTQL/AiUBAQEHAQAF/wP5CP8B8wG1BP8B8QKt
AfQC/wH0AfABkQMAAf8BeQLlAV4BNwFmATcC+wE4ASoB9AIAAZMBRgImAXUE/wF1AiUBJAFuAQAG/wGw
AfkB/wFUBv8B8gG1BP8B8QKtAfMC/wH0AfIBkQQAARsBWQGgAV4BWAGiAVgC+wExAXMDAAFvBE0BvQL/
AZoBJgMlAUQBAAn/AlQBFwT/AfABtQT/AQkCrQH0Av8B9gHwAZEEAAH/AXkBoAHlAVEBXwFRAvsBAwHz
AwABbwHjAXUB4wFNAb0C/wGaASYDJQFFAQAD/wpUA/8B8wG1BP8B8wHxAfMD/wH2AQcBtQUAARsBWQHl
AUoBCgETAfsBMQFRBAABkwHjAnUBlAT/AXUBJgIlAXMBAAP/DFQC/wEJAfIE/wK1BP8BrgHzBQAB/wF5
AeUBUQEQAVEB+wEDAfIEAAEaAUwBdQGUAv8BlAF1Av8BJgElAUUBvAEAA/8MVAHzAQAB8wEJA/8B8wKt
AfQC/wG1Ae8B/wYAARsBWQHlAVgBXgE3AVEFAAH0AXQB4wGUAZoCdQJNAiYBJQFvAfQBAAP/ClQBVQL/
AQAB/wHxAQkE/wH0Av8BuwG1Af8HAAH/AVgDXgEDARoGAAEbAW8B4wF1AZQCdQFNASYBJQFMAfACAAn/
A1QE/wIAAf8B8gEJAhkB9AHzAbwBuwG8Af8JAAEaAVkB5QE3AVEB/wcAARsBdAFMA+MCTAFvARsDAAn/
AVQBlAX/BAAB9AHxA90B8gH0CwAB/wJYAXkBGwkAAfQBGgGTAm8BkwEaAfQEABD/MAABQgFNAT4HAAE+
AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4MAAfABDwIAAv8CAAHgAQcCAAHwAQ8CAAHAAQMCAAHg
AQcCAAGAAQEBgAEAAcABAwMAAQEBgAEAAYABAQMAAQEBwAEBAYABAQMAAQEBwAEBAYABAQMAAQEB4AED
AYABAQMAAQEB4AEDAYABAQMAAQEB8AEHAYABAQMAAQEB8AEHAYABAQIAAYABAQH4AQ8BgAEBAgABgAED
AfgBDwHAAQMCAAHAAQcB/AEPAeABBwIAAfABHwH8AR8B8AEPAgAG/ws=
</value>
</data>
<metadata name="ti_Main.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>208, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v7//v7+//7+/v/+/v7//v7+//7+/v/6+Pr/rqPU//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/EvOL/MSnc/yMb3f/+/v7//v7+//7+/v/+/v7//v7+//7+
/v/+/v7//v7+//7+/v/+/v7//v7+/+rl7/9kWtn/AwH0/wEA/f8TDeX/g3re/4N73v+De97/g3ve/4N7
3v+De97/r6bg//7+/v/+/v7//Pv8/5qR2v8VD+f/AQD9/wIA/f8CAP3/AQD9/wIA/f8CAP3/AgD9/wIA
/f8CAP3/AgD9/1ZM3v/+/v7/+PT4/zwyz/8BAP3/AgD9/wIA/f8CAP3/AgD9/wIA/f8CAP3/AgD9/wIA
/f8CAP3/AgD9/wIA/f9WTN7//v7+//7+/v/JwuT/Ni7b/wIA/f8CAP3/AgD9/wIA/f8CAP3/AgD9/wIA
/f8CAP3/AgD9/wIA/f8CAP3/Vkze//7+/v/+/v7//v7+//z6+/+Wjdn/Ew7n/wIA/f8CAP3/BgLx/yAX
3v8gF97/Hxbe/x8W3v8fFd3/HhXd/2xf0v/+/v7//v7+//7+/v/+/v7//v7+/+nk7/9iWNj/AwD0/yMb
3f/y9Pr/8PL5//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/8O7
4v9YS8f/zN7g/1DDN/+y1MP//f3+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/9Tl4P+w2Lf/sNi3/7DY
t/+w2Lf/sNi3/5LGov9E0A7/RNAP/2rCZv/Z5uj//v7+//7+/v/+/v7//v7+//7+/v+RzZb/RNAO/0TQ
Dv9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/Rcge/5HLmv/z9fv//v7+//7+/v/+/v7/kc2W/0TQ
Dv9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/Ur5F/+br9f/+/v7//v7+/5HN
lf9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/W8JN/8fd2P/+/v7//v7+//7+
/v+x1cD/dcpt/3XKbf92ym3/dspu/3bKbv9ow2L/RNAO/0TQDv9Ixif/n86r//n5/f/+/v7//v7+//7+
/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7/zd7g/0PNEv94xXj/5Ovx//7+/v/+/v7//v7+//7+
/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/+Pq8P/C2tP//v7+//7+/v/+/v7//v7+//7+
/v/+/v7/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA
rEEAAKxBAACsQQ==
</value>
</data>
</root>

Wyświetl plik

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace AirScoutDatabaseManager
namespace CATCheck
{
static class Program
{

Wyświetl plik

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("CATCheck")]
[assembly: AssemblyDescription("CAT intreface checker for Windows & LInux/Mono")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("DL2ALF")]
[assembly: AssemblyProduct("CATCheck")]
[assembly: AssemblyCopyright("Copyright © 2021 DL2ALF")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("0f0b27d0-7957-4ce0-9121-2c89746af136")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Wyświetl plik

@ -1,14 +1,14 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
// Laufzeitversion: 4.0.30319.42000
//
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
// der Code neu generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AirScoutDatabaseManager.Properties
namespace CATCheck.Properties
{
@ -44,7 +44,7 @@ namespace AirScoutDatabaseManager.Properties
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AirScoutDatabaseManager.Properties.Resources", typeof(Resources).Assembly);
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CATCheck.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;

Wyświetl plik

@ -0,0 +1,61 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace CATCheck.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string RigDefinitionsFolder {
get {
return ((string)(this["RigDefinitionsFolder"]));
}
set {
this["RigDefinitionsFolder"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::ScoutBase.CAT.RigSettings RigSettings {
get {
return ((global::ScoutBase.CAT.RigSettings)(this["RigSettings"]));
}
set {
this["RigSettings"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("llAll")]
public global::ScoutBase.CAT.LOGLEVEL LogVerbosity {
get {
return ((global::ScoutBase.CAT.LOGLEVEL)(this["LogVerbosity"]));
}
set {
this["LogVerbosity"] = value;
}
}
}
}

Wyświetl plik

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="CATCheck.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="RigDefinitionsFolder" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="RigSettings" Type="AirScout.CAT.RigSettings" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="LogVerbosity" Type="AirScout.CAT.LOGLEVEL" Scope="User">
<Value Profile="(Default)">llAll</Value>
</Setting>
</Settings>
</SettingsFile>

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 1.1 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 28 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.8 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.8 KiB

Some files were not shown because too many files have changed in this diff Show More