diff --git a/AeroWizard/AeroWizard/AeroWizard.csproj b/AeroWizard/AeroWizard/AeroWizard.csproj
index 8052163..0f6d659 100644
--- a/AeroWizard/AeroWizard/AeroWizard.csproj
+++ b/AeroWizard/AeroWizard/AeroWizard.csproj
@@ -96,8 +96,8 @@
..\..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll
-
- ..\..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll
+
+ ..\..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll
@@ -246,11 +246,11 @@
-
+
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}".
-
+
\ No newline at end of file
diff --git a/AeroWizard/AeroWizard/packages.config b/AeroWizard/AeroWizard/packages.config
index 2bc3b5b..05a4de8 100644
--- a/AeroWizard/AeroWizard/packages.config
+++ b/AeroWizard/AeroWizard/packages.config
@@ -1,5 +1,6 @@

-
+
+
\ No newline at end of file
diff --git a/AirScout.AircraftPositions/AirScout.AircraftPositions.csproj b/AirScout.AircraftPositions/AirScout.AircraftPositions.csproj
index 2769597..59486ef 100644
--- a/AirScout.AircraftPositions/AirScout.AircraftPositions.csproj
+++ b/AirScout.AircraftPositions/AirScout.AircraftPositions.csproj
@@ -37,8 +37,8 @@
-
- ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll
@@ -93,12 +93,12 @@
-
+
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}".
-
+
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;
diff --git a/AirScout.Aircrafts/Airline.cs b/AirScout.Aircrafts/Airline.cs
index 9cb2559..6f5d860 100644
--- a/AirScout.Aircrafts/Airline.cs
+++ b/AirScout.Aircrafts/Airline.cs
@@ -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;
diff --git a/AirScout.Aircrafts/PlaneInfoCache.cs b/AirScout.Aircrafts/PlaneInfoCache.cs
index 15c1acf..7e7d8c0 100644
--- a/AirScout.Aircrafts/PlaneInfoCache.cs
+++ b/AirScout.Aircrafts/PlaneInfoCache.cs
@@ -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 GetAll(DateTime at, int ttl)
{
+ string filename = "positions.csv";
+ string call = "CSN464";
+
List l = new List();
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;
diff --git a/AirScout.Aircrafts/Properties/AssemblyInfo.cs b/AirScout.Aircrafts/Properties/AssemblyInfo.cs
index c38a19b..f7c80d9 100644
--- a/AirScout.Aircrafts/Properties/AssemblyInfo.cs
+++ b/AirScout.Aircrafts/Properties/AssemblyInfo.cs
@@ -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")]
diff --git a/AirScout.Aircrafts/packages.config b/AirScout.Aircrafts/packages.config
index 2bc3b5b..05a4de8 100644
--- a/AirScout.Aircrafts/packages.config
+++ b/AirScout.Aircrafts/packages.config
@@ -1,5 +1,6 @@

-
+
+
\ No newline at end of file
diff --git a/AirScout.CAT/AirScout.CAT.csproj b/AirScout.CAT/AirScout.CAT.csproj
new file mode 100644
index 0000000..37c1229
--- /dev/null
+++ b/AirScout.CAT/AirScout.CAT.csproj
@@ -0,0 +1,71 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {FFDEC390-7BBC-4DEC-9826-1DD04279F3FA}
+ Library
+ Properties
+ AirScout.CAT
+ AirScout.CAT
+ v4.0
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Settings.settings
+
+
+
+
+
+
+
+ PublicSettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+ {c9291203-b5d0-4179-888d-04bc670b158f}
+ ScoutBase.CAT
+
+
+
+
\ No newline at end of file
diff --git a/AirScout.CAT/CATWorker.cs b/AirScout.CAT/CATWorker.cs
new file mode 100644
index 0000000..39f91fb
--- /dev/null
+++ b/AirScout.CAT/CATWorker.cs
@@ -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 SupportedRigs()
+ {
+ List rigs = new List();
+ // try to get external OmniRig supported rigs
+ try
+ {
+ List 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 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 rigs = new List();
+ 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);
+ }
+ }
+}
diff --git a/AirScout.CAT/Enums.cs b/AirScout.CAT/Enums.cs
new file mode 100644
index 0000000..7fe1a1b
--- /dev/null
+++ b/AirScout.CAT/Enums.cs
@@ -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
+ }
+
+
+}
diff --git a/AirScout.CAT/ExtOmniRig.cs b/AirScout.CAT/ExtOmniRig.cs
new file mode 100644
index 0000000..d73003c
--- /dev/null
+++ b/AirScout.CAT/ExtOmniRig.cs
@@ -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;
+
+ }
+
+ }
+
+}
diff --git a/AirScout.CAT/IRig.cs b/AirScout.CAT/IRig.cs
new file mode 100644
index 0000000..be059b5
--- /dev/null
+++ b/AirScout.CAT/IRig.cs
@@ -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();
+
+ }
+}
diff --git a/AirScout.CAT/OmniRigX.cs b/AirScout.CAT/OmniRigX.cs
new file mode 100644
index 0000000..006ae3f
--- /dev/null
+++ b/AirScout.CAT/OmniRigX.cs
@@ -0,0 +1,1360 @@
+using Microsoft.Win32;
+using ScoutBase.CAT;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Runtime.Remoting.Channels;
+using System.Text;
+
+namespace AirScout.CAT
+{
+ // OmniRig enums
+ // hopefully constant over all versions
+
+ public enum OMNIRIGSTATUS
+ {
+ ST_NOTCONFIGURED = 0x00000000,
+ ST_DISABLED = 0x00000001,
+ ST_PORTBUSY = 0x00000002,
+ ST_NOTRESPONDING = 0x00000003,
+ ST_ONLINE = 0x00000004
+ }
+
+ public enum OMNIRIGPARAM
+ {
+ PM_UNKNOWN = 0x00000001,
+ PM_FREQ = 0x00000002,
+ PM_FREQA = 0x00000004,
+ PM_FREQB = 0x00000008,
+ PM_PITCH = 0x00000010,
+ PM_RITOFFSET = 0x00000020,
+ PM_RIT0 = 0x00000040,
+ PM_VFOAA = 0x00000080,
+ PM_VFOAB = 0x00000100,
+ PM_VFOBA = 0x00000200,
+ PM_VFOBB = 0x00000400,
+ PM_VFOA = 0x00000800,
+ PM_VFOB = 0x00001000,
+ PM_VFOEQUAL = 0x00002000,
+ PM_VFOSWAP = 0x00004000,
+ PM_SPLITON = 0x00008000,
+ PM_SPLITOFF = 0x00010000,
+ PM_RITON = 0x00020000,
+ PM_RITOFF = 0x00040000,
+ PM_XITON = 0x00080000,
+ PM_XITOFF = 0x00100000,
+ PM_RX = 0x00200000,
+ PM_TX = 0x00400000,
+ PM_CW_U = 0x00800000,
+ PM_CW_L = 0x01000000,
+ PM_SSB_U = 0x02000000,
+ PM_SSB_L = 0x04000000,
+ PM_DIG_U = 0x08000000,
+ PM_DIG_L = 0x10000000,
+ PM_AM = 0x20000000,
+ PM_FM = 0x40000000
+
+ }
+
+
+ // represents a rig connected via OmniRig ActiveX interface
+ public class OmniRigX : IRig
+ {
+ // holds the OmniRig ActiveX object
+ private static dynamic OmniRigEngine = null;
+ private static string OmniRigVersion = "";
+
+ // rig type constants
+ private static readonly string RigType1 = "[OmniRig] Rig 1";
+ private static readonly string RigType2 = "[OmniRig] Rig 2";
+ private static readonly string RigType3 = "[OmniRig] Rig 3";
+ private static readonly string RigType4 = "[OmniRig] Rig 4";
+
+ // rig
+ 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;
+
+ private static void StartOmniRig()
+ {
+ if (OmniRigEngine == null)
+ {
+ try
+ {
+ // try to load recent version of OmniRig
+ // we want OmniRig interface V2.1
+ Type COMType = System.Type.GetTypeFromProgID("OmniRig.OmniRigX");
+ OmniRigVersion = "OmniRig V2.x";
+
+ // Leagcy support: try to load OmniRig V1.19 instead explicit, if loading of recent version fails
+ if (COMType == null)
+ {
+ COMType = System.Type.GetTypeFromCLSID(new Guid("4FE359C5-A58F-459D-BE95-CA559FB4F270"));
+ OmniRigVersion = "OmniRig V1.19";
+ }
+
+ // try to create COM-object dynamically
+ if (COMType != null)
+ {
+ OmniRigEngine = Activator.CreateInstance(COMType);
+ }
+ else
+ {
+ OmniRigEngine = null;
+ throw new NotSupportedException("OmniRig is not installed! or has unsupported version!");
+ }
+
+ // check supported versions
+ if (OmniRigEngine.InterfaceVersion != 0x110)
+ {
+ OmniRigVersion = "OmniRig V1.19";
+ }
+ else if ((OmniRigEngine.InterfaceVersion < 0x210) && (OmniRigEngine.InterfaceVersion > 0x299))
+ {
+ OmniRigVersion = "OmniRig V2.x";
+ }
+ else
+ {
+ OmniRigEngine = null;
+ throw new NotSupportedException("OmniRig is not installed but has unsupported version:" + OmniRigEngine.InterfaceVersion.ToString());
+ }
+ }
+ catch (Exception ex)
+ {
+ OmniRigEngine = null;
+ throw new NotSupportedException("Error while initializing OmniRig: " + ex.ToString());
+ }
+
+
+ }
+ }
+
+ // ************************ Interface *********************************
+
+ RigSettings IRig.Settings
+ {
+ get
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ // refresh Settings with values from OmniRig
+ // we can set only rig model as we don't get more info
+
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ Settings.Model = OmniRigX.OmniRigEngine.Rig1.RigType;
+ else if (Settings.Type == OmniRigX.RigType2)
+ Settings.Model = OmniRigX.OmniRigEngine.Rig2.RigType;
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ Settings.Model = OmniRigX.OmniRigEngine.Rig3.RigType;
+ else if (Settings.Type == OmniRigX.RigType4)
+ Settings.Model = OmniRigX.OmniRigEngine.Rig4.RigType;
+ }
+
+ // return the current settings
+ return Settings;
+ }
+ set
+ {
+ // update settings
+ Settings = value;
+
+ // we can only transfer rig model to OmniRig
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ OmniRigX.OmniRigEngine.Rig1.RigType = Settings.Model;
+ else if (Settings.Type == OmniRigX.RigType2)
+ OmniRigX.OmniRigEngine.Rig2.RigType = Settings.Model;
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ OmniRigX.OmniRigEngine.Rig3.RigType = Settings.Model;
+ else if (Settings.Type == OmniRigX.RigType4)
+ OmniRigX.OmniRigEngine.Rig4.RigType = Settings.Model;
+ }
+
+ }
+ }
+
+ CATENGINE IRig.CatEngine
+ {
+ get
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+ return CATENGINE.OMNIRIGX;
+ }
+ }
+
+ string IRig.CatVersion
+ {
+ get
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+ return OmniRigVersion;
+ }
+ }
+
+ private bool Is2x()
+ {
+ try
+ {
+ return (OmniRigEngine.InterfaceVersion < 0x210) && (OmniRigEngine.InterfaceVersion > 0x299);
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return false;
+ }
+
+ private RIGSTATUS IntGetRigStatus (dynamic rig)
+ {
+ // translate result to RIGSTATUS values
+ switch ((OMNIRIGSTATUS)rig.Status)
+ {
+ case OMNIRIGSTATUS.ST_PORTBUSY: return RIGSTATUS.NOPORT;
+ case OMNIRIGSTATUS.ST_NOTCONFIGURED: return RIGSTATUS.NORIG;
+ case OMNIRIGSTATUS.ST_DISABLED: return RIGSTATUS.NORIG;
+ case OMNIRIGSTATUS.ST_NOTRESPONDING: return RIGSTATUS.OFFLINE;
+ }
+
+ // rig is online
+ // check for rig capabilities here
+ if (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_A)
+ {
+ // rig must support at least split operation
+ if ((!rig.IsParamReadable(OMNIRIGPARAM.PM_SPLITOFF)) ||
+ (!rig.IsParamReadable(OMNIRIGPARAM.PM_SPLITON)) ||
+ (!rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITOFF)) ||
+ (!rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITON)) ||
+ (!rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOEQUAL))
+ )
+ {
+ return RIGSTATUS.NOTSUITABLE;
+ }
+ }
+
+ // return online
+ return RIGSTATUS.ONLINE;
+ }
+
+ public RIGSTATUS GetStatus()
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ // return NOCAT if still null
+ if (OmniRigEngine == null)
+ return RIGSTATUS.NOCAT;
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntGetRigStatus(OmniRigX.OmniRigEngine.Rig1);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntGetRigStatus(OmniRigX.OmniRigEngine.Rig2);
+ }
+
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntGetRigStatus(OmniRigX.OmniRigEngine.Rig3);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntGetRigStatus(OmniRigX.OmniRigEngine.Rig4);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+ return RIGSTATUS.NONE;
+ }
+
+ private RIGMODE IntGetMode (dynamic rig)
+ {
+ switch ((OMNIRIGPARAM)rig.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_DIG_L: return RIGMODE.DIG;
+ case OMNIRIGPARAM.PM_DIG_U: return RIGMODE.DIG_R;
+ case OMNIRIGPARAM.PM_AM: return RIGMODE.AM;
+ case OMNIRIGPARAM.PM_FM: return RIGMODE.FM;
+ }
+
+ return RIGMODE.NONE;
+ }
+
+ public RIGMODE GetMode()
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntGetMode(OmniRigX.OmniRigEngine.Rig1);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntGetMode(OmniRigX.OmniRigEngine.Rig2);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntGetMode(OmniRigX.OmniRigEngine.Rig3);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntGetMode(OmniRigX.OmniRigEngine.Rig4);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return RIGMODE.NONE;
+ }
+
+ public RIGSPLIT IntGetSplit(dynamic rig)
+ {
+ switch ((OMNIRIGPARAM)rig.Split)
+ {
+ case OMNIRIGPARAM.PM_SPLITOFF: return RIGSPLIT.SPLITOFF;
+ case OMNIRIGPARAM.PM_SPLITON: return RIGSPLIT.SPLITON;
+ }
+
+ return RIGSPLIT.NONE;
+ }
+
+ public RIGSPLIT GetSplit()
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntGetSplit(OmniRigX.OmniRigEngine.Rig1);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntGetSplit(OmniRigX.OmniRigEngine.Rig2);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntGetSplit(OmniRigX.OmniRigEngine.Rig3);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntGetSplit(OmniRigX.OmniRigEngine.Rig4);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return RIGSPLIT.NONE;
+
+ }
+
+ public RIGRIT IntGetRit (dynamic rig)
+ {
+ switch ((OMNIRIGPARAM)rig.Rit)
+ {
+ case OMNIRIGPARAM.PM_RITOFF: return RIGRIT.RITOFF;
+ case OMNIRIGPARAM.PM_RITON: return RIGRIT.RITON;
+ }
+
+ return RIGRIT.NONE;
+ }
+
+ public RIGRIT GetRit()
+ {
+
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntGetRit(OmniRigX.OmniRigEngine.Rig1);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntGetRit(OmniRigX.OmniRigEngine.Rig2);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntGetRit(OmniRigX.OmniRigEngine.Rig3);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntGetRit(OmniRigX.OmniRigEngine.Rig4);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return RIGRIT.NONE;
+
+ }
+
+ public RIGVFO IntGetVfo(dynamic rig)
+ {
+ switch ((OMNIRIGPARAM)rig.Vfo)
+ {
+ case OMNIRIGPARAM.PM_VFOA: return RIGVFO.A;
+ case OMNIRIGPARAM.PM_VFOB: return RIGVFO.B;
+ }
+
+ return RIGVFO.NONE;
+ }
+
+ public RIGVFO GetVfo()
+ {
+
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntGetVfo(OmniRigX.OmniRigEngine.Rig1);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntGetVfo(OmniRigX.OmniRigEngine.Rig2);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntGetVfo(OmniRigX.OmniRigEngine.Rig3);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntGetVfo(OmniRigX.OmniRigEngine.Rig4);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return RIGVFO.NONE;
+
+ }
+
+ private long IntGetRxFrequency(dynamic rig)
+ {
+ if ((OMNIRIGPARAM)rig.Split == OMNIRIGPARAM.PM_SPLITOFF)
+ {
+ // check if pmFreq is readable --> return Freq
+ if (rig.Freq > 0)
+ return rig.Freq;
+ // check if pmFreqA is readable --> return FreqA instead
+ if (rig.FreqA > 0)
+ return rig.FreqA;
+ }
+ else
+ {
+ // check if pmFreqA is readable --> return FreqA instead
+ if (rig.FreqA > 0)
+ return rig.FreqA;
+ }
+
+ return 0;
+ }
+
+ public long GetRxFrequency()
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntGetRxFrequency(OmniRigX.OmniRigEngine.Rig1);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntGetRxFrequency(OmniRigX.OmniRigEngine.Rig2);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntGetRxFrequency(OmniRigX.OmniRigEngine.Rig3);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntGetRxFrequency(OmniRigX.OmniRigEngine.Rig4);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return 0;
+ }
+
+ private int IntGetTxFrequency(dynamic rig)
+ {
+ if ((OMNIRIGPARAM)rig.Split == OMNIRIGPARAM.PM_SPLITOFF)
+ {
+ // check if pmFreq is readable --> return Freq
+ if (rig.Freq > 0)
+ return rig.Freq;
+ // check if pmFreqA is readable --> return FreqA instead
+ if (rig.FreqA > 0)
+ return rig.FreqA;
+ }
+ else
+ {
+ // check if pmFreqB is readable --> return FreqB instead
+ if (rig.FreqB > 0)
+ return rig.FreqB;
+ }
+
+ return 0;
+ }
+
+ public long GetTxFrequency()
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntGetTxFrequency(OmniRigX.OmniRigEngine.Rig1);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntGetTxFrequency(OmniRigX.OmniRigEngine.Rig2);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntGetTxFrequency(OmniRigX.OmniRigEngine.Rig3);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntGetTxFrequency(OmniRigX.OmniRigEngine.Rig4);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return 0;
+ }
+
+ // ********************************************************************
+
+ private bool IntSetMode(dynamic rig, RIGMODE mode)
+ {
+ switch (mode)
+ {
+ case RIGMODE.CW: rig.Mode = OMNIRIGPARAM.PM_CW_L; return true;
+ case RIGMODE.CW_R: rig.Mode = OMNIRIGPARAM.PM_CW_U; return true;
+ case RIGMODE.LSB: rig.Mode = OMNIRIGPARAM.PM_SSB_L; return true;
+ case RIGMODE.USB: rig.Mode = OMNIRIGPARAM.PM_SSB_U; return true;
+ case RIGMODE.DIG: rig.Mode = OMNIRIGPARAM.PM_DIG_L; return true;
+ case RIGMODE.DIG_R: rig.Mode = OMNIRIGPARAM.PM_DIG_U; return true;
+ case RIGMODE.AM: rig.Mode = OMNIRIGPARAM.PM_AM; return true;
+ case RIGMODE.FM: rig.Mode = OMNIRIGPARAM.PM_FM; return true;
+ }
+
+ return false;
+ }
+
+ public bool SetMode(RIGMODE mode)
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntSetMode(OmniRigX.OmniRigEngine.Rig1, mode);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntSetMode(OmniRigX.OmniRigEngine.Rig2, mode);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntSetMode(OmniRigX.OmniRigEngine.Rig3, mode);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntSetMode(OmniRigX.OmniRigEngine.Rig4, mode);
+ }
+ }
+
+ }
+ catch (Exception ex)
+ {
+ }
+
+ return false;
+ }
+
+ private bool IntSetSplit(dynamic rig, RIGSPLIT split)
+ {
+ switch (split)
+ {
+ case RIGSPLIT.SPLITOFF: rig.Split = OMNIRIGPARAM.PM_SPLITOFF; return true;
+ case RIGSPLIT.SPLITON: rig.Split = OMNIRIGPARAM.PM_SPLITON; return true;
+ }
+
+ return false;
+ }
+
+ public bool SetSplit (RIGSPLIT split)
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntSetSplit(OmniRigX.OmniRigEngine.Rig1, split);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntSetSplit(OmniRigX.OmniRigEngine.Rig2, split);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntSetSplit(OmniRigX.OmniRigEngine.Rig3, split);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntSetSplit(OmniRigX.OmniRigEngine.Rig4, split);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+
+ return false;
+ }
+
+ private bool IntSetRit(dynamic rig, RIGRIT rit)
+ {
+ switch (rit)
+ {
+ case RIGRIT.RITOFF: rig.Rit = OMNIRIGPARAM.PM_RITOFF; return true;
+ case RIGRIT.RITON: rig.Rit = OMNIRIGPARAM.PM_RITON; return true;
+ }
+
+ return false;
+ }
+
+ public bool SetRit(RIGRIT rit)
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntSetRit(OmniRigX.OmniRigEngine.Rig1, rit);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntSetRit(OmniRigX.OmniRigEngine.Rig2, rit);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntSetRit(OmniRigX.OmniRigEngine.Rig3, rit);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntSetRit(OmniRigX.OmniRigEngine.Rig4, rit);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+
+ return false;
+ }
+
+ private bool IntSetVfo(dynamic rig, RIGVFO vfo)
+ {
+ switch (vfo)
+ {
+ case RIGVFO.A: rig.Vfo = OMNIRIGPARAM.PM_VFOA; return true;
+ case RIGVFO.B: rig.Vfo = OMNIRIGPARAM.PM_VFOB; return true;
+ }
+
+ return false;
+ }
+
+ public bool SetVfo(RIGVFO vfo)
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntSetVfo(OmniRigX.OmniRigEngine.Rig1, vfo);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntSetVfo(OmniRigX.OmniRigEngine.Rig2, vfo);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntSetVfo(OmniRigX.OmniRigEngine.Rig3, vfo);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntSetVfo(OmniRigX.OmniRigEngine.Rig4, vfo);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+
+ return false;
+ }
+
+ private bool IntSetRxFrequency(dynamic rig, long rx)
+ {
+ if ((OMNIRIGPARAM)rig.Split == OMNIRIGPARAM.PM_SPLITOFF)
+ {
+ // check if pmFreq is writeable --> set Freq
+ if (rig.IsWritable(OMNIRIGPARAM.PM_FREQ))
+ {
+ rig.Freq = (int)rx;
+ return true;
+ }
+ // check if pmFreqA is writeable --> set FreqA instead
+ if (rig.IsWritable(OMNIRIGPARAM.PM_FREQA))
+ {
+ rig.FreqA = (int)rx;
+ return true;
+ }
+ }
+ else
+ {
+ // check if pmFreqA is writeable --> set FreqA instead
+ if (rig.IsWritable(OMNIRIGPARAM.PM_FREQA))
+ {
+ rig.FreqA = (int)rx;
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public bool SetRxFrequency(long rx)
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ // check bounds as OmniRig ActiveX only supperts 32bit values
+ if ((rx < Int32.MinValue) || (rx > int.MaxValue))
+ return false;
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntSetRxFrequency(OmniRigX.OmniRigEngine.Rig1, rx);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntSetRxFrequency(OmniRigX.OmniRigEngine.Rig2, rx);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntSetRxFrequency(OmniRigX.OmniRigEngine.Rig3, rx);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntSetRxFrequency(OmniRigX.OmniRigEngine.Rig4, rx);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return false;
+ }
+
+ private bool IntSetTxFrequency(dynamic rig, long tx)
+ {
+ if ((OMNIRIGPARAM)rig.Split == OMNIRIGPARAM.PM_SPLITOFF)
+ {
+ // check if pmFreq is writeable --> set Freq
+ if (rig.IsWritable(OMNIRIGPARAM.PM_FREQ))
+ {
+ rig.Freq = (int)tx;
+ return true;
+ }
+ // check if pmFreqA is writeable --> set FreqA instead
+ if (rig.IsWritable(OMNIRIGPARAM.PM_FREQA))
+ {
+ rig.FreqA = (int)tx;
+ return true;
+ }
+ }
+ else
+ {
+ // check if pmFreqB is writeable --> set FreqB instead
+ if (rig.IsWritable(OMNIRIGPARAM.PM_FREQB))
+ {
+ rig.FreqB = (int)tx;
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public bool SetTxFrequency(long tx)
+ {
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ // check bounds as OmniRig ActiveX only supperts 32bit values
+ if ((tx < Int32.MinValue) || (tx > int.MaxValue))
+ return false;
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntSetTxFrequency(OmniRigX.OmniRigEngine.Rig1, tx);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntSetTxFrequency(OmniRigX.OmniRigEngine.Rig2, tx);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntSetTxFrequency(OmniRigX.OmniRigEngine.Rig3, tx);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntSetTxFrequency(OmniRigX.OmniRigEngine.Rig4, tx);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return false;
+ }
+
+ public bool IntSetSimplexMode(dynamic rig, long freq, RIGMODE mode)
+ {
+ // set frequency and switch split off
+ try
+ {
+ if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOAA))
+ {
+ rig.Vfo = OMNIRIGPARAM.PM_VFOAA;
+ rig.FreqA = freq;
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITOFF))
+ {
+ rig.Vfo = OMNIRIGPARAM.PM_VFOA;
+ rig.FreqA = freq;
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOB))
+ {
+ rig.Vfo = OMNIRIGPARAM.PM_VFOB;
+ rig.Freq = freq;
+ rig.Vfo = OMNIRIGPARAM.PM_VFOA;
+ rig.Freq = freq;
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOEQUAL))
+ {
+ rig.Freq = freq;
+ rig.Vfo = OMNIRIGPARAM.PM_VFOEQUAL;
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOSWAP))
+ {
+ rig.Vfo = OMNIRIGPARAM.PM_VFOSWAP;
+ rig.Freq = freq;
+ rig.Vfo = OMNIRIGPARAM.PM_VFOSWAP;
+ rig.Freq = freq;
+ }
+ // Added by RA6UAZ for Icom Marine Radio NMEA Command
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && !rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQB))
+ {
+ rig.Freq = freq;
+ rig.FreqB = freq;
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ))
+ {
+ rig.Freq = freq;
+ }
+
+ if (rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITOFF))
+ {
+ rig.Split = OMNIRIGPARAM.PM_SPLITOFF;
+ }
+
+ // simply set mode on current VFO
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ }
+
+ return true;
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return false;
+ }
+
+ public bool SetSimplexMode(long freq, RIGMODE mode = RIGMODE.NONE)
+ {
+
+ // we cannot use the "buil-in" function from OmniRig as it affects the Rit/Xit
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ // check bounds as OmniRig ActiveX only supperts 32bit values
+ if ((freq < Int32.MinValue) || (freq > int.MaxValue))
+ return false;
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntSetSimplexMode(OmniRigX.OmniRigEngine.Rig1, freq, mode);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntSetSimplexMode(OmniRigX.OmniRigEngine.Rig2, freq, mode);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntSetSimplexMode(OmniRigX.OmniRigEngine.Rig3, freq, mode);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntSetSimplexMode(OmniRigX.OmniRigEngine.Rig4, freq, mode);
+ }
+ }
+
+ return true;
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return false;
+ }
+
+ private bool CanWriteMode(dynamic rig)
+ {
+ // check if modes are writable
+ if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_CW_L))
+ return false;
+ if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_CW_U))
+ return false;
+ if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_SSB_L))
+ return false;
+ if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_SSB_U))
+ return false;
+ if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_DIG_L))
+ return false;
+ if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_DIG_U))
+ return false;
+ if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_AM))
+ return false;
+ if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_FM))
+ return false;
+
+ return true;
+ }
+
+ private bool IntSetSplitMode(dynamic rig, 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 (rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOEQUAL))
+ {
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ rig.Vfo = OMNIRIGPARAM.PM_VFOEQUAL;
+ }
+ }
+
+ if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQB) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOAB))
+ {
+ // TS-570
+ rig.Vfo = OMNIRIGPARAM.PM_VFOAB;
+ rig.FreqA = rxfreq;
+ rig.FreqB = txfreq;
+ // try to set mode once for both VFOs
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ }
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOEQUAL))
+ {
+ // IC-746
+ rig.Freq = txfreq;
+ // should work fine for both VFOs because of VfoEqual
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ }
+ rig.Vfo = OMNIRIGPARAM.PM_VFOEQUAL;
+ rig.Freq = rxfreq;
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOB) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA))
+ {
+ // FT-100D
+ rig.Vfo = OMNIRIGPARAM.PM_VFOB;
+ rig.Freq = txfreq;
+ // should work fine for both VFOs because of switching to both VFOs
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ }
+ rig.Vfo = OMNIRIGPARAM.PM_VFOA;
+ rig.Freq = rxfreq;
+ // should work fine for both VFOs because of switching to both VFOs
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ }
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOSWAP))
+ {
+ // FT-817 ?
+ rig.Vfo = OMNIRIGPARAM.PM_VFOSWAP;
+ rig.Freq = txfreq;
+ // should work fine for both VFOs because of VfoSwap
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ }
+ rig.Vfo = OMNIRIGPARAM.PM_VFOSWAP;
+ rig.Freq = rxfreq;
+ // should work fine for both VFOs because of VfoSwap
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ }
+ }
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQB) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA))
+ {
+ //FT-1000 MP, IC-7610
+ rig.Vfo = OMNIRIGPARAM.PM_VFOA;
+ rig.FreqA = rxfreq;
+ rig.FreqB = txfreq;
+ // can set only mode on VFO A
+ if (CanWriteMode(rig) && (mode != RIGMODE.NONE))
+ {
+ rig.Mode = mode;
+ }
+
+ }
+ // Added by RA6UAZ for Icom Marine Radio NMEA Command
+ else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && !rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQB))
+ {
+ rig.Freq = rxfreq;
+ rig.FreqB = txfreq;
+ }
+
+ if (rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITON))
+ {
+ rig.Split = OMNIRIGPARAM.PM_SPLITON;
+ }
+
+ return true;
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+ return false;
+ }
+
+ public bool SetSplitMode(long rxfreq, long txfreq, RIGMODE mode = RIGMODE.NONE)
+ {
+ // we cannot use the "buil-in" split function from OmniRig as it affects the Rit/Xit
+ if (OmniRigEngine == null)
+ StartOmniRig();
+
+ // check bounds as OmniRig ActiveX only supperts 32bit values
+ if ((rxfreq < Int32.MinValue) || (rxfreq > int.MaxValue) || (txfreq < Int32.MinValue) || (txfreq > int.MaxValue))
+ return false;
+
+ try
+ {
+ // V1.19
+ if (Settings.Type == OmniRigX.RigType1)
+ {
+ return IntSetSplitMode(OmniRigX.OmniRigEngine.Rig1, rxfreq, txfreq, mode);
+ }
+ else if (Settings.Type == OmniRigX.RigType2)
+ {
+ return IntSetSplitMode(OmniRigX.OmniRigEngine.Rig2, rxfreq, txfreq, mode);
+ }
+ // V2.x
+ if (Is2x())
+ {
+ if (Settings.Type == OmniRigX.RigType3)
+ {
+ return IntSetSplitMode(OmniRigX.OmniRigEngine.Rig3, rxfreq, txfreq, mode);
+ }
+ else if (Settings.Type == OmniRigX.RigType4)
+ {
+ return IntSetSplitMode(OmniRigX.OmniRigEngine.Rig4, rxfreq, txfreq, mode);
+ }
+ }
+
+ 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;
+ }
+
+
+ // provides a list of supported rigs
+ public static List SupportedRigs()
+ {
+ List l = new List();
+
+ // try get OmniRig working
+ if (OmniRigEngine == null)
+ {
+ StartOmniRig();
+ }
+
+ if (OmniRigEngine != null)
+ {
+ // setup OmniRig virtual Rigs according to OmniRig version
+
+ // legacy V1.19 --> supports only 2 rigs
+ if (OmniRigEngine.InterfaceVersion == 0x101)
+ {
+ SupportedRig rig = new SupportedRig();
+ rig.Type = OmniRigX.RigType1;
+ rig.Model = OmniRigX.OmniRigEngine.Rig1.RigType;
+ rig.CATEngine = CATENGINE.OMNIRIGX;
+ l.Add(rig);
+ rig = new SupportedRig();
+ rig.Type = OmniRigX.RigType2;
+ rig.Model = OmniRigX.OmniRigEngine.Rig2.RigType;
+ rig.CATEngine = CATENGINE.OMNIRIGX;
+ l.Add(rig);
+ }
+ // version 2.xx --> supports 4 rigs
+ else if ((OmniRigEngine.InterfaceVersion < 0x210) && (OmniRigEngine.InterfaceVersion > 0x299))
+ {
+ SupportedRig rig = new SupportedRig();
+ rig.Type = OmniRigX.RigType1;
+ rig.Model = OmniRigX.OmniRigEngine.Rig1.RigType;
+ rig.CATEngine = CATENGINE.OMNIRIGX;
+ l.Add(rig);
+ rig = new SupportedRig();
+ rig.Type = OmniRigX.RigType2;
+ rig.Model = OmniRigX.OmniRigEngine.Rig2.RigType;
+ rig.CATEngine = CATENGINE.OMNIRIGX;
+ l.Add(rig);
+ rig = new SupportedRig();
+ rig.Type = OmniRigX.RigType3;
+ rig.Model = OmniRigX.OmniRigEngine.Rig3.RigType;
+ rig.CATEngine = CATENGINE.OMNIRIGX;
+ l.Add(rig);
+ rig = new SupportedRig();
+ rig.Type = OmniRigX.RigType4;
+ rig.Model = OmniRigX.OmniRigEngine.Rig4.RigType;
+ rig.CATEngine = CATENGINE.OMNIRIGX;
+ l.Add(rig);
+ }
+
+ }
+
+ // return list of rigs
+ return l;
+ }
+
+
+ }
+}
diff --git a/AirScout.CAT/Properties/AssemblyInfo.cs b/AirScout.CAT/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..eecb059
--- /dev/null
+++ b/AirScout.CAT/Properties/AssemblyInfo.cs
@@ -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")]
diff --git a/AirScout.CAT/Properties/Settings.Designer.cs b/AirScout.CAT/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..ba9d571
--- /dev/null
+++ b/AirScout.CAT/Properties/Settings.Designer.cs
@@ -0,0 +1,182 @@
+//------------------------------------------------------------------------------
+//
+// 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.
+//
+//------------------------------------------------------------------------------
+
+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;
+ }
+ }
+ }
+}
diff --git a/AirScout.CAT/Properties/Settings.settings b/AirScout.CAT/Properties/Settings.settings
new file mode 100644
index 0000000..b66b028
--- /dev/null
+++ b/AirScout.CAT/Properties/Settings.settings
@@ -0,0 +1,45 @@
+
+
+
+
+
+ False
+
+
+ 500
+
+
+ 500
+
+
+
+
+
+
+
+
+ 9600
+
+
+ 8
+
+
+ NONE
+
+
+ ONE
+
+
+ LOW
+
+
+ LOW
+
+
+ 100
+
+
+ 500
+
+
+
\ No newline at end of file
diff --git a/AirScout.CAT/ScoutBaseRig.cs b/AirScout.CAT/ScoutBaseRig.cs
new file mode 100644
index 0000000..9b7fcf6
--- /dev/null
+++ b/AirScout.CAT/ScoutBaseRig.cs
@@ -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 SupportedRigs()
+ {
+ List rigs = new List();
+ List 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;
+ }
+ }
+}
diff --git a/AirScout.CAT/SupportedRig.cs b/AirScout.CAT/SupportedRig.cs
new file mode 100644
index 0000000..2bcb938
--- /dev/null
+++ b/AirScout.CAT/SupportedRig.cs
@@ -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;
+ }
+}
diff --git a/AirScout.CAT/app.config b/AirScout.CAT/app.config
new file mode 100644
index 0000000..fb57df7
--- /dev/null
+++ b/AirScout.CAT/app.config
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+ False
+
+
+ 500
+
+
+ 500
+
+
+
+
+
+
+
+
+ 9600
+
+
+ 8
+
+
+ NONE
+
+
+ ONE
+
+
+ LOW
+
+
+ LOW
+
+
+ 100
+
+
+ 500
+
+
+
+
\ No newline at end of file
diff --git a/AirScout.Core/AirScout.Core.csproj b/AirScout.Core/AirScout.Core.csproj
index 92d4100..450865a 100644
--- a/AirScout.Core/AirScout.Core.csproj
+++ b/AirScout.Core/AirScout.Core.csproj
@@ -37,8 +37,8 @@
-
- ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll
@@ -73,12 +73,12 @@
-
+
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}".
-
+
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;
diff --git a/AirScout.PlaneFeeds/AirScout.PlaneFeeds.csproj b/AirScout.PlaneFeeds/AirScout.PlaneFeeds.csproj
index a9f67a6..3f5037a 100644
--- a/AirScout.PlaneFeeds/AirScout.PlaneFeeds.csproj
+++ b/AirScout.PlaneFeeds/AirScout.PlaneFeeds.csproj
@@ -59,8 +59,8 @@
-
- ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll
@@ -123,12 +123,12 @@
-
+
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}".
-
+
try to find one in the database
+ if (String.IsNullOrEmpty(dxlocstr))
+ {
+ LocationDesignator ld = StationData.Database.LocationFindLastRecent(dxcallstr);
+ if (ld != null)
+ dxlocstr = ld.Loc;
+ }
+ // skip when loc is still invalid
+ if (!MaidenheadLocator.Check(dxlocstr))
+ continue;
+
+ // skip own callsign
+ if (dxcallstr == Callsign.Cut(Properties.Settings.Default.MyCall))
+ continue;
+
+ // find or create call & loc combination in station database
+ LocationDesignator dxcall = StationData.Database.LocationFindOrCreate(dxcallstr, dxlocstr);
+ double qrb = LatLon.Distance(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon, dxcall.Lat, dxcall.Lon);
+
+ // add to watchlist
+ int index = Properties.Settings.Default.Watchlist.IndexOf(dxcallstr, dxlocstr);
+ // reset remove flag if item found, add to watchlist if not
+ if (index >= 0)
+ {
+ Properties.Settings.Default.Watchlist[index].Remove = false;
+ Properties.Settings.Default.Watchlist[index].OutOfRange = qrb > Properties.Settings.Default.Path_MaxLength;
+ if (!Properties.Settings.Default.Watchlist[index].OutOfRange)
+ {
+ Properties.Settings.Default.Watchlist[index].Checked = checkstr == "1";
+ }
+ }
+ else
+ {
+ if (qrb > Properties.Settings.Default.Path_MaxLength)
+ {
+ Properties.Settings.Default.Watchlist.Add(new WatchlistItem(dxcallstr, dxlocstr, true));
+ }
+ else
+ {
+ Properties.Settings.Default.Watchlist.Add(new WatchlistItem(dxcallstr, dxlocstr, false, checkstr == "1"));
+ }
+ }
+ }
+
+ // update watchlist in map
+ UpdateWatchlistInMap();
+
+ // update ListView control
+ RefreshWatchlistView();
+
+ // refresh paths
+ UpdatePaths();
+
+ // start playing if at least one active watch
+ if (Properties.Settings.Default.Watchlist.Find(item => item.Checked) != null)
+ {
+ if (PlayMode == AIRSCOUTPLAYMODE.PAUSE)
+ Play();
+ }
+
+ st.Stop();
+ Log.WriteMessage("Processing ASADDWATCH: " + st.ElapsedMilliseconds.ToString() + " ms.");
+ }
+ catch (Exception ex)
+ {
+ Log.WriteMessage(ex.ToString(), LogLevel.Error);
+ }
+ }
+
+ private void ASRemoveWatch(wtMessage msg)
+ {
+ // abort if in wtKST sync mode
+ if (Properties.Settings.Default.Watchlist_SyncWithKST)
+ return;
+
+ // maintain watchlist
+ try
+ {
+ Stopwatch st = new Stopwatch();
+ st.Start();
+
+ // check for empty call sign list --> remove all
+ if (!msg.Data.Contains(","))
+ {
+ // mark all watchlist items to remove wich are not currently tracked
+ foreach (WatchlistItem item in Properties.Settings.Default.Watchlist)
+ {
+ // nasty!! Should never be null!
+ if (item == null)
+ continue;
+ item.Remove = true;
+ }
+ }
+ else
+ {
+ // split message
+ string[] a = msg.Data.Split(',');
+ // ignore band string so far
+ string qrgstr = a[0];
+ for (int i = 1; i < a.Length; i++)
+ {
+ // get call
+ string dxcallstr = a[i].Trim().ToUpper();
+
+ // mark all watchlist items to remove wich are not currently tracked
+ foreach (WatchlistItem item in Properties.Settings.Default.Watchlist)
+ {
+ // nasty!! Should never be null!
+ if (item == null)
+ continue;
+ if (item.Call == dxcallstr)
+ item.Remove = true;
+ }
+ }
+ }
+
+ // remove all items from watchlist which marked as remove
+ Properties.Settings.Default.Watchlist.RemoveAll(item => item.Remove);
+
+ // update watchlist in map
+ UpdateWatchlistInMap();
+
+ // update ListView control
+ RefreshWatchlistView();
+
+ // refresh paths
+ UpdatePaths();
+
+ // stop playing if no more active watches
+ if (Properties.Settings.Default.Watchlist.Find(item => item.Checked) == null)
+ {
+ if (PlayMode == AIRSCOUTPLAYMODE.FORWARD)
+ Pause();
+ }
+
+ st.Stop();
+ Log.WriteMessage("Processing ASREMOVEWATCH: " + st.ElapsedMilliseconds.ToString() + " ms.");
+ }
+ catch (Exception ex)
+ {
+ Log.WriteMessage(ex.ToString(), LogLevel.Error);
+ }
+ }
+
private void DispatchWinTestMsg(wtMessage msg)
{
// a Win-Test message was received by the background thread
@@ -6237,6 +6904,18 @@ namespace AirScout
// dispatch it to main thread
bw_WinTestReceive.ReportProgress(1, msg);
}
+ else if (msg.Msg == WTMESSAGES.ASADDWATCH)
+ {
+ // add call to watchlist
+ // dispatch it to main thread
+ bw_WinTestReceive.ReportProgress(1, msg);
+ }
+ else if (msg.Msg == WTMESSAGES.ASREMOVEWATCH)
+ {
+ // add call to watchlist
+ // dispatch it to main thread
+ bw_WinTestReceive.ReportProgress(1, msg);
+ }
}
private void bw_WinTestReceive_ProgressChanged(object sender, ProgressChangedEventArgs e)
@@ -6251,7 +6930,11 @@ namespace AirScout
if (msg.Msg == WTMESSAGES.ASSHOWPATH)
ASShowPath(msg);
else if (msg.Msg == WTMESSAGES.ASWATCHLIST)
- ASSWatchlist(msg);
+ ASWatchlist(msg);
+ else if (msg.Msg == WTMESSAGES.ASADDWATCH)
+ ASAddWatch(msg);
+ else if (msg.Msg == WTMESSAGES.ASREMOVEWATCH)
+ ASRemoveWatch(msg);
}
private void bw_WinTestReceive_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
@@ -6519,9 +7202,11 @@ namespace AirScout
throw new NullReferenceException("[UDP]: Client and/or IP endpoint not initialized.");
wtMessage msg;
msg = new wtMessage(WTMESSAGES.SETAZIMUTH, Properties.Settings.Default.Server_Name, "", "AUTO", " 00 " + az.ToString("000"));
- msg = new wtMessage(WTMESSAGES.SETELEVATION, Properties.Settings.Default.Server_Name, "", "AUTO", " 00 " + el.ToString("000"));
byte[] bytes = msg.ToBytes();
client.Send(bytes, bytes.Length, ip);
+ msg = new wtMessage(WTMESSAGES.SETELEVATION, Properties.Settings.Default.Server_Name, "", "AUTO", " 00 " + el.ToString("000"));
+ bytes = msg.ToBytes();
+ client.Send(bytes, bytes.Length, ip);
return true;
}
@@ -6619,167 +7304,463 @@ namespace AirScout
private void bw_Track_DoWork(object sender, DoWorkEventArgs e)
{
Log.WriteMessage("Started.");
+
// name the thread for debugging
if (String.IsNullOrEmpty(Thread.CurrentThread.Name))
Thread.CurrentThread.Name = "bw_Track";
+
+ // last recent calculated values
+ TrackValues oldvalues = null;
+ TRACKSTATUS oldstatus = TRACKSTATUS.NONE;
+
// clients and ports
DdeClient ddeclient = null;
UdpClient udpclient = null;
IPEndPoint udpip = null;
SerialPort serialport = null;
+
// error counters
int ddeerr = 0;
int udperr = 0;
int serialerr = 0;
int maxerr = 10;
+
// outer loop
do
{
- // intializations
- if (Properties.Settings.Default.Track_DDE_HRD)
- {
- ddeclient = new DdeClient("HRDRotator", "Position");
- int result = ddeclient.TryConnect();
-
- }
- if (Properties.Settings.Default.Track_UDP_WinTest)
- {
- udpclient = new UdpClient();
- udpip = new IPEndPoint(IPAddress.Broadcast, Properties.Settings.Default.Track_UDP_WinTest_Port);
- }
- else if (Properties.Settings.Default.Track_UDP_AirScout)
- {
- udpclient = new UdpClient();
- udpip = new IPEndPoint(IPAddress.Broadcast, Properties.Settings.Default.Track_UDP_AirScout_Port);
- }
- if ((Properties.Settings.Default.Track_Serial_GS232_AZ) || (Properties.Settings.Default.Track_Serial_GS232_AZEL))
- {
- serialport = new SerialPort(Properties.Settings.Default.Track_Serial_Port,
- Properties.Settings.Default.Track_Serial_Baudrate,
- Parity.None,
- 8,
- StopBits.One);
- serialport.Handshake = System.IO.Ports.Handshake.None;
- serialport.NewLine = "\r";
- serialport.Encoding = Encoding.ASCII;
- serialport.ReadTimeout = 1000;
- serialport.WriteTimeout = 1000;
- serialport.Open();
- }
- // inner loop
- while (Properties.Settings.Default.Track_Activate && !bw_Track.CancellationPending)
- {
- try
- {
- // tracking
- double az = Properties.Settings.Default.Track_SetAz;
- double el = Properties.Settings.Default.Track_SetEl;
- if (!double.IsNaN(az) && !double.IsNaN(el))
- {
- if (Properties.Settings.Default.Track_DDE_HRD)
- Track_DDE_HRD(ddeclient, az, el);
- if (Properties.Settings.Default.Track_UDP_WinTest)
- Track_UDP_WinTest(udpclient, udpip, az, el);
- if (Properties.Settings.Default.Track_UDP_AirScout)
- Track_UDP_WinTest(udpclient, udpip, az, el);
- if (Properties.Settings.Default.Track_Serial_GS232_AZ)
- Track_SER__GS_232A_AZ(serialport, az);
- if (Properties.Settings.Default.Track_Serial_GS232_AZEL)
- Track_SER__GS_232A_AZEL(serialport, az, el);
- if (Properties.Settings.Default.Track_File_Native)
- Track_File_Native(az, el);
- if (Properties.Settings.Default.Track_File_WSJT)
- Track_File_WSJT(az, el);
- }
- else
- {
- // no tracking!
- }
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- //report error
- bw_Track.ReportProgress(-1, ex.Message);
- // increment error counters and switch off in case of subsequent errors
- if (ex.Message.StartsWith("[DDE]:"))
- {
- ddeerr++;
- if (ddeerr > maxerr)
- {
- // switch off DDE
- Properties.Settings.Default.Track_DDE_None = true;
- Properties.Settings.Default.Track_DDE_HRD = false;
- bw_Track.ReportProgress(-1, "Tracking via DDE disabled.");
- }
- }
- if (ex.Message.StartsWith("[UDP]:"))
- {
- udperr++;
- if (udperr > maxerr)
- {
- // switch off UDP
- Properties.Settings.Default.Track_UDP_None = true;
- Properties.Settings.Default.Track_UDP_WinTest = false;
- Properties.Settings.Default.Track_UDP_AirScout = false;
- bw_Track.ReportProgress(-1, "Tracking via UDP disabled.");
- }
- }
- if (ex.Message.StartsWith("[Serial]:"))
- {
- serialerr++;
- if (serialerr > maxerr)
- {
- // switch off Serial
- Properties.Settings.Default.Track_Serial_None = true;
- Properties.Settings.Default.Track_Serial_GS232_AZ = false;
- Properties.Settings.Default.Track_Serial_GS232_AZEL = false;
- bw_Track.ReportProgress(-1, "Tracking via Serial disabled.");
- }
- if (ex.Message.StartsWith("[Serial]:"))
- serialerr++;
- }
- // leave inner loop
- break;
- }
- Thread.Sleep(1000);
- }
- Thread.Sleep(1000);
- // try to close all connections
try
{
- if ((ddeclient != null) && (ddeclient.IsConnected))
- ddeclient.Disconnect();
- if (udpclient != null)
- udpclient.Close();
- if ((serialport != null) && (serialport.IsOpen))
- serialport.Close();
+ // intializations
+ if (Properties.Settings.Default.Track_DDE_HRD)
+ {
+ ddeclient = new DdeClient("HRDRotator", "Position");
+ int result = ddeclient.TryConnect();
+
+ }
+ if (Properties.Settings.Default.Track_UDP_WinTest)
+ {
+ udpclient = new UdpClient();
+ udpip = new IPEndPoint(IPAddress.Broadcast, Properties.Settings.Default.Track_UDP_WinTest_Port);
+ }
+ else if (Properties.Settings.Default.Track_UDP_AirScout)
+ {
+ udpclient = new UdpClient();
+ udpip = new IPEndPoint(IPAddress.Broadcast, Properties.Settings.Default.Track_UDP_AirScout_Port);
+ }
+ if ((Properties.Settings.Default.Track_Serial_GS232_AZ) || (Properties.Settings.Default.Track_Serial_GS232_AZEL))
+ {
+ serialport = new SerialPort(Properties.Settings.Default.Track_Serial_Port,
+ Properties.Settings.Default.Track_Serial_Baudrate,
+ System.IO.Ports.Parity.None,
+ 8,
+ System.IO.Ports.StopBits.One);
+ serialport.Handshake = System.IO.Ports.Handshake.None;
+ serialport.NewLine = "\r";
+ serialport.Encoding = Encoding.ASCII;
+ serialport.ReadTimeout = 1000;
+ serialport.WriteTimeout = 1000;
+ serialport.Open();
+ }
+
+ // init OK --> ready for tracking
+ bw_Track.ReportProgress(1, TRACKSTATUS.STOPPED);
+ bw_Track.ReportProgress(2, ROTSTATUS.STOPPED);
+
+ // inner loop
+ while (Properties.Settings.Default.Track_Activate && !bw_Track.CancellationPending)
+ {
+ try
+ {
+ // get current plane position and calculate set of tracking values
+ DateTime time = DateTime.UtcNow.AddSeconds(Properties.Settings.Default.Track_Offset);
+ TrackValues trackvalues = new TrackValues();
+ trackvalues.Timestamp = time;
+ if (TrackMode == AIRSCOUTTRACKMODE.TRACK)
+ {
+ // invalidate oldvalues on plane change
+ if ((oldvalues != null) && (Properties.Settings.Default.Track_CurrentPlane != null) && (oldvalues.Hex != Properties.Settings.Default.Track_CurrentPlane))
+ {
+ oldvalues = null;
+ }
+ // track plane --> get plane position and calculate values
+ PlaneInfo plane = Planes.Get(Properties.Settings.Default.Track_CurrentPlane, time, Properties.Settings.Default.Planes_Position_TTL);
+ if (plane != null)
+ {
+ trackvalues.Hex = Properties.Settings.Default.Track_CurrentPlane;
+ trackvalues.MyAzimuth = LatLon.Bearing(Properties.Settings.Default.MyLat,
+ Properties.Settings.Default.MyLon,
+ plane.Lat,
+ plane.Lon);
+ trackvalues.DXAzimuth = LatLon.Bearing(Properties.Settings.Default.DXLat,
+ Properties.Settings.Default.DXLon,
+ plane.Lat,
+ plane.Lon);
+ double myh = (GetElevation(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon) + Properties.Settings.Default.MyHeight);
+ double dxh = (GetElevation(Properties.Settings.Default.DXLat, Properties.Settings.Default.DXLon) + Properties.Settings.Default.DXHeight);
+ double H = plane.Alt_m;
+ trackvalues.MyDistance = LatLon.Distance(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon, plane.Lat, plane.Lon);
+ trackvalues.MySlantRange = Propagation.SlantRangeFromHeights(
+ myh,
+ Properties.Settings.Default.MyLat,
+ Properties.Settings.Default.MyLon,
+ plane.Lat,
+ plane.Lon,
+ H,
+ LatLon.Earth.Radius * Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor);
+ trackvalues.MyElevation = Propagation.EpsilonFromHeights(myh,
+ trackvalues.MyDistance,
+ H,
+ LatLon.Earth.Radius * Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor)
+ / Math.PI * 180;
+ trackvalues.DXDistance = LatLon.Distance(Properties.Settings.Default.DXLat, Properties.Settings.Default.DXLon, plane.Lat, plane.Lon);
+ trackvalues.DXSlantRange = Propagation.SlantRangeFromHeights(
+ dxh,
+ Properties.Settings.Default.DXLat,
+ Properties.Settings.Default.DXLon,
+ plane.Lat,
+ plane.Lon,
+ H,
+ LatLon.Earth.Radius * Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor);
+ trackvalues.DXElevation = Propagation.EpsilonFromHeights(dxh,
+ trackvalues.MyDistance,
+ H,
+ LatLon.Earth.Radius * Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor)
+ / Math.PI * 180;
+
+ // calculate doppler, we need a last recent calculated values to calculate relative speed
+ if (oldvalues != null)
+ {
+ // get both resulting speeds in m/s
+ double timediff = (trackvalues.Timestamp - oldvalues.Timestamp).TotalSeconds;
+ double myspeed = 0;
+ double dxspeed = 0;
+
+ if (timediff > 0)
+ {
+ myspeed = (oldvalues.MySlantRange - trackvalues.MySlantRange) * 1000.0 / timediff;
+ dxspeed = (oldvalues.DXSlantRange - trackvalues.DXSlantRange) * 1000.0 / timediff;
+ }
+
+ // calculate both doppler shifts
+ trackvalues.MyDoppler = Propagation.DopplerShift(Bands.ToHz(Properties.Settings.Default.Band), myspeed);
+ trackvalues.DXDoppler = Propagation.DopplerShift(Bands.ToHz(Properties.Settings.Default.Band), dxspeed);
+ }
+ }
+ }
+ else if (TrackMode == AIRSCOUTTRACKMODE.SINGLE)
+ {
+ // single shot --> get values from settings and track only once
+ trackvalues.MyAzimuth = Properties.Settings.Default.Track_SetAz;
+ trackvalues.MyElevation = Properties.Settings.Default.Track_SetEl;
+ }
+
+ // valid values --> start tracking
+ if (!double.IsNaN(trackvalues.MyAzimuth) &&
+ !double.IsNaN(trackvalues.MyElevation) &&
+ (trackvalues.MyAzimuth >= 0) &&
+ (trackvalues.MyAzimuth < 360))
+ {
+ // report track start
+ if (TrackMode == AIRSCOUTTRACKMODE.SINGLE)
+ {
+ bw_Track.ReportProgress(1, TRACKSTATUS.SINGLE);
+ }
+ else if (TrackMode == AIRSCOUTTRACKMODE.TRACK)
+ {
+ bw_Track.ReportProgress(1, TRACKSTATUS.TRACKING);
+ }
+
+ // rotator control
+ try
+ {
+ // log tracking to console
+ Console.WriteLine("Tracking[" + DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss,fff") + "]: Az=" + trackvalues.MyAzimuth + ", El=" + trackvalues.MyElevation);
+ if (Properties.Settings.Default.Track_DDE_HRD)
+ {
+ bw_Track.ReportProgress(2, ROTSTATUS.TRACKING);
+ Track_DDE_HRD(ddeclient, trackvalues.MyAzimuth, trackvalues.MyElevation);
+ }
+ if (Properties.Settings.Default.Track_UDP_WinTest)
+ {
+ bw_Track.ReportProgress(2, ROTSTATUS.TRACKING);
+ Track_UDP_WinTest(udpclient, udpip, trackvalues.MyAzimuth, trackvalues.MyElevation);
+ }
+ if (Properties.Settings.Default.Track_UDP_AirScout)
+ {
+ bw_Track.ReportProgress(2, ROTSTATUS.TRACKING);
+ Track_UDP_AirScout(udpclient, udpip, trackvalues.MyAzimuth, trackvalues.MyElevation);
+ }
+ if (Properties.Settings.Default.Track_Serial_GS232_AZ)
+ {
+ bw_Track.ReportProgress(2, ROTSTATUS.TRACKING);
+ Track_SER__GS_232A_AZ(serialport, trackvalues.MyAzimuth);
+ }
+ if (Properties.Settings.Default.Track_Serial_GS232_AZEL)
+ {
+ bw_Track.ReportProgress(2, ROTSTATUS.TRACKING);
+ Track_SER__GS_232A_AZEL(serialport, trackvalues.MyAzimuth, trackvalues.MyElevation);
+ }
+ if (Properties.Settings.Default.Track_File_Native)
+ {
+ bw_Track.ReportProgress(2, ROTSTATUS.TRACKING);
+ Track_File_Native(trackvalues.MyAzimuth, trackvalues.MyElevation);
+ }
+ if (Properties.Settings.Default.Track_File_WSJT)
+ {
+ bw_Track.ReportProgress(2, ROTSTATUS.TRACKING);
+ Track_File_WSJT(trackvalues.MyAzimuth, trackvalues.MyElevation);
+ }
+ }
+ catch (Exception ex)
+ {
+ Log.WriteMessage(ex.ToString(), LogLevel.Error);
+ //report error
+ bw_Track.ReportProgress(-1, ex.Message);
+ // increment error counters and switch off in case of subsequent errors
+ if (ex.Message.StartsWith("[DDE]:"))
+ {
+ ddeerr++;
+ if (ddeerr > maxerr)
+ {
+ // switch off DDE
+ Properties.Settings.Default.Track_DDE_None = true;
+ Properties.Settings.Default.Track_DDE_HRD = false;
+ bw_Track.ReportProgress(-1, "Tracking via DDE disabled.");
+ bw_Track.ReportProgress(2, ROTSTATUS.ERROR);
+ bw_Track.ReportProgress(1, TRACKSTATUS.ERROR);
+
+ }
+ }
+ if (ex.Message.StartsWith("[UDP]:"))
+ {
+ udperr++;
+ if (udperr > maxerr)
+ {
+ // switch off UDP
+ Properties.Settings.Default.Track_UDP_None = true;
+ Properties.Settings.Default.Track_UDP_WinTest = false;
+ Properties.Settings.Default.Track_UDP_AirScout = false;
+ bw_Track.ReportProgress(-1, "Tracking via UDP disabled.");
+ bw_Track.ReportProgress(2, ROTSTATUS.ERROR);
+ bw_Track.ReportProgress(1, TRACKSTATUS.ERROR);
+ }
+ }
+ if (ex.Message.StartsWith("[Serial]:"))
+ {
+ serialerr++;
+ if (serialerr > maxerr)
+ {
+ // switch off Serial
+ Properties.Settings.Default.Track_Serial_None = true;
+ Properties.Settings.Default.Track_Serial_GS232_AZ = false;
+ Properties.Settings.Default.Track_Serial_GS232_AZEL = false;
+ bw_Track.ReportProgress(-1, "Tracking via Serial disabled.");
+ bw_Track.ReportProgress(2, ROTSTATUS.ERROR);
+ bw_Track.ReportProgress(1, TRACKSTATUS.ERROR);
+ }
+ if (ex.Message.StartsWith("[Serial]:"))
+ serialerr++;
+ }
+
+ }
+
+ // doppler shift compensation if activated
+ if (Properties.Settings.Default.Doppler_Strategy_A)
+ {
+ trackvalues.RXFrequency = Properties.Settings.Default.Doppler_DialFreq +
+ (long)trackvalues.MyDoppler +
+ (long)trackvalues.DXDoppler;
+ trackvalues.TXFrequency = Properties.Settings.Default.Doppler_DialFreq;
+ }
+ else if (Properties.Settings.Default.Doppler_Strategy_B)
+ {
+ trackvalues.RXFrequency = Properties.Settings.Default.Doppler_DialFreq;
+ trackvalues.TXFrequency = Properties.Settings.Default.Doppler_DialFreq -
+ (long)trackvalues.MyDoppler -
+ (long)trackvalues.DXDoppler;
+ }
+ else if (Properties.Settings.Default.Doppler_Strategy_C)
+ {
+ trackvalues.RXFrequency = Properties.Settings.Default.Doppler_DialFreq +
+ (long)trackvalues.MyDoppler +
+ (long)trackvalues.DXDoppler;
+ trackvalues.TXFrequency = Properties.Settings.Default.Doppler_DialFreq -
+ (long)trackvalues.MyDoppler -
+ (long)trackvalues.DXDoppler;
+ }
+ else if (Properties.Settings.Default.Doppler_Strategy_D)
+ {
+ trackvalues.RXFrequency = Properties.Settings.Default.Doppler_DialFreq +
+ (long)trackvalues.MyDoppler;
+ trackvalues.TXFrequency = Properties.Settings.Default.Doppler_DialFreq -
+ (long)trackvalues.MyDoppler;
+ }
+
+ // report values
+ bw_Track.ReportProgress(3, trackvalues);
+
+ // store last values
+ oldvalues = trackvalues;
+
+ // stop tracking when single shot
+ if (TrackMode == AIRSCOUTTRACKMODE.SINGLE)
+ {
+ bw_Track.ReportProgress(1, TRACKSTATUS.STOPPED);
+ bw_Track.ReportProgress(2, ROTSTATUS.STOPPED);
+ }
+
+ }
+ else
+ {
+ // no tracking!
+ bw_Track.ReportProgress(1, TRACKSTATUS.STOPPED);
+ bw_Track.ReportProgress(2, ROTSTATUS.STOPPED);
+ }
+ }
+ catch (Exception ex)
+ {
+ // leave inner loop
+ bw_Track.ReportProgress(1, TRACKSTATUS.ERROR);
+ break;
+ }
+ Thread.Sleep(1000);
+ }
+ Thread.Sleep(Properties.Settings.Default.Track_Update);
+
}
catch (Exception ex)
{
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
+ bw_Track.ReportProgress(-1, "Track error: " + ex.Message);
+ bw_Track.ReportProgress(1, TRACKSTATUS.ERROR);
}
+
}
while (!bw_Track.CancellationPending);
+
+ // try to close all connections
+ try
+ {
+ if ((ddeclient != null) && (ddeclient.IsConnected))
+ ddeclient.Disconnect();
+ if (udpclient != null)
+ udpclient.Close();
+ if ((serialport != null) && (serialport.IsOpen))
+ serialport.Close();
+ }
+ catch (Exception ex)
+ {
+ Log.WriteMessage(ex.ToString(), LogLevel.Error);
+ }
+
+ bw_Track.ReportProgress(1, TRACKSTATUS.NONE);
+ bw_Track.ReportProgress(2, ROTSTATUS.NONE);
+
Log.WriteMessage("Finished.");
}
private void bw_Track_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
- if (e.ProgressPercentage < 0)
+ if (e.ProgressPercentage <= 0)
{
// report Error
tsl_Status.Text = (string)e.UserState;
}
- if (e.ProgressPercentage == 1)
+ else if (e.ProgressPercentage == 1)
{
- // report Azimuth
- ag_Azimuth.Value = (float)(double)e.UserState;
+ // report tracking status
+ TRACKSTATUS trackstatus = (TRACKSTATUS)e.UserState;
+ switch (trackstatus)
+ {
+ case TRACKSTATUS.NONE:
+ SayTrack("TRK", Color.DarkGray, SystemColors.Control);
+ break;
+ case TRACKSTATUS.STOPPED:
+// TrackMode = AIRSCOUTTRACKMODE.NONE;
+ SayTrack("TRK", SystemColors.Control, Color.DarkGray);
+ break;
+ case TRACKSTATUS.SINGLE:
+ case TRACKSTATUS.TRACKING:
+ SayTrack("TRK", Color.White, Color.DarkGreen);
+ break;
+ case TRACKSTATUS.ERROR:
+ SayTrack("TRK", Color.Yellow, Color.Red);
+ break;
+ default:
+ SayTrack("TRK", Color.DarkGray, SystemColors.Control);
+ break;
+ }
+
+ // restore settings when returning from tracking
+ if ((trackstatus == TRACKSTATUS.TRACKING) || (trackstatus == TRACKSTATUS.SINGLE))
+ {
+ if (bw_CAT != null)
+ {
+ if (Properties.Settings.Default.Doppler_Strategy_A)
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_A;
+ else if (Properties.Settings.Default.Doppler_Strategy_B)
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_B;
+ else if (Properties.Settings.Default.Doppler_Strategy_C)
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_C;
+ else if (Properties.Settings.Default.Doppler_Strategy_D)
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_D;
+
+ }
+ }
+ else
+ {
+ if (bw_CAT != null)
+ {
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_NONE;
+ }
+ }
+
+ // save TrackStatus
+ TrackStatus = trackstatus;
}
- if (e.ProgressPercentage == 2)
+ else if (e.ProgressPercentage == 2)
{
- // report Elevation
- ag_Elevation.Value = (float)(double)e.UserState;
+ // report Status
+ RotStatus = (ROTSTATUS)e.UserState;
+ switch (RotStatus)
+ {
+ case ROTSTATUS.STOPPED:
+ SayRot("ROT", SystemColors.Control, Color.DarkGray);
+ break;
+ case ROTSTATUS.TRACKING:
+ SayRot("ROT", Color.White, Color.DarkGreen);
+ break;
+ case ROTSTATUS.ERROR:
+ SayRot("ROT", Color.Yellow, Color.Red);
+ break;
+ default:
+ SayRot("ROT", Color.DarkGray, SystemColors.Control);
+ break;
+ }
+ }
+ else if (e.ProgressPercentage == 3)
+ {
+ // report track values
+ TrackValues = (TrackValues)e.UserState;
+ if (Properties.Settings.Default.Doppler_Strategy_A ||
+ Properties.Settings.Default.Doppler_Strategy_B ||
+ Properties.Settings.Default.Doppler_Strategy_C ||
+ Properties.Settings.Default.Doppler_Strategy_D)
+ {
+ // adjust rig if frequencies are valid
+ if ((bw_CAT != null) && (TrackValues.RXFrequency != 0) && (TrackValues.TXFrequency != 0))
+ {
+ if (Properties.Settings.Default.Doppler_Strategy_A)
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_A;
+ if (Properties.Settings.Default.Doppler_Strategy_B)
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_B;
+ if (Properties.Settings.Default.Doppler_Strategy_C)
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_C;
+ if (Properties.Settings.Default.Doppler_Strategy_D)
+ bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_D;
+ bw_CAT.RxFrequency = TrackValues.RXFrequency;
+ bw_CAT.TxFrequency = TrackValues.TXFrequency;
+ }
+ }
}
}
@@ -7514,6 +8495,95 @@ namespace AirScout
}
+ #endregion
+
+ #region CATUpdater
+
+ private void bw_CATUpdater_ProgressChanged(object sender, ProgressChangedEventArgs e)
+ {
+ if (e.ProgressPercentage <= 0)
+ {
+ Say((string)e.UserState);
+ }
+ }
+
+
+ #endregion
+
+ #region CAT
+
+ private void bw_CAT_ProgressChanged(object sender, ProgressChangedEventArgs e)
+ {
+ if (e.ProgressPercentage <= 0)
+ {
+ Say((string)e.UserState);
+ }
+ else if (e.ProgressPercentage == 1)
+ {
+ // new rig status received
+ RIGSTATUS status = (RIGSTATUS)e.UserState;
+ switch (status)
+ {
+ case RIGSTATUS.ONLINE:
+ SayCAT("CAT", Color.White, Color.DarkGreen);
+ break;
+ case RIGSTATUS.ERROR:
+ case RIGSTATUS.NOCAT:
+ case RIGSTATUS.NOPORT:
+ case RIGSTATUS.NORIG:
+ case RIGSTATUS.NOTSUITABLE:
+ SayCAT("CAT", Color.Yellow, Color.Red);
+ break;
+ case RIGSTATUS.OFFLINE:
+ SayCAT("CAT", Color.White, Color.DarkOrange);
+ break;
+ default:
+ SayCAT("CAT", Color.DarkGray, SystemColors.Control);
+ break;
+ }
+
+ RigStatus = status;
+ }
+ else if (e.ProgressPercentage == 2)
+ {
+ // new rig info received
+ IRig rig = (IRig)e.UserState;
+
+ // save info if a valid tracking is not going on
+ if (TrackStatus != TRACKSTATUS.TRACKING)
+ {
+ if (rig != null)
+ {
+ ConnectedRig = rig;
+ // save latest rig settings to switch back after tracking
+ Properties.Settings.Default.Doppler_DialFreq = rig.GetRxFrequency();
+ Properties.Settings.Default.Doppler_DialMode = rig.GetMode();
+ Properties.Settings.Default.Doppler_DialSplit = rig.GetSplit();
+ Properties.Settings.Default.Doppler_DialRit = rig.GetRit();
+ }
+ }
+
+ // report to status bar
+ NumberFormatInfo info = new NumberFormatInfo();
+ info.NumberDecimalSeparator = ";";
+ info.NumberGroupSeparator = ".";
+ Say("Rig reports RX: " + rig.GetRxFrequency().ToString(info) + ", TX: " + rig.GetTxFrequency().ToString(info) + "Hz, Mode: " + rig.GetMode().ToString() + ", RIT: " + ((rig.GetRit() == RIGRIT.RITON) ? "ON" : "OFF") +", Split: " + ((rig.GetSplit() == RIGSPLIT.SPLITON)? "ON" : "OFF"));
+ }
+
+ // set Tooltip
+ if (ConnectedRig != null)
+ {
+ tsl_CAT.ToolTipText = ConnectedRig.CatVersion + "\n" + ConnectedRig.Settings.Type + "\n\n";
+ }
+ else
+ {
+ tsl_CAT.ToolTipText = "CAT error!" + "\n\n";
+ }
+ tsl_CAT.ToolTipText = tsl_CAT.ToolTipText + RigStatus.ToString();
+
+ }
+
+
#endregion
#endregion
diff --git a/AirScout/MapDlg.resx b/AirScout/MapDlg.resx
index 735db0f..3417064 100644
--- a/AirScout/MapDlg.resx
+++ b/AirScout/MapDlg.resx
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc
- DQAAAk1TRnQBSQFMAgEBAwEAAagBCwGoAQsBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ DQAAAk1TRnQBSQFMAgEBAwEAARABDAEQAQwBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABgAMAASADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -193,7 +193,7 @@
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHbSURBVGhD7Zg/
+ aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHbSURBVGhD7Zg/
S8NAGIejIAo6OCiiVnqNRRQXxclV3QUXQcTRr+DaUXAQWpOYSXBx1dk/30Ad3ZwUpA7VXFJEqfEuvi1t
c4kpmEuU94HfcO9d7+4Z7npEQRAEQRAEQRAkCGJUiOK6XdAMhBy5fVnTGYVm+lA1WlB1epUvVjNQEpIv
0uGcTl9U3d6AUrrgImyDLkuFaHQdyj5AhI9jsY5ntfIAdKWDJpHGJkf2nvqhu0GrCI99nz20FqE7efwi
@@ -211,7 +211,7 @@
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEfSURBVGhD7dg9
+ aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEfSURBVGhD7dg9
a8JwFMXhbAVbbZ2EDqJpoIPfy6WDn6DgWHAQhEQy9ONZROsLjXt6lHtBRXxLSO4fzgN3sGg8P+ikR0RE
RERElwTx+q0Tzp7kpbvaUfKB+/OjzVczWtflz+6RkFTO3aCjkIOg1nD1Im+zD6NPhei5E4Sx50L07Adh
5DUhegs/TPp+vHyWj9uBcbeE6P2aC8Koe0L07ARhTJYQvV1QMFrU5LHFw4g8QvTmpQXhy/MMWbbHyWcp
@@ -222,7 +222,7 @@
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 @@
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHmSURBVGhD7Zg/
+ aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHmSURBVGhD7Zg/
S8NAGIerIAo6OCiiVnuJRfwziZOruAtOIuLoV3DtKDgIrUnMJLi4iqvoN1BHNycFqUM1lxZRNL4v9Opx
vUTBkhzyPvCjzeUgvwcu16M5giAIgiAIgiA6TcGvj7KjqK95GU8UdTGvxppXZmG74Ybl8udimQ83h7QU
y4287fJL2+Gl5pAZzDvVAcsNjkEiwiSJMI+voyzOM0qkcBgsWW54JyTiREb2HvtlWYwZIqWoG4tAoXe5
@@ -305,43 +305,43 @@
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
+ wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
+ wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
+ wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
+ wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
+ wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
+ wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
+ wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII=
@@ -352,7 +352,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACM
- DAAAAk1TRnQBSQFMAwEBAAEQAQoBEAEKASABAAEgAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
+ DAAAAk1TRnQBSQFMAwEBAAF4AQoBeAEKASABAAEgAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AYADAAEgAwABAQEAAQgGAAEQGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
diff --git a/AirScout/OptionsDlg.Designer.cs b/AirScout/OptionsDlg.Designer.cs
index 30fdbe7..ab78318 100644
--- a/AirScout/OptionsDlg.Designer.cs
+++ b/AirScout/OptionsDlg.Designer.cs
@@ -43,15 +43,34 @@
this.btn_DeleteAllMapTiles = new System.Windows.Forms.Button();
this.btn_Options_Open_PluginDirectory = new System.Windows.Forms.Button();
this.btn_Options_Open_AirScoutDirectory = new System.Windows.Forms.Button();
+ this.pb_Donate = new System.Windows.Forms.PictureBox();
+ this.rb_Options_Track_UDP_AirScout = new System.Windows.Forms.RadioButton();
+ this.tb_Options_Track_DialFreq = new ScoutBase.Core.LongTextBox();
+ this.cb_Options_Locations_RestrictToAreaOfInterest = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Path_BestCaseElevation = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Planes_KeepHistory = new System.Windows.Forms.CheckBox();
+ this.tb_Options_Track_Serial_Baudrate = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_Track_Serial_Port = new System.Windows.Forms.TextBox();
+ this.tb_Options_Track_Offset = new ScoutBase.Core.Int32TextBox();
+ this.int32TextBox2 = new ScoutBase.Core.Int32TextBox();
+ this.cb_Options_Track_Activate = new System.Windows.Forms.CheckBox();
this.tab_Options_Planes = new System.Windows.Forms.TabPage();
this.groupBox48 = new System.Windows.Forms.GroupBox();
+ this.int32TextBox1 = new ScoutBase.Core.Int32TextBox();
this.label33 = new System.Windows.Forms.Label();
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled = new System.Windows.Forms.CheckBox();
+ this.tb_Options_Planes_Interval = new ScoutBase.Core.Int32TextBox();
this.label22 = new System.Windows.Forms.Label();
+ this.cb_Options_Planes_LogErrors = new System.Windows.Forms.CheckBox();
this.groupBox40 = new System.Windows.Forms.GroupBox();
this.label55 = new System.Windows.Forms.Label();
+ this.ud_Options_Planes_Position_DatabaseLifetime = new System.Windows.Forms.NumericUpDown();
this.label53 = new System.Windows.Forms.Label();
this.label32 = new System.Windows.Forms.Label();
this.groupBox38 = new System.Windows.Forms.GroupBox();
+ this.tb_Options_Planes_Positions_TTL = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_Planes_MaxAlt = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_Planes_MinAlt = new ScoutBase.Core.Int32TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
@@ -59,6 +78,8 @@
this.label7 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.groupBox26 = new System.Windows.Forms.GroupBox();
+ this.tb_Options_Planes_Filter_MinAlt = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_Planes_Filter_Max_Circumcircle = new ScoutBase.Core.Int32TextBox();
this.label96 = new System.Windows.Forms.Label();
this.label94 = new System.Windows.Forms.Label();
this.label95 = new System.Windows.Forms.Label();
@@ -89,6 +110,7 @@
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btn_Options_Path_Export = new System.Windows.Forms.Button();
this.label147 = new System.Windows.Forms.Label();
+ this.tb_Options_Path_MaxLength = new ScoutBase.Core.DoubleTextBox();
this.label131 = new System.Windows.Forms.Label();
this.label130 = new System.Windows.Forms.Label();
this.tb_Options_Path_StepWidth = new System.Windows.Forms.TextBox();
@@ -103,6 +125,8 @@
this.groupBox13 = new System.Windows.Forms.GroupBox();
this.gm_Options_SRTM1 = new GMap.NET.WindowsForms.GMapControl();
this.groupBox12 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Elevation_SRTM1_EnableCache = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Elevation_SRTM1 = new System.Windows.Forms.CheckBox();
this.tab_Options_SRTM3 = new System.Windows.Forms.TabPage();
this.groupBox42 = new System.Windows.Forms.GroupBox();
this.label100 = new System.Windows.Forms.Label();
@@ -111,6 +135,8 @@
this.groupBox9 = new System.Windows.Forms.GroupBox();
this.gm_Options_SRTM3 = new GMap.NET.WindowsForms.GMapControl();
this.groupBox8 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Elevation_SRTM3_EnableCache = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Elevation_SRTM3 = new System.Windows.Forms.CheckBox();
this.tab_Options_GLOBE = new System.Windows.Forms.TabPage();
this.groupBox41 = new System.Windows.Forms.GroupBox();
this.label99 = new System.Windows.Forms.Label();
@@ -119,16 +145,32 @@
this.groupBox11 = new System.Windows.Forms.GroupBox();
this.gm_Options_GLOBE = new GMap.NET.WindowsForms.GMapControl();
this.groupBox10 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Elevation_GLOBE_EnableCache = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Elevation_GLOBE = new System.Windows.Forms.CheckBox();
this.tab_Options_Map = new System.Windows.Forms.TabPage();
this.groupBox49 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Map_SmallMarkers = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Map_LabelCalls = new System.Windows.Forms.CheckBox();
this.groupBox37 = new System.Windows.Forms.GroupBox();
this.label34 = new System.Windows.Forms.Label();
+ this.ud_Options_Charts_FontSize = new System.Windows.Forms.NumericUpDown();
this.groupBox39 = new System.Windows.Forms.GroupBox();
+ this.tb_Options_Map_Update_Interval = new ScoutBase.Core.Int32TextBox();
this.label97 = new System.Windows.Forms.Label();
this.label29 = new System.Windows.Forms.Label();
this.groupBox23 = new System.Windows.Forms.GroupBox();
+ this.ud_Options_Map_Opacity = new AirScout.PercentageControl();
+ this.label148 = new System.Windows.Forms.Label();
+ this.ud_Options_Map_Preloader_MaxZoom = new System.Windows.Forms.NumericUpDown();
this.label144 = new System.Windows.Forms.Label();
+ this.cb_Options_Map_Preloader_Enabled = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Watchlist_Activate = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Airports_Activate = new System.Windows.Forms.CheckBox();
this.groupBox30 = new System.Windows.Forms.GroupBox();
+ this.tb_Options_Planes_IconSize_S = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_Planes_IconSize_H = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_Planes_IconSize_M = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_Planes_IconSize_L = new ScoutBase.Core.Int32TextBox();
this.label84 = new System.Windows.Forms.Label();
this.label83 = new System.Windows.Forms.Label();
this.label82 = new System.Windows.Forms.Label();
@@ -139,10 +181,23 @@
this.label76 = new System.Windows.Forms.Label();
this.label74 = new System.Windows.Forms.Label();
this.label75 = new System.Windows.Forms.Label();
+ this.cb_Options_InfoWin_Angle = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Speed = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Squint = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Epsilon = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Dist = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Time = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Type = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Track = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Alt = new System.Windows.Forms.CheckBox();
+ this.cb_Options_InfoWin_Position = new System.Windows.Forms.CheckBox();
this.groupBox22 = new System.Windows.Forms.GroupBox();
+ this.rb_Options_InfoWin_Imperial = new System.Windows.Forms.RadioButton();
+ this.rb_Options_InfoWin_Metric = new System.Windows.Forms.RadioButton();
this.label72 = new System.Windows.Forms.Label();
this.btn_Options_SelectFont = new System.Windows.Forms.Button();
this.label62 = new System.Windows.Forms.Label();
+ this.tb_Options_Map_ToolTipFont = new System.Windows.Forms.TextBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label61 = new System.Windows.Forms.Label();
this.cb_Options_Map_Provider = new System.Windows.Forms.ComboBox();
@@ -179,12 +234,17 @@
this.label28 = new System.Windows.Forms.Label();
this.label41 = new System.Windows.Forms.Label();
this.groupBox14 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_SmallLettersForSubSquares = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Locator_AutoLength = new System.Windows.Forms.CheckBox();
this.label48 = new System.Windows.Forms.Label();
+ this.ud_Options_Locator_MaxLength = new System.Windows.Forms.NumericUpDown();
this.groupBox16 = new System.Windows.Forms.GroupBox();
this.label52 = new System.Windows.Forms.Label();
this.groupBox5 = new System.Windows.Forms.GroupBox();
+ this.btn_Options_DXMap = new System.Windows.Forms.Button();
this.tb_Options_DXLon = new ScoutBase.Core.DoubleTextBox();
this.tb_Options_DXLat = new ScoutBase.Core.DoubleTextBox();
+ this.tb_Options_DXLoc = new ScoutBase.Core.LocatorTextBox();
this.tb_Options_DXCall = new ScoutBase.Core.CallsignTextBox();
this.label21 = new System.Windows.Forms.Label();
this.btn_Options_DXHorizon = new System.Windows.Forms.Button();
@@ -196,9 +256,11 @@
this.label43 = new System.Windows.Forms.Label();
this.label44 = new System.Windows.Forms.Label();
this.groupBox4 = new System.Windows.Forms.GroupBox();
+ this.btn_Options_MyMap = new System.Windows.Forms.Button();
this.btn_Options_MyHorizon = new System.Windows.Forms.Button();
this.tb_Options_MyLon = new ScoutBase.Core.DoubleTextBox();
this.tb_Options_MyLat = new ScoutBase.Core.DoubleTextBox();
+ this.tb_Options_MyLoc = new ScoutBase.Core.LocatorTextBox();
this.tb_Options_MyCall = new ScoutBase.Core.CallsignTextBox();
this.label18 = new System.Windows.Forms.Label();
this.btn_MyCall_QRZ = new System.Windows.Forms.Button();
@@ -210,6 +272,10 @@
this.label11 = new System.Windows.Forms.Label();
this.tab_Options_General = new System.Windows.Forms.TabPage();
this.groupBox25 = new System.Windows.Forms.GroupBox();
+ this.tb_Coverage_MaxLat = new ScoutBase.Core.DoubleTextBox();
+ this.tb_Coverage_MinLat = new ScoutBase.Core.DoubleTextBox();
+ this.tb_Coverage_MaxLon = new ScoutBase.Core.DoubleTextBox();
+ this.tb_Coverage_MinLon = new ScoutBase.Core.DoubleTextBox();
this.gm_Options_Coverage = new GMap.NET.WindowsForms.GMapControl();
this.label35 = new System.Windows.Forms.Label();
this.label54 = new System.Windows.Forms.Label();
@@ -221,7 +287,9 @@
this.groupBox27 = new System.Windows.Forms.GroupBox();
this.label108 = new System.Windows.Forms.Label();
this.gb_Options_Database_Settings = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Background_Calculations_Enable = new System.Windows.Forms.CheckBox();
this.label47 = new System.Windows.Forms.Label();
+ this.ud_Options_Database_Update_Period = new System.Windows.Forms.NumericUpDown();
this.rb_Options_Database_Update_Periodically = new System.Windows.Forms.RadioButton();
this.rb_Options_Database_Update_OnStartup = new System.Windows.Forms.RadioButton();
this.rb_Options_Database_Update_Never = new System.Windows.Forms.RadioButton();
@@ -291,6 +359,8 @@
this.groupBox52 = new System.Windows.Forms.GroupBox();
this.gm_Options_ASTER3 = new GMap.NET.WindowsForms.GMapControl();
this.groupBox53 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Elevation_ASTER3_EnableCache = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Elevation_ASTER3 = new System.Windows.Forms.CheckBox();
this.tba_Option_ASTER1 = new System.Windows.Forms.TabPage();
this.groupBox54 = new System.Windows.Forms.GroupBox();
this.label145 = new System.Windows.Forms.Label();
@@ -298,51 +368,161 @@
this.groupBox55 = new System.Windows.Forms.GroupBox();
this.gm_Options_ASTER1 = new GMap.NET.WindowsForms.GMapControl();
this.groupBox56 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Elevation_ASTER1_EnableCache = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Elevation_ASTER1 = new System.Windows.Forms.CheckBox();
this.tab_Options_Alarm = new System.Windows.Forms.TabPage();
this.groupBox21 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Alarm_Activate = new System.Windows.Forms.CheckBox();
this.groupBox19 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Alarm_PlaySound = new System.Windows.Forms.CheckBox();
this.cb_Options_Alarm_BringWindowToFront = new System.Windows.Forms.CheckBox();
this.groupBox20 = new System.Windows.Forms.GroupBox();
+ this.tb_Options_Alarm_Distance = new ScoutBase.Core.DoubleTextBox();
this.label36 = new System.Windows.Forms.Label();
this.label56 = new System.Windows.Forms.Label();
this.tab_Options_Network = new System.Windows.Forms.TabPage();
this.label86 = new System.Windows.Forms.Label();
this.groupBox32 = new System.Windows.Forms.GroupBox();
+ this.tb_Options_Webserver_Port = new ScoutBase.Core.Int32TextBox();
this.label85 = new System.Windows.Forms.Label();
this.groupBox31 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Server_Activate = new System.Windows.Forms.CheckBox();
this.label3 = new System.Windows.Forms.Label();
this.groupBox24 = new System.Windows.Forms.GroupBox();
+ this.tb_Options_Server_Port = new ScoutBase.Core.Int32TextBox();
this.label6 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
+ this.tb_Options_Server_Name = new System.Windows.Forms.TextBox();
this.tab_Options_SpecLab = new System.Windows.Forms.TabPage();
this.groupBox3 = new System.Windows.Forms.GroupBox();
+ this.tb_Options_SpecLab_UpdateInterval = new ScoutBase.Core.DoubleTextBox();
+ this.tb_Options_SpecLab_F2 = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_SpecLab_F1 = new ScoutBase.Core.Int32TextBox();
this.label70 = new System.Windows.Forms.Label();
this.label71 = new System.Windows.Forms.Label();
this.label68 = new System.Windows.Forms.Label();
this.label69 = new System.Windows.Forms.Label();
this.label67 = new System.Windows.Forms.Label();
this.label66 = new System.Windows.Forms.Label();
+ this.tb_SpecLab_FileName = new System.Windows.Forms.TextBox();
this.label63 = new System.Windows.Forms.Label();
this.label64 = new System.Windows.Forms.Label();
this.label65 = new System.Windows.Forms.Label();
+ this.tb_SpecLab_URL = new System.Windows.Forms.TextBox();
+ this.cb_SpecLab_Enabled = new System.Windows.Forms.CheckBox();
this.tab_Options_Track = new System.Windows.Forms.TabPage();
- this.groupBox36 = new System.Windows.Forms.GroupBox();
- this.groupBox35 = new System.Windows.Forms.GroupBox();
- this.groupBox34 = new System.Windows.Forms.GroupBox();
+ this.gb_Options_Doppler = new System.Windows.Forms.GroupBox();
+ this.label150 = new System.Windows.Forms.Label();
+ this.label180 = new System.Windows.Forms.Label();
+ this.label181 = new System.Windows.Forms.Label();
+ this.label182 = new System.Windows.Forms.Label();
+ this.label183 = new System.Windows.Forms.Label();
+ this.label184 = new System.Windows.Forms.Label();
+ this.rb_Options_Doppler_Strategy_None = new System.Windows.Forms.RadioButton();
+ this.label178 = new System.Windows.Forms.Label();
+ this.label179 = new System.Windows.Forms.Label();
+ this.label176 = new System.Windows.Forms.Label();
+ this.label177 = new System.Windows.Forms.Label();
+ this.label174 = new System.Windows.Forms.Label();
+ this.label175 = new System.Windows.Forms.Label();
+ this.label172 = new System.Windows.Forms.Label();
+ this.label173 = new System.Windows.Forms.Label();
+ this.label170 = new System.Windows.Forms.Label();
+ this.label171 = new System.Windows.Forms.Label();
+ this.label168 = new System.Windows.Forms.Label();
+ this.label169 = new System.Windows.Forms.Label();
+ this.label166 = new System.Windows.Forms.Label();
+ this.label167 = new System.Windows.Forms.Label();
+ this.label165 = new System.Windows.Forms.Label();
+ this.label163 = new System.Windows.Forms.Label();
+ this.label164 = new System.Windows.Forms.Label();
+ this.label162 = new System.Windows.Forms.Label();
+ this.label161 = new System.Windows.Forms.Label();
+ this.label160 = new System.Windows.Forms.Label();
+ this.label159 = new System.Windows.Forms.Label();
+ this.label158 = new System.Windows.Forms.Label();
+ this.label157 = new System.Windows.Forms.Label();
+ this.label156 = new System.Windows.Forms.Label();
+ this.label155 = new System.Windows.Forms.Label();
+ this.rb_Options_Doppler_Strategy_D = new System.Windows.Forms.RadioButton();
+ this.rb_Options_Doppler_Strategy_C = new System.Windows.Forms.RadioButton();
+ this.rb_Options_Doppler_Strategy_B = new System.Windows.Forms.RadioButton();
+ this.rb_Options_Doppler_Strategy_A = new System.Windows.Forms.RadioButton();
+ this.label154 = new System.Windows.Forms.Label();
+ this.label153 = new System.Windows.Forms.Label();
+ this.label152 = new System.Windows.Forms.Label();
+ this.gb_Options_Track_File = new System.Windows.Forms.GroupBox();
+ this.rb_Options_Track_File_None = new System.Windows.Forms.RadioButton();
+ this.rb_Options_Track_File_WSJT = new System.Windows.Forms.RadioButton();
+ this.rb_Options_Track_File_Native = new System.Windows.Forms.RadioButton();
+ this.gb_Options_Track_DDE = new System.Windows.Forms.GroupBox();
+ this.rb_Options_Track_DDE_None = new System.Windows.Forms.RadioButton();
+ this.rb_Options_Track_DDE_HRD = new System.Windows.Forms.RadioButton();
+ this.gb_Options_Track_UDP = new System.Windows.Forms.GroupBox();
+ this.tb_Options_Track_UDP_AirScout_Port = new ScoutBase.Core.Int32TextBox();
+ this.tb_Options_Track_UDP_WinTest_Port = new ScoutBase.Core.Int32TextBox();
this.label90 = new System.Windows.Forms.Label();
this.label89 = new System.Windows.Forms.Label();
- this.groupBox33 = new System.Windows.Forms.GroupBox();
+ this.rb_Options_Track_UDP_None = new System.Windows.Forms.RadioButton();
+ this.rb_Options_Track_UDP_WinTest = new System.Windows.Forms.RadioButton();
+ this.gb_Options_Track_Serial = new System.Windows.Forms.GroupBox();
+ this.rb_Options_Track_Serial_None = new System.Windows.Forms.RadioButton();
this.label88 = new System.Windows.Forms.Label();
this.label87 = new System.Windows.Forms.Label();
+ this.rb_Options_Track_Serial_GS232_AZEL = new System.Windows.Forms.RadioButton();
+ this.rb_Options_Track_Serial_GS232_AZ = new System.Windows.Forms.RadioButton();
this.groupBox28 = new System.Windows.Forms.GroupBox();
+ this.label186 = new System.Windows.Forms.Label();
+ this.label187 = new System.Windows.Forms.Label();
+ this.label185 = new System.Windows.Forms.Label();
+ this.label151 = new System.Windows.Forms.Label();
+ this.tab_Options_CAT = new System.Windows.Forms.TabPage();
+ this.gb_Options_CAT_PortSettings = new System.Windows.Forms.GroupBox();
+ this.ud_Options_CAT_Timeout = new System.Windows.Forms.NumericUpDown();
+ this.label149 = new System.Windows.Forms.Label();
+ this.ud_Options_CAT_Poll = new System.Windows.Forms.NumericUpDown();
+ this.label190 = new System.Windows.Forms.Label();
+ this.label191 = new System.Windows.Forms.Label();
+ this.cb_Options_CAT_DTR = new System.Windows.Forms.ComboBox();
+ this.label192 = new System.Windows.Forms.Label();
+ this.cb_Options_CAT_RTS = new System.Windows.Forms.ComboBox();
+ this.label193 = new System.Windows.Forms.Label();
+ this.cb_Options_CAT_StopBits = new System.Windows.Forms.ComboBox();
+ this.label194 = new System.Windows.Forms.Label();
+ this.cb_Options_CAT_Parity = new System.Windows.Forms.ComboBox();
+ this.label195 = new System.Windows.Forms.Label();
+ this.cb_Options_CAT_DataBits = new System.Windows.Forms.ComboBox();
+ this.label196 = new System.Windows.Forms.Label();
+ this.cb_Options_CAT_Baudrate = new System.Windows.Forms.ComboBox();
+ this.label197 = new System.Windows.Forms.Label();
+ this.cb_Options_CAT_PortName = new System.Windows.Forms.ComboBox();
+ this.gb_Options_CAT_RigType = new System.Windows.Forms.GroupBox();
+ this.richTextBox5 = new System.Windows.Forms.RichTextBox();
+ this.richTextBox4 = new System.Windows.Forms.RichTextBox();
+ this.richTextBox3 = new System.Windows.Forms.RichTextBox();
+ this.label199 = new System.Windows.Forms.Label();
+ this.richTextBox2 = new System.Windows.Forms.RichTextBox();
+ this.cb_Options_CAT_Rig = new System.Windows.Forms.ComboBox();
+ this.gb_Options_CAT_OperatingInstructions = new System.Windows.Forms.GroupBox();
+ this.richTextBox1 = new System.Windows.Forms.RichTextBox();
+ this.groupBox57 = new System.Windows.Forms.GroupBox();
+ this.ud_Options_CAT_Update = new System.Windows.Forms.NumericUpDown();
+ this.label189 = new System.Windows.Forms.Label();
+ this.cb_Options_CAT_Activate = new System.Windows.Forms.CheckBox();
this.tab_Options_Watchlist = new System.Windows.Forms.TabPage();
this.groupBox50 = new System.Windows.Forms.GroupBox();
+ this.pictureBox3 = new System.Windows.Forms.PictureBox();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.label37 = new System.Windows.Forms.Label();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.btn_Options_Watchlist_Clear = new System.Windows.Forms.Button();
this.groupBox17 = new System.Windows.Forms.GroupBox();
+ this.cb_Options_Watchlist_SyncWithKST = new System.Windows.Forms.CheckBox();
+ this.tb_Options_Watchlist_MaxCount = new ScoutBase.Core.Int32TextBox();
this.label31 = new System.Windows.Forms.Label();
this.btn_Options_Watchlist_Manage = new System.Windows.Forms.Button();
this.tab_Options_Misc = new System.Windows.Forms.TabPage();
+ this.pictureBox4 = new System.Windows.Forms.PictureBox();
this.label143 = new System.Windows.Forms.Label();
this.groupBox15 = new System.Windows.Forms.GroupBox();
this.tab_Options_Info = new System.Windows.Forms.TabPage();
@@ -373,109 +553,13 @@
this.bw_StationDataUpdater = new System.ComponentModel.BackgroundWorker();
this.bw_ASTER3_MapUpdater = new System.ComponentModel.BackgroundWorker();
this.bw_ASTER1_MapUpdater = new System.ComponentModel.BackgroundWorker();
- this.label148 = new System.Windows.Forms.Label();
- this.tb_Coverage_MaxLat = new ScoutBase.Core.DoubleTextBox();
- this.tb_Coverage_MinLat = new ScoutBase.Core.DoubleTextBox();
- this.tb_Coverage_MaxLon = new ScoutBase.Core.DoubleTextBox();
- this.tb_Coverage_MinLon = new ScoutBase.Core.DoubleTextBox();
- this.cb_Options_Background_Calculations_Enable = new System.Windows.Forms.CheckBox();
- this.ud_Options_Database_Update_Period = new System.Windows.Forms.NumericUpDown();
- this.cb_Options_Locations_RestrictToAreaOfInterest = new System.Windows.Forms.CheckBox();
- this.cb_Options_SmallLettersForSubSquares = new System.Windows.Forms.CheckBox();
- this.cb_Options_Locator_AutoLength = new System.Windows.Forms.CheckBox();
- this.ud_Options_Locator_MaxLength = new System.Windows.Forms.NumericUpDown();
- this.tb_Options_DXLoc = new ScoutBase.Core.LocatorTextBox();
- this.tb_Options_MyLoc = new ScoutBase.Core.LocatorTextBox();
- this.cb_Options_Map_SmallMarkers = new System.Windows.Forms.CheckBox();
- this.cb_Options_Map_LabelCalls = new System.Windows.Forms.CheckBox();
- this.ud_Options_Charts_FontSize = new System.Windows.Forms.NumericUpDown();
- this.tb_Options_Map_Update_Interval = new ScoutBase.Core.Int32TextBox();
- this.ud_Options_Map_Preloader_MaxZoom = new System.Windows.Forms.NumericUpDown();
- this.cb_Options_Map_Preloader_Enabled = new System.Windows.Forms.CheckBox();
- this.cb_Options_Watchlist_Activate = new System.Windows.Forms.CheckBox();
- this.cb_Options_Airports_Activate = new System.Windows.Forms.CheckBox();
- this.tb_Options_Planes_IconSize_S = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Planes_IconSize_H = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Planes_IconSize_M = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Planes_IconSize_L = new ScoutBase.Core.Int32TextBox();
- this.cb_Options_InfoWin_Angle = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Speed = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Squint = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Epsilon = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Dist = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Time = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Type = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Track = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Alt = new System.Windows.Forms.CheckBox();
- this.cb_Options_InfoWin_Position = new System.Windows.Forms.CheckBox();
- this.rb_Options_InfoWin_Imperial = new System.Windows.Forms.RadioButton();
- this.rb_Options_InfoWin_Metric = new System.Windows.Forms.RadioButton();
- this.tb_Options_Map_ToolTipFont = new System.Windows.Forms.TextBox();
- this.cb_Options_Elevation_GLOBE_EnableCache = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_GLOBE = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_SRTM3_EnableCache = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_SRTM3 = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_SRTM1_EnableCache = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_SRTM1 = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_ASTER3_EnableCache = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_ASTER3 = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_ASTER1_EnableCache = new System.Windows.Forms.CheckBox();
- this.cb_Options_Elevation_ASTER1 = new System.Windows.Forms.CheckBox();
- this.tb_Options_Path_MaxLength = new ScoutBase.Core.DoubleTextBox();
- this.cb_Options_Path_BestCaseElevation = new System.Windows.Forms.CheckBox();
- this.int32TextBox1 = new ScoutBase.Core.Int32TextBox();
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled = new System.Windows.Forms.CheckBox();
- this.tb_Options_Planes_Interval = new ScoutBase.Core.Int32TextBox();
- this.cb_Options_Planes_LogErrors = new System.Windows.Forms.CheckBox();
- this.cb_Options_Planes_KeepHistory = new System.Windows.Forms.CheckBox();
- this.ud_Options_Planes_Position_DatabaseLifetime = new System.Windows.Forms.NumericUpDown();
- this.tb_Options_Planes_Positions_TTL = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Planes_MaxAlt = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Planes_MinAlt = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Planes_Filter_MinAlt = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Planes_Filter_Max_Circumcircle = new ScoutBase.Core.Int32TextBox();
- this.cb_Options_Alarm_Activate = new System.Windows.Forms.CheckBox();
- this.cb_Options_Alarm_PlaySound = new System.Windows.Forms.CheckBox();
- this.tb_Options_Alarm_Distance = new ScoutBase.Core.DoubleTextBox();
- this.tb_Options_Webserver_Port = new ScoutBase.Core.Int32TextBox();
- this.cb_Options_Server_Activate = new System.Windows.Forms.CheckBox();
- this.tb_Options_Server_Port = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Server_Name = new System.Windows.Forms.TextBox();
- this.tb_Options_SpecLab_UpdateInterval = new ScoutBase.Core.DoubleTextBox();
- this.tb_Options_SpecLab_F2 = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_SpecLab_F1 = new ScoutBase.Core.Int32TextBox();
- this.tb_SpecLab_FileName = new System.Windows.Forms.TextBox();
- this.tb_SpecLab_URL = new System.Windows.Forms.TextBox();
- this.cb_SpecLab_Enabled = new System.Windows.Forms.CheckBox();
- this.rb_Options_Track_File_None = new System.Windows.Forms.RadioButton();
- this.rb_Options_Track_File_WSJT = new System.Windows.Forms.RadioButton();
- this.rb_Options_Track_File_Native = new System.Windows.Forms.RadioButton();
- this.rb_Options_Track_DDE_None = new System.Windows.Forms.RadioButton();
- this.rb_Options_Track_DDE_HRD = new System.Windows.Forms.RadioButton();
- this.tb_Options_Track_UDP_AirScout_Port = new ScoutBase.Core.Int32TextBox();
- this.tb_Options_Track_UDP_WinTest_Port = new ScoutBase.Core.Int32TextBox();
- this.rb_Options_Track_UDP_None = new System.Windows.Forms.RadioButton();
- this.rb_Options_Track_UDP_AirScout = new System.Windows.Forms.RadioButton();
- this.rb_Options_Track_UDP_WinTest = new System.Windows.Forms.RadioButton();
- this.tb_Options_Track_Serial_Baudrate = new ScoutBase.Core.Int32TextBox();
- this.rb_Options_Track_Serial_None = new System.Windows.Forms.RadioButton();
- this.tb_Options_Track_Serial_Port = new System.Windows.Forms.TextBox();
- this.rb_Options_Track_Serial_GS232_AZEL = new System.Windows.Forms.RadioButton();
- this.rb_Options_Track_Serial_GS232_AZ = new System.Windows.Forms.RadioButton();
- this.cb_Options_Track_Activate = new System.Windows.Forms.CheckBox();
- this.cb_Options_Watchlist_SyncWithKST = new System.Windows.Forms.CheckBox();
- this.tb_Options_Watchlist_MaxCount = new ScoutBase.Core.Int32TextBox();
- this.btn_Options_DXMap = new System.Windows.Forms.Button();
- this.btn_Options_MyMap = new System.Windows.Forms.Button();
- this.pictureBox3 = new System.Windows.Forms.PictureBox();
- this.pictureBox2 = new System.Windows.Forms.PictureBox();
- this.pictureBox1 = new System.Windows.Forms.PictureBox();
- this.pb_Donate = new System.Windows.Forms.PictureBox();
- this.pictureBox4 = new System.Windows.Forms.PictureBox();
- this.ud_Options_Map_Opacity = new AirScout.PercentageControl();
+ this.cb_Options_Locators_Activate = new System.Windows.Forms.CheckBox();
+ this.cb_Options_Distances_Activated = new System.Windows.Forms.CheckBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).BeginInit();
this.tab_Options_Planes.SuspendLayout();
this.groupBox48.SuspendLayout();
this.groupBox40.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Planes_Position_DatabaseLifetime)).BeginInit();
this.groupBox38.SuspendLayout();
this.groupBox26.SuspendLayout();
this.groupBox6.SuspendLayout();
@@ -497,8 +581,11 @@
this.tab_Options_Map.SuspendLayout();
this.groupBox49.SuspendLayout();
this.groupBox37.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).BeginInit();
this.groupBox39.SuspendLayout();
this.groupBox23.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Opacity)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Preloader_MaxZoom)).BeginInit();
this.groupBox30.SuspendLayout();
this.groupBox7.SuspendLayout();
this.groupBox29.SuspendLayout();
@@ -510,6 +597,7 @@
this.groupBox45.SuspendLayout();
this.groupBox44.SuspendLayout();
this.groupBox14.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Locator_MaxLength)).BeginInit();
this.groupBox16.SuspendLayout();
this.groupBox5.SuspendLayout();
this.groupBox4.SuspendLayout();
@@ -520,6 +608,7 @@
this.groupBox47.SuspendLayout();
this.groupBox27.SuspendLayout();
this.gb_Options_Database_Settings.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Database_Update_Period)).BeginInit();
this.gb_Options_Database_Info.SuspendLayout();
this.tab_Options_ASTER3.SuspendLayout();
this.groupBox51.SuspendLayout();
@@ -540,29 +629,31 @@
this.tab_Options_SpecLab.SuspendLayout();
this.groupBox3.SuspendLayout();
this.tab_Options_Track.SuspendLayout();
- this.groupBox36.SuspendLayout();
- this.groupBox35.SuspendLayout();
- this.groupBox34.SuspendLayout();
- this.groupBox33.SuspendLayout();
+ this.gb_Options_Doppler.SuspendLayout();
+ this.gb_Options_Track_File.SuspendLayout();
+ this.gb_Options_Track_DDE.SuspendLayout();
+ this.gb_Options_Track_UDP.SuspendLayout();
+ this.gb_Options_Track_Serial.SuspendLayout();
this.groupBox28.SuspendLayout();
+ this.tab_Options_CAT.SuspendLayout();
+ this.gb_Options_CAT_PortSettings.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Timeout)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Poll)).BeginInit();
+ this.gb_Options_CAT_RigType.SuspendLayout();
+ this.gb_Options_CAT_OperatingInstructions.SuspendLayout();
+ this.groupBox57.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Update)).BeginInit();
this.tab_Options_Watchlist.SuspendLayout();
this.groupBox50.SuspendLayout();
- this.groupBox17.SuspendLayout();
- this.tab_Options_Misc.SuspendLayout();
- this.groupBox15.SuspendLayout();
- this.tab_Options_Info.SuspendLayout();
- this.ss_Options.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Database_Update_Period)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Locator_MaxLength)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Preloader_MaxZoom)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Planes_Position_DatabaseLifetime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).BeginInit();
+ this.groupBox17.SuspendLayout();
+ this.tab_Options_Misc.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Opacity)).BeginInit();
+ this.groupBox15.SuspendLayout();
+ this.tab_Options_Info.SuspendLayout();
+ this.ss_Options.SuspendLayout();
this.SuspendLayout();
//
// btn_Options_OK
@@ -708,6 +799,176 @@
this.btn_Options_Open_AirScoutDirectory.UseVisualStyleBackColor = true;
this.btn_Options_Open_AirScoutDirectory.Click += new System.EventHandler(this.btn_Options_Open_AirScoutDirectory_Click);
//
+ // pb_Donate
+ //
+ this.pb_Donate.Image = ((System.Drawing.Image)(resources.GetObject("pb_Donate.Image")));
+ this.pb_Donate.InitialImage = ((System.Drawing.Image)(resources.GetObject("pb_Donate.InitialImage")));
+ this.pb_Donate.Location = new System.Drawing.Point(18, 272);
+ this.pb_Donate.Name = "pb_Donate";
+ this.pb_Donate.Size = new System.Drawing.Size(306, 113);
+ this.pb_Donate.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pb_Donate.TabIndex = 38;
+ this.pb_Donate.TabStop = false;
+ this.tt_Options.SetToolTip(this.pb_Donate, "Click here to open a browser window with link.");
+ this.pb_Donate.Click += new System.EventHandler(this.pb_Donate_Click);
+ //
+ // rb_Options_Track_UDP_AirScout
+ //
+ this.rb_Options_Track_UDP_AirScout.AutoSize = true;
+ this.rb_Options_Track_UDP_AirScout.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_UDP_AirScout.Location = new System.Drawing.Point(17, 65);
+ this.rb_Options_Track_UDP_AirScout.Name = "rb_Options_Track_UDP_AirScout";
+ this.rb_Options_Track_UDP_AirScout.Size = new System.Drawing.Size(180, 17);
+ this.rb_Options_Track_UDP_AirScout.TabIndex = 7;
+ this.rb_Options_Track_UDP_AirScout.Tag = "";
+ this.rb_Options_Track_UDP_AirScout.Text = "UDP Broadcast (AirScout) Az/El ";
+ this.tt_Options.SetToolTip(this.rb_Options_Track_UDP_AirScout, "Not implemented yet");
+ this.rb_Options_Track_UDP_AirScout.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_UDP_AirScout.CheckedChanged += new System.EventHandler(this.gb_Options_Track_UDP_CheckedChanged);
+ //
+ // tb_Options_Track_DialFreq
+ //
+ this.tb_Options_Track_DialFreq.BackColor = System.Drawing.Color.Gray;
+ this.tb_Options_Track_DialFreq.Font = new System.Drawing.Font("Courier New", 15.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Track_DialFreq.ForeColor = System.Drawing.Color.Chartreuse;
+ this.tb_Options_Track_DialFreq.FormatSpecifier = "F0";
+ this.tb_Options_Track_DialFreq.Location = new System.Drawing.Point(278, 34);
+ this.tb_Options_Track_DialFreq.MaxValue = ((long)(0));
+ this.tb_Options_Track_DialFreq.MinValue = ((long)(0));
+ this.tb_Options_Track_DialFreq.Name = "tb_Options_Track_DialFreq";
+ this.tb_Options_Track_DialFreq.Size = new System.Drawing.Size(296, 31);
+ this.tb_Options_Track_DialFreq.TabIndex = 20;
+ this.tb_Options_Track_DialFreq.Text = "0";
+ this.tt_Options.SetToolTip(this.tb_Options_Track_DialFreq, "This is the RX frequency of your rig. To change this, simply dial on your rig whe" +
+ "n not in tracking mode.");
+ this.tb_Options_Track_DialFreq.Value = ((long)(0));
+ this.tb_Options_Track_DialFreq.TextChanged += new System.EventHandler(this.tb_Options_CAT_DialFreq_TextChanged);
+ //
+ // cb_Options_Locations_RestrictToAreaOfInterest
+ //
+ this.cb_Options_Locations_RestrictToAreaOfInterest.AutoSize = true;
+ this.cb_Options_Locations_RestrictToAreaOfInterest.Checked = global::AirScout.Properties.Settings.Default.Location_RestrictToAreaOfInterest;
+ this.cb_Options_Locations_RestrictToAreaOfInterest.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Locations_RestrictToAreaOfInterest.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Location_RestrictToAreaOfInterest", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Locations_RestrictToAreaOfInterest.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Locations_RestrictToAreaOfInterest.Location = new System.Drawing.Point(12, 58);
+ this.cb_Options_Locations_RestrictToAreaOfInterest.Name = "cb_Options_Locations_RestrictToAreaOfInterest";
+ this.cb_Options_Locations_RestrictToAreaOfInterest.Size = new System.Drawing.Size(230, 17);
+ this.cb_Options_Locations_RestrictToAreaOfInterest.TabIndex = 12;
+ this.cb_Options_Locations_RestrictToAreaOfInterest.Text = "Restrict locations to current Area of Interest";
+ this.tt_Options.SetToolTip(this.cb_Options_Locations_RestrictToAreaOfInterest, "Restrict stations kept in the database to Area of Interest \r\n(all other stations" +
+ " will be removed during the update process)");
+ this.cb_Options_Locations_RestrictToAreaOfInterest.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Path_BestCaseElevation
+ //
+ this.cb_Options_Path_BestCaseElevation.AutoSize = true;
+ this.cb_Options_Path_BestCaseElevation.Checked = global::AirScout.Properties.Settings.Default.Path_BestCaseElevation;
+ this.cb_Options_Path_BestCaseElevation.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Path_BestCaseElevation.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Path_BestCaseElevation", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Path_BestCaseElevation.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Path_BestCaseElevation.Location = new System.Drawing.Point(6, 411);
+ this.cb_Options_Path_BestCaseElevation.Name = "cb_Options_Path_BestCaseElevation";
+ this.cb_Options_Path_BestCaseElevation.Size = new System.Drawing.Size(438, 17);
+ this.cb_Options_Path_BestCaseElevation.TabIndex = 28;
+ this.cb_Options_Path_BestCaseElevation.Tag = "";
+ this.cb_Options_Path_BestCaseElevation.Text = "Use best case elevation from grid square for both stations if precise location is" +
+ " unknown";
+ this.tt_Options.SetToolTip(this.cb_Options_Path_BestCaseElevation, "If an exact position of a station is not available, use highest available elevati" +
+ "on within the given grid square. \r\nThis position is ONLY used for path calculati" +
+ "on and is not kept in database.");
+ this.cb_Options_Path_BestCaseElevation.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Planes_KeepHistory
+ //
+ this.cb_Options_Planes_KeepHistory.AutoSize = true;
+ this.cb_Options_Planes_KeepHistory.Checked = global::AirScout.Properties.Settings.Default.Planes_KeepHistory;
+ this.cb_Options_Planes_KeepHistory.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_KeepHistory", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Planes_KeepHistory.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Planes_KeepHistory.Location = new System.Drawing.Point(18, 81);
+ this.cb_Options_Planes_KeepHistory.Name = "cb_Options_Planes_KeepHistory";
+ this.cb_Options_Planes_KeepHistory.Size = new System.Drawing.Size(156, 17);
+ this.cb_Options_Planes_KeepHistory.TabIndex = 4;
+ this.cb_Options_Planes_KeepHistory.Text = "Keep Plane Position History";
+ this.tt_Options.SetToolTip(this.cb_Options_Planes_KeepHistory, "Check this option to keep plane positions in database for history analysis.\r\nCAUT" +
+ "ION! This will need lot of CPU performance and space on disk!");
+ this.cb_Options_Planes_KeepHistory.UseVisualStyleBackColor = true;
+ //
+ // tb_Options_Track_Serial_Baudrate
+ //
+ this.tb_Options_Track_Serial_Baudrate.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_Serial_Baudrate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Track_Serial_Baudrate.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Track_Serial_Baudrate.FormatSpecifier = "F0";
+ this.tb_Options_Track_Serial_Baudrate.Location = new System.Drawing.Point(190, 40);
+ this.tb_Options_Track_Serial_Baudrate.MaxValue = 115200;
+ this.tb_Options_Track_Serial_Baudrate.MinValue = 0;
+ this.tb_Options_Track_Serial_Baudrate.Name = "tb_Options_Track_Serial_Baudrate";
+ this.tb_Options_Track_Serial_Baudrate.Size = new System.Drawing.Size(72, 22);
+ this.tb_Options_Track_Serial_Baudrate.TabIndex = 11;
+ this.tb_Options_Track_Serial_Baudrate.Text = "4800";
+ this.tt_Options.SetToolTip(this.tb_Options_Track_Serial_Baudrate, "Set the serial port baudrate for rotator control here.\\nBe sure that the baudrate" +
+ " is supported.");
+ this.tb_Options_Track_Serial_Baudrate.Value = global::AirScout.Properties.Settings.Default.Track_Serial_Baudrate;
+ //
+ // tb_Options_Track_Serial_Port
+ //
+ this.tb_Options_Track_Serial_Port.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
+ this.tb_Options_Track_Serial_Port.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Track_Serial_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Track_Serial_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Track_Serial_Port.Location = new System.Drawing.Point(190, 17);
+ this.tb_Options_Track_Serial_Port.Name = "tb_Options_Track_Serial_Port";
+ this.tb_Options_Track_Serial_Port.Size = new System.Drawing.Size(54, 22);
+ this.tb_Options_Track_Serial_Port.TabIndex = 6;
+ this.tb_Options_Track_Serial_Port.Tag = "";
+ this.tb_Options_Track_Serial_Port.Text = global::AirScout.Properties.Settings.Default.Track_Serial_Port;
+ this.tt_Options.SetToolTip(this.tb_Options_Track_Serial_Port, "Set the serial port for rotator control here.\\nBe sure that the port exists on yo" +
+ "ur computer.");
+ //
+ // tb_Options_Track_Offset
+ //
+ this.tb_Options_Track_Offset.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_Offset", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Track_Offset.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Track_Offset.FormatSpecifier = "F0";
+ this.tb_Options_Track_Offset.Location = new System.Drawing.Point(569, 17);
+ this.tb_Options_Track_Offset.MaxValue = 30;
+ this.tb_Options_Track_Offset.MinValue = -30;
+ this.tb_Options_Track_Offset.Name = "tb_Options_Track_Offset";
+ this.tb_Options_Track_Offset.Size = new System.Drawing.Size(43, 22);
+ this.tb_Options_Track_Offset.TabIndex = 57;
+ this.tb_Options_Track_Offset.Text = "0";
+ this.tt_Options.SetToolTip(this.tb_Options_Track_Offset, "Allows you to set an offset in time when calculating aircraft position.\\n Use thi" +
+ "s to compensate delay in your rotator control.");
+ this.tb_Options_Track_Offset.Value = global::AirScout.Properties.Settings.Default.Track_Offset;
+ //
+ // int32TextBox2
+ //
+ this.int32TextBox2.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.int32TextBox2.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.int32TextBox2.FormatSpecifier = "F0";
+ this.int32TextBox2.Location = new System.Drawing.Point(332, 17);
+ this.int32TextBox2.MaxValue = 10000;
+ this.int32TextBox2.MinValue = 100;
+ this.int32TextBox2.Name = "int32TextBox2";
+ this.int32TextBox2.Size = new System.Drawing.Size(48, 22);
+ this.int32TextBox2.TabIndex = 1;
+ this.int32TextBox2.Text = "1000";
+ this.tt_Options.SetToolTip(this.int32TextBox2, "Set the tracling update refresh rate.\\nBe sure that your rotator control and your" +
+ " rig can handle this rate.");
+ this.int32TextBox2.Value = global::AirScout.Properties.Settings.Default.Track_Update;
+ //
+ // cb_Options_Track_Activate
+ //
+ this.cb_Options_Track_Activate.Checked = global::AirScout.Properties.Settings.Default.Track_Activate;
+ this.cb_Options_Track_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Track_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Track_Activate.Location = new System.Drawing.Point(13, 15);
+ this.cb_Options_Track_Activate.Name = "cb_Options_Track_Activate";
+ this.cb_Options_Track_Activate.Size = new System.Drawing.Size(129, 24);
+ this.cb_Options_Track_Activate.TabIndex = 0;
+ this.cb_Options_Track_Activate.Text = "Activate Tracking";
+ this.tt_Options.SetToolTip(this.cb_Options_Track_Activate, "Click here to activate/deactivate tracking");
+ this.cb_Options_Track_Activate.CheckedChanged += new System.EventHandler(this.cb_Options_Track_Activate_CheckedChanged);
+ //
// tab_Options_Planes
//
this.tab_Options_Planes.BackColor = System.Drawing.SystemColors.Control;
@@ -740,6 +1001,20 @@
this.groupBox48.TabStop = false;
this.groupBox48.Text = "General Plane Feed Settings";
//
+ // int32TextBox1
+ //
+ this.int32TextBox1.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_ExtendedPlausibilityCheck_MaxErrorDist", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.int32TextBox1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.int32TextBox1.FormatSpecifier = "F0";
+ this.int32TextBox1.Location = new System.Drawing.Point(199, 84);
+ this.int32TextBox1.MaxValue = 600;
+ this.int32TextBox1.MinValue = 10;
+ this.int32TextBox1.Name = "int32TextBox1";
+ this.int32TextBox1.Size = new System.Drawing.Size(52, 22);
+ this.int32TextBox1.TabIndex = 46;
+ this.int32TextBox1.Text = "10";
+ this.int32TextBox1.Value = global::AirScout.Properties.Settings.Default.Planes_ExtendedPlausibilityCheck_MaxErrorDist;
+ //
// label33
//
this.label33.AutoSize = true;
@@ -750,6 +1025,34 @@
this.label33.TabIndex = 45;
this.label33.Text = "Max. allowed distance between \r\nreported and estimated position [km]:";
//
+ // cb_Options_Planes_ExtendedPlausibilityCheck_Enabled
+ //
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.AutoSize = true;
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Checked = global::AirScout.Properties.Settings.Default.Planes_ExtendedPlausibilityCheck_Enabled;
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_ExtendedPlausibilityCheck_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Location = new System.Drawing.Point(13, 53);
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Name = "cb_Options_Planes_ExtendedPlausibilityCheck_Enabled";
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Size = new System.Drawing.Size(256, 17);
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.TabIndex = 44;
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Text = "Enable extended plausibility check of aircraft info";
+ this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.UseVisualStyleBackColor = true;
+ //
+ // tb_Options_Planes_Interval
+ //
+ this.tb_Options_Planes_Interval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Interval", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_Interval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_Interval.FormatSpecifier = "F0";
+ this.tb_Options_Planes_Interval.Location = new System.Drawing.Point(199, 22);
+ this.tb_Options_Planes_Interval.MaxValue = 600;
+ this.tb_Options_Planes_Interval.MinValue = 10;
+ this.tb_Options_Planes_Interval.Name = "tb_Options_Planes_Interval";
+ this.tb_Options_Planes_Interval.Size = new System.Drawing.Size(52, 22);
+ this.tb_Options_Planes_Interval.TabIndex = 43;
+ this.tb_Options_Planes_Interval.Text = "60";
+ this.tb_Options_Planes_Interval.Value = global::AirScout.Properties.Settings.Default.Planes_Interval;
+ //
// label22
//
this.label22.AutoSize = true;
@@ -760,6 +1063,19 @@
this.label22.TabIndex = 35;
this.label22.Text = "Interval [sec]:";
//
+ // cb_Options_Planes_LogErrors
+ //
+ this.cb_Options_Planes_LogErrors.AutoSize = true;
+ this.cb_Options_Planes_LogErrors.Checked = global::AirScout.Properties.Settings.Default.Planes_LogErrors;
+ this.cb_Options_Planes_LogErrors.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_LogErrors", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Planes_LogErrors.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Planes_LogErrors.Location = new System.Drawing.Point(12, 118);
+ this.cb_Options_Planes_LogErrors.Name = "cb_Options_Planes_LogErrors";
+ this.cb_Options_Planes_LogErrors.Size = new System.Drawing.Size(249, 17);
+ this.cb_Options_Planes_LogErrors.TabIndex = 0;
+ this.cb_Options_Planes_LogErrors.Text = "Log errors as warnings to AirScout\'s main logfile";
+ this.cb_Options_Planes_LogErrors.UseVisualStyleBackColor = true;
+ //
// groupBox40
//
this.groupBox40.Controls.Add(this.cb_Options_Planes_KeepHistory);
@@ -784,6 +1100,26 @@
this.label55.TabIndex = 3;
this.label55.Text = "Aircraft positions older than above entered value will be deleted on next startup" +
" (0 = forever).";
+ //
+ // ud_Options_Planes_Position_DatabaseLifetime
+ //
+ this.ud_Options_Planes_Position_DatabaseLifetime.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "AircraftDatabase_MaxDaysLifetime", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.ud_Options_Planes_Position_DatabaseLifetime.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_Planes_Position_DatabaseLifetime.Location = new System.Drawing.Point(199, 14);
+ this.ud_Options_Planes_Position_DatabaseLifetime.Maximum = new decimal(new int[] {
+ 365,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Planes_Position_DatabaseLifetime.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Planes_Position_DatabaseLifetime.Name = "ud_Options_Planes_Position_DatabaseLifetime";
+ this.ud_Options_Planes_Position_DatabaseLifetime.Size = new System.Drawing.Size(49, 22);
+ this.ud_Options_Planes_Position_DatabaseLifetime.TabIndex = 2;
+ this.ud_Options_Planes_Position_DatabaseLifetime.Value = global::AirScout.Properties.Settings.Default.AircraftDatabase_MaxDaysLifetime;
//
// label53
//
@@ -824,6 +1160,48 @@
this.groupBox38.TabStop = false;
this.groupBox38.Text = "Plane Position Database Filters";
//
+ // tb_Options_Planes_Positions_TTL
+ //
+ this.tb_Options_Planes_Positions_TTL.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Position_TTL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_Positions_TTL.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_Positions_TTL.FormatSpecifier = "F0";
+ this.tb_Options_Planes_Positions_TTL.Location = new System.Drawing.Point(192, 65);
+ this.tb_Options_Planes_Positions_TTL.MaxValue = 30;
+ this.tb_Options_Planes_Positions_TTL.MinValue = 0;
+ this.tb_Options_Planes_Positions_TTL.Name = "tb_Options_Planes_Positions_TTL";
+ this.tb_Options_Planes_Positions_TTL.Size = new System.Drawing.Size(52, 22);
+ this.tb_Options_Planes_Positions_TTL.TabIndex = 43;
+ this.tb_Options_Planes_Positions_TTL.Text = "5";
+ this.tb_Options_Planes_Positions_TTL.Value = global::AirScout.Properties.Settings.Default.Planes_Position_TTL;
+ //
+ // tb_Options_Planes_MaxAlt
+ //
+ this.tb_Options_Planes_MaxAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_MaxAlt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_MaxAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_MaxAlt.FormatSpecifier = "F0";
+ this.tb_Options_Planes_MaxAlt.Location = new System.Drawing.Point(192, 39);
+ this.tb_Options_Planes_MaxAlt.MaxValue = 20000;
+ this.tb_Options_Planes_MaxAlt.MinValue = 0;
+ this.tb_Options_Planes_MaxAlt.Name = "tb_Options_Planes_MaxAlt";
+ this.tb_Options_Planes_MaxAlt.Size = new System.Drawing.Size(52, 22);
+ this.tb_Options_Planes_MaxAlt.TabIndex = 42;
+ this.tb_Options_Planes_MaxAlt.Text = "12200";
+ this.tb_Options_Planes_MaxAlt.Value = global::AirScout.Properties.Settings.Default.Planes_MaxAlt;
+ //
+ // tb_Options_Planes_MinAlt
+ //
+ this.tb_Options_Planes_MinAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_MinAlt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_MinAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_MinAlt.FormatSpecifier = "F0";
+ this.tb_Options_Planes_MinAlt.Location = new System.Drawing.Point(192, 14);
+ this.tb_Options_Planes_MinAlt.MaxValue = 20000;
+ this.tb_Options_Planes_MinAlt.MinValue = 0;
+ this.tb_Options_Planes_MinAlt.Name = "tb_Options_Planes_MinAlt";
+ this.tb_Options_Planes_MinAlt.Size = new System.Drawing.Size(52, 22);
+ this.tb_Options_Planes_MinAlt.TabIndex = 41;
+ this.tb_Options_Planes_MinAlt.Text = "5000";
+ this.tb_Options_Planes_MinAlt.Value = global::AirScout.Properties.Settings.Default.Planes_MinAlt;
+ //
// label2
//
this.label2.AutoSize = true;
@@ -902,6 +1280,34 @@
this.groupBox26.TabStop = false;
this.groupBox26.Text = "Plane Live Position Filters";
//
+ // tb_Options_Planes_Filter_MinAlt
+ //
+ this.tb_Options_Planes_Filter_MinAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Filter_Min_Alt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_Filter_MinAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_Filter_MinAlt.FormatSpecifier = "F0";
+ this.tb_Options_Planes_Filter_MinAlt.Location = new System.Drawing.Point(192, 86);
+ this.tb_Options_Planes_Filter_MinAlt.MaxValue = 12000;
+ this.tb_Options_Planes_Filter_MinAlt.MinValue = 0;
+ this.tb_Options_Planes_Filter_MinAlt.Name = "tb_Options_Planes_Filter_MinAlt";
+ this.tb_Options_Planes_Filter_MinAlt.Size = new System.Drawing.Size(52, 22);
+ this.tb_Options_Planes_Filter_MinAlt.TabIndex = 43;
+ this.tb_Options_Planes_Filter_MinAlt.Text = "0";
+ this.tb_Options_Planes_Filter_MinAlt.Value = global::AirScout.Properties.Settings.Default.Planes_Filter_Min_Alt;
+ //
+ // tb_Options_Planes_Filter_Max_Circumcircle
+ //
+ this.tb_Options_Planes_Filter_Max_Circumcircle.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Filter_Max_Circumcircle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_Filter_Max_Circumcircle.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_Filter_Max_Circumcircle.FormatSpecifier = "F0";
+ this.tb_Options_Planes_Filter_Max_Circumcircle.Location = new System.Drawing.Point(192, 59);
+ this.tb_Options_Planes_Filter_Max_Circumcircle.MaxValue = 1000;
+ this.tb_Options_Planes_Filter_Max_Circumcircle.MinValue = -1;
+ this.tb_Options_Planes_Filter_Max_Circumcircle.Name = "tb_Options_Planes_Filter_Max_Circumcircle";
+ this.tb_Options_Planes_Filter_Max_Circumcircle.Size = new System.Drawing.Size(52, 22);
+ this.tb_Options_Planes_Filter_Max_Circumcircle.TabIndex = 42;
+ this.tb_Options_Planes_Filter_Max_Circumcircle.Text = "0";
+ this.tb_Options_Planes_Filter_Max_Circumcircle.Value = global::AirScout.Properties.Settings.Default.Planes_Filter_Max_Circumcircle;
+ //
// label96
//
this.label96.AutoSize = true;
@@ -1254,6 +1660,20 @@
this.label147.TabIndex = 40;
this.label147.Text = "Export elevation path to CSV (do not change settings before as they may not have " +
" effect):";
+ //
+ // tb_Options_Path_MaxLength
+ //
+ this.tb_Options_Path_MaxLength.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Path_MaxLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Path_MaxLength.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Path_MaxLength.FormatSpecifier = "F0";
+ this.tb_Options_Path_MaxLength.Location = new System.Drawing.Point(318, 385);
+ this.tb_Options_Path_MaxLength.MaxValue = double.NaN;
+ this.tb_Options_Path_MaxLength.MinValue = double.NaN;
+ this.tb_Options_Path_MaxLength.Name = "tb_Options_Path_MaxLength";
+ this.tb_Options_Path_MaxLength.Size = new System.Drawing.Size(57, 20);
+ this.tb_Options_Path_MaxLength.TabIndex = 39;
+ this.tb_Options_Path_MaxLength.Text = "1000";
+ this.tb_Options_Path_MaxLength.Value = global::AirScout.Properties.Settings.Default.Path_MaxLength;
//
// label131
//
@@ -1404,6 +1824,7 @@
this.gm_Options_SRTM1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
this.gm_Options_SRTM1.Name = "gm_Options_SRTM1";
this.gm_Options_SRTM1.NegativeMode = false;
+ this.gm_Options_SRTM1.Opacity = 1D;
this.gm_Options_SRTM1.PolygonsEnabled = true;
this.gm_Options_SRTM1.RetryLoadTile = 0;
this.gm_Options_SRTM1.RoutesEnabled = true;
@@ -1425,6 +1846,34 @@
this.groupBox12.TabStop = false;
this.groupBox12.Text = "Use Elevation Model";
//
+ // cb_Options_Elevation_SRTM1_EnableCache
+ //
+ this.cb_Options_Elevation_SRTM1_EnableCache.AutoSize = true;
+ this.cb_Options_Elevation_SRTM1_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM1_EnableCache;
+ this.cb_Options_Elevation_SRTM1_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM1_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_SRTM1_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_SRTM1_EnableCache.Location = new System.Drawing.Point(6, 42);
+ this.cb_Options_Elevation_SRTM1_EnableCache.Name = "cb_Options_Elevation_SRTM1_EnableCache";
+ this.cb_Options_Elevation_SRTM1_EnableCache.Size = new System.Drawing.Size(179, 17);
+ this.cb_Options_Elevation_SRTM1_EnableCache.TabIndex = 17;
+ this.cb_Options_Elevation_SRTM1_EnableCache.Tag = "";
+ this.cb_Options_Elevation_SRTM1_EnableCache.Text = "Keep downloaded elevation tiles";
+ this.cb_Options_Elevation_SRTM1_EnableCache.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Elevation_SRTM1
+ //
+ this.cb_Options_Elevation_SRTM1.AutoSize = true;
+ this.cb_Options_Elevation_SRTM1.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM1_Enabled;
+ this.cb_Options_Elevation_SRTM1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM1_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_SRTM1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_SRTM1.Location = new System.Drawing.Point(6, 19);
+ this.cb_Options_Elevation_SRTM1.Name = "cb_Options_Elevation_SRTM1";
+ this.cb_Options_Elevation_SRTM1.Size = new System.Drawing.Size(155, 17);
+ this.cb_Options_Elevation_SRTM1.TabIndex = 16;
+ this.cb_Options_Elevation_SRTM1.Tag = "";
+ this.cb_Options_Elevation_SRTM1.Text = "Use SRTM1 elevation data";
+ this.cb_Options_Elevation_SRTM1.UseVisualStyleBackColor = true;
+ //
// tab_Options_SRTM3
//
this.tab_Options_SRTM3.BackColor = System.Drawing.SystemColors.Control;
@@ -1511,6 +1960,7 @@
this.gm_Options_SRTM3.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
this.gm_Options_SRTM3.Name = "gm_Options_SRTM3";
this.gm_Options_SRTM3.NegativeMode = false;
+ this.gm_Options_SRTM3.Opacity = 1D;
this.gm_Options_SRTM3.PolygonsEnabled = true;
this.gm_Options_SRTM3.RetryLoadTile = 0;
this.gm_Options_SRTM3.RoutesEnabled = true;
@@ -1532,6 +1982,34 @@
this.groupBox8.TabStop = false;
this.groupBox8.Text = "Use Elevation Model";
//
+ // cb_Options_Elevation_SRTM3_EnableCache
+ //
+ this.cb_Options_Elevation_SRTM3_EnableCache.AutoSize = true;
+ this.cb_Options_Elevation_SRTM3_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM3_EnableCache;
+ this.cb_Options_Elevation_SRTM3_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM3_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_SRTM3_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_SRTM3_EnableCache.Location = new System.Drawing.Point(6, 42);
+ this.cb_Options_Elevation_SRTM3_EnableCache.Name = "cb_Options_Elevation_SRTM3_EnableCache";
+ this.cb_Options_Elevation_SRTM3_EnableCache.Size = new System.Drawing.Size(179, 17);
+ this.cb_Options_Elevation_SRTM3_EnableCache.TabIndex = 13;
+ this.cb_Options_Elevation_SRTM3_EnableCache.Tag = "";
+ this.cb_Options_Elevation_SRTM3_EnableCache.Text = "Keep downloaded elevation tiles";
+ this.cb_Options_Elevation_SRTM3_EnableCache.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Elevation_SRTM3
+ //
+ this.cb_Options_Elevation_SRTM3.AutoSize = true;
+ this.cb_Options_Elevation_SRTM3.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM3_Enabled;
+ this.cb_Options_Elevation_SRTM3.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM3_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_SRTM3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_SRTM3.Location = new System.Drawing.Point(6, 19);
+ this.cb_Options_Elevation_SRTM3.Name = "cb_Options_Elevation_SRTM3";
+ this.cb_Options_Elevation_SRTM3.Size = new System.Drawing.Size(155, 17);
+ this.cb_Options_Elevation_SRTM3.TabIndex = 12;
+ this.cb_Options_Elevation_SRTM3.Tag = "";
+ this.cb_Options_Elevation_SRTM3.Text = "Use SRTM3 elevation data";
+ this.cb_Options_Elevation_SRTM3.UseVisualStyleBackColor = true;
+ //
// tab_Options_GLOBE
//
this.tab_Options_GLOBE.BackColor = System.Drawing.SystemColors.Control;
@@ -1618,6 +2096,7 @@
this.gm_Options_GLOBE.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
this.gm_Options_GLOBE.Name = "gm_Options_GLOBE";
this.gm_Options_GLOBE.NegativeMode = false;
+ this.gm_Options_GLOBE.Opacity = 1D;
this.gm_Options_GLOBE.PolygonsEnabled = true;
this.gm_Options_GLOBE.RetryLoadTile = 0;
this.gm_Options_GLOBE.RoutesEnabled = true;
@@ -1639,6 +2118,36 @@
this.groupBox10.TabStop = false;
this.groupBox10.Text = "Use Elevation Model";
//
+ // cb_Options_Elevation_GLOBE_EnableCache
+ //
+ this.cb_Options_Elevation_GLOBE_EnableCache.AutoSize = true;
+ this.cb_Options_Elevation_GLOBE_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_GLOBE_EnableCache;
+ this.cb_Options_Elevation_GLOBE_EnableCache.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Elevation_GLOBE_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_GLOBE_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_GLOBE_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_GLOBE_EnableCache.Location = new System.Drawing.Point(12, 42);
+ this.cb_Options_Elevation_GLOBE_EnableCache.Name = "cb_Options_Elevation_GLOBE_EnableCache";
+ this.cb_Options_Elevation_GLOBE_EnableCache.Size = new System.Drawing.Size(179, 17);
+ this.cb_Options_Elevation_GLOBE_EnableCache.TabIndex = 8;
+ this.cb_Options_Elevation_GLOBE_EnableCache.Tag = "";
+ this.cb_Options_Elevation_GLOBE_EnableCache.Text = "Keep downloaded elevation tiles";
+ this.cb_Options_Elevation_GLOBE_EnableCache.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Elevation_GLOBE
+ //
+ this.cb_Options_Elevation_GLOBE.AutoSize = true;
+ this.cb_Options_Elevation_GLOBE.Checked = global::AirScout.Properties.Settings.Default.Elevation_GLOBE_Enabled;
+ this.cb_Options_Elevation_GLOBE.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Elevation_GLOBE.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_GLOBE_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_GLOBE.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_GLOBE.Location = new System.Drawing.Point(12, 19);
+ this.cb_Options_Elevation_GLOBE.Name = "cb_Options_Elevation_GLOBE";
+ this.cb_Options_Elevation_GLOBE.Size = new System.Drawing.Size(154, 17);
+ this.cb_Options_Elevation_GLOBE.TabIndex = 7;
+ this.cb_Options_Elevation_GLOBE.Tag = "";
+ this.cb_Options_Elevation_GLOBE.Text = "Use GLOBE elevation data";
+ this.cb_Options_Elevation_GLOBE.UseVisualStyleBackColor = true;
+ //
// tab_Options_Map
//
this.tab_Options_Map.BackColor = System.Drawing.SystemColors.Control;
@@ -1670,6 +2179,34 @@
this.groupBox49.TabStop = false;
this.groupBox49.Text = "Multi-Path";
//
+ // cb_Options_Map_SmallMarkers
+ //
+ this.cb_Options_Map_SmallMarkers.AutoSize = true;
+ this.cb_Options_Map_SmallMarkers.Checked = global::AirScout.Properties.Settings.Default.Map_SmallMarkers;
+ this.cb_Options_Map_SmallMarkers.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Map_SmallMarkers.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_SmallMarkers", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Map_SmallMarkers.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Map_SmallMarkers.Location = new System.Drawing.Point(18, 22);
+ this.cb_Options_Map_SmallMarkers.Name = "cb_Options_Map_SmallMarkers";
+ this.cb_Options_Map_SmallMarkers.Size = new System.Drawing.Size(199, 17);
+ this.cb_Options_Map_SmallMarkers.TabIndex = 2;
+ this.cb_Options_Map_SmallMarkers.Text = "Use Small Markers for all Path Marks";
+ this.cb_Options_Map_SmallMarkers.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Map_LabelCalls
+ //
+ this.cb_Options_Map_LabelCalls.AutoSize = true;
+ this.cb_Options_Map_LabelCalls.Checked = global::AirScout.Properties.Settings.Default.Map_LabelCalls;
+ this.cb_Options_Map_LabelCalls.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Map_LabelCalls.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_LabelCalls", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Map_LabelCalls.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Map_LabelCalls.Location = new System.Drawing.Point(18, 45);
+ this.cb_Options_Map_LabelCalls.Name = "cb_Options_Map_LabelCalls";
+ this.cb_Options_Map_LabelCalls.Size = new System.Drawing.Size(209, 17);
+ this.cb_Options_Map_LabelCalls.TabIndex = 3;
+ this.cb_Options_Map_LabelCalls.Text = "Show Labels with Callsign at Locations";
+ this.cb_Options_Map_LabelCalls.UseVisualStyleBackColor = true;
+ //
// groupBox37
//
this.groupBox37.Controls.Add(this.label34);
@@ -1692,6 +2229,26 @@
this.label34.TabIndex = 2;
this.label34.Text = "Font Size for Axes in Diagrams etc.:";
//
+ // ud_Options_Charts_FontSize
+ //
+ this.ud_Options_Charts_FontSize.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Charts_FontSize", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.ud_Options_Charts_FontSize.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_Charts_FontSize.Location = new System.Drawing.Point(192, 15);
+ this.ud_Options_Charts_FontSize.Maximum = new decimal(new int[] {
+ 16,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Charts_FontSize.Minimum = new decimal(new int[] {
+ 6,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Charts_FontSize.Name = "ud_Options_Charts_FontSize";
+ this.ud_Options_Charts_FontSize.Size = new System.Drawing.Size(45, 22);
+ this.ud_Options_Charts_FontSize.TabIndex = 0;
+ this.ud_Options_Charts_FontSize.Value = global::AirScout.Properties.Settings.Default.Charts_FontSize;
+ //
// groupBox39
//
this.groupBox39.Controls.Add(this.tb_Options_Map_Update_Interval);
@@ -1705,6 +2262,20 @@
this.groupBox39.TabStop = false;
this.groupBox39.Text = "Screen Updates";
//
+ // tb_Options_Map_Update_Interval
+ //
+ this.tb_Options_Map_Update_Interval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Map_Update_Interval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Map_Update_Interval.FormatSpecifier = "F0";
+ this.tb_Options_Map_Update_Interval.Location = new System.Drawing.Point(119, 33);
+ this.tb_Options_Map_Update_Interval.MaxValue = 3600;
+ this.tb_Options_Map_Update_Interval.MinValue = 0;
+ this.tb_Options_Map_Update_Interval.Name = "tb_Options_Map_Update_Interval";
+ this.tb_Options_Map_Update_Interval.Size = new System.Drawing.Size(37, 22);
+ this.tb_Options_Map_Update_Interval.TabIndex = 23;
+ this.tb_Options_Map_Update_Interval.Text = "1";
+ this.tb_Options_Map_Update_Interval.Value = global::AirScout.Properties.Settings.Default.Map_Update;
+ //
// label97
//
this.label97.AutoSize = true;
@@ -1727,6 +2298,8 @@
//
// groupBox23
//
+ this.groupBox23.Controls.Add(this.cb_Options_Distances_Activated);
+ this.groupBox23.Controls.Add(this.cb_Options_Locators_Activate);
this.groupBox23.Controls.Add(this.ud_Options_Map_Opacity);
this.groupBox23.Controls.Add(this.label148);
this.groupBox23.Controls.Add(this.ud_Options_Map_Preloader_MaxZoom);
@@ -1742,15 +2315,102 @@
this.groupBox23.TabStop = false;
this.groupBox23.Text = "General ";
//
+ // ud_Options_Map_Opacity
+ //
+ this.ud_Options_Map_Opacity.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Opacity", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.ud_Options_Map_Opacity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_Map_Opacity.Increment = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 65536});
+ this.ud_Options_Map_Opacity.Location = new System.Drawing.Point(320, 18);
+ this.ud_Options_Map_Opacity.Maximum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Map_Opacity.Name = "ud_Options_Map_Opacity";
+ this.ud_Options_Map_Opacity.Size = new System.Drawing.Size(54, 20);
+ this.ud_Options_Map_Opacity.TabIndex = 10;
+ this.ud_Options_Map_Opacity.Value = global::AirScout.Properties.Settings.Default.Map_Opacity;
+ //
+ // label148
+ //
+ this.label148.AutoSize = true;
+ this.label148.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label148.Location = new System.Drawing.Point(234, 20);
+ this.label148.Name = "label148";
+ this.label148.Size = new System.Drawing.Size(70, 13);
+ this.label148.TabIndex = 7;
+ this.label148.Text = "Map Opacity:";
+ //
+ // ud_Options_Map_Preloader_MaxZoom
+ //
+ this.ud_Options_Map_Preloader_MaxZoom.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Preloader_MaxZoom", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.ud_Options_Map_Preloader_MaxZoom.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_Map_Preloader_MaxZoom.Location = new System.Drawing.Point(319, 66);
+ this.ud_Options_Map_Preloader_MaxZoom.Maximum = new decimal(new int[] {
+ 11,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Map_Preloader_MaxZoom.Name = "ud_Options_Map_Preloader_MaxZoom";
+ this.ud_Options_Map_Preloader_MaxZoom.Size = new System.Drawing.Size(54, 22);
+ this.ud_Options_Map_Preloader_MaxZoom.TabIndex = 6;
+ this.ud_Options_Map_Preloader_MaxZoom.Value = global::AirScout.Properties.Settings.Default.Map_Preloader_MaxZoom;
+ //
// label144
//
this.label144.AutoSize = true;
this.label144.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label144.Location = new System.Drawing.Point(226, 64);
+ this.label144.Location = new System.Drawing.Point(234, 64);
this.label144.Name = "label144";
- this.label144.Size = new System.Drawing.Size(87, 26);
+ this.label144.Size = new System.Drawing.Size(78, 26);
this.label144.TabIndex = 5;
- this.label144.Text = "Preload down to \r\nZoom Level:";
+ this.label144.Text = "Preload down \r\nto Zoom Level:";
+ //
+ // cb_Options_Map_Preloader_Enabled
+ //
+ this.cb_Options_Map_Preloader_Enabled.AutoSize = true;
+ this.cb_Options_Map_Preloader_Enabled.Checked = global::AirScout.Properties.Settings.Default.Map_Preloader_Enabled;
+ this.cb_Options_Map_Preloader_Enabled.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Map_Preloader_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_Preloader_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Map_Preloader_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Map_Preloader_Enabled.Location = new System.Drawing.Point(237, 44);
+ this.cb_Options_Map_Preloader_Enabled.Name = "cb_Options_Map_Preloader_Enabled";
+ this.cb_Options_Map_Preloader_Enabled.Size = new System.Drawing.Size(136, 17);
+ this.cb_Options_Map_Preloader_Enabled.TabIndex = 4;
+ this.cb_Options_Map_Preloader_Enabled.Text = "Enable Map Preloading";
+ this.cb_Options_Map_Preloader_Enabled.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Watchlist_Activate
+ //
+ this.cb_Options_Watchlist_Activate.AutoSize = true;
+ this.cb_Options_Watchlist_Activate.Checked = global::AirScout.Properties.Settings.Default.Watchlist_Activated;
+ this.cb_Options_Watchlist_Activate.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Watchlist_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Watchlist_Activated", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Watchlist_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Watchlist_Activate.Location = new System.Drawing.Point(16, 71);
+ this.cb_Options_Watchlist_Activate.Name = "cb_Options_Watchlist_Activate";
+ this.cb_Options_Watchlist_Activate.Size = new System.Drawing.Size(144, 17);
+ this.cb_Options_Watchlist_Activate.TabIndex = 1;
+ this.cb_Options_Watchlist_Activate.Text = "Show Watchlist Callsigns";
+ this.cb_Options_Watchlist_Activate.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Airports_Activate
+ //
+ this.cb_Options_Airports_Activate.AutoSize = true;
+ this.cb_Options_Airports_Activate.Checked = global::AirScout.Properties.Settings.Default.Airports_Activate;
+ this.cb_Options_Airports_Activate.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Airports_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Airports_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Airports_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Airports_Activate.Location = new System.Drawing.Point(16, 19);
+ this.cb_Options_Airports_Activate.Name = "cb_Options_Airports_Activate";
+ this.cb_Options_Airports_Activate.Size = new System.Drawing.Size(91, 17);
+ this.cb_Options_Airports_Activate.TabIndex = 0;
+ this.cb_Options_Airports_Activate.Text = "Show Airports";
+ this.cb_Options_Airports_Activate.UseVisualStyleBackColor = true;
//
// groupBox30
//
@@ -1771,6 +2431,62 @@
this.groupBox30.TabStop = false;
this.groupBox30.Text = "Plane Icon Sizes per Category";
//
+ // tb_Options_Planes_IconSize_S
+ //
+ this.tb_Options_Planes_IconSize_S.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_S", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_IconSize_S.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_IconSize_S.FormatSpecifier = "F0";
+ this.tb_Options_Planes_IconSize_S.Location = new System.Drawing.Point(183, 47);
+ this.tb_Options_Planes_IconSize_S.MaxValue = 128;
+ this.tb_Options_Planes_IconSize_S.MinValue = 0;
+ this.tb_Options_Planes_IconSize_S.Name = "tb_Options_Planes_IconSize_S";
+ this.tb_Options_Planes_IconSize_S.Size = new System.Drawing.Size(37, 22);
+ this.tb_Options_Planes_IconSize_S.TabIndex = 16;
+ this.tb_Options_Planes_IconSize_S.Text = "48";
+ this.tb_Options_Planes_IconSize_S.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_S;
+ //
+ // tb_Options_Planes_IconSize_H
+ //
+ this.tb_Options_Planes_IconSize_H.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_H", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_IconSize_H.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_IconSize_H.FormatSpecifier = "F0";
+ this.tb_Options_Planes_IconSize_H.Location = new System.Drawing.Point(183, 19);
+ this.tb_Options_Planes_IconSize_H.MaxValue = 128;
+ this.tb_Options_Planes_IconSize_H.MinValue = 0;
+ this.tb_Options_Planes_IconSize_H.Name = "tb_Options_Planes_IconSize_H";
+ this.tb_Options_Planes_IconSize_H.Size = new System.Drawing.Size(37, 22);
+ this.tb_Options_Planes_IconSize_H.TabIndex = 15;
+ this.tb_Options_Planes_IconSize_H.Text = "36";
+ this.tb_Options_Planes_IconSize_H.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_H;
+ //
+ // tb_Options_Planes_IconSize_M
+ //
+ this.tb_Options_Planes_IconSize_M.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_M", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_IconSize_M.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_IconSize_M.FormatSpecifier = "F0";
+ this.tb_Options_Planes_IconSize_M.Location = new System.Drawing.Point(63, 47);
+ this.tb_Options_Planes_IconSize_M.MaxValue = 128;
+ this.tb_Options_Planes_IconSize_M.MinValue = 0;
+ this.tb_Options_Planes_IconSize_M.Name = "tb_Options_Planes_IconSize_M";
+ this.tb_Options_Planes_IconSize_M.Size = new System.Drawing.Size(37, 22);
+ this.tb_Options_Planes_IconSize_M.TabIndex = 14;
+ this.tb_Options_Planes_IconSize_M.Text = "24";
+ this.tb_Options_Planes_IconSize_M.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_M;
+ //
+ // tb_Options_Planes_IconSize_L
+ //
+ this.tb_Options_Planes_IconSize_L.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_L", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Planes_IconSize_L.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Planes_IconSize_L.FormatSpecifier = "F0";
+ this.tb_Options_Planes_IconSize_L.Location = new System.Drawing.Point(63, 21);
+ this.tb_Options_Planes_IconSize_L.MaxValue = 128;
+ this.tb_Options_Planes_IconSize_L.MinValue = 0;
+ this.tb_Options_Planes_IconSize_L.Name = "tb_Options_Planes_IconSize_L";
+ this.tb_Options_Planes_IconSize_L.Size = new System.Drawing.Size(37, 22);
+ this.tb_Options_Planes_IconSize_L.TabIndex = 13;
+ this.tb_Options_Planes_IconSize_L.Text = "16";
+ this.tb_Options_Planes_IconSize_L.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_L;
+ //
// label84
//
this.label84.AutoSize = true;
@@ -1859,7 +2575,7 @@
this.label76.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label76.Location = new System.Drawing.Point(10, 41);
this.label76.Name = "label76";
- this.label76.Size = new System.Drawing.Size(116, 16);
+ this.label76.Size = new System.Drawing.Size(115, 16);
this.label76.TabIndex = 18;
this.label76.Text = "bold characters";
//
@@ -1882,6 +2598,153 @@
this.label75.TabIndex = 17;
this.label75.Text = "are affecting both Simple and Detailed Info Window.";
//
+ // cb_Options_InfoWin_Angle
+ //
+ this.cb_Options_InfoWin_Angle.AutoSize = true;
+ this.cb_Options_InfoWin_Angle.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Angle;
+ this.cb_Options_InfoWin_Angle.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Angle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Angle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Angle.Location = new System.Drawing.Point(139, 75);
+ this.cb_Options_InfoWin_Angle.Name = "cb_Options_InfoWin_Angle";
+ this.cb_Options_InfoWin_Angle.Size = new System.Drawing.Size(96, 17);
+ this.cb_Options_InfoWin_Angle.TabIndex = 15;
+ this.cb_Options_InfoWin_Angle.Tag = "";
+ this.cb_Options_InfoWin_Angle.Text = "Crossing Angle";
+ this.cb_Options_InfoWin_Angle.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Speed
+ //
+ this.cb_Options_InfoWin_Speed.AutoSize = true;
+ this.cb_Options_InfoWin_Speed.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Speed;
+ this.cb_Options_InfoWin_Speed.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Speed", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Speed.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Speed.Location = new System.Drawing.Point(26, 100);
+ this.cb_Options_InfoWin_Speed.Name = "cb_Options_InfoWin_Speed";
+ this.cb_Options_InfoWin_Speed.Size = new System.Drawing.Size(87, 17);
+ this.cb_Options_InfoWin_Speed.TabIndex = 14;
+ this.cb_Options_InfoWin_Speed.Tag = "";
+ this.cb_Options_InfoWin_Speed.Text = "Plane Speed";
+ this.cb_Options_InfoWin_Speed.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Squint
+ //
+ this.cb_Options_InfoWin_Squint.AutoSize = true;
+ this.cb_Options_InfoWin_Squint.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Squint;
+ this.cb_Options_InfoWin_Squint.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_InfoWin_Squint.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Squint", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Squint.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Squint.Location = new System.Drawing.Point(139, 121);
+ this.cb_Options_InfoWin_Squint.Name = "cb_Options_InfoWin_Squint";
+ this.cb_Options_InfoWin_Squint.Size = new System.Drawing.Size(86, 17);
+ this.cb_Options_InfoWin_Squint.TabIndex = 13;
+ this.cb_Options_InfoWin_Squint.Tag = "";
+ this.cb_Options_InfoWin_Squint.Text = "Squint Angle";
+ this.cb_Options_InfoWin_Squint.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Epsilon
+ //
+ this.cb_Options_InfoWin_Epsilon.AutoSize = true;
+ this.cb_Options_InfoWin_Epsilon.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Epsilon;
+ this.cb_Options_InfoWin_Epsilon.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Epsilon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Epsilon.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Epsilon.Location = new System.Drawing.Point(139, 98);
+ this.cb_Options_InfoWin_Epsilon.Name = "cb_Options_InfoWin_Epsilon";
+ this.cb_Options_InfoWin_Epsilon.Size = new System.Drawing.Size(105, 17);
+ this.cb_Options_InfoWin_Epsilon.TabIndex = 12;
+ this.cb_Options_InfoWin_Epsilon.Tag = "";
+ this.cb_Options_InfoWin_Epsilon.Text = "Elevation Angles";
+ this.cb_Options_InfoWin_Epsilon.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Dist
+ //
+ this.cb_Options_InfoWin_Dist.AutoSize = true;
+ this.cb_Options_InfoWin_Dist.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Dist;
+ this.cb_Options_InfoWin_Dist.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_InfoWin_Dist.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Dist", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Dist.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Dist.Location = new System.Drawing.Point(139, 29);
+ this.cb_Options_InfoWin_Dist.Name = "cb_Options_InfoWin_Dist";
+ this.cb_Options_InfoWin_Dist.Size = new System.Drawing.Size(111, 17);
+ this.cb_Options_InfoWin_Dist.TabIndex = 11;
+ this.cb_Options_InfoWin_Dist.Tag = "";
+ this.cb_Options_InfoWin_Dist.Text = "Crossing Distance";
+ this.cb_Options_InfoWin_Dist.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Time
+ //
+ this.cb_Options_InfoWin_Time.AutoSize = true;
+ this.cb_Options_InfoWin_Time.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Time;
+ this.cb_Options_InfoWin_Time.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_InfoWin_Time.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Time", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Time.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Time.Location = new System.Drawing.Point(139, 52);
+ this.cb_Options_InfoWin_Time.Name = "cb_Options_InfoWin_Time";
+ this.cb_Options_InfoWin_Time.Size = new System.Drawing.Size(92, 17);
+ this.cb_Options_InfoWin_Time.TabIndex = 10;
+ this.cb_Options_InfoWin_Time.Tag = "";
+ this.cb_Options_InfoWin_Time.Text = "Crossing Time";
+ this.cb_Options_InfoWin_Time.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Type
+ //
+ this.cb_Options_InfoWin_Type.AutoSize = true;
+ this.cb_Options_InfoWin_Type.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Type;
+ this.cb_Options_InfoWin_Type.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_InfoWin_Type.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Type", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Type.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Type.Location = new System.Drawing.Point(26, 123);
+ this.cb_Options_InfoWin_Type.Name = "cb_Options_InfoWin_Type";
+ this.cb_Options_InfoWin_Type.Size = new System.Drawing.Size(90, 17);
+ this.cb_Options_InfoWin_Type.TabIndex = 9;
+ this.cb_Options_InfoWin_Type.Tag = "";
+ this.cb_Options_InfoWin_Type.Text = "Plane Type";
+ this.cb_Options_InfoWin_Type.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Track
+ //
+ this.cb_Options_InfoWin_Track.AutoSize = true;
+ this.cb_Options_InfoWin_Track.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Track;
+ this.cb_Options_InfoWin_Track.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_InfoWin_Track.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Track", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Track.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Track.Location = new System.Drawing.Point(26, 77);
+ this.cb_Options_InfoWin_Track.Name = "cb_Options_InfoWin_Track";
+ this.cb_Options_InfoWin_Track.Size = new System.Drawing.Size(95, 17);
+ this.cb_Options_InfoWin_Track.TabIndex = 8;
+ this.cb_Options_InfoWin_Track.Tag = "";
+ this.cb_Options_InfoWin_Track.Text = "Plane Track";
+ this.cb_Options_InfoWin_Track.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Alt
+ //
+ this.cb_Options_InfoWin_Alt.AutoSize = true;
+ this.cb_Options_InfoWin_Alt.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Alt;
+ this.cb_Options_InfoWin_Alt.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_InfoWin_Alt.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Alt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Alt.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Alt.Location = new System.Drawing.Point(26, 54);
+ this.cb_Options_InfoWin_Alt.Name = "cb_Options_InfoWin_Alt";
+ this.cb_Options_InfoWin_Alt.Size = new System.Drawing.Size(105, 17);
+ this.cb_Options_InfoWin_Alt.TabIndex = 7;
+ this.cb_Options_InfoWin_Alt.Tag = "";
+ this.cb_Options_InfoWin_Alt.Text = "Plane Altitude";
+ this.cb_Options_InfoWin_Alt.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_InfoWin_Position
+ //
+ this.cb_Options_InfoWin_Position.AutoSize = true;
+ this.cb_Options_InfoWin_Position.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Position;
+ this.cb_Options_InfoWin_Position.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_InfoWin_Position.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Position", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_InfoWin_Position.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_InfoWin_Position.Location = new System.Drawing.Point(26, 31);
+ this.cb_Options_InfoWin_Position.Name = "cb_Options_InfoWin_Position";
+ this.cb_Options_InfoWin_Position.Size = new System.Drawing.Size(107, 17);
+ this.cb_Options_InfoWin_Position.TabIndex = 6;
+ this.cb_Options_InfoWin_Position.Tag = "";
+ this.cb_Options_InfoWin_Position.Text = "Plane Position";
+ this.cb_Options_InfoWin_Position.UseVisualStyleBackColor = true;
+ //
// groupBox22
//
this.groupBox22.Controls.Add(this.rb_Options_InfoWin_Imperial);
@@ -1898,6 +2761,35 @@
this.groupBox22.TabStop = false;
this.groupBox22.Text = "Info Window Options";
//
+ // rb_Options_InfoWin_Imperial
+ //
+ this.rb_Options_InfoWin_Imperial.AutoSize = true;
+ this.rb_Options_InfoWin_Imperial.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Imperial;
+ this.rb_Options_InfoWin_Imperial.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Imperial", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.rb_Options_InfoWin_Imperial.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_InfoWin_Imperial.Location = new System.Drawing.Point(156, 18);
+ this.rb_Options_InfoWin_Imperial.Name = "rb_Options_InfoWin_Imperial";
+ this.rb_Options_InfoWin_Imperial.Size = new System.Drawing.Size(61, 17);
+ this.rb_Options_InfoWin_Imperial.TabIndex = 5;
+ this.rb_Options_InfoWin_Imperial.Tag = "";
+ this.rb_Options_InfoWin_Imperial.Text = "Imperial";
+ this.rb_Options_InfoWin_Imperial.UseVisualStyleBackColor = true;
+ //
+ // rb_Options_InfoWin_Metric
+ //
+ this.rb_Options_InfoWin_Metric.AutoSize = true;
+ this.rb_Options_InfoWin_Metric.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Metric;
+ this.rb_Options_InfoWin_Metric.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Metric", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.rb_Options_InfoWin_Metric.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_InfoWin_Metric.Location = new System.Drawing.Point(83, 18);
+ this.rb_Options_InfoWin_Metric.Name = "rb_Options_InfoWin_Metric";
+ this.rb_Options_InfoWin_Metric.Size = new System.Drawing.Size(54, 17);
+ this.rb_Options_InfoWin_Metric.TabIndex = 4;
+ this.rb_Options_InfoWin_Metric.TabStop = true;
+ this.rb_Options_InfoWin_Metric.Tag = "";
+ this.rb_Options_InfoWin_Metric.Text = "Metric";
+ this.rb_Options_InfoWin_Metric.UseVisualStyleBackColor = true;
+ //
// label72
//
this.label72.AutoSize = true;
@@ -1929,6 +2821,17 @@
this.label62.TabIndex = 1;
this.label62.Text = "Font:";
//
+ // tb_Options_Map_ToolTipFont
+ //
+ this.tb_Options_Map_ToolTipFont.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Map_ToolTipFont", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Map_ToolTipFont.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Map_ToolTipFont.Location = new System.Drawing.Point(72, 39);
+ this.tb_Options_Map_ToolTipFont.Name = "tb_Options_Map_ToolTipFont";
+ this.tb_Options_Map_ToolTipFont.ReadOnly = true;
+ this.tb_Options_Map_ToolTipFont.Size = new System.Drawing.Size(179, 20);
+ this.tb_Options_Map_ToolTipFont.TabIndex = 0;
+ this.tb_Options_Map_ToolTipFont.Text = global::AirScout.Properties.Settings.Default.Map_ToolTipFont;
+ //
// groupBox2
//
this.groupBox2.Controls.Add(this.label61);
@@ -2350,6 +3253,34 @@
this.groupBox14.TabStop = false;
this.groupBox14.Text = "Location Settings";
//
+ // cb_Options_SmallLettersForSubSquares
+ //
+ this.cb_Options_SmallLettersForSubSquares.AutoSize = true;
+ this.cb_Options_SmallLettersForSubSquares.Checked = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares;
+ this.cb_Options_SmallLettersForSubSquares.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_SmallLettersForSubSquares.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_SmallLettersForSubSquares.Location = new System.Drawing.Point(239, 16);
+ this.cb_Options_SmallLettersForSubSquares.Name = "cb_Options_SmallLettersForSubSquares";
+ this.cb_Options_SmallLettersForSubSquares.Size = new System.Drawing.Size(157, 17);
+ this.cb_Options_SmallLettersForSubSquares.TabIndex = 11;
+ this.cb_Options_SmallLettersForSubSquares.Text = "Small letters for subsquares:";
+ this.cb_Options_SmallLettersForSubSquares.UseVisualStyleBackColor = true;
+ this.cb_Options_SmallLettersForSubSquares.CheckedChanged += new System.EventHandler(this.cb_Options_SmallLettersForSubSquares_CheckedChanged);
+ //
+ // cb_Options_Locator_AutoLength
+ //
+ this.cb_Options_Locator_AutoLength.AutoSize = true;
+ this.cb_Options_Locator_AutoLength.Checked = global::AirScout.Properties.Settings.Default.Locator_AutoLength;
+ this.cb_Options_Locator_AutoLength.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Locator_AutoLength.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Locator_AutoLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Locator_AutoLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Locator_AutoLength.Location = new System.Drawing.Point(12, 38);
+ this.cb_Options_Locator_AutoLength.Name = "cb_Options_Locator_AutoLength";
+ this.cb_Options_Locator_AutoLength.Size = new System.Drawing.Size(319, 17);
+ this.cb_Options_Locator_AutoLength.TabIndex = 10;
+ this.cb_Options_Locator_AutoLength.Text = "Cut locator to significant digits automatically (Minimum 6 digits):";
+ this.cb_Options_Locator_AutoLength.UseVisualStyleBackColor = true;
+ //
// label48
//
this.label48.AutoSize = true;
@@ -2360,6 +3291,31 @@
this.label48.TabIndex = 1;
this.label48.Text = "Number of Locator digits (6 ..14):";
//
+ // ud_Options_Locator_MaxLength
+ //
+ this.ud_Options_Locator_MaxLength.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Locator_MaxLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.ud_Options_Locator_MaxLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_Locator_MaxLength.Increment = new decimal(new int[] {
+ 2,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Locator_MaxLength.Location = new System.Drawing.Point(180, 15);
+ this.ud_Options_Locator_MaxLength.Maximum = new decimal(new int[] {
+ 14,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Locator_MaxLength.Minimum = new decimal(new int[] {
+ 6,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Locator_MaxLength.Name = "ud_Options_Locator_MaxLength";
+ this.ud_Options_Locator_MaxLength.Size = new System.Drawing.Size(50, 20);
+ this.ud_Options_Locator_MaxLength.TabIndex = 9;
+ this.ud_Options_Locator_MaxLength.Value = global::AirScout.Properties.Settings.Default.Locator_MaxLength;
+ //
// groupBox16
//
this.groupBox16.Controls.Add(this.label52);
@@ -2406,6 +3362,18 @@
this.groupBox5.TabStop = false;
this.groupBox5.Text = "DX Station";
//
+ // btn_Options_DXMap
+ //
+ this.btn_Options_DXMap.BackgroundImage = global::AirScout.Properties.Resources.Map2;
+ this.btn_Options_DXMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.btn_Options_DXMap.Location = new System.Drawing.Point(8, 135);
+ this.btn_Options_DXMap.Name = "btn_Options_DXMap";
+ this.btn_Options_DXMap.Size = new System.Drawing.Size(75, 81);
+ this.btn_Options_DXMap.TabIndex = 29;
+ this.btn_Options_DXMap.Text = "\r\nMap";
+ this.btn_Options_DXMap.UseVisualStyleBackColor = true;
+ this.btn_Options_DXMap.Click += new System.EventHandler(this.btn_Options_DXMap_Click);
+ //
// tb_Options_DXLon
//
this.tb_Options_DXLon.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@@ -2434,6 +3402,21 @@
this.tb_Options_DXLat.Value = 52.05626084D;
this.tb_Options_DXLat.TextChanged += new System.EventHandler(this.tb_Options_DXLat_TextChanged);
//
+ // tb_Options_DXLoc
+ //
+ this.tb_Options_DXLoc.BackColor = System.Drawing.SystemColors.Window;
+ this.tb_Options_DXLoc.DataBindings.Add(new System.Windows.Forms.Binding("SmallLettersForSubsquares", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_DXLoc.ErrorBackColor = System.Drawing.Color.Red;
+ this.tb_Options_DXLoc.ErrorForeColor = System.Drawing.Color.White;
+ this.tb_Options_DXLoc.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_DXLoc.ForeColor = System.Drawing.SystemColors.WindowText;
+ this.tb_Options_DXLoc.Location = new System.Drawing.Point(90, 36);
+ this.tb_Options_DXLoc.Name = "tb_Options_DXLoc";
+ this.tb_Options_DXLoc.Size = new System.Drawing.Size(100, 21);
+ this.tb_Options_DXLoc.SmallLettersForSubsquares = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares;
+ this.tb_Options_DXLoc.TabIndex = 6;
+ this.tb_Options_DXLoc.TextChanged += new System.EventHandler(this.tb_Options_DXLoc_TextChanged);
+ //
// tb_Options_DXCall
//
this.tb_Options_DXCall.BackColor = System.Drawing.SystemColors.Window;
@@ -2565,6 +3548,18 @@
this.groupBox4.TabStop = false;
this.groupBox4.Text = "My Station";
//
+ // btn_Options_MyMap
+ //
+ this.btn_Options_MyMap.BackgroundImage = global::AirScout.Properties.Resources.Map2;
+ this.btn_Options_MyMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.btn_Options_MyMap.Location = new System.Drawing.Point(7, 134);
+ this.btn_Options_MyMap.Name = "btn_Options_MyMap";
+ this.btn_Options_MyMap.Size = new System.Drawing.Size(75, 81);
+ this.btn_Options_MyMap.TabIndex = 30;
+ this.btn_Options_MyMap.Text = "\r\nMap";
+ this.btn_Options_MyMap.UseVisualStyleBackColor = true;
+ this.btn_Options_MyMap.Click += new System.EventHandler(this.btn_Options_MyMap_Click);
+ //
// btn_Options_MyHorizon
//
this.btn_Options_MyHorizon.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@@ -2604,6 +3599,21 @@
this.tb_Options_MyLat.Value = 50.937067D;
this.tb_Options_MyLat.TextChanged += new System.EventHandler(this.tb_Options_MyLat_TextChanged);
//
+ // tb_Options_MyLoc
+ //
+ this.tb_Options_MyLoc.BackColor = System.Drawing.SystemColors.Window;
+ this.tb_Options_MyLoc.DataBindings.Add(new System.Windows.Forms.Binding("SmallLettersForSubsquares", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_MyLoc.ErrorBackColor = System.Drawing.Color.Red;
+ this.tb_Options_MyLoc.ErrorForeColor = System.Drawing.Color.White;
+ this.tb_Options_MyLoc.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_MyLoc.ForeColor = System.Drawing.SystemColors.WindowText;
+ this.tb_Options_MyLoc.Location = new System.Drawing.Point(89, 36);
+ this.tb_Options_MyLoc.Name = "tb_Options_MyLoc";
+ this.tb_Options_MyLoc.Size = new System.Drawing.Size(100, 21);
+ this.tb_Options_MyLoc.SmallLettersForSubsquares = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares;
+ this.tb_Options_MyLoc.TabIndex = 2;
+ this.tb_Options_MyLoc.TextChanged += new System.EventHandler(this.tb_Options_MyLoc_TextChanged);
+ //
// tb_Options_MyCall
//
this.tb_Options_MyCall.BackColor = System.Drawing.SystemColors.Window;
@@ -2732,6 +3742,66 @@
this.groupBox25.TabStop = false;
this.groupBox25.Text = "Covered Area";
//
+ // tb_Coverage_MaxLat
+ //
+ this.tb_Coverage_MaxLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MaxLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Coverage_MaxLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Coverage_MaxLat.FormatSpecifier = "F0";
+ this.tb_Coverage_MaxLat.Location = new System.Drawing.Point(589, 416);
+ this.tb_Coverage_MaxLat.MaxValue = 90D;
+ this.tb_Coverage_MaxLat.MinValue = -90D;
+ this.tb_Coverage_MaxLat.Name = "tb_Coverage_MaxLat";
+ this.tb_Coverage_MaxLat.Size = new System.Drawing.Size(50, 22);
+ this.tb_Coverage_MaxLat.TabIndex = 4;
+ this.tb_Coverage_MaxLat.Text = "60";
+ this.tb_Coverage_MaxLat.Value = global::AirScout.Properties.Settings.Default.MaxLat;
+ this.tb_Coverage_MaxLat.TextChanged += new System.EventHandler(this.tab_Options_General_Update);
+ //
+ // tb_Coverage_MinLat
+ //
+ this.tb_Coverage_MinLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MinLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Coverage_MinLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Coverage_MinLat.FormatSpecifier = "F0";
+ this.tb_Coverage_MinLat.Location = new System.Drawing.Point(589, 391);
+ this.tb_Coverage_MinLat.MaxValue = 90D;
+ this.tb_Coverage_MinLat.MinValue = -90D;
+ this.tb_Coverage_MinLat.Name = "tb_Coverage_MinLat";
+ this.tb_Coverage_MinLat.Size = new System.Drawing.Size(50, 22);
+ this.tb_Coverage_MinLat.TabIndex = 3;
+ this.tb_Coverage_MinLat.Text = "35";
+ this.tb_Coverage_MinLat.Value = global::AirScout.Properties.Settings.Default.MinLat;
+ this.tb_Coverage_MinLat.TextChanged += new System.EventHandler(this.tab_Options_General_Update);
+ //
+ // tb_Coverage_MaxLon
+ //
+ this.tb_Coverage_MaxLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MaxLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Coverage_MaxLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Coverage_MaxLon.FormatSpecifier = "F0";
+ this.tb_Coverage_MaxLon.Location = new System.Drawing.Point(589, 364);
+ this.tb_Coverage_MaxLon.MaxValue = 180D;
+ this.tb_Coverage_MaxLon.MinValue = -180D;
+ this.tb_Coverage_MaxLon.Name = "tb_Coverage_MaxLon";
+ this.tb_Coverage_MaxLon.Size = new System.Drawing.Size(50, 22);
+ this.tb_Coverage_MaxLon.TabIndex = 2;
+ this.tb_Coverage_MaxLon.Text = "30";
+ this.tb_Coverage_MaxLon.Value = global::AirScout.Properties.Settings.Default.MaxLon;
+ this.tb_Coverage_MaxLon.TextChanged += new System.EventHandler(this.tab_Options_General_Update);
+ //
+ // tb_Coverage_MinLon
+ //
+ this.tb_Coverage_MinLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MinLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Coverage_MinLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Coverage_MinLon.FormatSpecifier = "F0";
+ this.tb_Coverage_MinLon.Location = new System.Drawing.Point(589, 337);
+ this.tb_Coverage_MinLon.MaxValue = 180D;
+ this.tb_Coverage_MinLon.MinValue = -180D;
+ this.tb_Coverage_MinLon.Name = "tb_Coverage_MinLon";
+ this.tb_Coverage_MinLon.Size = new System.Drawing.Size(50, 22);
+ this.tb_Coverage_MinLon.TabIndex = 1;
+ this.tb_Coverage_MinLon.Text = "-15";
+ this.tb_Coverage_MinLon.Value = global::AirScout.Properties.Settings.Default.MinLon;
+ this.tb_Coverage_MinLon.TextChanged += new System.EventHandler(this.tab_Options_General_Update);
+ //
// gm_Options_Coverage
//
this.gm_Options_Coverage.Bearing = 0F;
@@ -2747,6 +3817,7 @@
this.gm_Options_Coverage.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
this.gm_Options_Coverage.Name = "gm_Options_Coverage";
this.gm_Options_Coverage.NegativeMode = false;
+ this.gm_Options_Coverage.Opacity = 1D;
this.gm_Options_Coverage.PolygonsEnabled = true;
this.gm_Options_Coverage.RetryLoadTile = 0;
this.gm_Options_Coverage.RoutesEnabled = true;
@@ -2813,6 +3884,7 @@
this.tc_Options.Controls.Add(this.tab_Options_Network);
this.tc_Options.Controls.Add(this.tab_Options_SpecLab);
this.tc_Options.Controls.Add(this.tab_Options_Track);
+ this.tc_Options.Controls.Add(this.tab_Options_CAT);
this.tc_Options.Controls.Add(this.tab_Options_Watchlist);
this.tc_Options.Controls.Add(this.tab_Options_Misc);
this.tc_Options.Controls.Add(this.tab_Options_Info);
@@ -2891,6 +3963,20 @@
this.gb_Options_Database_Settings.TabStop = false;
this.gb_Options_Database_Settings.Text = "Background Update and Pre-Calculation Settings";
//
+ // cb_Options_Background_Calculations_Enable
+ //
+ this.cb_Options_Background_Calculations_Enable.AutoSize = true;
+ this.cb_Options_Background_Calculations_Enable.Checked = global::AirScout.Properties.Settings.Default.Background_Calculations_Enable;
+ this.cb_Options_Background_Calculations_Enable.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Background_Calculations_Enable.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Background_Calculations_Enable", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Background_Calculations_Enable.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Background_Calculations_Enable.Location = new System.Drawing.Point(22, 126);
+ this.cb_Options_Background_Calculations_Enable.Name = "cb_Options_Background_Calculations_Enable";
+ this.cb_Options_Background_Calculations_Enable.Size = new System.Drawing.Size(308, 17);
+ this.cb_Options_Background_Calculations_Enable.TabIndex = 6;
+ this.cb_Options_Background_Calculations_Enable.Text = "Enable Background Pre-Calculations for paths/horizons etc.";
+ this.cb_Options_Background_Calculations_Enable.UseVisualStyleBackColor = true;
+ //
// label47
//
this.label47.AutoSize = true;
@@ -2901,6 +3987,26 @@
this.label47.TabIndex = 5;
this.label47.Text = "Update interval [min]:";
//
+ // ud_Options_Database_Update_Period
+ //
+ this.ud_Options_Database_Update_Period.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Background_Update_Period", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.ud_Options_Database_Update_Period.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_Database_Update_Period.Location = new System.Drawing.Point(278, 84);
+ this.ud_Options_Database_Update_Period.Maximum = new decimal(new int[] {
+ 6000,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Database_Update_Period.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Database_Update_Period.Name = "ud_Options_Database_Update_Period";
+ this.ud_Options_Database_Update_Period.Size = new System.Drawing.Size(39, 20);
+ this.ud_Options_Database_Update_Period.TabIndex = 3;
+ this.ud_Options_Database_Update_Period.Value = global::AirScout.Properties.Settings.Default.Background_Update_Period;
+ //
// rb_Options_Database_Update_Periodically
//
this.rb_Options_Database_Update_Periodically.AutoSize = true;
@@ -3521,7 +4627,7 @@
this.label104.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label104.Location = new System.Drawing.Point(60, 10);
this.label104.Name = "label104";
- this.label104.Size = new System.Drawing.Size(473, 16);
+ this.label104.Size = new System.Drawing.Size(472, 16);
this.label104.TabIndex = 10;
this.label104.Text = "This box is showing general info about the SQLite databases used by AirScout.";
//
@@ -3680,6 +4786,7 @@
this.gm_Options_ASTER3.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
this.gm_Options_ASTER3.Name = "gm_Options_ASTER3";
this.gm_Options_ASTER3.NegativeMode = false;
+ this.gm_Options_ASTER3.Opacity = 1D;
this.gm_Options_ASTER3.PolygonsEnabled = true;
this.gm_Options_ASTER3.RetryLoadTile = 0;
this.gm_Options_ASTER3.RoutesEnabled = true;
@@ -3701,6 +4808,34 @@
this.groupBox53.TabStop = false;
this.groupBox53.Text = "Use Elevation Model";
//
+ // cb_Options_Elevation_ASTER3_EnableCache
+ //
+ this.cb_Options_Elevation_ASTER3_EnableCache.AutoSize = true;
+ this.cb_Options_Elevation_ASTER3_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER3_EnableCache;
+ this.cb_Options_Elevation_ASTER3_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER3_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_ASTER3_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_ASTER3_EnableCache.Location = new System.Drawing.Point(6, 42);
+ this.cb_Options_Elevation_ASTER3_EnableCache.Name = "cb_Options_Elevation_ASTER3_EnableCache";
+ this.cb_Options_Elevation_ASTER3_EnableCache.Size = new System.Drawing.Size(179, 17);
+ this.cb_Options_Elevation_ASTER3_EnableCache.TabIndex = 13;
+ this.cb_Options_Elevation_ASTER3_EnableCache.Tag = "";
+ this.cb_Options_Elevation_ASTER3_EnableCache.Text = "Keep downloaded elevation tiles";
+ this.cb_Options_Elevation_ASTER3_EnableCache.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Elevation_ASTER3
+ //
+ this.cb_Options_Elevation_ASTER3.AutoSize = true;
+ this.cb_Options_Elevation_ASTER3.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER3_Enabled;
+ this.cb_Options_Elevation_ASTER3.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER3_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_ASTER3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_ASTER3.Location = new System.Drawing.Point(6, 19);
+ this.cb_Options_Elevation_ASTER3.Name = "cb_Options_Elevation_ASTER3";
+ this.cb_Options_Elevation_ASTER3.Size = new System.Drawing.Size(160, 17);
+ this.cb_Options_Elevation_ASTER3.TabIndex = 12;
+ this.cb_Options_Elevation_ASTER3.Tag = "";
+ this.cb_Options_Elevation_ASTER3.Text = "Use ASTER3 elevation data";
+ this.cb_Options_Elevation_ASTER3.UseVisualStyleBackColor = true;
+ //
// tba_Option_ASTER1
//
this.tba_Option_ASTER1.BackColor = System.Drawing.SystemColors.Control;
@@ -3776,6 +4911,7 @@
this.gm_Options_ASTER1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
this.gm_Options_ASTER1.Name = "gm_Options_ASTER1";
this.gm_Options_ASTER1.NegativeMode = false;
+ this.gm_Options_ASTER1.Opacity = 1D;
this.gm_Options_ASTER1.PolygonsEnabled = true;
this.gm_Options_ASTER1.RetryLoadTile = 0;
this.gm_Options_ASTER1.RoutesEnabled = true;
@@ -3797,6 +4933,34 @@
this.groupBox56.TabStop = false;
this.groupBox56.Text = "Use Elevation Model";
//
+ // cb_Options_Elevation_ASTER1_EnableCache
+ //
+ this.cb_Options_Elevation_ASTER1_EnableCache.AutoSize = true;
+ this.cb_Options_Elevation_ASTER1_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER1_EnableCache;
+ this.cb_Options_Elevation_ASTER1_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER1_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_ASTER1_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_ASTER1_EnableCache.Location = new System.Drawing.Point(6, 42);
+ this.cb_Options_Elevation_ASTER1_EnableCache.Name = "cb_Options_Elevation_ASTER1_EnableCache";
+ this.cb_Options_Elevation_ASTER1_EnableCache.Size = new System.Drawing.Size(179, 17);
+ this.cb_Options_Elevation_ASTER1_EnableCache.TabIndex = 13;
+ this.cb_Options_Elevation_ASTER1_EnableCache.Tag = "";
+ this.cb_Options_Elevation_ASTER1_EnableCache.Text = "Keep downloaded elevation tiles";
+ this.cb_Options_Elevation_ASTER1_EnableCache.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Elevation_ASTER1
+ //
+ this.cb_Options_Elevation_ASTER1.AutoSize = true;
+ this.cb_Options_Elevation_ASTER1.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER1_Enabled;
+ this.cb_Options_Elevation_ASTER1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER1_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Elevation_ASTER1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Elevation_ASTER1.Location = new System.Drawing.Point(6, 19);
+ this.cb_Options_Elevation_ASTER1.Name = "cb_Options_Elevation_ASTER1";
+ this.cb_Options_Elevation_ASTER1.Size = new System.Drawing.Size(160, 17);
+ this.cb_Options_Elevation_ASTER1.TabIndex = 12;
+ this.cb_Options_Elevation_ASTER1.Tag = "";
+ this.cb_Options_Elevation_ASTER1.Text = "Use ASTER1 elevation data";
+ this.cb_Options_Elevation_ASTER1.UseVisualStyleBackColor = true;
+ //
// tab_Options_Alarm
//
this.tab_Options_Alarm.BackColor = System.Drawing.SystemColors.Control;
@@ -3821,6 +4985,20 @@
this.groupBox21.TabStop = false;
this.groupBox21.Text = "Activate Alarm";
//
+ // cb_Options_Alarm_Activate
+ //
+ this.cb_Options_Alarm_Activate.AutoSize = true;
+ this.cb_Options_Alarm_Activate.Checked = global::AirScout.Properties.Settings.Default.Alarm_Activate;
+ this.cb_Options_Alarm_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Alarm_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Alarm_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Alarm_Activate.Location = new System.Drawing.Point(13, 19);
+ this.cb_Options_Alarm_Activate.Name = "cb_Options_Alarm_Activate";
+ this.cb_Options_Alarm_Activate.Size = new System.Drawing.Size(94, 17);
+ this.cb_Options_Alarm_Activate.TabIndex = 1;
+ this.cb_Options_Alarm_Activate.Tag = "";
+ this.cb_Options_Alarm_Activate.Text = "Activate Alarm";
+ this.cb_Options_Alarm_Activate.UseVisualStyleBackColor = true;
+ //
// groupBox19
//
this.groupBox19.Controls.Add(this.cb_Options_Alarm_PlaySound);
@@ -3833,6 +5011,21 @@
this.groupBox19.TabStop = false;
this.groupBox19.Text = "Alarm Settings";
//
+ // cb_Options_Alarm_PlaySound
+ //
+ this.cb_Options_Alarm_PlaySound.AutoSize = true;
+ this.cb_Options_Alarm_PlaySound.Checked = global::AirScout.Properties.Settings.Default.Alarm_PlaySound;
+ this.cb_Options_Alarm_PlaySound.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Alarm_PlaySound.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Alarm_PlaySound", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Alarm_PlaySound.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Alarm_PlaySound.Location = new System.Drawing.Point(13, 53);
+ this.cb_Options_Alarm_PlaySound.Name = "cb_Options_Alarm_PlaySound";
+ this.cb_Options_Alarm_PlaySound.Size = new System.Drawing.Size(78, 17);
+ this.cb_Options_Alarm_PlaySound.TabIndex = 1;
+ this.cb_Options_Alarm_PlaySound.Tag = "";
+ this.cb_Options_Alarm_PlaySound.Text = "Play sound";
+ this.cb_Options_Alarm_PlaySound.UseVisualStyleBackColor = true;
+ //
// cb_Options_Alarm_BringWindowToFront
//
this.cb_Options_Alarm_BringWindowToFront.AutoSize = true;
@@ -3860,6 +5053,20 @@
this.groupBox20.TabStop = false;
this.groupBox20.Text = "Generate Alarm";
//
+ // tb_Options_Alarm_Distance
+ //
+ this.tb_Options_Alarm_Distance.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Alarm_Distance", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Alarm_Distance.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Alarm_Distance.FormatSpecifier = "F0";
+ this.tb_Options_Alarm_Distance.Location = new System.Drawing.Point(143, 49);
+ this.tb_Options_Alarm_Distance.MaxValue = 1000D;
+ this.tb_Options_Alarm_Distance.MinValue = 0D;
+ this.tb_Options_Alarm_Distance.Name = "tb_Options_Alarm_Distance";
+ this.tb_Options_Alarm_Distance.Size = new System.Drawing.Size(75, 22);
+ this.tb_Options_Alarm_Distance.TabIndex = 3;
+ this.tb_Options_Alarm_Distance.Text = "100";
+ this.tb_Options_Alarm_Distance.Value = global::AirScout.Properties.Settings.Default.Alarm_Distance;
+ //
// label36
//
this.label36.AutoSize = true;
@@ -3920,6 +5127,20 @@
this.groupBox32.TabStop = false;
this.groupBox32.Text = "HTTP Server Settings";
//
+ // tb_Options_Webserver_Port
+ //
+ this.tb_Options_Webserver_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Webserver_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Webserver_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Webserver_Port.FormatSpecifier = "F0";
+ this.tb_Options_Webserver_Port.Location = new System.Drawing.Point(150, 28);
+ this.tb_Options_Webserver_Port.MaxValue = 65535;
+ this.tb_Options_Webserver_Port.MinValue = 0;
+ this.tb_Options_Webserver_Port.Name = "tb_Options_Webserver_Port";
+ this.tb_Options_Webserver_Port.Size = new System.Drawing.Size(57, 22);
+ this.tb_Options_Webserver_Port.TabIndex = 8;
+ this.tb_Options_Webserver_Port.Text = "9880";
+ this.tb_Options_Webserver_Port.Value = global::AirScout.Properties.Settings.Default.Webserver_Port;
+ //
// label85
//
this.label85.AutoSize = true;
@@ -3942,6 +5163,20 @@
this.groupBox31.TabStop = false;
this.groupBox31.Text = "Activate Server";
//
+ // cb_Options_Server_Activate
+ //
+ this.cb_Options_Server_Activate.AutoSize = true;
+ this.cb_Options_Server_Activate.Checked = global::AirScout.Properties.Settings.Default.Server_Activate;
+ this.cb_Options_Server_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Server_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Server_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Server_Activate.Location = new System.Drawing.Point(13, 23);
+ this.cb_Options_Server_Activate.Name = "cb_Options_Server_Activate";
+ this.cb_Options_Server_Activate.Size = new System.Drawing.Size(142, 17);
+ this.cb_Options_Server_Activate.TabIndex = 1;
+ this.cb_Options_Server_Activate.Tag = "";
+ this.cb_Options_Server_Activate.Text = "Activate Network Server";
+ this.cb_Options_Server_Activate.UseVisualStyleBackColor = true;
+ //
// label3
//
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@@ -3965,6 +5200,20 @@
this.groupBox24.TabStop = false;
this.groupBox24.Text = "UDP Server Settings";
//
+ // tb_Options_Server_Port
+ //
+ this.tb_Options_Server_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Server_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Server_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Server_Port.FormatSpecifier = "F0";
+ this.tb_Options_Server_Port.Location = new System.Drawing.Point(153, 56);
+ this.tb_Options_Server_Port.MaxValue = 65535;
+ this.tb_Options_Server_Port.MinValue = 0;
+ this.tb_Options_Server_Port.Name = "tb_Options_Server_Port";
+ this.tb_Options_Server_Port.Size = new System.Drawing.Size(57, 22);
+ this.tb_Options_Server_Port.TabIndex = 6;
+ this.tb_Options_Server_Port.Text = "9872";
+ this.tb_Options_Server_Port.Value = global::AirScout.Properties.Settings.Default.Server_Port;
+ //
// label6
//
this.label6.AutoSize = true;
@@ -3985,6 +5234,18 @@
this.label4.TabIndex = 4;
this.label4.Text = "AirScout UDP Server Name:";
//
+ // tb_Options_Server_Name
+ //
+ this.tb_Options_Server_Name.BackColor = System.Drawing.Color.FloralWhite;
+ this.tb_Options_Server_Name.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Server_Name", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Server_Name.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Server_Name.Location = new System.Drawing.Point(153, 30);
+ this.tb_Options_Server_Name.Name = "tb_Options_Server_Name";
+ this.tb_Options_Server_Name.Size = new System.Drawing.Size(57, 20);
+ this.tb_Options_Server_Name.TabIndex = 2;
+ this.tb_Options_Server_Name.Tag = "";
+ this.tb_Options_Server_Name.Text = global::AirScout.Properties.Settings.Default.Server_Name;
+ //
// tab_Options_SpecLab
//
this.tab_Options_SpecLab.BackColor = System.Drawing.SystemColors.Control;
@@ -4022,6 +5283,48 @@
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Spectrum Lab Settings";
//
+ // tb_Options_SpecLab_UpdateInterval
+ //
+ this.tb_Options_SpecLab_UpdateInterval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_SpecLab_UpdateInterval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_SpecLab_UpdateInterval.FormatSpecifier = "F1";
+ this.tb_Options_SpecLab_UpdateInterval.Location = new System.Drawing.Point(106, 230);
+ this.tb_Options_SpecLab_UpdateInterval.MaxValue = 100D;
+ this.tb_Options_SpecLab_UpdateInterval.MinValue = 0D;
+ this.tb_Options_SpecLab_UpdateInterval.Name = "tb_Options_SpecLab_UpdateInterval";
+ this.tb_Options_SpecLab_UpdateInterval.Size = new System.Drawing.Size(63, 22);
+ this.tb_Options_SpecLab_UpdateInterval.TabIndex = 18;
+ this.tb_Options_SpecLab_UpdateInterval.Text = "1.0";
+ this.tb_Options_SpecLab_UpdateInterval.Value = global::AirScout.Properties.Settings.Default.SpecLab_Update;
+ //
+ // tb_Options_SpecLab_F2
+ //
+ this.tb_Options_SpecLab_F2.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_F2", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_SpecLab_F2.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_SpecLab_F2.FormatSpecifier = "F0";
+ this.tb_Options_SpecLab_F2.Location = new System.Drawing.Point(109, 205);
+ this.tb_Options_SpecLab_F2.MaxValue = 10000;
+ this.tb_Options_SpecLab_F2.MinValue = 0;
+ this.tb_Options_SpecLab_F2.Name = "tb_Options_SpecLab_F2";
+ this.tb_Options_SpecLab_F2.Size = new System.Drawing.Size(60, 22);
+ this.tb_Options_SpecLab_F2.TabIndex = 17;
+ this.tb_Options_SpecLab_F2.Text = "1600";
+ this.tb_Options_SpecLab_F2.Value = global::AirScout.Properties.Settings.Default.SpecLab_F2;
+ //
+ // tb_Options_SpecLab_F1
+ //
+ this.tb_Options_SpecLab_F1.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_F1", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_SpecLab_F1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_SpecLab_F1.FormatSpecifier = "F0";
+ this.tb_Options_SpecLab_F1.Location = new System.Drawing.Point(109, 179);
+ this.tb_Options_SpecLab_F1.MaxValue = 10000;
+ this.tb_Options_SpecLab_F1.MinValue = 0;
+ this.tb_Options_SpecLab_F1.Name = "tb_Options_SpecLab_F1";
+ this.tb_Options_SpecLab_F1.Size = new System.Drawing.Size(60, 22);
+ this.tb_Options_SpecLab_F1.TabIndex = 16;
+ this.tb_Options_SpecLab_F1.Text = "400";
+ this.tb_Options_SpecLab_F1.Value = global::AirScout.Properties.Settings.Default.SpecLab_F1;
+ //
// label70
//
this.label70.AutoSize = true;
@@ -4082,6 +5385,18 @@
this.label66.TabIndex = 8;
this.label66.Text = "F1:";
//
+ // tb_SpecLab_FileName
+ //
+ this.tb_SpecLab_FileName.BackColor = System.Drawing.Color.FloralWhite;
+ this.tb_SpecLab_FileName.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "SpecLab_FileName", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_SpecLab_FileName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_SpecLab_FileName.Location = new System.Drawing.Point(109, 153);
+ this.tb_SpecLab_FileName.Name = "tb_SpecLab_FileName";
+ this.tb_SpecLab_FileName.Size = new System.Drawing.Size(347, 20);
+ this.tb_SpecLab_FileName.TabIndex = 6;
+ this.tb_SpecLab_FileName.Tag = "";
+ this.tb_SpecLab_FileName.Text = global::AirScout.Properties.Settings.Default.SpecLab_FileName;
+ //
// label63
//
this.label63.AutoSize = true;
@@ -4111,68 +5426,637 @@
this.label65.TabIndex = 3;
this.label65.Text = resources.GetString("label65.Text");
//
+ // tb_SpecLab_URL
+ //
+ this.tb_SpecLab_URL.BackColor = System.Drawing.Color.FloralWhite;
+ this.tb_SpecLab_URL.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "SpecLab_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_SpecLab_URL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_SpecLab_URL.Location = new System.Drawing.Point(109, 126);
+ this.tb_SpecLab_URL.Name = "tb_SpecLab_URL";
+ this.tb_SpecLab_URL.Size = new System.Drawing.Size(347, 20);
+ this.tb_SpecLab_URL.TabIndex = 2;
+ this.tb_SpecLab_URL.Tag = "";
+ this.tb_SpecLab_URL.Text = global::AirScout.Properties.Settings.Default.SpecLab_URL;
+ //
+ // cb_SpecLab_Enabled
+ //
+ this.cb_SpecLab_Enabled.AutoSize = true;
+ this.cb_SpecLab_Enabled.Checked = global::AirScout.Properties.Settings.Default.SpecLab_Enabled;
+ this.cb_SpecLab_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "SpecLab_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_SpecLab_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_SpecLab_Enabled.Location = new System.Drawing.Point(18, 90);
+ this.cb_SpecLab_Enabled.Name = "cb_SpecLab_Enabled";
+ this.cb_SpecLab_Enabled.Size = new System.Drawing.Size(122, 17);
+ this.cb_SpecLab_Enabled.TabIndex = 1;
+ this.cb_SpecLab_Enabled.Tag = "";
+ this.cb_SpecLab_Enabled.Text = "Activate Connection";
+ this.cb_SpecLab_Enabled.UseVisualStyleBackColor = true;
+ //
// tab_Options_Track
//
this.tab_Options_Track.BackColor = System.Drawing.SystemColors.Control;
- this.tab_Options_Track.Controls.Add(this.groupBox36);
- this.tab_Options_Track.Controls.Add(this.groupBox35);
- this.tab_Options_Track.Controls.Add(this.groupBox34);
- this.tab_Options_Track.Controls.Add(this.groupBox33);
+ this.tab_Options_Track.Controls.Add(this.gb_Options_Doppler);
+ this.tab_Options_Track.Controls.Add(this.gb_Options_Track_File);
+ this.tab_Options_Track.Controls.Add(this.gb_Options_Track_DDE);
+ this.tab_Options_Track.Controls.Add(this.gb_Options_Track_UDP);
+ this.tab_Options_Track.Controls.Add(this.gb_Options_Track_Serial);
this.tab_Options_Track.Controls.Add(this.groupBox28);
this.tab_Options_Track.Location = new System.Drawing.Point(4, 40);
this.tab_Options_Track.Name = "tab_Options_Track";
this.tab_Options_Track.Size = new System.Drawing.Size(671, 480);
this.tab_Options_Track.TabIndex = 14;
this.tab_Options_Track.Text = "Track";
+ this.tab_Options_Track.Enter += new System.EventHandler(this.tab_Options_Track_Enter);
this.tab_Options_Track.Validating += new System.ComponentModel.CancelEventHandler(this.tc_Track_Validating);
//
- // groupBox36
+ // gb_Options_Doppler
//
- this.groupBox36.Controls.Add(this.rb_Options_Track_File_None);
- this.groupBox36.Controls.Add(this.rb_Options_Track_File_WSJT);
- this.groupBox36.Controls.Add(this.rb_Options_Track_File_Native);
- this.groupBox36.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.groupBox36.Location = new System.Drawing.Point(16, 347);
- this.groupBox36.Name = "groupBox36";
- this.groupBox36.Size = new System.Drawing.Size(619, 96);
- this.groupBox36.TabIndex = 12;
- this.groupBox36.TabStop = false;
- this.groupBox36.Text = "File Output";
+ this.gb_Options_Doppler.Controls.Add(this.label150);
+ this.gb_Options_Doppler.Controls.Add(this.tb_Options_Track_DialFreq);
+ this.gb_Options_Doppler.Controls.Add(this.label180);
+ this.gb_Options_Doppler.Controls.Add(this.label181);
+ this.gb_Options_Doppler.Controls.Add(this.label182);
+ this.gb_Options_Doppler.Controls.Add(this.label183);
+ this.gb_Options_Doppler.Controls.Add(this.label184);
+ this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_None);
+ this.gb_Options_Doppler.Controls.Add(this.label178);
+ this.gb_Options_Doppler.Controls.Add(this.label179);
+ this.gb_Options_Doppler.Controls.Add(this.label176);
+ this.gb_Options_Doppler.Controls.Add(this.label177);
+ this.gb_Options_Doppler.Controls.Add(this.label174);
+ this.gb_Options_Doppler.Controls.Add(this.label175);
+ this.gb_Options_Doppler.Controls.Add(this.label172);
+ this.gb_Options_Doppler.Controls.Add(this.label173);
+ this.gb_Options_Doppler.Controls.Add(this.label170);
+ this.gb_Options_Doppler.Controls.Add(this.label171);
+ this.gb_Options_Doppler.Controls.Add(this.label168);
+ this.gb_Options_Doppler.Controls.Add(this.label169);
+ this.gb_Options_Doppler.Controls.Add(this.label166);
+ this.gb_Options_Doppler.Controls.Add(this.label167);
+ this.gb_Options_Doppler.Controls.Add(this.label165);
+ this.gb_Options_Doppler.Controls.Add(this.label163);
+ this.gb_Options_Doppler.Controls.Add(this.label164);
+ this.gb_Options_Doppler.Controls.Add(this.label162);
+ this.gb_Options_Doppler.Controls.Add(this.label161);
+ this.gb_Options_Doppler.Controls.Add(this.label160);
+ this.gb_Options_Doppler.Controls.Add(this.label159);
+ this.gb_Options_Doppler.Controls.Add(this.label158);
+ this.gb_Options_Doppler.Controls.Add(this.label157);
+ this.gb_Options_Doppler.Controls.Add(this.label156);
+ this.gb_Options_Doppler.Controls.Add(this.label155);
+ this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_D);
+ this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_C);
+ this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_B);
+ this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_A);
+ this.gb_Options_Doppler.Controls.Add(this.label154);
+ this.gb_Options_Doppler.Controls.Add(this.label153);
+ this.gb_Options_Doppler.Controls.Add(this.label152);
+ this.gb_Options_Doppler.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.gb_Options_Doppler.Location = new System.Drawing.Point(16, 246);
+ this.gb_Options_Doppler.Name = "gb_Options_Doppler";
+ this.gb_Options_Doppler.Size = new System.Drawing.Size(640, 226);
+ this.gb_Options_Doppler.TabIndex = 14;
+ this.gb_Options_Doppler.TabStop = false;
+ this.gb_Options_Doppler.Text = "Doppler Compensation (requires activated CAT and Rig connected)";
//
- // groupBox35
+ // label150
//
- this.groupBox35.Controls.Add(this.rb_Options_Track_DDE_None);
- this.groupBox35.Controls.Add(this.rb_Options_Track_DDE_HRD);
- this.groupBox35.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.groupBox35.Location = new System.Drawing.Point(16, 261);
- this.groupBox35.Name = "groupBox35";
- this.groupBox35.Size = new System.Drawing.Size(619, 80);
- this.groupBox35.TabIndex = 11;
- this.groupBox35.TabStop = false;
- this.groupBox35.Text = "DDE Output";
+ this.label150.AutoSize = true;
+ this.label150.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label150.Location = new System.Drawing.Point(584, 41);
+ this.label150.Name = "label150";
+ this.label150.Size = new System.Drawing.Size(23, 16);
+ this.label150.TabIndex = 59;
+ this.label150.Text = "Hz";
//
- // groupBox34
+ // label180
//
- this.groupBox34.Controls.Add(this.tb_Options_Track_UDP_AirScout_Port);
- this.groupBox34.Controls.Add(this.tb_Options_Track_UDP_WinTest_Port);
- this.groupBox34.Controls.Add(this.label90);
- this.groupBox34.Controls.Add(this.label89);
- this.groupBox34.Controls.Add(this.rb_Options_Track_UDP_None);
- this.groupBox34.Controls.Add(this.rb_Options_Track_UDP_AirScout);
- this.groupBox34.Controls.Add(this.rb_Options_Track_UDP_WinTest);
- this.groupBox34.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.groupBox34.Location = new System.Drawing.Point(16, 157);
- this.groupBox34.Name = "groupBox34";
- this.groupBox34.Size = new System.Drawing.Size(619, 98);
- this.groupBox34.TabIndex = 10;
- this.groupBox34.TabStop = false;
- this.groupBox34.Text = "Network Output";
+ this.label180.AutoSize = true;
+ this.label180.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label180.Location = new System.Drawing.Point(538, 123);
+ this.label180.Name = "label180";
+ this.label180.Size = new System.Drawing.Size(19, 13);
+ this.label180.TabIndex = 58;
+ this.label180.Text = "no";
+ //
+ // label181
+ //
+ this.label181.AutoSize = true;
+ this.label181.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label181.Location = new System.Drawing.Point(585, 123);
+ this.label181.Name = "label181";
+ this.label181.Size = new System.Drawing.Size(19, 13);
+ this.label181.TabIndex = 57;
+ this.label181.Text = "no";
+ //
+ // label182
+ //
+ this.label182.AutoSize = true;
+ this.label182.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label182.Location = new System.Drawing.Point(55, 123);
+ this.label182.Name = "label182";
+ this.label182.Size = new System.Drawing.Size(19, 13);
+ this.label182.TabIndex = 56;
+ this.label182.Text = "no";
+ //
+ // label183
+ //
+ this.label183.AutoSize = true;
+ this.label183.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label183.Location = new System.Drawing.Point(102, 123);
+ this.label183.Name = "label183";
+ this.label183.Size = new System.Drawing.Size(19, 13);
+ this.label183.TabIndex = 55;
+ this.label183.Text = "no";
+ //
+ // label184
+ //
+ this.label184.AutoSize = true;
+ this.label184.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label184.Location = new System.Drawing.Point(265, 123);
+ this.label184.Name = "label184";
+ this.label184.Size = new System.Drawing.Size(33, 13);
+ this.label184.TabIndex = 54;
+ this.label184.Text = "None";
+ //
+ // rb_Options_Doppler_Strategy_None
+ //
+ this.rb_Options_Doppler_Strategy_None.AutoSize = true;
+ this.rb_Options_Doppler_Strategy_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Doppler_Strategy_None.Location = new System.Drawing.Point(16, 123);
+ this.rb_Options_Doppler_Strategy_None.Name = "rb_Options_Doppler_Strategy_None";
+ this.rb_Options_Doppler_Strategy_None.Size = new System.Drawing.Size(14, 13);
+ this.rb_Options_Doppler_Strategy_None.TabIndex = 53;
+ this.rb_Options_Doppler_Strategy_None.Tag = "";
+ this.rb_Options_Doppler_Strategy_None.UseVisualStyleBackColor = true;
+ this.rb_Options_Doppler_Strategy_None.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged);
+ //
+ // label178
+ //
+ this.label178.AutoSize = true;
+ this.label178.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label178.Location = new System.Drawing.Point(538, 200);
+ this.label178.Name = "label178";
+ this.label178.Size = new System.Drawing.Size(23, 13);
+ this.label178.TabIndex = 52;
+ this.label178.Text = "yes";
+ //
+ // label179
+ //
+ this.label179.AutoSize = true;
+ this.label179.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label179.Location = new System.Drawing.Point(585, 200);
+ this.label179.Name = "label179";
+ this.label179.Size = new System.Drawing.Size(23, 13);
+ this.label179.TabIndex = 51;
+ this.label179.Text = "yes";
+ //
+ // label176
+ //
+ this.label176.AutoSize = true;
+ this.label176.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label176.Location = new System.Drawing.Point(538, 182);
+ this.label176.Name = "label176";
+ this.label176.Size = new System.Drawing.Size(19, 13);
+ this.label176.TabIndex = 50;
+ this.label176.Text = "no";
+ //
+ // label177
+ //
+ this.label177.AutoSize = true;
+ this.label177.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label177.Location = new System.Drawing.Point(585, 182);
+ this.label177.Name = "label177";
+ this.label177.Size = new System.Drawing.Size(19, 13);
+ this.label177.TabIndex = 49;
+ this.label177.Text = "no";
+ //
+ // label174
+ //
+ this.label174.AutoSize = true;
+ this.label174.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label174.Location = new System.Drawing.Point(538, 162);
+ this.label174.Name = "label174";
+ this.label174.Size = new System.Drawing.Size(23, 13);
+ this.label174.TabIndex = 48;
+ this.label174.Text = "yes";
+ //
+ // label175
+ //
+ this.label175.AutoSize = true;
+ this.label175.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label175.Location = new System.Drawing.Point(585, 162);
+ this.label175.Name = "label175";
+ this.label175.Size = new System.Drawing.Size(19, 13);
+ this.label175.TabIndex = 47;
+ this.label175.Text = "no";
+ //
+ // label172
+ //
+ this.label172.AutoSize = true;
+ this.label172.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label172.Location = new System.Drawing.Point(538, 142);
+ this.label172.Name = "label172";
+ this.label172.Size = new System.Drawing.Size(19, 13);
+ this.label172.TabIndex = 46;
+ this.label172.Text = "no";
+ //
+ // label173
+ //
+ this.label173.AutoSize = true;
+ this.label173.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label173.Location = new System.Drawing.Point(585, 142);
+ this.label173.Name = "label173";
+ this.label173.Size = new System.Drawing.Size(23, 13);
+ this.label173.TabIndex = 45;
+ this.label173.Text = "yes";
+ //
+ // label170
+ //
+ this.label170.AutoSize = true;
+ this.label170.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label170.Location = new System.Drawing.Point(55, 202);
+ this.label170.Name = "label170";
+ this.label170.Size = new System.Drawing.Size(23, 13);
+ this.label170.TabIndex = 44;
+ this.label170.Text = "yes";
+ //
+ // label171
+ //
+ this.label171.AutoSize = true;
+ this.label171.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label171.Location = new System.Drawing.Point(102, 202);
+ this.label171.Name = "label171";
+ this.label171.Size = new System.Drawing.Size(23, 13);
+ this.label171.TabIndex = 43;
+ this.label171.Text = "yes";
+ //
+ // label168
+ //
+ this.label168.AutoSize = true;
+ this.label168.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label168.Location = new System.Drawing.Point(55, 182);
+ this.label168.Name = "label168";
+ this.label168.Size = new System.Drawing.Size(23, 13);
+ this.label168.TabIndex = 42;
+ this.label168.Text = "yes";
+ //
+ // label169
+ //
+ this.label169.AutoSize = true;
+ this.label169.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label169.Location = new System.Drawing.Point(102, 182);
+ this.label169.Name = "label169";
+ this.label169.Size = new System.Drawing.Size(23, 13);
+ this.label169.TabIndex = 41;
+ this.label169.Text = "yes";
+ //
+ // label166
+ //
+ this.label166.AutoSize = true;
+ this.label166.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label166.Location = new System.Drawing.Point(55, 162);
+ this.label166.Name = "label166";
+ this.label166.Size = new System.Drawing.Size(23, 13);
+ this.label166.TabIndex = 40;
+ this.label166.Text = "yes";
+ //
+ // label167
+ //
+ this.label167.AutoSize = true;
+ this.label167.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label167.Location = new System.Drawing.Point(102, 162);
+ this.label167.Name = "label167";
+ this.label167.Size = new System.Drawing.Size(19, 13);
+ this.label167.TabIndex = 39;
+ this.label167.Text = "no";
+ //
+ // label165
+ //
+ this.label165.AutoSize = true;
+ this.label165.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label165.Location = new System.Drawing.Point(55, 142);
+ this.label165.Name = "label165";
+ this.label165.Size = new System.Drawing.Size(19, 13);
+ this.label165.TabIndex = 38;
+ this.label165.Text = "no";
+ //
+ // label163
+ //
+ this.label163.AutoSize = true;
+ this.label163.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label163.Location = new System.Drawing.Point(581, 103);
+ this.label163.Name = "label163";
+ this.label163.Size = new System.Drawing.Size(24, 13);
+ this.label163.TabIndex = 37;
+ this.label163.Text = "RX";
+ //
+ // label164
+ //
+ this.label164.AutoSize = true;
+ this.label164.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label164.Location = new System.Drawing.Point(538, 103);
+ this.label164.Name = "label164";
+ this.label164.Size = new System.Drawing.Size(23, 13);
+ this.label164.TabIndex = 36;
+ this.label164.Text = "TX";
+ //
+ // label162
+ //
+ this.label162.AutoSize = true;
+ this.label162.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label162.Location = new System.Drawing.Point(94, 103);
+ this.label162.Name = "label162";
+ this.label162.Size = new System.Drawing.Size(24, 13);
+ this.label162.TabIndex = 35;
+ this.label162.Text = "RX";
+ //
+ // label161
+ //
+ this.label161.AutoSize = true;
+ this.label161.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label161.Location = new System.Drawing.Point(51, 103);
+ this.label161.Name = "label161";
+ this.label161.Size = new System.Drawing.Size(23, 13);
+ this.label161.TabIndex = 34;
+ this.label161.Text = "TX";
+ //
+ // label160
+ //
+ this.label160.AutoSize = true;
+ this.label160.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label160.Location = new System.Drawing.Point(102, 142);
+ this.label160.Name = "label160";
+ this.label160.Size = new System.Drawing.Size(23, 13);
+ this.label160.TabIndex = 33;
+ this.label160.Text = "yes";
+ //
+ // label159
+ //
+ this.label159.AutoSize = true;
+ this.label159.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label159.Location = new System.Drawing.Point(138, 202);
+ this.label159.Name = "label159";
+ this.label159.Size = new System.Drawing.Size(363, 13);
+ this.label159.TabIndex = 32;
+ this.label159.Text = "Constant frequency at aircraft: Both stations have to compensate RX + TX .";
+ //
+ // label158
+ //
+ this.label158.AutoSize = true;
+ this.label158.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label158.Location = new System.Drawing.Point(138, 182);
+ this.label158.Name = "label158";
+ this.label158.Size = new System.Drawing.Size(343, 13);
+ this.label158.TabIndex = 31;
+ this.label158.Text = "Compensate both RX + TX at my station: DX station does nothing at all.";
+ //
+ // label157
+ //
+ this.label157.AutoSize = true;
+ this.label157.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label157.Location = new System.Drawing.Point(138, 162);
+ this.label157.Name = "label157";
+ this.label157.Size = new System.Drawing.Size(333, 13);
+ this.label157.TabIndex = 30;
+ this.label157.Text = "Constant RX: Both stations compensate their own TX frequency only.";
+ //
+ // label156
+ //
+ this.label156.AutoSize = true;
+ this.label156.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label156.Location = new System.Drawing.Point(138, 142);
+ this.label156.Name = "label156";
+ this.label156.Size = new System.Drawing.Size(333, 13);
+ this.label156.TabIndex = 29;
+ this.label156.Text = "Constant TX: Both stations compensate their own RX frequency only.";
+ //
+ // label155
+ //
+ this.label155.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label155.Location = new System.Drawing.Point(5, 24);
+ this.label155.Name = "label155";
+ this.label155.Size = new System.Drawing.Size(267, 60);
+ this.label155.TabIndex = 28;
+ this.label155.Text = "You can see the dial frequency from rig here and choose how to compensate Doppler" +
+ " shift on your site and on DX site.";
+ //
+ // rb_Options_Doppler_Strategy_D
+ //
+ this.rb_Options_Doppler_Strategy_D.AutoSize = true;
+ this.rb_Options_Doppler_Strategy_D.Location = new System.Drawing.Point(16, 204);
+ this.rb_Options_Doppler_Strategy_D.Name = "rb_Options_Doppler_Strategy_D";
+ this.rb_Options_Doppler_Strategy_D.Size = new System.Drawing.Size(14, 13);
+ this.rb_Options_Doppler_Strategy_D.TabIndex = 27;
+ this.rb_Options_Doppler_Strategy_D.UseVisualStyleBackColor = true;
+ this.rb_Options_Doppler_Strategy_D.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged);
+ //
+ // rb_Options_Doppler_Strategy_C
+ //
+ this.rb_Options_Doppler_Strategy_C.AutoSize = true;
+ this.rb_Options_Doppler_Strategy_C.Location = new System.Drawing.Point(16, 182);
+ this.rb_Options_Doppler_Strategy_C.Name = "rb_Options_Doppler_Strategy_C";
+ this.rb_Options_Doppler_Strategy_C.Size = new System.Drawing.Size(14, 13);
+ this.rb_Options_Doppler_Strategy_C.TabIndex = 26;
+ this.rb_Options_Doppler_Strategy_C.UseVisualStyleBackColor = true;
+ this.rb_Options_Doppler_Strategy_C.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged);
+ //
+ // rb_Options_Doppler_Strategy_B
+ //
+ this.rb_Options_Doppler_Strategy_B.AutoSize = true;
+ this.rb_Options_Doppler_Strategy_B.Checked = true;
+ this.rb_Options_Doppler_Strategy_B.Location = new System.Drawing.Point(16, 162);
+ this.rb_Options_Doppler_Strategy_B.Name = "rb_Options_Doppler_Strategy_B";
+ this.rb_Options_Doppler_Strategy_B.Size = new System.Drawing.Size(14, 13);
+ this.rb_Options_Doppler_Strategy_B.TabIndex = 25;
+ this.rb_Options_Doppler_Strategy_B.TabStop = true;
+ this.rb_Options_Doppler_Strategy_B.UseVisualStyleBackColor = true;
+ this.rb_Options_Doppler_Strategy_B.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged);
+ //
+ // rb_Options_Doppler_Strategy_A
+ //
+ this.rb_Options_Doppler_Strategy_A.AutoSize = true;
+ this.rb_Options_Doppler_Strategy_A.Location = new System.Drawing.Point(16, 142);
+ this.rb_Options_Doppler_Strategy_A.Name = "rb_Options_Doppler_Strategy_A";
+ this.rb_Options_Doppler_Strategy_A.Size = new System.Drawing.Size(14, 13);
+ this.rb_Options_Doppler_Strategy_A.TabIndex = 24;
+ this.rb_Options_Doppler_Strategy_A.UseVisualStyleBackColor = true;
+ this.rb_Options_Doppler_Strategy_A.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged);
+ //
+ // label154
+ //
+ this.label154.AutoSize = true;
+ this.label154.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label154.Location = new System.Drawing.Point(223, 85);
+ this.label154.Name = "label154";
+ this.label154.Size = new System.Drawing.Size(134, 13);
+ this.label154.TabIndex = 23;
+ this.label154.Text = "Doppler Compensation";
+ //
+ // label153
+ //
+ this.label153.AutoSize = true;
+ this.label153.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label153.Location = new System.Drawing.Point(538, 85);
+ this.label153.Name = "label153";
+ this.label153.Size = new System.Drawing.Size(68, 13);
+ this.label153.TabIndex = 22;
+ this.label153.Text = "DX Station";
+ //
+ // label152
+ //
+ this.label152.AutoSize = true;
+ this.label152.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label152.Location = new System.Drawing.Point(51, 85);
+ this.label152.Name = "label152";
+ this.label152.Size = new System.Drawing.Size(67, 13);
+ this.label152.TabIndex = 21;
+ this.label152.Text = "My Station";
+ //
+ // gb_Options_Track_File
+ //
+ this.gb_Options_Track_File.Controls.Add(this.rb_Options_Track_File_None);
+ this.gb_Options_Track_File.Controls.Add(this.rb_Options_Track_File_WSJT);
+ this.gb_Options_Track_File.Controls.Add(this.rb_Options_Track_File_Native);
+ this.gb_Options_Track_File.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.gb_Options_Track_File.Location = new System.Drawing.Point(331, 160);
+ this.gb_Options_Track_File.Name = "gb_Options_Track_File";
+ this.gb_Options_Track_File.Size = new System.Drawing.Size(325, 80);
+ this.gb_Options_Track_File.TabIndex = 12;
+ this.gb_Options_Track_File.TabStop = false;
+ this.gb_Options_Track_File.Text = "Rotator Control File Output";
+ //
+ // rb_Options_Track_File_None
+ //
+ this.rb_Options_Track_File_None.AutoSize = true;
+ this.rb_Options_Track_File_None.Checked = true;
+ this.rb_Options_Track_File_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_File_None.Location = new System.Drawing.Point(17, 19);
+ this.rb_Options_Track_File_None.Name = "rb_Options_Track_File_None";
+ this.rb_Options_Track_File_None.Size = new System.Drawing.Size(51, 17);
+ this.rb_Options_Track_File_None.TabIndex = 12;
+ this.rb_Options_Track_File_None.TabStop = true;
+ this.rb_Options_Track_File_None.Tag = "";
+ this.rb_Options_Track_File_None.Text = "None";
+ this.rb_Options_Track_File_None.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_File_None.CheckedChanged += new System.EventHandler(this.gb_Options_Track_File_CheckedChanged);
+ //
+ // rb_Options_Track_File_WSJT
+ //
+ this.rb_Options_Track_File_WSJT.AutoSize = true;
+ this.rb_Options_Track_File_WSJT.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_File_WSJT.Location = new System.Drawing.Point(17, 55);
+ this.rb_Options_Track_File_WSJT.Name = "rb_Options_Track_File_WSJT";
+ this.rb_Options_Track_File_WSJT.Size = new System.Drawing.Size(84, 17);
+ this.rb_Options_Track_File_WSJT.TabIndex = 7;
+ this.rb_Options_Track_File_WSJT.Tag = "";
+ this.rb_Options_Track_File_WSJT.Text = "WSJT Az/El";
+ this.rb_Options_Track_File_WSJT.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_File_WSJT.CheckedChanged += new System.EventHandler(this.gb_Options_Track_File_CheckedChanged);
+ //
+ // rb_Options_Track_File_Native
+ //
+ this.rb_Options_Track_File_Native.AutoSize = true;
+ this.rb_Options_Track_File_Native.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_File_Native.Location = new System.Drawing.Point(17, 37);
+ this.rb_Options_Track_File_Native.Name = "rb_Options_Track_File_Native";
+ this.rb_Options_Track_File_Native.Size = new System.Drawing.Size(85, 17);
+ this.rb_Options_Track_File_Native.TabIndex = 6;
+ this.rb_Options_Track_File_Native.Tag = "";
+ this.rb_Options_Track_File_Native.Text = "Native Az/El";
+ this.rb_Options_Track_File_Native.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_File_Native.CheckedChanged += new System.EventHandler(this.gb_Options_Track_File_CheckedChanged);
+ //
+ // gb_Options_Track_DDE
+ //
+ this.gb_Options_Track_DDE.Controls.Add(this.rb_Options_Track_DDE_None);
+ this.gb_Options_Track_DDE.Controls.Add(this.rb_Options_Track_DDE_HRD);
+ this.gb_Options_Track_DDE.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.gb_Options_Track_DDE.Location = new System.Drawing.Point(16, 160);
+ this.gb_Options_Track_DDE.Name = "gb_Options_Track_DDE";
+ this.gb_Options_Track_DDE.Size = new System.Drawing.Size(309, 80);
+ this.gb_Options_Track_DDE.TabIndex = 11;
+ this.gb_Options_Track_DDE.TabStop = false;
+ this.gb_Options_Track_DDE.Text = "Rotator Control DDE Output";
+ //
+ // rb_Options_Track_DDE_None
+ //
+ this.rb_Options_Track_DDE_None.AutoSize = true;
+ this.rb_Options_Track_DDE_None.Checked = true;
+ this.rb_Options_Track_DDE_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_DDE_None.Location = new System.Drawing.Point(17, 19);
+ this.rb_Options_Track_DDE_None.Name = "rb_Options_Track_DDE_None";
+ this.rb_Options_Track_DDE_None.Size = new System.Drawing.Size(51, 17);
+ this.rb_Options_Track_DDE_None.TabIndex = 11;
+ this.rb_Options_Track_DDE_None.TabStop = true;
+ this.rb_Options_Track_DDE_None.Tag = "";
+ this.rb_Options_Track_DDE_None.Text = "None";
+ this.rb_Options_Track_DDE_None.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_DDE_None.CheckedChanged += new System.EventHandler(this.gb_Options_Track_DDE_CheckedChanged);
+ //
+ // rb_Options_Track_DDE_HRD
+ //
+ this.rb_Options_Track_DDE_HRD.AutoSize = true;
+ this.rb_Options_Track_DDE_HRD.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_DDE_HRD.Location = new System.Drawing.Point(17, 37);
+ this.rb_Options_Track_DDE_HRD.Name = "rb_Options_Track_DDE_HRD";
+ this.rb_Options_Track_DDE_HRD.Size = new System.Drawing.Size(202, 17);
+ this.rb_Options_Track_DDE_HRD.TabIndex = 6;
+ this.rb_Options_Track_DDE_HRD.Tag = "";
+ this.rb_Options_Track_DDE_HRD.Text = "Ham Radio Deluxe (HRDRotator.exe)";
+ this.rb_Options_Track_DDE_HRD.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_DDE_HRD.CheckedChanged += new System.EventHandler(this.gb_Options_Track_DDE_CheckedChanged);
+ //
+ // gb_Options_Track_UDP
+ //
+ this.gb_Options_Track_UDP.Controls.Add(this.tb_Options_Track_UDP_AirScout_Port);
+ this.gb_Options_Track_UDP.Controls.Add(this.tb_Options_Track_UDP_WinTest_Port);
+ this.gb_Options_Track_UDP.Controls.Add(this.label90);
+ this.gb_Options_Track_UDP.Controls.Add(this.label89);
+ this.gb_Options_Track_UDP.Controls.Add(this.rb_Options_Track_UDP_None);
+ this.gb_Options_Track_UDP.Controls.Add(this.rb_Options_Track_UDP_AirScout);
+ this.gb_Options_Track_UDP.Controls.Add(this.rb_Options_Track_UDP_WinTest);
+ this.gb_Options_Track_UDP.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.gb_Options_Track_UDP.Location = new System.Drawing.Point(331, 64);
+ this.gb_Options_Track_UDP.Name = "gb_Options_Track_UDP";
+ this.gb_Options_Track_UDP.Size = new System.Drawing.Size(325, 90);
+ this.gb_Options_Track_UDP.TabIndex = 10;
+ this.gb_Options_Track_UDP.TabStop = false;
+ this.gb_Options_Track_UDP.Text = "Rotator Control Network Output";
+ //
+ // tb_Options_Track_UDP_AirScout_Port
+ //
+ this.tb_Options_Track_UDP_AirScout_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_UDP_AirScout_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Track_UDP_AirScout_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Track_UDP_AirScout_Port.FormatSpecifier = "F0";
+ this.tb_Options_Track_UDP_AirScout_Port.Location = new System.Drawing.Point(254, 60);
+ this.tb_Options_Track_UDP_AirScout_Port.MaxValue = 0;
+ this.tb_Options_Track_UDP_AirScout_Port.MinValue = 0;
+ this.tb_Options_Track_UDP_AirScout_Port.Name = "tb_Options_Track_UDP_AirScout_Port";
+ this.tb_Options_Track_UDP_AirScout_Port.Size = new System.Drawing.Size(43, 22);
+ this.tb_Options_Track_UDP_AirScout_Port.TabIndex = 17;
+ this.tb_Options_Track_UDP_AirScout_Port.Text = "9872";
+ this.tb_Options_Track_UDP_AirScout_Port.Value = global::AirScout.Properties.Settings.Default.Track_UDP_AirScout_Port;
+ //
+ // tb_Options_Track_UDP_WinTest_Port
+ //
+ this.tb_Options_Track_UDP_WinTest_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_UDP_WinTest_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Track_UDP_WinTest_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Track_UDP_WinTest_Port.FormatSpecifier = "F0";
+ this.tb_Options_Track_UDP_WinTest_Port.Location = new System.Drawing.Point(254, 37);
+ this.tb_Options_Track_UDP_WinTest_Port.MaxValue = 0;
+ this.tb_Options_Track_UDP_WinTest_Port.MinValue = 0;
+ this.tb_Options_Track_UDP_WinTest_Port.Name = "tb_Options_Track_UDP_WinTest_Port";
+ this.tb_Options_Track_UDP_WinTest_Port.Size = new System.Drawing.Size(43, 22);
+ this.tb_Options_Track_UDP_WinTest_Port.TabIndex = 16;
+ this.tb_Options_Track_UDP_WinTest_Port.Text = "9871";
+ this.tb_Options_Track_UDP_WinTest_Port.Value = global::AirScout.Properties.Settings.Default.Track_UDP_WinTest_Port;
//
// label90
//
this.label90.AutoSize = true;
this.label90.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label90.Location = new System.Drawing.Point(491, 75);
+ this.label90.Location = new System.Drawing.Point(219, 64);
this.label90.Name = "label90";
this.label90.Size = new System.Drawing.Size(29, 13);
this.label90.TabIndex = 15;
@@ -4182,34 +6066,77 @@
//
this.label89.AutoSize = true;
this.label89.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label89.Location = new System.Drawing.Point(491, 46);
+ this.label89.Location = new System.Drawing.Point(219, 41);
this.label89.Name = "label89";
this.label89.Size = new System.Drawing.Size(29, 13);
this.label89.TabIndex = 13;
this.label89.Text = "Port:";
//
- // groupBox33
+ // rb_Options_Track_UDP_None
//
- this.groupBox33.Controls.Add(this.tb_Options_Track_Serial_Baudrate);
- this.groupBox33.Controls.Add(this.rb_Options_Track_Serial_None);
- this.groupBox33.Controls.Add(this.label88);
- this.groupBox33.Controls.Add(this.label87);
- this.groupBox33.Controls.Add(this.tb_Options_Track_Serial_Port);
- this.groupBox33.Controls.Add(this.rb_Options_Track_Serial_GS232_AZEL);
- this.groupBox33.Controls.Add(this.rb_Options_Track_Serial_GS232_AZ);
- this.groupBox33.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.groupBox33.Location = new System.Drawing.Point(16, 64);
- this.groupBox33.Name = "groupBox33";
- this.groupBox33.Size = new System.Drawing.Size(619, 87);
- this.groupBox33.TabIndex = 9;
- this.groupBox33.TabStop = false;
- this.groupBox33.Text = "Serial Output";
+ this.rb_Options_Track_UDP_None.AutoSize = true;
+ this.rb_Options_Track_UDP_None.Checked = true;
+ this.rb_Options_Track_UDP_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_UDP_None.Location = new System.Drawing.Point(17, 19);
+ this.rb_Options_Track_UDP_None.Name = "rb_Options_Track_UDP_None";
+ this.rb_Options_Track_UDP_None.Size = new System.Drawing.Size(51, 17);
+ this.rb_Options_Track_UDP_None.TabIndex = 11;
+ this.rb_Options_Track_UDP_None.TabStop = true;
+ this.rb_Options_Track_UDP_None.Tag = "";
+ this.rb_Options_Track_UDP_None.Text = "None";
+ this.rb_Options_Track_UDP_None.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_UDP_None.CheckedChanged += new System.EventHandler(this.gb_Options_Track_UDP_CheckedChanged);
+ //
+ // rb_Options_Track_UDP_WinTest
+ //
+ this.rb_Options_Track_UDP_WinTest.AutoSize = true;
+ this.rb_Options_Track_UDP_WinTest.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_UDP_WinTest.Location = new System.Drawing.Point(17, 42);
+ this.rb_Options_Track_UDP_WinTest.Name = "rb_Options_Track_UDP_WinTest";
+ this.rb_Options_Track_UDP_WinTest.Size = new System.Drawing.Size(188, 17);
+ this.rb_Options_Track_UDP_WinTest.TabIndex = 6;
+ this.rb_Options_Track_UDP_WinTest.Tag = "";
+ this.rb_Options_Track_UDP_WinTest.Text = "UDP Broadcast (Win-Test) Az only";
+ this.rb_Options_Track_UDP_WinTest.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_UDP_WinTest.CheckedChanged += new System.EventHandler(this.gb_Options_Track_UDP_CheckedChanged);
+ //
+ // gb_Options_Track_Serial
+ //
+ this.gb_Options_Track_Serial.Controls.Add(this.tb_Options_Track_Serial_Baudrate);
+ this.gb_Options_Track_Serial.Controls.Add(this.rb_Options_Track_Serial_None);
+ this.gb_Options_Track_Serial.Controls.Add(this.label88);
+ this.gb_Options_Track_Serial.Controls.Add(this.label87);
+ this.gb_Options_Track_Serial.Controls.Add(this.tb_Options_Track_Serial_Port);
+ this.gb_Options_Track_Serial.Controls.Add(this.rb_Options_Track_Serial_GS232_AZEL);
+ this.gb_Options_Track_Serial.Controls.Add(this.rb_Options_Track_Serial_GS232_AZ);
+ this.gb_Options_Track_Serial.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.gb_Options_Track_Serial.Location = new System.Drawing.Point(16, 64);
+ this.gb_Options_Track_Serial.Name = "gb_Options_Track_Serial";
+ this.gb_Options_Track_Serial.Size = new System.Drawing.Size(309, 90);
+ this.gb_Options_Track_Serial.TabIndex = 9;
+ this.gb_Options_Track_Serial.TabStop = false;
+ this.gb_Options_Track_Serial.Text = "Rotator Control Serial Output";
+ //
+ // rb_Options_Track_Serial_None
+ //
+ this.rb_Options_Track_Serial_None.AutoSize = true;
+ this.rb_Options_Track_Serial_None.Checked = true;
+ this.rb_Options_Track_Serial_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_Serial_None.Location = new System.Drawing.Point(17, 19);
+ this.rb_Options_Track_Serial_None.Name = "rb_Options_Track_Serial_None";
+ this.rb_Options_Track_Serial_None.Size = new System.Drawing.Size(51, 17);
+ this.rb_Options_Track_Serial_None.TabIndex = 10;
+ this.rb_Options_Track_Serial_None.TabStop = true;
+ this.rb_Options_Track_Serial_None.Tag = "";
+ this.rb_Options_Track_Serial_None.Text = "None";
+ this.rb_Options_Track_Serial_None.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_Serial_None.CheckedChanged += new System.EventHandler(this.gb_Options_Track_Serial_CheckedChanged);
//
// label88
//
this.label88.AutoSize = true;
this.label88.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label88.Location = new System.Drawing.Point(467, 17);
+ this.label88.Location = new System.Drawing.Point(128, 44);
this.label88.Name = "label88";
this.label88.Size = new System.Drawing.Size(53, 13);
this.label88.TabIndex = 9;
@@ -4219,24 +6146,550 @@
//
this.label87.AutoSize = true;
this.label87.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label87.Location = new System.Drawing.Point(373, 17);
+ this.label87.Location = new System.Drawing.Point(134, 21);
this.label87.Name = "label87";
this.label87.Size = new System.Drawing.Size(29, 13);
this.label87.TabIndex = 7;
this.label87.Text = "Port:";
//
+ // rb_Options_Track_Serial_GS232_AZEL
+ //
+ this.rb_Options_Track_Serial_GS232_AZEL.AutoSize = true;
+ this.rb_Options_Track_Serial_GS232_AZEL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_Serial_GS232_AZEL.Location = new System.Drawing.Point(17, 65);
+ this.rb_Options_Track_Serial_GS232_AZEL.Name = "rb_Options_Track_Serial_GS232_AZEL";
+ this.rb_Options_Track_Serial_GS232_AZEL.Size = new System.Drawing.Size(97, 17);
+ this.rb_Options_Track_Serial_GS232_AZEL.TabIndex = 5;
+ this.rb_Options_Track_Serial_GS232_AZEL.Tag = "";
+ this.rb_Options_Track_Serial_GS232_AZEL.Text = "GS-232A Az/El";
+ this.rb_Options_Track_Serial_GS232_AZEL.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_Serial_GS232_AZEL.CheckedChanged += new System.EventHandler(this.gb_Options_Track_Serial_CheckedChanged);
+ //
+ // rb_Options_Track_Serial_GS232_AZ
+ //
+ this.rb_Options_Track_Serial_GS232_AZ.AutoSize = true;
+ this.rb_Options_Track_Serial_GS232_AZ.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rb_Options_Track_Serial_GS232_AZ.Location = new System.Drawing.Point(17, 42);
+ this.rb_Options_Track_Serial_GS232_AZ.Name = "rb_Options_Track_Serial_GS232_AZ";
+ this.rb_Options_Track_Serial_GS232_AZ.Size = new System.Drawing.Size(105, 17);
+ this.rb_Options_Track_Serial_GS232_AZ.TabIndex = 0;
+ this.rb_Options_Track_Serial_GS232_AZ.Tag = "";
+ this.rb_Options_Track_Serial_GS232_AZ.Text = "GS-232A Az only";
+ this.rb_Options_Track_Serial_GS232_AZ.UseVisualStyleBackColor = true;
+ this.rb_Options_Track_Serial_GS232_AZ.CheckedChanged += new System.EventHandler(this.gb_Options_Track_Serial_CheckedChanged);
+ //
// groupBox28
//
+ this.groupBox28.Controls.Add(this.label186);
+ this.groupBox28.Controls.Add(this.label187);
+ this.groupBox28.Controls.Add(this.tb_Options_Track_Offset);
+ this.groupBox28.Controls.Add(this.label185);
+ this.groupBox28.Controls.Add(this.label151);
+ this.groupBox28.Controls.Add(this.int32TextBox2);
this.groupBox28.Controls.Add(this.cb_Options_Track_Activate);
this.groupBox28.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.groupBox28.Location = new System.Drawing.Point(3, 13);
+ this.groupBox28.Location = new System.Drawing.Point(16, 13);
this.groupBox28.Name = "groupBox28";
- this.groupBox28.Size = new System.Drawing.Size(632, 45);
+ this.groupBox28.Size = new System.Drawing.Size(640, 45);
this.groupBox28.TabIndex = 8;
this.groupBox28.TabStop = false;
- this.groupBox28.Text = "Activate Antenna Tracking";
+ this.groupBox28.Text = "Activate Tracking";
this.groupBox28.Enter += new System.EventHandler(this.tab_Options_Track_Enter);
//
+ // label186
+ //
+ this.label186.AutoSize = true;
+ this.label186.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label186.Location = new System.Drawing.Point(622, 20);
+ this.label186.Name = "label186";
+ this.label186.Size = new System.Drawing.Size(12, 13);
+ this.label186.TabIndex = 59;
+ this.label186.Text = "s";
+ //
+ // label187
+ //
+ this.label187.AutoSize = true;
+ this.label187.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label187.Location = new System.Drawing.Point(454, 20);
+ this.label187.Name = "label187";
+ this.label187.Size = new System.Drawing.Size(109, 13);
+ this.label187.TabIndex = 58;
+ this.label187.Text = "Tracking Time Offset:";
+ //
+ // label185
+ //
+ this.label185.AutoSize = true;
+ this.label185.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label185.Location = new System.Drawing.Point(386, 21);
+ this.label185.Name = "label185";
+ this.label185.Size = new System.Drawing.Size(20, 13);
+ this.label185.TabIndex = 56;
+ this.label185.Text = "ms";
+ //
+ // label151
+ //
+ this.label151.AutoSize = true;
+ this.label151.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label151.Location = new System.Drawing.Point(205, 20);
+ this.label151.Name = "label151";
+ this.label151.Size = new System.Drawing.Size(104, 13);
+ this.label151.TabIndex = 55;
+ this.label151.Text = "Track Refresh Rate:";
+ //
+ // tab_Options_CAT
+ //
+ this.tab_Options_CAT.BackColor = System.Drawing.SystemColors.Control;
+ this.tab_Options_CAT.Controls.Add(this.gb_Options_CAT_PortSettings);
+ this.tab_Options_CAT.Controls.Add(this.gb_Options_CAT_RigType);
+ this.tab_Options_CAT.Controls.Add(this.gb_Options_CAT_OperatingInstructions);
+ this.tab_Options_CAT.Controls.Add(this.groupBox57);
+ this.tab_Options_CAT.Location = new System.Drawing.Point(4, 40);
+ this.tab_Options_CAT.Name = "tab_Options_CAT";
+ this.tab_Options_CAT.Size = new System.Drawing.Size(671, 480);
+ this.tab_Options_CAT.TabIndex = 20;
+ this.tab_Options_CAT.Text = "CAT";
+ this.tab_Options_CAT.Enter += new System.EventHandler(this.tab_Options_CAT_Enter);
+ //
+ // gb_Options_CAT_PortSettings
+ //
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.ud_Options_CAT_Timeout);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label149);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.ud_Options_CAT_Poll);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label190);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label191);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_DTR);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label192);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_RTS);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label193);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_StopBits);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label194);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_Parity);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label195);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_DataBits);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label196);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_Baudrate);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.label197);
+ this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_PortName);
+ this.gb_Options_CAT_PortSettings.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.gb_Options_CAT_PortSettings.Location = new System.Drawing.Point(423, 67);
+ this.gb_Options_CAT_PortSettings.Name = "gb_Options_CAT_PortSettings";
+ this.gb_Options_CAT_PortSettings.Size = new System.Drawing.Size(231, 277);
+ this.gb_Options_CAT_PortSettings.TabIndex = 3;
+ this.gb_Options_CAT_PortSettings.TabStop = false;
+ this.gb_Options_CAT_PortSettings.Text = "Serial Port Settings";
+ //
+ // ud_Options_CAT_Timeout
+ //
+ this.ud_Options_CAT_Timeout.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_CAT_Timeout.Increment = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Timeout.Location = new System.Drawing.Point(146, 235);
+ this.ud_Options_CAT_Timeout.Maximum = new decimal(new int[] {
+ 10000,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Timeout.Minimum = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Timeout.Name = "ud_Options_CAT_Timeout";
+ this.ud_Options_CAT_Timeout.Size = new System.Drawing.Size(69, 20);
+ this.ud_Options_CAT_Timeout.TabIndex = 46;
+ this.ud_Options_CAT_Timeout.Value = new decimal(new int[] {
+ 5000,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Timeout.ValueChanged += new System.EventHandler(this.ud_Options_CAT_Timeout_ValueChanged);
+ //
+ // label149
+ //
+ this.label149.AutoSize = true;
+ this.label149.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label149.Location = new System.Drawing.Point(30, 237);
+ this.label149.Name = "label149";
+ this.label149.Size = new System.Drawing.Size(70, 13);
+ this.label149.TabIndex = 47;
+ this.label149.Text = "Timeout [ms]:";
+ //
+ // ud_Options_CAT_Poll
+ //
+ this.ud_Options_CAT_Poll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_CAT_Poll.Increment = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Poll.Location = new System.Drawing.Point(146, 209);
+ this.ud_Options_CAT_Poll.Maximum = new decimal(new int[] {
+ 10000,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Poll.Minimum = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Poll.Name = "ud_Options_CAT_Poll";
+ this.ud_Options_CAT_Poll.Size = new System.Drawing.Size(69, 20);
+ this.ud_Options_CAT_Poll.TabIndex = 29;
+ this.ud_Options_CAT_Poll.Value = new decimal(new int[] {
+ 500,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Poll.ValueChanged += new System.EventHandler(this.ud_Options_CAT_Poll_ValueChanged);
+ //
+ // label190
+ //
+ this.label190.AutoSize = true;
+ this.label190.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label190.Location = new System.Drawing.Point(30, 211);
+ this.label190.Name = "label190";
+ this.label190.Size = new System.Drawing.Size(64, 13);
+ this.label190.TabIndex = 45;
+ this.label190.Text = "Poll Int [ms]:";
+ //
+ // label191
+ //
+ this.label191.AutoSize = true;
+ this.label191.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label191.Location = new System.Drawing.Point(30, 184);
+ this.label191.Name = "label191";
+ this.label191.Size = new System.Drawing.Size(33, 13);
+ this.label191.TabIndex = 44;
+ this.label191.Text = "DTR:";
+ //
+ // cb_Options_CAT_DTR
+ //
+ this.cb_Options_CAT_DTR.DisplayMember = "Text";
+ this.cb_Options_CAT_DTR.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Options_CAT_DTR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_DTR.FormattingEnabled = true;
+ this.cb_Options_CAT_DTR.Location = new System.Drawing.Point(108, 181);
+ this.cb_Options_CAT_DTR.Name = "cb_Options_CAT_DTR";
+ this.cb_Options_CAT_DTR.Size = new System.Drawing.Size(107, 21);
+ this.cb_Options_CAT_DTR.TabIndex = 43;
+ this.cb_Options_CAT_DTR.ValueMember = "Value";
+ this.cb_Options_CAT_DTR.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_DTR_SelectedIndexChanged);
+ //
+ // label192
+ //
+ this.label192.AutoSize = true;
+ this.label192.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label192.Location = new System.Drawing.Point(30, 157);
+ this.label192.Name = "label192";
+ this.label192.Size = new System.Drawing.Size(32, 13);
+ this.label192.TabIndex = 42;
+ this.label192.Text = "RTS:";
+ //
+ // cb_Options_CAT_RTS
+ //
+ this.cb_Options_CAT_RTS.DisplayMember = "Text";
+ this.cb_Options_CAT_RTS.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Options_CAT_RTS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_RTS.FormattingEnabled = true;
+ this.cb_Options_CAT_RTS.Location = new System.Drawing.Point(108, 154);
+ this.cb_Options_CAT_RTS.Name = "cb_Options_CAT_RTS";
+ this.cb_Options_CAT_RTS.Size = new System.Drawing.Size(107, 21);
+ this.cb_Options_CAT_RTS.TabIndex = 41;
+ this.cb_Options_CAT_RTS.ValueMember = "Value";
+ this.cb_Options_CAT_RTS.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_RTS_SelectedIndexChanged);
+ //
+ // label193
+ //
+ this.label193.AutoSize = true;
+ this.label193.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label193.Location = new System.Drawing.Point(30, 130);
+ this.label193.Name = "label193";
+ this.label193.Size = new System.Drawing.Size(48, 13);
+ this.label193.TabIndex = 40;
+ this.label193.Text = "Stopbits:";
+ //
+ // cb_Options_CAT_StopBits
+ //
+ this.cb_Options_CAT_StopBits.DisplayMember = "Text";
+ this.cb_Options_CAT_StopBits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Options_CAT_StopBits.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_StopBits.FormattingEnabled = true;
+ this.cb_Options_CAT_StopBits.Location = new System.Drawing.Point(108, 127);
+ this.cb_Options_CAT_StopBits.Name = "cb_Options_CAT_StopBits";
+ this.cb_Options_CAT_StopBits.Size = new System.Drawing.Size(107, 21);
+ this.cb_Options_CAT_StopBits.TabIndex = 39;
+ this.cb_Options_CAT_StopBits.ValueMember = "Value";
+ this.cb_Options_CAT_StopBits.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_Stopbits_SelectedIndexChanged);
+ //
+ // label194
+ //
+ this.label194.AutoSize = true;
+ this.label194.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label194.Location = new System.Drawing.Point(30, 103);
+ this.label194.Name = "label194";
+ this.label194.Size = new System.Drawing.Size(36, 13);
+ this.label194.TabIndex = 38;
+ this.label194.Text = "Parity:";
+ //
+ // cb_Options_CAT_Parity
+ //
+ this.cb_Options_CAT_Parity.DisplayMember = "Text";
+ this.cb_Options_CAT_Parity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Options_CAT_Parity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_Parity.FormattingEnabled = true;
+ this.cb_Options_CAT_Parity.Location = new System.Drawing.Point(108, 100);
+ this.cb_Options_CAT_Parity.Name = "cb_Options_CAT_Parity";
+ this.cb_Options_CAT_Parity.Size = new System.Drawing.Size(107, 21);
+ this.cb_Options_CAT_Parity.TabIndex = 37;
+ this.cb_Options_CAT_Parity.ValueMember = "Value";
+ this.cb_Options_CAT_Parity.SelectedIndexChanged += new System.EventHandler(this.cb_Parity_SelectedIndexChanged);
+ //
+ // label195
+ //
+ this.label195.AutoSize = true;
+ this.label195.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label195.Location = new System.Drawing.Point(30, 76);
+ this.label195.Name = "label195";
+ this.label195.Size = new System.Drawing.Size(49, 13);
+ this.label195.TabIndex = 36;
+ this.label195.Text = "Databits:";
+ //
+ // cb_Options_CAT_DataBits
+ //
+ this.cb_Options_CAT_DataBits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Options_CAT_DataBits.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_DataBits.FormattingEnabled = true;
+ this.cb_Options_CAT_DataBits.Location = new System.Drawing.Point(108, 73);
+ this.cb_Options_CAT_DataBits.Name = "cb_Options_CAT_DataBits";
+ this.cb_Options_CAT_DataBits.Size = new System.Drawing.Size(107, 21);
+ this.cb_Options_CAT_DataBits.TabIndex = 35;
+ this.cb_Options_CAT_DataBits.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_DataBits_SelectedIndexChanged);
+ //
+ // label196
+ //
+ this.label196.AutoSize = true;
+ this.label196.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label196.Location = new System.Drawing.Point(30, 49);
+ this.label196.Name = "label196";
+ this.label196.Size = new System.Drawing.Size(53, 13);
+ this.label196.TabIndex = 34;
+ this.label196.Text = "Baudrate:";
+ //
+ // cb_Options_CAT_Baudrate
+ //
+ this.cb_Options_CAT_Baudrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Options_CAT_Baudrate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_Baudrate.FormattingEnabled = true;
+ this.cb_Options_CAT_Baudrate.Location = new System.Drawing.Point(108, 46);
+ this.cb_Options_CAT_Baudrate.Name = "cb_Options_CAT_Baudrate";
+ this.cb_Options_CAT_Baudrate.Size = new System.Drawing.Size(107, 21);
+ this.cb_Options_CAT_Baudrate.TabIndex = 33;
+ this.cb_Options_CAT_Baudrate.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_Baudrate_SelectedIndexChanged);
+ //
+ // label197
+ //
+ this.label197.AutoSize = true;
+ this.label197.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label197.Location = new System.Drawing.Point(30, 22);
+ this.label197.Name = "label197";
+ this.label197.Size = new System.Drawing.Size(57, 13);
+ this.label197.TabIndex = 32;
+ this.label197.Text = "PortName:";
+ //
+ // cb_Options_CAT_PortName
+ //
+ this.cb_Options_CAT_PortName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Options_CAT_PortName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_PortName.FormattingEnabled = true;
+ this.cb_Options_CAT_PortName.Location = new System.Drawing.Point(108, 19);
+ this.cb_Options_CAT_PortName.Name = "cb_Options_CAT_PortName";
+ this.cb_Options_CAT_PortName.Size = new System.Drawing.Size(107, 21);
+ this.cb_Options_CAT_PortName.TabIndex = 31;
+ this.cb_Options_CAT_PortName.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_PortName_SelectedIndexChanged);
+ //
+ // gb_Options_CAT_RigType
+ //
+ this.gb_Options_CAT_RigType.Controls.Add(this.richTextBox5);
+ this.gb_Options_CAT_RigType.Controls.Add(this.richTextBox4);
+ this.gb_Options_CAT_RigType.Controls.Add(this.richTextBox3);
+ this.gb_Options_CAT_RigType.Controls.Add(this.label199);
+ this.gb_Options_CAT_RigType.Controls.Add(this.richTextBox2);
+ this.gb_Options_CAT_RigType.Controls.Add(this.cb_Options_CAT_Rig);
+ this.gb_Options_CAT_RigType.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.gb_Options_CAT_RigType.Location = new System.Drawing.Point(21, 67);
+ this.gb_Options_CAT_RigType.Name = "gb_Options_CAT_RigType";
+ this.gb_Options_CAT_RigType.Size = new System.Drawing.Size(396, 277);
+ this.gb_Options_CAT_RigType.TabIndex = 2;
+ this.gb_Options_CAT_RigType.TabStop = false;
+ this.gb_Options_CAT_RigType.Text = "Rig Type";
+ //
+ // richTextBox5
+ //
+ this.richTextBox5.BackColor = System.Drawing.SystemColors.Control;
+ this.richTextBox5.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.richTextBox5.ForeColor = System.Drawing.Color.RoyalBlue;
+ this.richTextBox5.Location = new System.Drawing.Point(18, 121);
+ this.richTextBox5.Name = "richTextBox5";
+ this.richTextBox5.ReadOnly = true;
+ this.richTextBox5.Size = new System.Drawing.Size(372, 32);
+ this.richTextBox5.TabIndex = 35;
+ this.richTextBox5.Text = "2. ScoutBase.CAT via serial port (Windows/Linux)\n(with OmniRig rig definitions, r" +
+ "equires exclusive access to rig)";
+ //
+ // richTextBox4
+ //
+ this.richTextBox4.BackColor = System.Drawing.SystemColors.Control;
+ this.richTextBox4.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.richTextBox4.Location = new System.Drawing.Point(18, 170);
+ this.richTextBox4.Name = "richTextBox4";
+ this.richTextBox4.ReadOnly = true;
+ this.richTextBox4.Size = new System.Drawing.Size(372, 96);
+ this.richTextBox4.TabIndex = 34;
+ this.richTextBox4.Text = resources.GetString("richTextBox4.Text");
+ //
+ // richTextBox3
+ //
+ this.richTextBox3.BackColor = System.Drawing.SystemColors.Control;
+ this.richTextBox3.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.richTextBox3.ForeColor = System.Drawing.Color.RoyalBlue;
+ this.richTextBox3.Location = new System.Drawing.Point(18, 77);
+ this.richTextBox3.Name = "richTextBox3";
+ this.richTextBox3.ReadOnly = true;
+ this.richTextBox3.Size = new System.Drawing.Size(372, 43);
+ this.richTextBox3.TabIndex = 32;
+ this.richTextBox3.Text = "1. OmniRig V1.19 or V2.x via ActiveX (Windows only)\n(multiple access to rig from " +
+ "different applications possible)";
+ //
+ // label199
+ //
+ this.label199.AutoSize = true;
+ this.label199.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label199.Location = new System.Drawing.Point(27, 22);
+ this.label199.Name = "label199";
+ this.label199.Size = new System.Drawing.Size(155, 13);
+ this.label199.TabIndex = 31;
+ this.label199.Text = "Select CAT-Engine & Rig-Type:";
+ this.label199.UseMnemonic = false;
+ //
+ // richTextBox2
+ //
+ this.richTextBox2.BackColor = System.Drawing.SystemColors.Control;
+ this.richTextBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.richTextBox2.Location = new System.Drawing.Point(18, 49);
+ this.richTextBox2.Name = "richTextBox2";
+ this.richTextBox2.ReadOnly = true;
+ this.richTextBox2.Size = new System.Drawing.Size(372, 18);
+ this.richTextBox2.TabIndex = 1;
+ this.richTextBox2.Text = "AirScout supports the following CAT-Engines:";
+ //
+ // cb_Options_CAT_Rig
+ //
+ this.cb_Options_CAT_Rig.DisplayMember = "Type";
+ this.cb_Options_CAT_Rig.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Options_CAT_Rig.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_Rig.FormattingEnabled = true;
+ this.cb_Options_CAT_Rig.Location = new System.Drawing.Point(194, 19);
+ this.cb_Options_CAT_Rig.Name = "cb_Options_CAT_Rig";
+ this.cb_Options_CAT_Rig.Size = new System.Drawing.Size(170, 21);
+ this.cb_Options_CAT_Rig.TabIndex = 0;
+ this.cb_Options_CAT_Rig.ValueMember = "Type";
+ this.cb_Options_CAT_Rig.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_Rig_SelectedIndexChanged);
+ //
+ // gb_Options_CAT_OperatingInstructions
+ //
+ this.gb_Options_CAT_OperatingInstructions.Controls.Add(this.richTextBox1);
+ this.gb_Options_CAT_OperatingInstructions.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.gb_Options_CAT_OperatingInstructions.Location = new System.Drawing.Point(21, 350);
+ this.gb_Options_CAT_OperatingInstructions.Name = "gb_Options_CAT_OperatingInstructions";
+ this.gb_Options_CAT_OperatingInstructions.Size = new System.Drawing.Size(633, 121);
+ this.gb_Options_CAT_OperatingInstructions.TabIndex = 1;
+ this.gb_Options_CAT_OperatingInstructions.TabStop = false;
+ this.gb_Options_CAT_OperatingInstructions.Text = "Operating Instructions";
+ //
+ // richTextBox1
+ //
+ this.richTextBox1.BackColor = System.Drawing.SystemColors.Control;
+ this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.richTextBox1.Location = new System.Drawing.Point(18, 19);
+ this.richTextBox1.Name = "richTextBox1";
+ this.richTextBox1.ReadOnly = true;
+ this.richTextBox1.Size = new System.Drawing.Size(609, 109);
+ this.richTextBox1.TabIndex = 0;
+ this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
+ //
+ // groupBox57
+ //
+ this.groupBox57.Controls.Add(this.ud_Options_CAT_Update);
+ this.groupBox57.Controls.Add(this.label189);
+ this.groupBox57.Controls.Add(this.cb_Options_CAT_Activate);
+ this.groupBox57.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.groupBox57.Location = new System.Drawing.Point(20, 12);
+ this.groupBox57.Name = "groupBox57";
+ this.groupBox57.Size = new System.Drawing.Size(634, 49);
+ this.groupBox57.TabIndex = 0;
+ this.groupBox57.TabStop = false;
+ this.groupBox57.Text = "Activate CAT Interface";
+ //
+ // ud_Options_CAT_Update
+ //
+ this.ud_Options_CAT_Update.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_CAT_Update.Increment = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Update.Location = new System.Drawing.Point(549, 18);
+ this.ud_Options_CAT_Update.Maximum = new decimal(new int[] {
+ 10000,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Update.Minimum = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_CAT_Update.Name = "ud_Options_CAT_Update";
+ this.ud_Options_CAT_Update.Size = new System.Drawing.Size(69, 20);
+ this.ud_Options_CAT_Update.TabIndex = 61;
+ this.ud_Options_CAT_Update.Value = new decimal(new int[] {
+ 500,
+ 0,
+ 0,
+ 0});
+ //
+ // label189
+ //
+ this.label189.AutoSize = true;
+ this.label189.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label189.Location = new System.Drawing.Point(433, 20);
+ this.label189.Name = "label189";
+ this.label189.Size = new System.Drawing.Size(93, 13);
+ this.label189.TabIndex = 60;
+ this.label189.Text = "CAT Refresh [ms]:";
+ //
+ // cb_Options_CAT_Activate
+ //
+ this.cb_Options_CAT_Activate.AutoSize = true;
+ this.cb_Options_CAT_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_CAT_Activate.Location = new System.Drawing.Point(19, 19);
+ this.cb_Options_CAT_Activate.Name = "cb_Options_CAT_Activate";
+ this.cb_Options_CAT_Activate.Size = new System.Drawing.Size(134, 17);
+ this.cb_Options_CAT_Activate.TabIndex = 2;
+ this.cb_Options_CAT_Activate.Tag = "";
+ this.cb_Options_CAT_Activate.Text = "Activate CAT Interface";
+ this.cb_Options_CAT_Activate.UseVisualStyleBackColor = true;
+ this.cb_Options_CAT_Activate.CheckedChanged += new System.EventHandler(this.cb_Options_CAT_Activate_CheckedChanged);
+ //
// tab_Options_Watchlist
//
this.tab_Options_Watchlist.BackColor = System.Drawing.SystemColors.Control;
@@ -4266,6 +6719,26 @@
this.groupBox50.TabStop = false;
this.groupBox50.Text = "Info";
//
+ // pictureBox3
+ //
+ this.pictureBox3.Image = global::AirScout.Properties.Resources.AirScout_Watchlist;
+ this.pictureBox3.Location = new System.Drawing.Point(520, 19);
+ this.pictureBox3.Name = "pictureBox3";
+ this.pictureBox3.Size = new System.Drawing.Size(113, 344);
+ this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pictureBox3.TabIndex = 3;
+ this.pictureBox3.TabStop = false;
+ //
+ // pictureBox2
+ //
+ this.pictureBox2.Image = global::AirScout.Properties.Resources.AirScout_Marker;
+ this.pictureBox2.Location = new System.Drawing.Point(281, 36);
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.Size = new System.Drawing.Size(210, 118);
+ this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pictureBox2.TabIndex = 2;
+ this.pictureBox2.TabStop = false;
+ //
// label37
//
this.label37.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@@ -4276,6 +6749,17 @@
this.label37.Text = resources.GetString("label37.Text");
this.label37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
+ // pictureBox1
+ //
+ this.pictureBox1.Image = global::AirScout.Properties.Resources.AirScout_Multi;
+ this.pictureBox1.InitialImage = global::AirScout.Properties.Resources.AirScout_Multi;
+ this.pictureBox1.Location = new System.Drawing.Point(6, 15);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(283, 153);
+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pictureBox1.TabIndex = 0;
+ this.pictureBox1.TabStop = false;
+ //
// btn_Options_Watchlist_Clear
//
this.btn_Options_Watchlist_Clear.Enabled = false;
@@ -4301,6 +6785,39 @@
this.groupBox17.TabStop = false;
this.groupBox17.Text = "General";
//
+ // cb_Options_Watchlist_SyncWithKST
+ //
+ this.cb_Options_Watchlist_SyncWithKST.AutoSize = true;
+ this.cb_Options_Watchlist_SyncWithKST.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.cb_Options_Watchlist_SyncWithKST.Checked = global::AirScout.Properties.Settings.Default.Watchlist_SyncWithKST;
+ this.cb_Options_Watchlist_SyncWithKST.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Watchlist_SyncWithKST.DataBindings.Add(new System.Windows.Forms.Binding("Enabled", global::AirScout.Properties.Settings.Default, "Server_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Watchlist_SyncWithKST.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Watchlist_SyncWithKST", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Watchlist_SyncWithKST.Enabled = global::AirScout.Properties.Settings.Default.Server_Activate;
+ this.cb_Options_Watchlist_SyncWithKST.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Watchlist_SyncWithKST.Location = new System.Drawing.Point(6, 47);
+ this.cb_Options_Watchlist_SyncWithKST.Name = "cb_Options_Watchlist_SyncWithKST";
+ this.cb_Options_Watchlist_SyncWithKST.Size = new System.Drawing.Size(436, 17);
+ this.cb_Options_Watchlist_SyncWithKST.TabIndex = 6;
+ this.cb_Options_Watchlist_SyncWithKST.Text = "Keep in sync with KST user list (needs wtKST > V3.1 and network functions activat" +
+ "ed):";
+ this.cb_Options_Watchlist_SyncWithKST.UseVisualStyleBackColor = true;
+ this.cb_Options_Watchlist_SyncWithKST.CheckedChanged += new System.EventHandler(this.cb_Options_Watchlist_SyncWithKST_CheckedChanged);
+ //
+ // tb_Options_Watchlist_MaxCount
+ //
+ this.tb_Options_Watchlist_MaxCount.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Watchlist_MaxCount", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_Options_Watchlist_MaxCount.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Options_Watchlist_MaxCount.FormatSpecifier = "F0";
+ this.tb_Options_Watchlist_MaxCount.Location = new System.Drawing.Point(395, 20);
+ this.tb_Options_Watchlist_MaxCount.MaxValue = 1000;
+ this.tb_Options_Watchlist_MaxCount.MinValue = 1;
+ this.tb_Options_Watchlist_MaxCount.Name = "tb_Options_Watchlist_MaxCount";
+ this.tb_Options_Watchlist_MaxCount.Size = new System.Drawing.Size(47, 22);
+ this.tb_Options_Watchlist_MaxCount.TabIndex = 5;
+ this.tb_Options_Watchlist_MaxCount.Text = "1000";
+ this.tb_Options_Watchlist_MaxCount.Value = global::AirScout.Properties.Settings.Default.Watchlist_MaxCount;
+ //
// label31
//
this.label31.AutoSize = true;
@@ -4336,6 +6853,18 @@
this.tab_Options_Misc.TabIndex = 17;
this.tab_Options_Misc.Text = "Misc.";
//
+ // pictureBox4
+ //
+ this.pictureBox4.BackColor = System.Drawing.Color.White;
+ this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pictureBox4.Image = global::AirScout.Properties.Resources.Settings;
+ this.pictureBox4.Location = new System.Drawing.Point(343, 108);
+ this.pictureBox4.Name = "pictureBox4";
+ this.pictureBox4.Size = new System.Drawing.Size(306, 277);
+ this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pictureBox4.TabIndex = 5;
+ this.pictureBox4.TabStop = false;
+ //
// label143
//
this.label143.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@@ -4426,7 +6955,7 @@
this.lbl_Options_Elevation_SRTM1.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.lbl_Options_Elevation_SRTM1.Location = new System.Drawing.Point(89, 314);
this.lbl_Options_Elevation_SRTM1.Name = "lbl_Options_Elevation_SRTM1";
- this.lbl_Options_Elevation_SRTM1.Size = new System.Drawing.Size(478, 16);
+ this.lbl_Options_Elevation_SRTM1.Size = new System.Drawing.Size(477, 16);
this.lbl_Options_Elevation_SRTM1.TabIndex = 41;
this.lbl_Options_Elevation_SRTM1.TabStop = true;
this.lbl_Options_Elevation_SRTM1.Text = "1arsec (30m x 30m) Elevation Data from SRTM - Project and ASTER";
@@ -4447,7 +6976,7 @@
this.lbl_Options_Elevation_SRTM3.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.lbl_Options_Elevation_SRTM3.Location = new System.Drawing.Point(89, 250);
this.lbl_Options_Elevation_SRTM3.Name = "lbl_Options_Elevation_SRTM3";
- this.lbl_Options_Elevation_SRTM3.Size = new System.Drawing.Size(478, 16);
+ this.lbl_Options_Elevation_SRTM3.Size = new System.Drawing.Size(477, 16);
this.lbl_Options_Elevation_SRTM3.TabIndex = 39;
this.lbl_Options_Elevation_SRTM3.TabStop = true;
this.lbl_Options_Elevation_SRTM3.Text = "3arsec (90m x 90m) Elevation Data from SRTM - Project and ASTER";
@@ -4458,7 +6987,7 @@
this.lbl_Options_Elevation_GLOBE.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.lbl_Options_Elevation_GLOBE.Location = new System.Drawing.Point(164, 211);
this.lbl_Options_Elevation_GLOBE.Name = "lbl_Options_Elevation_GLOBE";
- this.lbl_Options_Elevation_GLOBE.Size = new System.Drawing.Size(340, 16);
+ this.lbl_Options_Elevation_GLOBE.Size = new System.Drawing.Size(339, 16);
this.lbl_Options_Elevation_GLOBE.TabIndex = 38;
this.lbl_Options_Elevation_GLOBE.TabStop = true;
this.lbl_Options_Elevation_GLOBE.Text = "1km based Elevation Data from GLOBE - Project";
@@ -4489,7 +7018,7 @@
this.label25.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label25.Location = new System.Drawing.Point(105, 391);
this.label25.Name = "label25";
- this.label25.Size = new System.Drawing.Size(495, 16);
+ this.label25.Size = new System.Drawing.Size(494, 16);
this.label25.TabIndex = 33;
this.label25.Text = "special tnx to DF9IC and DL8AAU for extensive discussions and testing";
//
@@ -4649,1442 +7178,32 @@
this.bw_ASTER1_MapUpdater.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_ASTER1_MapUpdater_ProgressChanged);
this.bw_ASTER1_MapUpdater.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_ASTER1_MapUpdater_RunWorkerCompleted);
//
- // label148
- //
- this.label148.AutoSize = true;
- this.label148.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label148.Location = new System.Drawing.Point(218, 20);
- this.label148.Name = "label148";
- this.label148.Size = new System.Drawing.Size(96, 13);
- this.label148.TabIndex = 7;
- this.label148.Text = "Main Map Opacity:";
- //
- // tb_Coverage_MaxLat
- //
- this.tb_Coverage_MaxLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MaxLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Coverage_MaxLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Coverage_MaxLat.FormatSpecifier = "F0";
- this.tb_Coverage_MaxLat.Location = new System.Drawing.Point(589, 416);
- this.tb_Coverage_MaxLat.MaxValue = 90D;
- this.tb_Coverage_MaxLat.MinValue = -90D;
- this.tb_Coverage_MaxLat.Name = "tb_Coverage_MaxLat";
- this.tb_Coverage_MaxLat.Size = new System.Drawing.Size(50, 22);
- this.tb_Coverage_MaxLat.TabIndex = 4;
- this.tb_Coverage_MaxLat.Text = "60";
- this.tb_Coverage_MaxLat.Value = global::AirScout.Properties.Settings.Default.MaxLat;
- this.tb_Coverage_MaxLat.TextChanged += new System.EventHandler(this.tab_Options_General_Update);
- //
- // tb_Coverage_MinLat
- //
- this.tb_Coverage_MinLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MinLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Coverage_MinLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Coverage_MinLat.FormatSpecifier = "F0";
- this.tb_Coverage_MinLat.Location = new System.Drawing.Point(589, 391);
- this.tb_Coverage_MinLat.MaxValue = 90D;
- this.tb_Coverage_MinLat.MinValue = -90D;
- this.tb_Coverage_MinLat.Name = "tb_Coverage_MinLat";
- this.tb_Coverage_MinLat.Size = new System.Drawing.Size(50, 22);
- this.tb_Coverage_MinLat.TabIndex = 3;
- this.tb_Coverage_MinLat.Text = "35";
- this.tb_Coverage_MinLat.Value = global::AirScout.Properties.Settings.Default.MinLat;
- this.tb_Coverage_MinLat.TextChanged += new System.EventHandler(this.tab_Options_General_Update);
- //
- // tb_Coverage_MaxLon
- //
- this.tb_Coverage_MaxLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MaxLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Coverage_MaxLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Coverage_MaxLon.FormatSpecifier = "F0";
- this.tb_Coverage_MaxLon.Location = new System.Drawing.Point(589, 364);
- this.tb_Coverage_MaxLon.MaxValue = 180D;
- this.tb_Coverage_MaxLon.MinValue = -180D;
- this.tb_Coverage_MaxLon.Name = "tb_Coverage_MaxLon";
- this.tb_Coverage_MaxLon.Size = new System.Drawing.Size(50, 22);
- this.tb_Coverage_MaxLon.TabIndex = 2;
- this.tb_Coverage_MaxLon.Text = "30";
- this.tb_Coverage_MaxLon.Value = global::AirScout.Properties.Settings.Default.MaxLon;
- this.tb_Coverage_MaxLon.TextChanged += new System.EventHandler(this.tab_Options_General_Update);
- //
- // tb_Coverage_MinLon
- //
- this.tb_Coverage_MinLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MinLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Coverage_MinLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Coverage_MinLon.FormatSpecifier = "F0";
- this.tb_Coverage_MinLon.Location = new System.Drawing.Point(589, 337);
- this.tb_Coverage_MinLon.MaxValue = 180D;
- this.tb_Coverage_MinLon.MinValue = -180D;
- this.tb_Coverage_MinLon.Name = "tb_Coverage_MinLon";
- this.tb_Coverage_MinLon.Size = new System.Drawing.Size(50, 22);
- this.tb_Coverage_MinLon.TabIndex = 1;
- this.tb_Coverage_MinLon.Text = "-15";
- this.tb_Coverage_MinLon.Value = global::AirScout.Properties.Settings.Default.MinLon;
- this.tb_Coverage_MinLon.TextChanged += new System.EventHandler(this.tab_Options_General_Update);
- //
- // cb_Options_Background_Calculations_Enable
- //
- this.cb_Options_Background_Calculations_Enable.AutoSize = true;
- this.cb_Options_Background_Calculations_Enable.Checked = global::AirScout.Properties.Settings.Default.Background_Calculations_Enable;
- this.cb_Options_Background_Calculations_Enable.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Background_Calculations_Enable.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Background_Calculations_Enable", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Background_Calculations_Enable.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Background_Calculations_Enable.Location = new System.Drawing.Point(22, 126);
- this.cb_Options_Background_Calculations_Enable.Name = "cb_Options_Background_Calculations_Enable";
- this.cb_Options_Background_Calculations_Enable.Size = new System.Drawing.Size(308, 17);
- this.cb_Options_Background_Calculations_Enable.TabIndex = 6;
- this.cb_Options_Background_Calculations_Enable.Text = "Enable Background Pre-Calculations for paths/horizons etc.";
- this.cb_Options_Background_Calculations_Enable.UseVisualStyleBackColor = true;
- //
- // ud_Options_Database_Update_Period
- //
- this.ud_Options_Database_Update_Period.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Background_Update_Period", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.ud_Options_Database_Update_Period.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.ud_Options_Database_Update_Period.Location = new System.Drawing.Point(278, 84);
- this.ud_Options_Database_Update_Period.Maximum = new decimal(new int[] {
- 6000,
- 0,
- 0,
- 0});
- this.ud_Options_Database_Update_Period.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.ud_Options_Database_Update_Period.Name = "ud_Options_Database_Update_Period";
- this.ud_Options_Database_Update_Period.Size = new System.Drawing.Size(39, 20);
- this.ud_Options_Database_Update_Period.TabIndex = 3;
- this.ud_Options_Database_Update_Period.Value = global::AirScout.Properties.Settings.Default.Background_Update_Period;
- //
- // cb_Options_Locations_RestrictToAreaOfInterest
- //
- this.cb_Options_Locations_RestrictToAreaOfInterest.AutoSize = true;
- this.cb_Options_Locations_RestrictToAreaOfInterest.Checked = global::AirScout.Properties.Settings.Default.Location_RestrictToAreaOfInterest;
- this.cb_Options_Locations_RestrictToAreaOfInterest.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Locations_RestrictToAreaOfInterest.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Location_RestrictToAreaOfInterest", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Locations_RestrictToAreaOfInterest.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Locations_RestrictToAreaOfInterest.Location = new System.Drawing.Point(12, 58);
- this.cb_Options_Locations_RestrictToAreaOfInterest.Name = "cb_Options_Locations_RestrictToAreaOfInterest";
- this.cb_Options_Locations_RestrictToAreaOfInterest.Size = new System.Drawing.Size(230, 17);
- this.cb_Options_Locations_RestrictToAreaOfInterest.TabIndex = 12;
- this.cb_Options_Locations_RestrictToAreaOfInterest.Text = "Restrict locations to current Area of Interest";
- this.tt_Options.SetToolTip(this.cb_Options_Locations_RestrictToAreaOfInterest, "Restrict stations kept in the database to Area of Interest \r\n(all other stations" +
- " will be removed during the update process)");
- this.cb_Options_Locations_RestrictToAreaOfInterest.UseVisualStyleBackColor = true;
- //
- // cb_Options_SmallLettersForSubSquares
- //
- this.cb_Options_SmallLettersForSubSquares.AutoSize = true;
- this.cb_Options_SmallLettersForSubSquares.Checked = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares;
- this.cb_Options_SmallLettersForSubSquares.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_SmallLettersForSubSquares.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_SmallLettersForSubSquares.Location = new System.Drawing.Point(239, 16);
- this.cb_Options_SmallLettersForSubSquares.Name = "cb_Options_SmallLettersForSubSquares";
- this.cb_Options_SmallLettersForSubSquares.Size = new System.Drawing.Size(157, 17);
- this.cb_Options_SmallLettersForSubSquares.TabIndex = 11;
- this.cb_Options_SmallLettersForSubSquares.Text = "Small letters for subsquares:";
- this.cb_Options_SmallLettersForSubSquares.UseVisualStyleBackColor = true;
- this.cb_Options_SmallLettersForSubSquares.CheckedChanged += new System.EventHandler(this.cb_Options_SmallLettersForSubSquares_CheckedChanged);
- //
- // cb_Options_Locator_AutoLength
- //
- this.cb_Options_Locator_AutoLength.AutoSize = true;
- this.cb_Options_Locator_AutoLength.Checked = global::AirScout.Properties.Settings.Default.Locator_AutoLength;
- this.cb_Options_Locator_AutoLength.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Locator_AutoLength.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Locator_AutoLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Locator_AutoLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Locator_AutoLength.Location = new System.Drawing.Point(12, 38);
- this.cb_Options_Locator_AutoLength.Name = "cb_Options_Locator_AutoLength";
- this.cb_Options_Locator_AutoLength.Size = new System.Drawing.Size(319, 17);
- this.cb_Options_Locator_AutoLength.TabIndex = 10;
- this.cb_Options_Locator_AutoLength.Text = "Cut locator to significant digits automatically (Minimum 6 digits):";
- this.cb_Options_Locator_AutoLength.UseVisualStyleBackColor = true;
- //
- // ud_Options_Locator_MaxLength
- //
- this.ud_Options_Locator_MaxLength.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Locator_MaxLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.ud_Options_Locator_MaxLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.ud_Options_Locator_MaxLength.Increment = new decimal(new int[] {
- 2,
- 0,
- 0,
- 0});
- this.ud_Options_Locator_MaxLength.Location = new System.Drawing.Point(180, 15);
- this.ud_Options_Locator_MaxLength.Maximum = new decimal(new int[] {
- 14,
- 0,
- 0,
- 0});
- this.ud_Options_Locator_MaxLength.Minimum = new decimal(new int[] {
- 6,
- 0,
- 0,
- 0});
- this.ud_Options_Locator_MaxLength.Name = "ud_Options_Locator_MaxLength";
- this.ud_Options_Locator_MaxLength.Size = new System.Drawing.Size(50, 20);
- this.ud_Options_Locator_MaxLength.TabIndex = 9;
- this.ud_Options_Locator_MaxLength.Value = global::AirScout.Properties.Settings.Default.Locator_MaxLength;
- //
- // tb_Options_DXLoc
- //
- this.tb_Options_DXLoc.BackColor = System.Drawing.SystemColors.Window;
- this.tb_Options_DXLoc.DataBindings.Add(new System.Windows.Forms.Binding("SmallLettersForSubsquares", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_DXLoc.ErrorBackColor = System.Drawing.Color.Red;
- this.tb_Options_DXLoc.ErrorForeColor = System.Drawing.Color.White;
- this.tb_Options_DXLoc.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_DXLoc.ForeColor = System.Drawing.SystemColors.WindowText;
- this.tb_Options_DXLoc.Location = new System.Drawing.Point(90, 36);
- this.tb_Options_DXLoc.Name = "tb_Options_DXLoc";
- this.tb_Options_DXLoc.Size = new System.Drawing.Size(100, 21);
- this.tb_Options_DXLoc.SmallLettersForSubsquares = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares;
- this.tb_Options_DXLoc.TabIndex = 6;
- this.tb_Options_DXLoc.TextChanged += new System.EventHandler(this.tb_Options_DXLoc_TextChanged);
- //
- // tb_Options_MyLoc
- //
- this.tb_Options_MyLoc.BackColor = System.Drawing.SystemColors.Window;
- this.tb_Options_MyLoc.DataBindings.Add(new System.Windows.Forms.Binding("SmallLettersForSubsquares", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_MyLoc.ErrorBackColor = System.Drawing.Color.Red;
- this.tb_Options_MyLoc.ErrorForeColor = System.Drawing.Color.White;
- this.tb_Options_MyLoc.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_MyLoc.ForeColor = System.Drawing.SystemColors.WindowText;
- this.tb_Options_MyLoc.Location = new System.Drawing.Point(89, 36);
- this.tb_Options_MyLoc.Name = "tb_Options_MyLoc";
- this.tb_Options_MyLoc.Size = new System.Drawing.Size(100, 21);
- this.tb_Options_MyLoc.SmallLettersForSubsquares = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares;
- this.tb_Options_MyLoc.TabIndex = 2;
- this.tb_Options_MyLoc.TextChanged += new System.EventHandler(this.tb_Options_MyLoc_TextChanged);
- //
- // cb_Options_Map_SmallMarkers
- //
- this.cb_Options_Map_SmallMarkers.AutoSize = true;
- this.cb_Options_Map_SmallMarkers.Checked = global::AirScout.Properties.Settings.Default.Map_SmallMarkers;
- this.cb_Options_Map_SmallMarkers.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Map_SmallMarkers.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_SmallMarkers", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Map_SmallMarkers.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Map_SmallMarkers.Location = new System.Drawing.Point(18, 22);
- this.cb_Options_Map_SmallMarkers.Name = "cb_Options_Map_SmallMarkers";
- this.cb_Options_Map_SmallMarkers.Size = new System.Drawing.Size(199, 17);
- this.cb_Options_Map_SmallMarkers.TabIndex = 2;
- this.cb_Options_Map_SmallMarkers.Text = "Use Small Markers for all Path Marks";
- this.cb_Options_Map_SmallMarkers.UseVisualStyleBackColor = true;
- //
- // cb_Options_Map_LabelCalls
- //
- this.cb_Options_Map_LabelCalls.AutoSize = true;
- this.cb_Options_Map_LabelCalls.Checked = global::AirScout.Properties.Settings.Default.Map_LabelCalls;
- this.cb_Options_Map_LabelCalls.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Map_LabelCalls.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_LabelCalls", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Map_LabelCalls.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Map_LabelCalls.Location = new System.Drawing.Point(18, 45);
- this.cb_Options_Map_LabelCalls.Name = "cb_Options_Map_LabelCalls";
- this.cb_Options_Map_LabelCalls.Size = new System.Drawing.Size(209, 17);
- this.cb_Options_Map_LabelCalls.TabIndex = 3;
- this.cb_Options_Map_LabelCalls.Text = "Show Labels with Callsign at Locations";
- this.cb_Options_Map_LabelCalls.UseVisualStyleBackColor = true;
- //
- // ud_Options_Charts_FontSize
- //
- this.ud_Options_Charts_FontSize.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Charts_FontSize", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.ud_Options_Charts_FontSize.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.ud_Options_Charts_FontSize.Location = new System.Drawing.Point(192, 15);
- this.ud_Options_Charts_FontSize.Maximum = new decimal(new int[] {
- 16,
- 0,
- 0,
- 0});
- this.ud_Options_Charts_FontSize.Minimum = new decimal(new int[] {
- 6,
- 0,
- 0,
- 0});
- this.ud_Options_Charts_FontSize.Name = "ud_Options_Charts_FontSize";
- this.ud_Options_Charts_FontSize.Size = new System.Drawing.Size(45, 22);
- this.ud_Options_Charts_FontSize.TabIndex = 0;
- this.ud_Options_Charts_FontSize.Value = global::AirScout.Properties.Settings.Default.Charts_FontSize;
- //
- // tb_Options_Map_Update_Interval
- //
- this.tb_Options_Map_Update_Interval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Map_Update_Interval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Map_Update_Interval.FormatSpecifier = "F0";
- this.tb_Options_Map_Update_Interval.Location = new System.Drawing.Point(119, 33);
- this.tb_Options_Map_Update_Interval.MaxValue = 3600;
- this.tb_Options_Map_Update_Interval.MinValue = 0;
- this.tb_Options_Map_Update_Interval.Name = "tb_Options_Map_Update_Interval";
- this.tb_Options_Map_Update_Interval.Size = new System.Drawing.Size(37, 22);
- this.tb_Options_Map_Update_Interval.TabIndex = 23;
- this.tb_Options_Map_Update_Interval.Text = "1";
- this.tb_Options_Map_Update_Interval.Value = global::AirScout.Properties.Settings.Default.Map_Update;
- //
- // ud_Options_Map_Preloader_MaxZoom
- //
- this.ud_Options_Map_Preloader_MaxZoom.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Preloader_MaxZoom", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.ud_Options_Map_Preloader_MaxZoom.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.ud_Options_Map_Preloader_MaxZoom.Location = new System.Drawing.Point(319, 66);
- this.ud_Options_Map_Preloader_MaxZoom.Maximum = new decimal(new int[] {
- 11,
- 0,
- 0,
- 0});
- this.ud_Options_Map_Preloader_MaxZoom.Name = "ud_Options_Map_Preloader_MaxZoom";
- this.ud_Options_Map_Preloader_MaxZoom.Size = new System.Drawing.Size(54, 22);
- this.ud_Options_Map_Preloader_MaxZoom.TabIndex = 6;
- this.ud_Options_Map_Preloader_MaxZoom.Value = global::AirScout.Properties.Settings.Default.Map_Preloader_MaxZoom;
- //
- // cb_Options_Map_Preloader_Enabled
- //
- this.cb_Options_Map_Preloader_Enabled.AutoSize = true;
- this.cb_Options_Map_Preloader_Enabled.Checked = global::AirScout.Properties.Settings.Default.Map_Preloader_Enabled;
- this.cb_Options_Map_Preloader_Enabled.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Map_Preloader_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_Preloader_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Map_Preloader_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Map_Preloader_Enabled.Location = new System.Drawing.Point(15, 63);
- this.cb_Options_Map_Preloader_Enabled.Name = "cb_Options_Map_Preloader_Enabled";
- this.cb_Options_Map_Preloader_Enabled.Size = new System.Drawing.Size(205, 30);
- this.cb_Options_Map_Preloader_Enabled.TabIndex = 4;
- this.cb_Options_Map_Preloader_Enabled.Text = "Enable Map Preloading from AirScout \r\nWeb Server or Selected Provider";
- this.cb_Options_Map_Preloader_Enabled.UseVisualStyleBackColor = true;
- //
- // cb_Options_Watchlist_Activate
- //
- this.cb_Options_Watchlist_Activate.AutoSize = true;
- this.cb_Options_Watchlist_Activate.Checked = global::AirScout.Properties.Settings.Default.Watchlist_Activated;
- this.cb_Options_Watchlist_Activate.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Watchlist_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Watchlist_Activated", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Watchlist_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Watchlist_Activate.Location = new System.Drawing.Point(15, 43);
- this.cb_Options_Watchlist_Activate.Name = "cb_Options_Watchlist_Activate";
- this.cb_Options_Watchlist_Activate.Size = new System.Drawing.Size(144, 17);
- this.cb_Options_Watchlist_Activate.TabIndex = 1;
- this.cb_Options_Watchlist_Activate.Text = "Show Watchlist Callsigns";
- this.cb_Options_Watchlist_Activate.UseVisualStyleBackColor = true;
- //
- // cb_Options_Airports_Activate
- //
- this.cb_Options_Airports_Activate.AutoSize = true;
- this.cb_Options_Airports_Activate.Checked = global::AirScout.Properties.Settings.Default.Airports_Activate;
- this.cb_Options_Airports_Activate.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Airports_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Airports_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Airports_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Airports_Activate.Location = new System.Drawing.Point(16, 19);
- this.cb_Options_Airports_Activate.Name = "cb_Options_Airports_Activate";
- this.cb_Options_Airports_Activate.Size = new System.Drawing.Size(91, 17);
- this.cb_Options_Airports_Activate.TabIndex = 0;
- this.cb_Options_Airports_Activate.Text = "Show Airports";
- this.cb_Options_Airports_Activate.UseVisualStyleBackColor = true;
- //
- // tb_Options_Planes_IconSize_S
- //
- this.tb_Options_Planes_IconSize_S.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_S", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_IconSize_S.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_IconSize_S.FormatSpecifier = "F0";
- this.tb_Options_Planes_IconSize_S.Location = new System.Drawing.Point(183, 47);
- this.tb_Options_Planes_IconSize_S.MaxValue = 128;
- this.tb_Options_Planes_IconSize_S.MinValue = 0;
- this.tb_Options_Planes_IconSize_S.Name = "tb_Options_Planes_IconSize_S";
- this.tb_Options_Planes_IconSize_S.Size = new System.Drawing.Size(37, 22);
- this.tb_Options_Planes_IconSize_S.TabIndex = 16;
- this.tb_Options_Planes_IconSize_S.Text = "48";
- this.tb_Options_Planes_IconSize_S.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_S;
- //
- // tb_Options_Planes_IconSize_H
- //
- this.tb_Options_Planes_IconSize_H.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_H", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_IconSize_H.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_IconSize_H.FormatSpecifier = "F0";
- this.tb_Options_Planes_IconSize_H.Location = new System.Drawing.Point(183, 19);
- this.tb_Options_Planes_IconSize_H.MaxValue = 128;
- this.tb_Options_Planes_IconSize_H.MinValue = 0;
- this.tb_Options_Planes_IconSize_H.Name = "tb_Options_Planes_IconSize_H";
- this.tb_Options_Planes_IconSize_H.Size = new System.Drawing.Size(37, 22);
- this.tb_Options_Planes_IconSize_H.TabIndex = 15;
- this.tb_Options_Planes_IconSize_H.Text = "36";
- this.tb_Options_Planes_IconSize_H.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_H;
- //
- // tb_Options_Planes_IconSize_M
- //
- this.tb_Options_Planes_IconSize_M.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_M", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_IconSize_M.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_IconSize_M.FormatSpecifier = "F0";
- this.tb_Options_Planes_IconSize_M.Location = new System.Drawing.Point(63, 47);
- this.tb_Options_Planes_IconSize_M.MaxValue = 128;
- this.tb_Options_Planes_IconSize_M.MinValue = 0;
- this.tb_Options_Planes_IconSize_M.Name = "tb_Options_Planes_IconSize_M";
- this.tb_Options_Planes_IconSize_M.Size = new System.Drawing.Size(37, 22);
- this.tb_Options_Planes_IconSize_M.TabIndex = 14;
- this.tb_Options_Planes_IconSize_M.Text = "24";
- this.tb_Options_Planes_IconSize_M.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_M;
- //
- // tb_Options_Planes_IconSize_L
- //
- this.tb_Options_Planes_IconSize_L.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_L", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_IconSize_L.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_IconSize_L.FormatSpecifier = "F0";
- this.tb_Options_Planes_IconSize_L.Location = new System.Drawing.Point(63, 21);
- this.tb_Options_Planes_IconSize_L.MaxValue = 128;
- this.tb_Options_Planes_IconSize_L.MinValue = 0;
- this.tb_Options_Planes_IconSize_L.Name = "tb_Options_Planes_IconSize_L";
- this.tb_Options_Planes_IconSize_L.Size = new System.Drawing.Size(37, 22);
- this.tb_Options_Planes_IconSize_L.TabIndex = 13;
- this.tb_Options_Planes_IconSize_L.Text = "16";
- this.tb_Options_Planes_IconSize_L.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_L;
- //
- // cb_Options_InfoWin_Angle
- //
- this.cb_Options_InfoWin_Angle.AutoSize = true;
- this.cb_Options_InfoWin_Angle.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Angle;
- this.cb_Options_InfoWin_Angle.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Angle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Angle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Angle.Location = new System.Drawing.Point(139, 75);
- this.cb_Options_InfoWin_Angle.Name = "cb_Options_InfoWin_Angle";
- this.cb_Options_InfoWin_Angle.Size = new System.Drawing.Size(96, 17);
- this.cb_Options_InfoWin_Angle.TabIndex = 15;
- this.cb_Options_InfoWin_Angle.Tag = "";
- this.cb_Options_InfoWin_Angle.Text = "Crossing Angle";
- this.cb_Options_InfoWin_Angle.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Speed
- //
- this.cb_Options_InfoWin_Speed.AutoSize = true;
- this.cb_Options_InfoWin_Speed.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Speed;
- this.cb_Options_InfoWin_Speed.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Speed", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Speed.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Speed.Location = new System.Drawing.Point(26, 100);
- this.cb_Options_InfoWin_Speed.Name = "cb_Options_InfoWin_Speed";
- this.cb_Options_InfoWin_Speed.Size = new System.Drawing.Size(87, 17);
- this.cb_Options_InfoWin_Speed.TabIndex = 14;
- this.cb_Options_InfoWin_Speed.Tag = "";
- this.cb_Options_InfoWin_Speed.Text = "Plane Speed";
- this.cb_Options_InfoWin_Speed.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Squint
- //
- this.cb_Options_InfoWin_Squint.AutoSize = true;
- this.cb_Options_InfoWin_Squint.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Squint;
- this.cb_Options_InfoWin_Squint.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_InfoWin_Squint.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Squint", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Squint.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Squint.Location = new System.Drawing.Point(139, 121);
- this.cb_Options_InfoWin_Squint.Name = "cb_Options_InfoWin_Squint";
- this.cb_Options_InfoWin_Squint.Size = new System.Drawing.Size(86, 17);
- this.cb_Options_InfoWin_Squint.TabIndex = 13;
- this.cb_Options_InfoWin_Squint.Tag = "";
- this.cb_Options_InfoWin_Squint.Text = "Squint Angle";
- this.cb_Options_InfoWin_Squint.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Epsilon
- //
- this.cb_Options_InfoWin_Epsilon.AutoSize = true;
- this.cb_Options_InfoWin_Epsilon.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Epsilon;
- this.cb_Options_InfoWin_Epsilon.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Epsilon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Epsilon.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Epsilon.Location = new System.Drawing.Point(139, 98);
- this.cb_Options_InfoWin_Epsilon.Name = "cb_Options_InfoWin_Epsilon";
- this.cb_Options_InfoWin_Epsilon.Size = new System.Drawing.Size(105, 17);
- this.cb_Options_InfoWin_Epsilon.TabIndex = 12;
- this.cb_Options_InfoWin_Epsilon.Tag = "";
- this.cb_Options_InfoWin_Epsilon.Text = "Elevation Angles";
- this.cb_Options_InfoWin_Epsilon.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Dist
- //
- this.cb_Options_InfoWin_Dist.AutoSize = true;
- this.cb_Options_InfoWin_Dist.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Dist;
- this.cb_Options_InfoWin_Dist.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_InfoWin_Dist.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Dist", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Dist.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Dist.Location = new System.Drawing.Point(139, 29);
- this.cb_Options_InfoWin_Dist.Name = "cb_Options_InfoWin_Dist";
- this.cb_Options_InfoWin_Dist.Size = new System.Drawing.Size(111, 17);
- this.cb_Options_InfoWin_Dist.TabIndex = 11;
- this.cb_Options_InfoWin_Dist.Tag = "";
- this.cb_Options_InfoWin_Dist.Text = "Crossing Distance";
- this.cb_Options_InfoWin_Dist.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Time
- //
- this.cb_Options_InfoWin_Time.AutoSize = true;
- this.cb_Options_InfoWin_Time.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Time;
- this.cb_Options_InfoWin_Time.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_InfoWin_Time.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Time", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Time.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Time.Location = new System.Drawing.Point(139, 52);
- this.cb_Options_InfoWin_Time.Name = "cb_Options_InfoWin_Time";
- this.cb_Options_InfoWin_Time.Size = new System.Drawing.Size(92, 17);
- this.cb_Options_InfoWin_Time.TabIndex = 10;
- this.cb_Options_InfoWin_Time.Tag = "";
- this.cb_Options_InfoWin_Time.Text = "Crossing Time";
- this.cb_Options_InfoWin_Time.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Type
- //
- this.cb_Options_InfoWin_Type.AutoSize = true;
- this.cb_Options_InfoWin_Type.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Type;
- this.cb_Options_InfoWin_Type.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_InfoWin_Type.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Type", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Type.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Type.Location = new System.Drawing.Point(26, 123);
- this.cb_Options_InfoWin_Type.Name = "cb_Options_InfoWin_Type";
- this.cb_Options_InfoWin_Type.Size = new System.Drawing.Size(90, 17);
- this.cb_Options_InfoWin_Type.TabIndex = 9;
- this.cb_Options_InfoWin_Type.Tag = "";
- this.cb_Options_InfoWin_Type.Text = "Plane Type";
- this.cb_Options_InfoWin_Type.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Track
- //
- this.cb_Options_InfoWin_Track.AutoSize = true;
- this.cb_Options_InfoWin_Track.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Track;
- this.cb_Options_InfoWin_Track.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_InfoWin_Track.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Track", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Track.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Track.Location = new System.Drawing.Point(26, 77);
- this.cb_Options_InfoWin_Track.Name = "cb_Options_InfoWin_Track";
- this.cb_Options_InfoWin_Track.Size = new System.Drawing.Size(95, 17);
- this.cb_Options_InfoWin_Track.TabIndex = 8;
- this.cb_Options_InfoWin_Track.Tag = "";
- this.cb_Options_InfoWin_Track.Text = "Plane Track";
- this.cb_Options_InfoWin_Track.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Alt
- //
- this.cb_Options_InfoWin_Alt.AutoSize = true;
- this.cb_Options_InfoWin_Alt.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Alt;
- this.cb_Options_InfoWin_Alt.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_InfoWin_Alt.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Alt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Alt.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Alt.Location = new System.Drawing.Point(26, 54);
- this.cb_Options_InfoWin_Alt.Name = "cb_Options_InfoWin_Alt";
- this.cb_Options_InfoWin_Alt.Size = new System.Drawing.Size(105, 17);
- this.cb_Options_InfoWin_Alt.TabIndex = 7;
- this.cb_Options_InfoWin_Alt.Tag = "";
- this.cb_Options_InfoWin_Alt.Text = "Plane Altitude";
- this.cb_Options_InfoWin_Alt.UseVisualStyleBackColor = true;
- //
- // cb_Options_InfoWin_Position
- //
- this.cb_Options_InfoWin_Position.AutoSize = true;
- this.cb_Options_InfoWin_Position.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Position;
- this.cb_Options_InfoWin_Position.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_InfoWin_Position.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Position", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_InfoWin_Position.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_InfoWin_Position.Location = new System.Drawing.Point(26, 31);
- this.cb_Options_InfoWin_Position.Name = "cb_Options_InfoWin_Position";
- this.cb_Options_InfoWin_Position.Size = new System.Drawing.Size(107, 17);
- this.cb_Options_InfoWin_Position.TabIndex = 6;
- this.cb_Options_InfoWin_Position.Tag = "";
- this.cb_Options_InfoWin_Position.Text = "Plane Position";
- this.cb_Options_InfoWin_Position.UseVisualStyleBackColor = true;
- //
- // rb_Options_InfoWin_Imperial
- //
- this.rb_Options_InfoWin_Imperial.AutoSize = true;
- this.rb_Options_InfoWin_Imperial.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Imperial;
- this.rb_Options_InfoWin_Imperial.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Imperial", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_InfoWin_Imperial.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_InfoWin_Imperial.Location = new System.Drawing.Point(156, 18);
- this.rb_Options_InfoWin_Imperial.Name = "rb_Options_InfoWin_Imperial";
- this.rb_Options_InfoWin_Imperial.Size = new System.Drawing.Size(61, 17);
- this.rb_Options_InfoWin_Imperial.TabIndex = 5;
- this.rb_Options_InfoWin_Imperial.Tag = "";
- this.rb_Options_InfoWin_Imperial.Text = "Imperial";
- this.rb_Options_InfoWin_Imperial.UseVisualStyleBackColor = true;
- //
- // rb_Options_InfoWin_Metric
- //
- this.rb_Options_InfoWin_Metric.AutoSize = true;
- this.rb_Options_InfoWin_Metric.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Metric;
- this.rb_Options_InfoWin_Metric.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Metric", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_InfoWin_Metric.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_InfoWin_Metric.Location = new System.Drawing.Point(83, 18);
- this.rb_Options_InfoWin_Metric.Name = "rb_Options_InfoWin_Metric";
- this.rb_Options_InfoWin_Metric.Size = new System.Drawing.Size(54, 17);
- this.rb_Options_InfoWin_Metric.TabIndex = 4;
- this.rb_Options_InfoWin_Metric.TabStop = true;
- this.rb_Options_InfoWin_Metric.Tag = "";
- this.rb_Options_InfoWin_Metric.Text = "Metric";
- this.rb_Options_InfoWin_Metric.UseVisualStyleBackColor = true;
- //
- // tb_Options_Map_ToolTipFont
- //
- this.tb_Options_Map_ToolTipFont.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Map_ToolTipFont", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Map_ToolTipFont.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Map_ToolTipFont.Location = new System.Drawing.Point(72, 39);
- this.tb_Options_Map_ToolTipFont.Name = "tb_Options_Map_ToolTipFont";
- this.tb_Options_Map_ToolTipFont.ReadOnly = true;
- this.tb_Options_Map_ToolTipFont.Size = new System.Drawing.Size(179, 20);
- this.tb_Options_Map_ToolTipFont.TabIndex = 0;
- this.tb_Options_Map_ToolTipFont.Text = global::AirScout.Properties.Settings.Default.Map_ToolTipFont;
- //
- // cb_Options_Elevation_GLOBE_EnableCache
- //
- this.cb_Options_Elevation_GLOBE_EnableCache.AutoSize = true;
- this.cb_Options_Elevation_GLOBE_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_GLOBE_EnableCache;
- this.cb_Options_Elevation_GLOBE_EnableCache.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Elevation_GLOBE_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_GLOBE_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_GLOBE_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_GLOBE_EnableCache.Location = new System.Drawing.Point(12, 42);
- this.cb_Options_Elevation_GLOBE_EnableCache.Name = "cb_Options_Elevation_GLOBE_EnableCache";
- this.cb_Options_Elevation_GLOBE_EnableCache.Size = new System.Drawing.Size(179, 17);
- this.cb_Options_Elevation_GLOBE_EnableCache.TabIndex = 8;
- this.cb_Options_Elevation_GLOBE_EnableCache.Tag = "";
- this.cb_Options_Elevation_GLOBE_EnableCache.Text = "Keep downloaded elevation tiles";
- this.cb_Options_Elevation_GLOBE_EnableCache.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_GLOBE
- //
- this.cb_Options_Elevation_GLOBE.AutoSize = true;
- this.cb_Options_Elevation_GLOBE.Checked = global::AirScout.Properties.Settings.Default.Elevation_GLOBE_Enabled;
- this.cb_Options_Elevation_GLOBE.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Elevation_GLOBE.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_GLOBE_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_GLOBE.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_GLOBE.Location = new System.Drawing.Point(12, 19);
- this.cb_Options_Elevation_GLOBE.Name = "cb_Options_Elevation_GLOBE";
- this.cb_Options_Elevation_GLOBE.Size = new System.Drawing.Size(154, 17);
- this.cb_Options_Elevation_GLOBE.TabIndex = 7;
- this.cb_Options_Elevation_GLOBE.Tag = "";
- this.cb_Options_Elevation_GLOBE.Text = "Use GLOBE elevation data";
- this.cb_Options_Elevation_GLOBE.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_SRTM3_EnableCache
- //
- this.cb_Options_Elevation_SRTM3_EnableCache.AutoSize = true;
- this.cb_Options_Elevation_SRTM3_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM3_EnableCache;
- this.cb_Options_Elevation_SRTM3_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM3_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_SRTM3_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_SRTM3_EnableCache.Location = new System.Drawing.Point(6, 42);
- this.cb_Options_Elevation_SRTM3_EnableCache.Name = "cb_Options_Elevation_SRTM3_EnableCache";
- this.cb_Options_Elevation_SRTM3_EnableCache.Size = new System.Drawing.Size(179, 17);
- this.cb_Options_Elevation_SRTM3_EnableCache.TabIndex = 13;
- this.cb_Options_Elevation_SRTM3_EnableCache.Tag = "";
- this.cb_Options_Elevation_SRTM3_EnableCache.Text = "Keep downloaded elevation tiles";
- this.cb_Options_Elevation_SRTM3_EnableCache.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_SRTM3
- //
- this.cb_Options_Elevation_SRTM3.AutoSize = true;
- this.cb_Options_Elevation_SRTM3.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM3_Enabled;
- this.cb_Options_Elevation_SRTM3.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM3_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_SRTM3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_SRTM3.Location = new System.Drawing.Point(6, 19);
- this.cb_Options_Elevation_SRTM3.Name = "cb_Options_Elevation_SRTM3";
- this.cb_Options_Elevation_SRTM3.Size = new System.Drawing.Size(155, 17);
- this.cb_Options_Elevation_SRTM3.TabIndex = 12;
- this.cb_Options_Elevation_SRTM3.Tag = "";
- this.cb_Options_Elevation_SRTM3.Text = "Use SRTM3 elevation data";
- this.cb_Options_Elevation_SRTM3.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_SRTM1_EnableCache
- //
- this.cb_Options_Elevation_SRTM1_EnableCache.AutoSize = true;
- this.cb_Options_Elevation_SRTM1_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM1_EnableCache;
- this.cb_Options_Elevation_SRTM1_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM1_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_SRTM1_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_SRTM1_EnableCache.Location = new System.Drawing.Point(6, 42);
- this.cb_Options_Elevation_SRTM1_EnableCache.Name = "cb_Options_Elevation_SRTM1_EnableCache";
- this.cb_Options_Elevation_SRTM1_EnableCache.Size = new System.Drawing.Size(179, 17);
- this.cb_Options_Elevation_SRTM1_EnableCache.TabIndex = 17;
- this.cb_Options_Elevation_SRTM1_EnableCache.Tag = "";
- this.cb_Options_Elevation_SRTM1_EnableCache.Text = "Keep downloaded elevation tiles";
- this.cb_Options_Elevation_SRTM1_EnableCache.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_SRTM1
- //
- this.cb_Options_Elevation_SRTM1.AutoSize = true;
- this.cb_Options_Elevation_SRTM1.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM1_Enabled;
- this.cb_Options_Elevation_SRTM1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM1_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_SRTM1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_SRTM1.Location = new System.Drawing.Point(6, 19);
- this.cb_Options_Elevation_SRTM1.Name = "cb_Options_Elevation_SRTM1";
- this.cb_Options_Elevation_SRTM1.Size = new System.Drawing.Size(155, 17);
- this.cb_Options_Elevation_SRTM1.TabIndex = 16;
- this.cb_Options_Elevation_SRTM1.Tag = "";
- this.cb_Options_Elevation_SRTM1.Text = "Use SRTM1 elevation data";
- this.cb_Options_Elevation_SRTM1.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_ASTER3_EnableCache
- //
- this.cb_Options_Elevation_ASTER3_EnableCache.AutoSize = true;
- this.cb_Options_Elevation_ASTER3_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER3_EnableCache;
- this.cb_Options_Elevation_ASTER3_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER3_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_ASTER3_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_ASTER3_EnableCache.Location = new System.Drawing.Point(6, 42);
- this.cb_Options_Elevation_ASTER3_EnableCache.Name = "cb_Options_Elevation_ASTER3_EnableCache";
- this.cb_Options_Elevation_ASTER3_EnableCache.Size = new System.Drawing.Size(179, 17);
- this.cb_Options_Elevation_ASTER3_EnableCache.TabIndex = 13;
- this.cb_Options_Elevation_ASTER3_EnableCache.Tag = "";
- this.cb_Options_Elevation_ASTER3_EnableCache.Text = "Keep downloaded elevation tiles";
- this.cb_Options_Elevation_ASTER3_EnableCache.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_ASTER3
- //
- this.cb_Options_Elevation_ASTER3.AutoSize = true;
- this.cb_Options_Elevation_ASTER3.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER3_Enabled;
- this.cb_Options_Elevation_ASTER3.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER3_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_ASTER3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_ASTER3.Location = new System.Drawing.Point(6, 19);
- this.cb_Options_Elevation_ASTER3.Name = "cb_Options_Elevation_ASTER3";
- this.cb_Options_Elevation_ASTER3.Size = new System.Drawing.Size(160, 17);
- this.cb_Options_Elevation_ASTER3.TabIndex = 12;
- this.cb_Options_Elevation_ASTER3.Tag = "";
- this.cb_Options_Elevation_ASTER3.Text = "Use ASTER3 elevation data";
- this.cb_Options_Elevation_ASTER3.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_ASTER1_EnableCache
- //
- this.cb_Options_Elevation_ASTER1_EnableCache.AutoSize = true;
- this.cb_Options_Elevation_ASTER1_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER1_EnableCache;
- this.cb_Options_Elevation_ASTER1_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER1_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_ASTER1_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_ASTER1_EnableCache.Location = new System.Drawing.Point(6, 42);
- this.cb_Options_Elevation_ASTER1_EnableCache.Name = "cb_Options_Elevation_ASTER1_EnableCache";
- this.cb_Options_Elevation_ASTER1_EnableCache.Size = new System.Drawing.Size(179, 17);
- this.cb_Options_Elevation_ASTER1_EnableCache.TabIndex = 13;
- this.cb_Options_Elevation_ASTER1_EnableCache.Tag = "";
- this.cb_Options_Elevation_ASTER1_EnableCache.Text = "Keep downloaded elevation tiles";
- this.cb_Options_Elevation_ASTER1_EnableCache.UseVisualStyleBackColor = true;
- //
- // cb_Options_Elevation_ASTER1
- //
- this.cb_Options_Elevation_ASTER1.AutoSize = true;
- this.cb_Options_Elevation_ASTER1.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER1_Enabled;
- this.cb_Options_Elevation_ASTER1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER1_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Elevation_ASTER1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Elevation_ASTER1.Location = new System.Drawing.Point(6, 19);
- this.cb_Options_Elevation_ASTER1.Name = "cb_Options_Elevation_ASTER1";
- this.cb_Options_Elevation_ASTER1.Size = new System.Drawing.Size(160, 17);
- this.cb_Options_Elevation_ASTER1.TabIndex = 12;
- this.cb_Options_Elevation_ASTER1.Tag = "";
- this.cb_Options_Elevation_ASTER1.Text = "Use ASTER1 elevation data";
- this.cb_Options_Elevation_ASTER1.UseVisualStyleBackColor = true;
- //
- // tb_Options_Path_MaxLength
- //
- this.tb_Options_Path_MaxLength.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Path_MaxLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Path_MaxLength.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Path_MaxLength.FormatSpecifier = "F0";
- this.tb_Options_Path_MaxLength.Location = new System.Drawing.Point(318, 385);
- this.tb_Options_Path_MaxLength.MaxValue = double.NaN;
- this.tb_Options_Path_MaxLength.MinValue = double.NaN;
- this.tb_Options_Path_MaxLength.Name = "tb_Options_Path_MaxLength";
- this.tb_Options_Path_MaxLength.Size = new System.Drawing.Size(57, 20);
- this.tb_Options_Path_MaxLength.TabIndex = 39;
- this.tb_Options_Path_MaxLength.Text = "1000";
- this.tb_Options_Path_MaxLength.Value = global::AirScout.Properties.Settings.Default.Path_MaxLength;
- //
- // cb_Options_Path_BestCaseElevation
- //
- this.cb_Options_Path_BestCaseElevation.AutoSize = true;
- this.cb_Options_Path_BestCaseElevation.Checked = global::AirScout.Properties.Settings.Default.Path_BestCaseElevation;
- this.cb_Options_Path_BestCaseElevation.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Path_BestCaseElevation.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Path_BestCaseElevation", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Path_BestCaseElevation.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Path_BestCaseElevation.Location = new System.Drawing.Point(6, 411);
- this.cb_Options_Path_BestCaseElevation.Name = "cb_Options_Path_BestCaseElevation";
- this.cb_Options_Path_BestCaseElevation.Size = new System.Drawing.Size(438, 17);
- this.cb_Options_Path_BestCaseElevation.TabIndex = 28;
- this.cb_Options_Path_BestCaseElevation.Tag = "";
- this.cb_Options_Path_BestCaseElevation.Text = "Use best case elevation from grid square for both stations if precise location is" +
- " unknown";
- this.tt_Options.SetToolTip(this.cb_Options_Path_BestCaseElevation, "If an exact position of a station is not available, use highest available elevati" +
- "on within the given grid square. \r\nThis position is ONLY used for path calculati" +
- "on and is not kept in database.");
- this.cb_Options_Path_BestCaseElevation.UseVisualStyleBackColor = true;
- //
- // int32TextBox1
- //
- this.int32TextBox1.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_ExtendedPlausibilityCheck_MaxErrorDist", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.int32TextBox1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.int32TextBox1.FormatSpecifier = "F0";
- this.int32TextBox1.Location = new System.Drawing.Point(199, 84);
- this.int32TextBox1.MaxValue = 600;
- this.int32TextBox1.MinValue = 10;
- this.int32TextBox1.Name = "int32TextBox1";
- this.int32TextBox1.Size = new System.Drawing.Size(52, 22);
- this.int32TextBox1.TabIndex = 46;
- this.int32TextBox1.Text = "10";
- this.int32TextBox1.Value = global::AirScout.Properties.Settings.Default.Planes_ExtendedPlausibilityCheck_MaxErrorDist;
- //
- // cb_Options_Planes_ExtendedPlausibilityCheck_Enabled
- //
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.AutoSize = true;
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Checked = global::AirScout.Properties.Settings.Default.Planes_ExtendedPlausibilityCheck_Enabled;
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_ExtendedPlausibilityCheck_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Location = new System.Drawing.Point(13, 53);
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Name = "cb_Options_Planes_ExtendedPlausibilityCheck_Enabled";
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Size = new System.Drawing.Size(256, 17);
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.TabIndex = 44;
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Text = "Enable extended plausibility check of aircraft info";
- this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.UseVisualStyleBackColor = true;
- //
- // tb_Options_Planes_Interval
- //
- this.tb_Options_Planes_Interval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Interval", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_Interval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_Interval.FormatSpecifier = "F0";
- this.tb_Options_Planes_Interval.Location = new System.Drawing.Point(199, 22);
- this.tb_Options_Planes_Interval.MaxValue = 600;
- this.tb_Options_Planes_Interval.MinValue = 10;
- this.tb_Options_Planes_Interval.Name = "tb_Options_Planes_Interval";
- this.tb_Options_Planes_Interval.Size = new System.Drawing.Size(52, 22);
- this.tb_Options_Planes_Interval.TabIndex = 43;
- this.tb_Options_Planes_Interval.Text = "60";
- this.tb_Options_Planes_Interval.Value = global::AirScout.Properties.Settings.Default.Planes_Interval;
- //
- // cb_Options_Planes_LogErrors
- //
- this.cb_Options_Planes_LogErrors.AutoSize = true;
- this.cb_Options_Planes_LogErrors.Checked = global::AirScout.Properties.Settings.Default.Planes_LogErrors;
- this.cb_Options_Planes_LogErrors.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_LogErrors", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Planes_LogErrors.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Planes_LogErrors.Location = new System.Drawing.Point(12, 118);
- this.cb_Options_Planes_LogErrors.Name = "cb_Options_Planes_LogErrors";
- this.cb_Options_Planes_LogErrors.Size = new System.Drawing.Size(249, 17);
- this.cb_Options_Planes_LogErrors.TabIndex = 0;
- this.cb_Options_Planes_LogErrors.Text = "Log errors as warnings to AirScout\'s main logfile";
- this.cb_Options_Planes_LogErrors.UseVisualStyleBackColor = true;
- //
- // cb_Options_Planes_KeepHistory
- //
- this.cb_Options_Planes_KeepHistory.AutoSize = true;
- this.cb_Options_Planes_KeepHistory.Checked = global::AirScout.Properties.Settings.Default.Planes_KeepHistory;
- this.cb_Options_Planes_KeepHistory.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_KeepHistory", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Planes_KeepHistory.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Planes_KeepHistory.Location = new System.Drawing.Point(18, 81);
- this.cb_Options_Planes_KeepHistory.Name = "cb_Options_Planes_KeepHistory";
- this.cb_Options_Planes_KeepHistory.Size = new System.Drawing.Size(156, 17);
- this.cb_Options_Planes_KeepHistory.TabIndex = 4;
- this.cb_Options_Planes_KeepHistory.Text = "Keep Plane Position History";
- this.tt_Options.SetToolTip(this.cb_Options_Planes_KeepHistory, "Check this option to keep plane positions in database for history analysis.\r\nCAUT" +
- "ION! This will need lot of CPU performance and space on disk!");
- this.cb_Options_Planes_KeepHistory.UseVisualStyleBackColor = true;
- //
- // ud_Options_Planes_Position_DatabaseLifetime
- //
- this.ud_Options_Planes_Position_DatabaseLifetime.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "AircraftDatabase_MaxDaysLifetime", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.ud_Options_Planes_Position_DatabaseLifetime.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.ud_Options_Planes_Position_DatabaseLifetime.Location = new System.Drawing.Point(199, 14);
- this.ud_Options_Planes_Position_DatabaseLifetime.Maximum = new decimal(new int[] {
- 365,
- 0,
- 0,
- 0});
- this.ud_Options_Planes_Position_DatabaseLifetime.Minimum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.ud_Options_Planes_Position_DatabaseLifetime.Name = "ud_Options_Planes_Position_DatabaseLifetime";
- this.ud_Options_Planes_Position_DatabaseLifetime.Size = new System.Drawing.Size(49, 22);
- this.ud_Options_Planes_Position_DatabaseLifetime.TabIndex = 2;
- this.ud_Options_Planes_Position_DatabaseLifetime.Value = global::AirScout.Properties.Settings.Default.AircraftDatabase_MaxDaysLifetime;
- //
- // tb_Options_Planes_Positions_TTL
- //
- this.tb_Options_Planes_Positions_TTL.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Position_TTL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_Positions_TTL.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_Positions_TTL.FormatSpecifier = "F0";
- this.tb_Options_Planes_Positions_TTL.Location = new System.Drawing.Point(192, 65);
- this.tb_Options_Planes_Positions_TTL.MaxValue = 30;
- this.tb_Options_Planes_Positions_TTL.MinValue = 0;
- this.tb_Options_Planes_Positions_TTL.Name = "tb_Options_Planes_Positions_TTL";
- this.tb_Options_Planes_Positions_TTL.Size = new System.Drawing.Size(52, 22);
- this.tb_Options_Planes_Positions_TTL.TabIndex = 43;
- this.tb_Options_Planes_Positions_TTL.Text = "5";
- this.tb_Options_Planes_Positions_TTL.Value = global::AirScout.Properties.Settings.Default.Planes_Position_TTL;
- //
- // tb_Options_Planes_MaxAlt
- //
- this.tb_Options_Planes_MaxAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_MaxAlt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_MaxAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_MaxAlt.FormatSpecifier = "F0";
- this.tb_Options_Planes_MaxAlt.Location = new System.Drawing.Point(192, 39);
- this.tb_Options_Planes_MaxAlt.MaxValue = 20000;
- this.tb_Options_Planes_MaxAlt.MinValue = 0;
- this.tb_Options_Planes_MaxAlt.Name = "tb_Options_Planes_MaxAlt";
- this.tb_Options_Planes_MaxAlt.Size = new System.Drawing.Size(52, 22);
- this.tb_Options_Planes_MaxAlt.TabIndex = 42;
- this.tb_Options_Planes_MaxAlt.Text = "12200";
- this.tb_Options_Planes_MaxAlt.Value = global::AirScout.Properties.Settings.Default.Planes_MaxAlt;
- //
- // tb_Options_Planes_MinAlt
- //
- this.tb_Options_Planes_MinAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_MinAlt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_MinAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_MinAlt.FormatSpecifier = "F0";
- this.tb_Options_Planes_MinAlt.Location = new System.Drawing.Point(192, 14);
- this.tb_Options_Planes_MinAlt.MaxValue = 20000;
- this.tb_Options_Planes_MinAlt.MinValue = 0;
- this.tb_Options_Planes_MinAlt.Name = "tb_Options_Planes_MinAlt";
- this.tb_Options_Planes_MinAlt.Size = new System.Drawing.Size(52, 22);
- this.tb_Options_Planes_MinAlt.TabIndex = 41;
- this.tb_Options_Planes_MinAlt.Text = "5000";
- this.tb_Options_Planes_MinAlt.Value = global::AirScout.Properties.Settings.Default.Planes_MinAlt;
- //
- // tb_Options_Planes_Filter_MinAlt
- //
- this.tb_Options_Planes_Filter_MinAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Filter_Min_Alt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_Filter_MinAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_Filter_MinAlt.FormatSpecifier = "F0";
- this.tb_Options_Planes_Filter_MinAlt.Location = new System.Drawing.Point(192, 86);
- this.tb_Options_Planes_Filter_MinAlt.MaxValue = 12000;
- this.tb_Options_Planes_Filter_MinAlt.MinValue = 0;
- this.tb_Options_Planes_Filter_MinAlt.Name = "tb_Options_Planes_Filter_MinAlt";
- this.tb_Options_Planes_Filter_MinAlt.Size = new System.Drawing.Size(52, 22);
- this.tb_Options_Planes_Filter_MinAlt.TabIndex = 43;
- this.tb_Options_Planes_Filter_MinAlt.Text = "0";
- this.tb_Options_Planes_Filter_MinAlt.Value = global::AirScout.Properties.Settings.Default.Planes_Filter_Min_Alt;
- //
- // tb_Options_Planes_Filter_Max_Circumcircle
- //
- this.tb_Options_Planes_Filter_Max_Circumcircle.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Filter_Max_Circumcircle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Planes_Filter_Max_Circumcircle.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Planes_Filter_Max_Circumcircle.FormatSpecifier = "F0";
- this.tb_Options_Planes_Filter_Max_Circumcircle.Location = new System.Drawing.Point(192, 59);
- this.tb_Options_Planes_Filter_Max_Circumcircle.MaxValue = 1000;
- this.tb_Options_Planes_Filter_Max_Circumcircle.MinValue = -1;
- this.tb_Options_Planes_Filter_Max_Circumcircle.Name = "tb_Options_Planes_Filter_Max_Circumcircle";
- this.tb_Options_Planes_Filter_Max_Circumcircle.Size = new System.Drawing.Size(52, 22);
- this.tb_Options_Planes_Filter_Max_Circumcircle.TabIndex = 42;
- this.tb_Options_Planes_Filter_Max_Circumcircle.Text = "0";
- this.tb_Options_Planes_Filter_Max_Circumcircle.Value = global::AirScout.Properties.Settings.Default.Planes_Filter_Max_Circumcircle;
- //
- // cb_Options_Alarm_Activate
- //
- this.cb_Options_Alarm_Activate.AutoSize = true;
- this.cb_Options_Alarm_Activate.Checked = global::AirScout.Properties.Settings.Default.Alarm_Activate;
- this.cb_Options_Alarm_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Alarm_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Alarm_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Alarm_Activate.Location = new System.Drawing.Point(13, 19);
- this.cb_Options_Alarm_Activate.Name = "cb_Options_Alarm_Activate";
- this.cb_Options_Alarm_Activate.Size = new System.Drawing.Size(94, 17);
- this.cb_Options_Alarm_Activate.TabIndex = 1;
- this.cb_Options_Alarm_Activate.Tag = "";
- this.cb_Options_Alarm_Activate.Text = "Activate Alarm";
- this.cb_Options_Alarm_Activate.UseVisualStyleBackColor = true;
- //
- // cb_Options_Alarm_PlaySound
- //
- this.cb_Options_Alarm_PlaySound.AutoSize = true;
- this.cb_Options_Alarm_PlaySound.Checked = global::AirScout.Properties.Settings.Default.Alarm_PlaySound;
- this.cb_Options_Alarm_PlaySound.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Alarm_PlaySound.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Alarm_PlaySound", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Alarm_PlaySound.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Alarm_PlaySound.Location = new System.Drawing.Point(13, 53);
- this.cb_Options_Alarm_PlaySound.Name = "cb_Options_Alarm_PlaySound";
- this.cb_Options_Alarm_PlaySound.Size = new System.Drawing.Size(78, 17);
- this.cb_Options_Alarm_PlaySound.TabIndex = 1;
- this.cb_Options_Alarm_PlaySound.Tag = "";
- this.cb_Options_Alarm_PlaySound.Text = "Play sound";
- this.cb_Options_Alarm_PlaySound.UseVisualStyleBackColor = true;
- //
- // tb_Options_Alarm_Distance
- //
- this.tb_Options_Alarm_Distance.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Alarm_Distance", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Alarm_Distance.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Alarm_Distance.FormatSpecifier = "F0";
- this.tb_Options_Alarm_Distance.Location = new System.Drawing.Point(143, 49);
- this.tb_Options_Alarm_Distance.MaxValue = 1000D;
- this.tb_Options_Alarm_Distance.MinValue = 0D;
- this.tb_Options_Alarm_Distance.Name = "tb_Options_Alarm_Distance";
- this.tb_Options_Alarm_Distance.Size = new System.Drawing.Size(75, 22);
- this.tb_Options_Alarm_Distance.TabIndex = 3;
- this.tb_Options_Alarm_Distance.Text = "100";
- this.tb_Options_Alarm_Distance.Value = global::AirScout.Properties.Settings.Default.Alarm_Distance;
- //
- // tb_Options_Webserver_Port
- //
- this.tb_Options_Webserver_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Webserver_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Webserver_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Webserver_Port.FormatSpecifier = "F0";
- this.tb_Options_Webserver_Port.Location = new System.Drawing.Point(150, 28);
- this.tb_Options_Webserver_Port.MaxValue = 65535;
- this.tb_Options_Webserver_Port.MinValue = 0;
- this.tb_Options_Webserver_Port.Name = "tb_Options_Webserver_Port";
- this.tb_Options_Webserver_Port.Size = new System.Drawing.Size(57, 22);
- this.tb_Options_Webserver_Port.TabIndex = 8;
- this.tb_Options_Webserver_Port.Text = "9880";
- this.tb_Options_Webserver_Port.Value = global::AirScout.Properties.Settings.Default.Webserver_Port;
- //
- // cb_Options_Server_Activate
- //
- this.cb_Options_Server_Activate.AutoSize = true;
- this.cb_Options_Server_Activate.Checked = global::AirScout.Properties.Settings.Default.Server_Activate;
- this.cb_Options_Server_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Server_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Server_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Server_Activate.Location = new System.Drawing.Point(13, 23);
- this.cb_Options_Server_Activate.Name = "cb_Options_Server_Activate";
- this.cb_Options_Server_Activate.Size = new System.Drawing.Size(142, 17);
- this.cb_Options_Server_Activate.TabIndex = 1;
- this.cb_Options_Server_Activate.Tag = "";
- this.cb_Options_Server_Activate.Text = "Activate Network Server";
- this.cb_Options_Server_Activate.UseVisualStyleBackColor = true;
- //
- // tb_Options_Server_Port
- //
- this.tb_Options_Server_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Server_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Server_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Server_Port.FormatSpecifier = "F0";
- this.tb_Options_Server_Port.Location = new System.Drawing.Point(153, 56);
- this.tb_Options_Server_Port.MaxValue = 65535;
- this.tb_Options_Server_Port.MinValue = 0;
- this.tb_Options_Server_Port.Name = "tb_Options_Server_Port";
- this.tb_Options_Server_Port.Size = new System.Drawing.Size(57, 22);
- this.tb_Options_Server_Port.TabIndex = 6;
- this.tb_Options_Server_Port.Text = "9872";
- this.tb_Options_Server_Port.Value = global::AirScout.Properties.Settings.Default.Server_Port;
- //
- // tb_Options_Server_Name
- //
- this.tb_Options_Server_Name.BackColor = System.Drawing.Color.FloralWhite;
- this.tb_Options_Server_Name.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Server_Name", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Server_Name.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Server_Name.Location = new System.Drawing.Point(153, 30);
- this.tb_Options_Server_Name.Name = "tb_Options_Server_Name";
- this.tb_Options_Server_Name.Size = new System.Drawing.Size(57, 20);
- this.tb_Options_Server_Name.TabIndex = 2;
- this.tb_Options_Server_Name.Tag = "";
- this.tb_Options_Server_Name.Text = global::AirScout.Properties.Settings.Default.Server_Name;
- //
- // tb_Options_SpecLab_UpdateInterval
- //
- this.tb_Options_SpecLab_UpdateInterval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_SpecLab_UpdateInterval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_SpecLab_UpdateInterval.FormatSpecifier = "F1";
- this.tb_Options_SpecLab_UpdateInterval.Location = new System.Drawing.Point(106, 230);
- this.tb_Options_SpecLab_UpdateInterval.MaxValue = 100D;
- this.tb_Options_SpecLab_UpdateInterval.MinValue = 0D;
- this.tb_Options_SpecLab_UpdateInterval.Name = "tb_Options_SpecLab_UpdateInterval";
- this.tb_Options_SpecLab_UpdateInterval.Size = new System.Drawing.Size(63, 22);
- this.tb_Options_SpecLab_UpdateInterval.TabIndex = 18;
- this.tb_Options_SpecLab_UpdateInterval.Text = "1.0";
- this.tb_Options_SpecLab_UpdateInterval.Value = global::AirScout.Properties.Settings.Default.SpecLab_Update;
- //
- // tb_Options_SpecLab_F2
- //
- this.tb_Options_SpecLab_F2.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_F2", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_SpecLab_F2.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_SpecLab_F2.FormatSpecifier = "F0";
- this.tb_Options_SpecLab_F2.Location = new System.Drawing.Point(109, 205);
- this.tb_Options_SpecLab_F2.MaxValue = 10000;
- this.tb_Options_SpecLab_F2.MinValue = 0;
- this.tb_Options_SpecLab_F2.Name = "tb_Options_SpecLab_F2";
- this.tb_Options_SpecLab_F2.Size = new System.Drawing.Size(60, 22);
- this.tb_Options_SpecLab_F2.TabIndex = 17;
- this.tb_Options_SpecLab_F2.Text = "1600";
- this.tb_Options_SpecLab_F2.Value = global::AirScout.Properties.Settings.Default.SpecLab_F2;
- //
- // tb_Options_SpecLab_F1
- //
- this.tb_Options_SpecLab_F1.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_F1", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_SpecLab_F1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_SpecLab_F1.FormatSpecifier = "F0";
- this.tb_Options_SpecLab_F1.Location = new System.Drawing.Point(109, 179);
- this.tb_Options_SpecLab_F1.MaxValue = 10000;
- this.tb_Options_SpecLab_F1.MinValue = 0;
- this.tb_Options_SpecLab_F1.Name = "tb_Options_SpecLab_F1";
- this.tb_Options_SpecLab_F1.Size = new System.Drawing.Size(60, 22);
- this.tb_Options_SpecLab_F1.TabIndex = 16;
- this.tb_Options_SpecLab_F1.Text = "400";
- this.tb_Options_SpecLab_F1.Value = global::AirScout.Properties.Settings.Default.SpecLab_F1;
- //
- // tb_SpecLab_FileName
- //
- this.tb_SpecLab_FileName.BackColor = System.Drawing.Color.FloralWhite;
- this.tb_SpecLab_FileName.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "SpecLab_FileName", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_SpecLab_FileName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_SpecLab_FileName.Location = new System.Drawing.Point(109, 153);
- this.tb_SpecLab_FileName.Name = "tb_SpecLab_FileName";
- this.tb_SpecLab_FileName.Size = new System.Drawing.Size(347, 20);
- this.tb_SpecLab_FileName.TabIndex = 6;
- this.tb_SpecLab_FileName.Tag = "";
- this.tb_SpecLab_FileName.Text = global::AirScout.Properties.Settings.Default.SpecLab_FileName;
- //
- // tb_SpecLab_URL
- //
- this.tb_SpecLab_URL.BackColor = System.Drawing.Color.FloralWhite;
- this.tb_SpecLab_URL.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "SpecLab_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_SpecLab_URL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_SpecLab_URL.Location = new System.Drawing.Point(109, 126);
- this.tb_SpecLab_URL.Name = "tb_SpecLab_URL";
- this.tb_SpecLab_URL.Size = new System.Drawing.Size(347, 20);
- this.tb_SpecLab_URL.TabIndex = 2;
- this.tb_SpecLab_URL.Tag = "";
- this.tb_SpecLab_URL.Text = global::AirScout.Properties.Settings.Default.SpecLab_URL;
- //
- // cb_SpecLab_Enabled
- //
- this.cb_SpecLab_Enabled.AutoSize = true;
- this.cb_SpecLab_Enabled.Checked = global::AirScout.Properties.Settings.Default.SpecLab_Enabled;
- this.cb_SpecLab_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "SpecLab_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_SpecLab_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_SpecLab_Enabled.Location = new System.Drawing.Point(18, 90);
- this.cb_SpecLab_Enabled.Name = "cb_SpecLab_Enabled";
- this.cb_SpecLab_Enabled.Size = new System.Drawing.Size(122, 17);
- this.cb_SpecLab_Enabled.TabIndex = 1;
- this.cb_SpecLab_Enabled.Tag = "";
- this.cb_SpecLab_Enabled.Text = "Activate Connection";
- this.cb_SpecLab_Enabled.UseVisualStyleBackColor = true;
- //
- // rb_Options_Track_File_None
- //
- this.rb_Options_Track_File_None.AutoSize = true;
- this.rb_Options_Track_File_None.Checked = global::AirScout.Properties.Settings.Default.Track_File_None;
- this.rb_Options_Track_File_None.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_File_None", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_File_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_File_None.Location = new System.Drawing.Point(17, 19);
- this.rb_Options_Track_File_None.Name = "rb_Options_Track_File_None";
- this.rb_Options_Track_File_None.Size = new System.Drawing.Size(51, 17);
- this.rb_Options_Track_File_None.TabIndex = 12;
- this.rb_Options_Track_File_None.TabStop = true;
- this.rb_Options_Track_File_None.Tag = "";
- this.rb_Options_Track_File_None.Text = "None";
- this.rb_Options_Track_File_None.UseVisualStyleBackColor = true;
- //
- // rb_Options_Track_File_WSJT
- //
- this.rb_Options_Track_File_WSJT.AutoSize = true;
- this.rb_Options_Track_File_WSJT.Checked = global::AirScout.Properties.Settings.Default.Track_File_WSJT;
- this.rb_Options_Track_File_WSJT.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_File_WSJT", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_File_WSJT.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_File_WSJT.Location = new System.Drawing.Point(17, 66);
- this.rb_Options_Track_File_WSJT.Name = "rb_Options_Track_File_WSJT";
- this.rb_Options_Track_File_WSJT.Size = new System.Drawing.Size(84, 17);
- this.rb_Options_Track_File_WSJT.TabIndex = 7;
- this.rb_Options_Track_File_WSJT.Tag = "";
- this.rb_Options_Track_File_WSJT.Text = "WSJT Az/El";
- this.rb_Options_Track_File_WSJT.UseVisualStyleBackColor = true;
- //
- // rb_Options_Track_File_Native
- //
- this.rb_Options_Track_File_Native.AutoSize = true;
- this.rb_Options_Track_File_Native.Checked = global::AirScout.Properties.Settings.Default.Track_File_Native;
- this.rb_Options_Track_File_Native.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_File_Native", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_File_Native.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_File_Native.Location = new System.Drawing.Point(17, 43);
- this.rb_Options_Track_File_Native.Name = "rb_Options_Track_File_Native";
- this.rb_Options_Track_File_Native.Size = new System.Drawing.Size(85, 17);
- this.rb_Options_Track_File_Native.TabIndex = 6;
- this.rb_Options_Track_File_Native.Tag = "";
- this.rb_Options_Track_File_Native.Text = "Native Az/El";
- this.rb_Options_Track_File_Native.UseVisualStyleBackColor = true;
- //
- // rb_Options_Track_DDE_None
- //
- this.rb_Options_Track_DDE_None.AutoSize = true;
- this.rb_Options_Track_DDE_None.Checked = global::AirScout.Properties.Settings.Default.Track_DDE_None;
- this.rb_Options_Track_DDE_None.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_DDE_None", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_DDE_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_DDE_None.Location = new System.Drawing.Point(17, 19);
- this.rb_Options_Track_DDE_None.Name = "rb_Options_Track_DDE_None";
- this.rb_Options_Track_DDE_None.Size = new System.Drawing.Size(51, 17);
- this.rb_Options_Track_DDE_None.TabIndex = 11;
- this.rb_Options_Track_DDE_None.TabStop = true;
- this.rb_Options_Track_DDE_None.Tag = "";
- this.rb_Options_Track_DDE_None.Text = "None";
- this.rb_Options_Track_DDE_None.UseVisualStyleBackColor = true;
- //
- // rb_Options_Track_DDE_HRD
- //
- this.rb_Options_Track_DDE_HRD.AutoSize = true;
- this.rb_Options_Track_DDE_HRD.Checked = global::AirScout.Properties.Settings.Default.Track_DDE_HRD;
- this.rb_Options_Track_DDE_HRD.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_DDE_HRD", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_DDE_HRD.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_DDE_HRD.Location = new System.Drawing.Point(17, 42);
- this.rb_Options_Track_DDE_HRD.Name = "rb_Options_Track_DDE_HRD";
- this.rb_Options_Track_DDE_HRD.Size = new System.Drawing.Size(202, 17);
- this.rb_Options_Track_DDE_HRD.TabIndex = 6;
- this.rb_Options_Track_DDE_HRD.Tag = "";
- this.rb_Options_Track_DDE_HRD.Text = "Ham Radio Deluxe (HRDRotator.exe)";
- this.rb_Options_Track_DDE_HRD.UseVisualStyleBackColor = true;
- //
- // tb_Options_Track_UDP_AirScout_Port
- //
- this.tb_Options_Track_UDP_AirScout_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_UDP_AirScout_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Track_UDP_AirScout_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Track_UDP_AirScout_Port.FormatSpecifier = "F0";
- this.tb_Options_Track_UDP_AirScout_Port.Location = new System.Drawing.Point(526, 71);
- this.tb_Options_Track_UDP_AirScout_Port.MaxValue = 0;
- this.tb_Options_Track_UDP_AirScout_Port.MinValue = 0;
- this.tb_Options_Track_UDP_AirScout_Port.Name = "tb_Options_Track_UDP_AirScout_Port";
- this.tb_Options_Track_UDP_AirScout_Port.Size = new System.Drawing.Size(43, 22);
- this.tb_Options_Track_UDP_AirScout_Port.TabIndex = 17;
- this.tb_Options_Track_UDP_AirScout_Port.Text = "9872";
- this.tb_Options_Track_UDP_AirScout_Port.Value = global::AirScout.Properties.Settings.Default.Track_UDP_AirScout_Port;
- //
- // tb_Options_Track_UDP_WinTest_Port
- //
- this.tb_Options_Track_UDP_WinTest_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_UDP_WinTest_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Track_UDP_WinTest_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Track_UDP_WinTest_Port.FormatSpecifier = "F0";
- this.tb_Options_Track_UDP_WinTest_Port.Location = new System.Drawing.Point(526, 42);
- this.tb_Options_Track_UDP_WinTest_Port.MaxValue = 0;
- this.tb_Options_Track_UDP_WinTest_Port.MinValue = 0;
- this.tb_Options_Track_UDP_WinTest_Port.Name = "tb_Options_Track_UDP_WinTest_Port";
- this.tb_Options_Track_UDP_WinTest_Port.Size = new System.Drawing.Size(43, 22);
- this.tb_Options_Track_UDP_WinTest_Port.TabIndex = 16;
- this.tb_Options_Track_UDP_WinTest_Port.Text = "9871";
- this.tb_Options_Track_UDP_WinTest_Port.Value = global::AirScout.Properties.Settings.Default.Track_UDP_WinTest_Port;
- //
- // rb_Options_Track_UDP_None
- //
- this.rb_Options_Track_UDP_None.AutoSize = true;
- this.rb_Options_Track_UDP_None.Checked = global::AirScout.Properties.Settings.Default.Track_UDP_None;
- this.rb_Options_Track_UDP_None.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_UDP_None", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_UDP_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_UDP_None.Location = new System.Drawing.Point(17, 19);
- this.rb_Options_Track_UDP_None.Name = "rb_Options_Track_UDP_None";
- this.rb_Options_Track_UDP_None.Size = new System.Drawing.Size(51, 17);
- this.rb_Options_Track_UDP_None.TabIndex = 11;
- this.rb_Options_Track_UDP_None.TabStop = true;
- this.rb_Options_Track_UDP_None.Tag = "";
- this.rb_Options_Track_UDP_None.Text = "None";
- this.rb_Options_Track_UDP_None.UseVisualStyleBackColor = true;
- //
- // rb_Options_Track_UDP_AirScout
- //
- this.rb_Options_Track_UDP_AirScout.AutoSize = true;
- this.rb_Options_Track_UDP_AirScout.Checked = global::AirScout.Properties.Settings.Default.Track_UDP_AirScout;
- this.rb_Options_Track_UDP_AirScout.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_UDP_AirScout", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_UDP_AirScout.Enabled = false;
- this.rb_Options_Track_UDP_AirScout.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_UDP_AirScout.Location = new System.Drawing.Point(17, 65);
- this.rb_Options_Track_UDP_AirScout.Name = "rb_Options_Track_UDP_AirScout";
- this.rb_Options_Track_UDP_AirScout.Size = new System.Drawing.Size(280, 17);
- this.rb_Options_Track_UDP_AirScout.TabIndex = 7;
- this.rb_Options_Track_UDP_AirScout.Tag = "";
- this.rb_Options_Track_UDP_AirScout.Text = "UDP Broadcast (AirScout) Az/El (not implemented yet)";
- this.rb_Options_Track_UDP_AirScout.UseVisualStyleBackColor = true;
- //
- // rb_Options_Track_UDP_WinTest
- //
- this.rb_Options_Track_UDP_WinTest.AutoSize = true;
- this.rb_Options_Track_UDP_WinTest.Checked = global::AirScout.Properties.Settings.Default.Track_UDP_WinTest;
- this.rb_Options_Track_UDP_WinTest.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_UDP_WinTest", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_UDP_WinTest.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_UDP_WinTest.Location = new System.Drawing.Point(17, 42);
- this.rb_Options_Track_UDP_WinTest.Name = "rb_Options_Track_UDP_WinTest";
- this.rb_Options_Track_UDP_WinTest.Size = new System.Drawing.Size(188, 17);
- this.rb_Options_Track_UDP_WinTest.TabIndex = 6;
- this.rb_Options_Track_UDP_WinTest.Tag = "";
- this.rb_Options_Track_UDP_WinTest.Text = "UDP Broadcast (Win-Test) Az only";
- this.rb_Options_Track_UDP_WinTest.UseVisualStyleBackColor = true;
- //
- // tb_Options_Track_Serial_Baudrate
- //
- this.tb_Options_Track_Serial_Baudrate.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_Serial_Baudrate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Track_Serial_Baudrate.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Track_Serial_Baudrate.FormatSpecifier = "F0";
- this.tb_Options_Track_Serial_Baudrate.Location = new System.Drawing.Point(526, 13);
- this.tb_Options_Track_Serial_Baudrate.MaxValue = 115200;
- this.tb_Options_Track_Serial_Baudrate.MinValue = 0;
- this.tb_Options_Track_Serial_Baudrate.Name = "tb_Options_Track_Serial_Baudrate";
- this.tb_Options_Track_Serial_Baudrate.Size = new System.Drawing.Size(72, 22);
- this.tb_Options_Track_Serial_Baudrate.TabIndex = 11;
- this.tb_Options_Track_Serial_Baudrate.Text = "4800";
- this.tb_Options_Track_Serial_Baudrate.Value = global::AirScout.Properties.Settings.Default.Track_Serial_Baudrate;
- //
- // rb_Options_Track_Serial_None
- //
- this.rb_Options_Track_Serial_None.AutoSize = true;
- this.rb_Options_Track_Serial_None.Checked = global::AirScout.Properties.Settings.Default.Track_Serial_None;
- this.rb_Options_Track_Serial_None.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Serial_None", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_Serial_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_Serial_None.Location = new System.Drawing.Point(17, 15);
- this.rb_Options_Track_Serial_None.Name = "rb_Options_Track_Serial_None";
- this.rb_Options_Track_Serial_None.Size = new System.Drawing.Size(51, 17);
- this.rb_Options_Track_Serial_None.TabIndex = 10;
- this.rb_Options_Track_Serial_None.TabStop = true;
- this.rb_Options_Track_Serial_None.Tag = "";
- this.rb_Options_Track_Serial_None.Text = "None";
- this.rb_Options_Track_Serial_None.UseVisualStyleBackColor = true;
- //
- // tb_Options_Track_Serial_Port
- //
- this.tb_Options_Track_Serial_Port.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
- this.tb_Options_Track_Serial_Port.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Track_Serial_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Track_Serial_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Track_Serial_Port.Location = new System.Drawing.Point(407, 14);
- this.tb_Options_Track_Serial_Port.Name = "tb_Options_Track_Serial_Port";
- this.tb_Options_Track_Serial_Port.Size = new System.Drawing.Size(54, 22);
- this.tb_Options_Track_Serial_Port.TabIndex = 6;
- this.tb_Options_Track_Serial_Port.Tag = "";
- this.tb_Options_Track_Serial_Port.Text = global::AirScout.Properties.Settings.Default.Track_Serial_Port;
- //
- // rb_Options_Track_Serial_GS232_AZEL
- //
- this.rb_Options_Track_Serial_GS232_AZEL.AutoSize = true;
- this.rb_Options_Track_Serial_GS232_AZEL.Checked = global::AirScout.Properties.Settings.Default.Track_Serial_GS232_AZEL;
- this.rb_Options_Track_Serial_GS232_AZEL.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Serial_GS232_AZEL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_Serial_GS232_AZEL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_Serial_GS232_AZEL.Location = new System.Drawing.Point(17, 61);
- this.rb_Options_Track_Serial_GS232_AZEL.Name = "rb_Options_Track_Serial_GS232_AZEL";
- this.rb_Options_Track_Serial_GS232_AZEL.Size = new System.Drawing.Size(97, 17);
- this.rb_Options_Track_Serial_GS232_AZEL.TabIndex = 5;
- this.rb_Options_Track_Serial_GS232_AZEL.Tag = "";
- this.rb_Options_Track_Serial_GS232_AZEL.Text = "GS-232A Az/El";
- this.rb_Options_Track_Serial_GS232_AZEL.UseVisualStyleBackColor = true;
- //
- // rb_Options_Track_Serial_GS232_AZ
- //
- this.rb_Options_Track_Serial_GS232_AZ.AutoSize = true;
- this.rb_Options_Track_Serial_GS232_AZ.Checked = global::AirScout.Properties.Settings.Default.Track_Serial_GS232_AZ;
- this.rb_Options_Track_Serial_GS232_AZ.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Serial_GS232_AZ", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.rb_Options_Track_Serial_GS232_AZ.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.rb_Options_Track_Serial_GS232_AZ.Location = new System.Drawing.Point(17, 38);
- this.rb_Options_Track_Serial_GS232_AZ.Name = "rb_Options_Track_Serial_GS232_AZ";
- this.rb_Options_Track_Serial_GS232_AZ.Size = new System.Drawing.Size(105, 17);
- this.rb_Options_Track_Serial_GS232_AZ.TabIndex = 0;
- this.rb_Options_Track_Serial_GS232_AZ.Tag = "";
- this.rb_Options_Track_Serial_GS232_AZ.Text = "GS-232A Az only";
- this.rb_Options_Track_Serial_GS232_AZ.UseVisualStyleBackColor = true;
- //
- // cb_Options_Track_Activate
- //
- this.cb_Options_Track_Activate.AutoSize = true;
- this.cb_Options_Track_Activate.Checked = global::AirScout.Properties.Settings.Default.Track_Activate;
- this.cb_Options_Track_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Track_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Track_Activate.Location = new System.Drawing.Point(13, 19);
- this.cb_Options_Track_Activate.Name = "cb_Options_Track_Activate";
- this.cb_Options_Track_Activate.Size = new System.Drawing.Size(153, 17);
- this.cb_Options_Track_Activate.TabIndex = 1;
- this.cb_Options_Track_Activate.Tag = "";
- this.cb_Options_Track_Activate.Text = "Activate Antenna Tracking";
- this.cb_Options_Track_Activate.UseVisualStyleBackColor = true;
- //
- // cb_Options_Watchlist_SyncWithKST
- //
- this.cb_Options_Watchlist_SyncWithKST.AutoSize = true;
- this.cb_Options_Watchlist_SyncWithKST.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.cb_Options_Watchlist_SyncWithKST.Checked = global::AirScout.Properties.Settings.Default.Watchlist_SyncWithKST;
- this.cb_Options_Watchlist_SyncWithKST.CheckState = System.Windows.Forms.CheckState.Checked;
- this.cb_Options_Watchlist_SyncWithKST.DataBindings.Add(new System.Windows.Forms.Binding("Enabled", global::AirScout.Properties.Settings.Default, "Server_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Watchlist_SyncWithKST.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Watchlist_SyncWithKST", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.cb_Options_Watchlist_SyncWithKST.Enabled = global::AirScout.Properties.Settings.Default.Server_Activate;
- this.cb_Options_Watchlist_SyncWithKST.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.cb_Options_Watchlist_SyncWithKST.Location = new System.Drawing.Point(6, 47);
- this.cb_Options_Watchlist_SyncWithKST.Name = "cb_Options_Watchlist_SyncWithKST";
- this.cb_Options_Watchlist_SyncWithKST.Size = new System.Drawing.Size(436, 17);
- this.cb_Options_Watchlist_SyncWithKST.TabIndex = 6;
- this.cb_Options_Watchlist_SyncWithKST.Text = "Keep in sync with KST user list (needs wtKST > V3.1 and network functions activat" +
- "ed):";
- this.cb_Options_Watchlist_SyncWithKST.UseVisualStyleBackColor = true;
- this.cb_Options_Watchlist_SyncWithKST.CheckedChanged += new System.EventHandler(this.cb_Options_Watchlist_SyncWithKST_CheckedChanged);
- //
- // tb_Options_Watchlist_MaxCount
- //
- this.tb_Options_Watchlist_MaxCount.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Watchlist_MaxCount", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Options_Watchlist_MaxCount.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Options_Watchlist_MaxCount.FormatSpecifier = "F0";
- this.tb_Options_Watchlist_MaxCount.Location = new System.Drawing.Point(395, 20);
- this.tb_Options_Watchlist_MaxCount.MaxValue = 1000;
- this.tb_Options_Watchlist_MaxCount.MinValue = 1;
- this.tb_Options_Watchlist_MaxCount.Name = "tb_Options_Watchlist_MaxCount";
- this.tb_Options_Watchlist_MaxCount.Size = new System.Drawing.Size(47, 22);
- this.tb_Options_Watchlist_MaxCount.TabIndex = 5;
- this.tb_Options_Watchlist_MaxCount.Text = "1000";
- this.tb_Options_Watchlist_MaxCount.Value = global::AirScout.Properties.Settings.Default.Watchlist_MaxCount;
- //
- // btn_Options_DXMap
- //
- this.btn_Options_DXMap.BackgroundImage = global::AirScout.Properties.Resources.Map2;
- this.btn_Options_DXMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.btn_Options_DXMap.Location = new System.Drawing.Point(8, 135);
- this.btn_Options_DXMap.Name = "btn_Options_DXMap";
- this.btn_Options_DXMap.Size = new System.Drawing.Size(75, 81);
- this.btn_Options_DXMap.TabIndex = 29;
- this.btn_Options_DXMap.Text = "\r\nMap";
- this.btn_Options_DXMap.UseVisualStyleBackColor = true;
- this.btn_Options_DXMap.Click += new System.EventHandler(this.btn_Options_DXMap_Click);
- //
- // btn_Options_MyMap
- //
- this.btn_Options_MyMap.BackgroundImage = global::AirScout.Properties.Resources.Map2;
- this.btn_Options_MyMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.btn_Options_MyMap.Location = new System.Drawing.Point(7, 134);
- this.btn_Options_MyMap.Name = "btn_Options_MyMap";
- this.btn_Options_MyMap.Size = new System.Drawing.Size(75, 81);
- this.btn_Options_MyMap.TabIndex = 30;
- this.btn_Options_MyMap.Text = "\r\nMap";
- this.btn_Options_MyMap.UseVisualStyleBackColor = true;
- this.btn_Options_MyMap.Click += new System.EventHandler(this.btn_Options_MyMap_Click);
- //
- // pictureBox3
- //
- this.pictureBox3.Image = global::AirScout.Properties.Resources.AirScout_Watchlist;
- this.pictureBox3.Location = new System.Drawing.Point(520, 19);
- this.pictureBox3.Name = "pictureBox3";
- this.pictureBox3.Size = new System.Drawing.Size(113, 344);
- this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
- this.pictureBox3.TabIndex = 3;
- this.pictureBox3.TabStop = false;
- //
- // pictureBox2
- //
- this.pictureBox2.Image = global::AirScout.Properties.Resources.AirScout_Marker;
- this.pictureBox2.Location = new System.Drawing.Point(281, 36);
- this.pictureBox2.Name = "pictureBox2";
- this.pictureBox2.Size = new System.Drawing.Size(210, 118);
- this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
- this.pictureBox2.TabIndex = 2;
- this.pictureBox2.TabStop = false;
- //
- // pictureBox1
- //
- this.pictureBox1.Image = global::AirScout.Properties.Resources.AirScout_Multi;
- this.pictureBox1.InitialImage = global::AirScout.Properties.Resources.AirScout_Multi;
- this.pictureBox1.Location = new System.Drawing.Point(6, 15);
- this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size(283, 153);
- this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
- this.pictureBox1.TabIndex = 0;
- this.pictureBox1.TabStop = false;
- //
- // pb_Donate
- //
- this.pb_Donate.Image = ((System.Drawing.Image)(resources.GetObject("pb_Donate.Image")));
- this.pb_Donate.InitialImage = ((System.Drawing.Image)(resources.GetObject("pb_Donate.InitialImage")));
- this.pb_Donate.Location = new System.Drawing.Point(18, 272);
- this.pb_Donate.Name = "pb_Donate";
- this.pb_Donate.Size = new System.Drawing.Size(306, 113);
- this.pb_Donate.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
- this.pb_Donate.TabIndex = 38;
- this.pb_Donate.TabStop = false;
- this.tt_Options.SetToolTip(this.pb_Donate, "Click here to open a browser window with link.");
- this.pb_Donate.Click += new System.EventHandler(this.pb_Donate_Click);
- //
- // pictureBox4
- //
- this.pictureBox4.BackColor = System.Drawing.Color.White;
- this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.pictureBox4.Image = global::AirScout.Properties.Resources.Settings;
- this.pictureBox4.Location = new System.Drawing.Point(343, 108);
- this.pictureBox4.Name = "pictureBox4";
- this.pictureBox4.Size = new System.Drawing.Size(306, 277);
- this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
- this.pictureBox4.TabIndex = 5;
- this.pictureBox4.TabStop = false;
- //
- // ud_Options_Map_Opacity
- //
- this.ud_Options_Map_Opacity.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Opacity", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.ud_Options_Map_Opacity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.ud_Options_Map_Opacity.Increment = new decimal(new int[] {
- 1,
- 0,
- 0,
- 65536});
- this.ud_Options_Map_Opacity.Location = new System.Drawing.Point(320, 18);
- this.ud_Options_Map_Opacity.Maximum = new decimal(new int[] {
- 1,
- 0,
- 0,
- 0});
- this.ud_Options_Map_Opacity.Name = "ud_Options_Map_Opacity";
- this.ud_Options_Map_Opacity.Size = new System.Drawing.Size(54, 20);
- this.ud_Options_Map_Opacity.TabIndex = 10;
- this.ud_Options_Map_Opacity.Value = global::AirScout.Properties.Settings.Default.Map_Opacity;
+ // cb_Options_Locators_Activate
+ //
+ this.cb_Options_Locators_Activate.AutoSize = true;
+ this.cb_Options_Locators_Activate.Checked = global::AirScout.Properties.Settings.Default.Map_ShowLocators;
+ this.cb_Options_Locators_Activate.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.cb_Options_Locators_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_ShowLocators", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Locators_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Locators_Activate.Location = new System.Drawing.Point(16, 37);
+ this.cb_Options_Locators_Activate.Name = "cb_Options_Locators_Activate";
+ this.cb_Options_Locators_Activate.Size = new System.Drawing.Size(114, 17);
+ this.cb_Options_Locators_Activate.TabIndex = 11;
+ this.cb_Options_Locators_Activate.Text = "Show Locator Grid";
+ this.cb_Options_Locators_Activate.UseVisualStyleBackColor = true;
+ //
+ // cb_Options_Distances_Activated
+ //
+ this.cb_Options_Distances_Activated.AutoSize = true;
+ this.cb_Options_Distances_Activated.Checked = global::AirScout.Properties.Settings.Default.Map_ShowDistances;
+ this.cb_Options_Distances_Activated.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_ShowDistances", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.cb_Options_Distances_Activated.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Options_Distances_Activated.Location = new System.Drawing.Point(16, 54);
+ this.cb_Options_Distances_Activated.Name = "cb_Options_Distances_Activated";
+ this.cb_Options_Distances_Activated.Size = new System.Drawing.Size(132, 17);
+ this.cb_Options_Distances_Activated.TabIndex = 12;
+ this.cb_Options_Distances_Activated.Text = "Show Distance Circles";
+ this.cb_Options_Distances_Activated.UseVisualStyleBackColor = true;
//
// OptionsDlg
//
@@ -6103,11 +7222,13 @@
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OptionsDlg_FormClosing);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.OptionsDlg_FormClosed);
this.Load += new System.EventHandler(this.OptionsDlg_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).EndInit();
this.tab_Options_Planes.ResumeLayout(false);
this.groupBox48.ResumeLayout(false);
this.groupBox48.PerformLayout();
this.groupBox40.ResumeLayout(false);
this.groupBox40.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Planes_Position_DatabaseLifetime)).EndInit();
this.groupBox38.ResumeLayout(false);
this.groupBox38.PerformLayout();
this.groupBox26.ResumeLayout(false);
@@ -6141,10 +7262,13 @@
this.groupBox49.PerformLayout();
this.groupBox37.ResumeLayout(false);
this.groupBox37.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).EndInit();
this.groupBox39.ResumeLayout(false);
this.groupBox39.PerformLayout();
this.groupBox23.ResumeLayout(false);
this.groupBox23.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Opacity)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Preloader_MaxZoom)).EndInit();
this.groupBox30.ResumeLayout(false);
this.groupBox30.PerformLayout();
this.groupBox7.ResumeLayout(false);
@@ -6165,6 +7289,7 @@
this.groupBox44.PerformLayout();
this.groupBox14.ResumeLayout(false);
this.groupBox14.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Locator_MaxLength)).EndInit();
this.groupBox16.ResumeLayout(false);
this.groupBox5.ResumeLayout(false);
this.groupBox5.PerformLayout();
@@ -6180,6 +7305,7 @@
this.groupBox27.PerformLayout();
this.gb_Options_Database_Settings.ResumeLayout(false);
this.gb_Options_Database_Settings.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Database_Update_Period)).EndInit();
this.gb_Options_Database_Info.ResumeLayout(false);
this.gb_Options_Database_Info.PerformLayout();
this.tab_Options_ASTER3.ResumeLayout(false);
@@ -6212,37 +7338,43 @@
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.tab_Options_Track.ResumeLayout(false);
- this.groupBox36.ResumeLayout(false);
- this.groupBox36.PerformLayout();
- this.groupBox35.ResumeLayout(false);
- this.groupBox35.PerformLayout();
- this.groupBox34.ResumeLayout(false);
- this.groupBox34.PerformLayout();
- this.groupBox33.ResumeLayout(false);
- this.groupBox33.PerformLayout();
+ this.gb_Options_Doppler.ResumeLayout(false);
+ this.gb_Options_Doppler.PerformLayout();
+ this.gb_Options_Track_File.ResumeLayout(false);
+ this.gb_Options_Track_File.PerformLayout();
+ this.gb_Options_Track_DDE.ResumeLayout(false);
+ this.gb_Options_Track_DDE.PerformLayout();
+ this.gb_Options_Track_UDP.ResumeLayout(false);
+ this.gb_Options_Track_UDP.PerformLayout();
+ this.gb_Options_Track_Serial.ResumeLayout(false);
+ this.gb_Options_Track_Serial.PerformLayout();
this.groupBox28.ResumeLayout(false);
this.groupBox28.PerformLayout();
+ this.tab_Options_CAT.ResumeLayout(false);
+ this.gb_Options_CAT_PortSettings.ResumeLayout(false);
+ this.gb_Options_CAT_PortSettings.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Timeout)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Poll)).EndInit();
+ this.gb_Options_CAT_RigType.ResumeLayout(false);
+ this.gb_Options_CAT_RigType.PerformLayout();
+ this.gb_Options_CAT_OperatingInstructions.ResumeLayout(false);
+ this.groupBox57.ResumeLayout(false);
+ this.groupBox57.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Update)).EndInit();
this.tab_Options_Watchlist.ResumeLayout(false);
this.groupBox50.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.groupBox17.ResumeLayout(false);
this.groupBox17.PerformLayout();
this.tab_Options_Misc.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
this.groupBox15.ResumeLayout(false);
this.tab_Options_Info.ResumeLayout(false);
this.tab_Options_Info.PerformLayout();
this.ss_Options.ResumeLayout(false);
this.ss_Options.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Database_Update_Period)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Locator_MaxLength)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Preloader_MaxZoom)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Planes_Position_DatabaseLifetime)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Opacity)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -6381,18 +7513,18 @@
private System.Windows.Forms.GroupBox groupBox31;
private System.Windows.Forms.Label label86;
private System.Windows.Forms.GroupBox groupBox32;
- private System.Windows.Forms.GroupBox groupBox33;
+ private System.Windows.Forms.GroupBox gb_Options_Track_Serial;
private System.Windows.Forms.Label label88;
private System.Windows.Forms.Label label87;
private System.Windows.Forms.TextBox tb_Options_Track_Serial_Port;
private System.Windows.Forms.RadioButton rb_Options_Track_Serial_GS232_AZEL;
private System.Windows.Forms.RadioButton rb_Options_Track_Serial_GS232_AZ;
- private System.Windows.Forms.GroupBox groupBox34;
+ private System.Windows.Forms.GroupBox gb_Options_Track_UDP;
private System.Windows.Forms.RadioButton rb_Options_Track_UDP_WinTest;
- private System.Windows.Forms.GroupBox groupBox35;
+ private System.Windows.Forms.GroupBox gb_Options_Track_DDE;
private System.Windows.Forms.RadioButton rb_Options_Track_DDE_HRD;
private System.Windows.Forms.RadioButton rb_Options_Track_UDP_AirScout;
- private System.Windows.Forms.GroupBox groupBox36;
+ private System.Windows.Forms.GroupBox gb_Options_Track_File;
private System.Windows.Forms.RadioButton rb_Options_Track_File_WSJT;
private System.Windows.Forms.RadioButton rb_Options_Track_File_Native;
private System.Windows.Forms.RadioButton rb_Options_Track_Serial_None;
@@ -6693,5 +7825,87 @@
private System.Windows.Forms.Label label147;
private System.Windows.Forms.Label label148;
private PercentageControl ud_Options_Map_Opacity;
+ private System.Windows.Forms.TabPage tab_Options_CAT;
+ private System.Windows.Forms.GroupBox groupBox57;
+ private System.Windows.Forms.ComboBox cb_Options_CAT_Rig;
+ private System.Windows.Forms.CheckBox cb_Options_CAT_Activate;
+ private System.Windows.Forms.GroupBox gb_Options_Doppler;
+ private ScoutBase.Core.LongTextBox tb_Options_Track_DialFreq;
+ private System.Windows.Forms.GroupBox gb_Options_CAT_OperatingInstructions;
+ private System.Windows.Forms.RichTextBox richTextBox1;
+ private System.Windows.Forms.Label label154;
+ private System.Windows.Forms.Label label153;
+ private System.Windows.Forms.Label label152;
+ private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_D;
+ private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_C;
+ private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_B;
+ private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_A;
+ private System.Windows.Forms.Label label155;
+ private System.Windows.Forms.Label label178;
+ private System.Windows.Forms.Label label179;
+ private System.Windows.Forms.Label label176;
+ private System.Windows.Forms.Label label177;
+ private System.Windows.Forms.Label label174;
+ private System.Windows.Forms.Label label175;
+ private System.Windows.Forms.Label label172;
+ private System.Windows.Forms.Label label173;
+ private System.Windows.Forms.Label label170;
+ private System.Windows.Forms.Label label171;
+ private System.Windows.Forms.Label label168;
+ private System.Windows.Forms.Label label169;
+ private System.Windows.Forms.Label label166;
+ private System.Windows.Forms.Label label167;
+ private System.Windows.Forms.Label label165;
+ private System.Windows.Forms.Label label163;
+ private System.Windows.Forms.Label label164;
+ private System.Windows.Forms.Label label162;
+ private System.Windows.Forms.Label label161;
+ private System.Windows.Forms.Label label160;
+ private System.Windows.Forms.Label label159;
+ private System.Windows.Forms.Label label158;
+ private System.Windows.Forms.Label label157;
+ private System.Windows.Forms.Label label156;
+ private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_None;
+ private System.Windows.Forms.Label label180;
+ private System.Windows.Forms.Label label181;
+ private System.Windows.Forms.Label label182;
+ private System.Windows.Forms.Label label183;
+ private System.Windows.Forms.Label label184;
+ private System.Windows.Forms.Label label150;
+ private System.Windows.Forms.Label label185;
+ private System.Windows.Forms.Label label151;
+ private ScoutBase.Core.Int32TextBox int32TextBox2;
+ private System.Windows.Forms.Label label186;
+ private System.Windows.Forms.Label label187;
+ private ScoutBase.Core.Int32TextBox tb_Options_Track_Offset;
+ private System.Windows.Forms.Label label189;
+ private System.Windows.Forms.GroupBox gb_Options_CAT_PortSettings;
+ private System.Windows.Forms.GroupBox gb_Options_CAT_RigType;
+ private System.Windows.Forms.NumericUpDown ud_Options_CAT_Timeout;
+ private System.Windows.Forms.Label label149;
+ private System.Windows.Forms.NumericUpDown ud_Options_CAT_Poll;
+ private System.Windows.Forms.Label label190;
+ private System.Windows.Forms.Label label191;
+ private System.Windows.Forms.ComboBox cb_Options_CAT_DTR;
+ private System.Windows.Forms.Label label192;
+ private System.Windows.Forms.ComboBox cb_Options_CAT_RTS;
+ private System.Windows.Forms.Label label193;
+ private System.Windows.Forms.ComboBox cb_Options_CAT_StopBits;
+ private System.Windows.Forms.Label label194;
+ private System.Windows.Forms.ComboBox cb_Options_CAT_Parity;
+ private System.Windows.Forms.Label label195;
+ private System.Windows.Forms.ComboBox cb_Options_CAT_DataBits;
+ private System.Windows.Forms.Label label196;
+ private System.Windows.Forms.ComboBox cb_Options_CAT_Baudrate;
+ private System.Windows.Forms.Label label197;
+ private System.Windows.Forms.ComboBox cb_Options_CAT_PortName;
+ private System.Windows.Forms.Label label199;
+ private System.Windows.Forms.RichTextBox richTextBox2;
+ private System.Windows.Forms.NumericUpDown ud_Options_CAT_Update;
+ private System.Windows.Forms.RichTextBox richTextBox3;
+ private System.Windows.Forms.RichTextBox richTextBox5;
+ private System.Windows.Forms.RichTextBox richTextBox4;
+ private System.Windows.Forms.CheckBox cb_Options_Locators_Activate;
+ private System.Windows.Forms.CheckBox cb_Options_Distances_Activated;
}
}
\ No newline at end of file
diff --git a/AirScout/OptionsDlg.cs b/AirScout/OptionsDlg.cs
index d3147ee..8f4067c 100644
--- a/AirScout/OptionsDlg.cs
+++ b/AirScout/OptionsDlg.cs
@@ -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 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(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(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(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(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)
diff --git a/AirScout/OptionsDlg.resx b/AirScout/OptionsDlg.resx
index 69701ef..dd52d3d 100644
--- a/AirScout/OptionsDlg.resx
+++ b/AirScout/OptionsDlg.resx
@@ -120,65 +120,6 @@
17, 17
-
- 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.
-
-
- 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.
-
-
- 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.
-
-
- 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.
-
-
- 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.
-
-
- 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).
-
-
- 130, 17
-
-
- 353, 17
-
-
- 483, 17
-
-
- 706, 17
-
-
- 890, 17
-
-
- 1071, 17
-
-
- 1259, 17
-
@@ -298,4 +239,77 @@ Watchlist can be synchronized with ON4KST chat user list instead of a local mana
bOQwu7KRw+zKRg6zKxs5zK5s5DC7spHD7MpGDrMrGznMrkwUwn8BkAmqaXV391cAAAAASUVORK5CYII=
+
+ 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.
+
+
+ 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.
+
+
+ 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.
+
+
+ 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.
+
+
+ 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.
+
+
+ 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.
+
+
+ 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)
+
+
+ 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).
+
+
+ 130, 17
+
+
+ 353, 17
+
+
+ 483, 17
+
+
+ 706, 17
+
+
+ 890, 17
+
+
+ 1071, 17
+
+
+ 1259, 17
+
\ No newline at end of file
diff --git a/AirScout/PathCalculator.cs b/AirScout/PathCalculator.cs
index 7f471c7..39b4fa2 100644
--- a/AirScout/PathCalculator.cs
+++ b/AirScout/PathCalculator.cs
@@ -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();
diff --git a/AirScout/Properties/AssemblyInfo.cs b/AirScout/Properties/AssemblyInfo.cs
index 1c79759..66cf7c2 100644
--- a/AirScout/Properties/AssemblyInfo.cs
+++ b/AirScout/Properties/AssemblyInfo.cs
@@ -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")]
diff --git a/AirScout/Properties/Settings.Designer.cs b/AirScout/Properties/Settings.Designer.cs
index 51186ec..0df2f54 100644
--- a/AirScout/Properties/Settings.Designer.cs
+++ b/AirScout/Properties/Settings.Designer.cs
@@ -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;
+ }
+ }
}
}
diff --git a/AirScout/Properties/Settings.settings b/AirScout/Properties/Settings.settings
index 7547043..59567ed 100644
--- a/AirScout/Properties/Settings.settings
+++ b/AirScout/Properties/Settings.settings
@@ -664,5 +664,62 @@ NASA/METI/AIST/Japan Spacesystems, and U.S./Japan ASTER Science Team (2019). AST
1
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ 0
+
+
+ 0
+
+
+
+
+
+ 0
+
+
+ True
+
+
+ NONE
+
+
+ NONE
+
+
+ NONE
+
+
+ 1000
+
+
+ \ScoutBase\RigData
+
+
+ False
+
+
+ False
+
\ No newline at end of file
diff --git a/AirScout/Requirements.txt b/AirScout/Requirements.txt
new file mode 100644
index 0000000..69bf623
--- /dev/null
+++ b/AirScout/Requirements.txt
@@ -0,0 +1,5 @@
+***************** AirScout Requirements **************************
+
+- Snooze button for alarm on main window, clickable in PLAY mode ()
+
+
diff --git a/AirScout/TrackValues.cs b/AirScout/TrackValues.cs
new file mode 100644
index 0000000..842bbc0
--- /dev/null
+++ b/AirScout/TrackValues.cs
@@ -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;
+ }
+}
diff --git a/AirScout/VersionHistory.txt b/AirScout/VersionHistory.txt
index 18b517a..295e0d8 100644
--- a/AirScout/VersionHistory.txt
+++ b/AirScout/VersionHistory.txt
@@ -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
====================
diff --git a/AirScout/WatchlistDlg.Designer.cs b/AirScout/WatchlistDlg.Designer.cs
index a8beef6..8219f8c 100644
--- a/AirScout/WatchlistDlg.Designer.cs
+++ b/AirScout/WatchlistDlg.Designer.cs
@@ -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
diff --git a/AirScout/app.config b/AirScout/app.config
index 94f48c2..d6ec38b 100644
--- a/AirScout/app.config
+++ b/AirScout/app.config
@@ -663,6 +663,63 @@ NASA/METI/AIST/Japan Spacesystems, and U.S./Japan ASTER Science Team (2019). AST
1
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ 0
+
+
+ 0
+
+
+
+
+
+ 0
+
+
+ True
+
+
+ NONE
+
+
+ NONE
+
+
+ NONE
+
+
+ 1000
+
+
+ \ScoutBase\RigData
+
+
+ False
+
+
+ False
+
diff --git a/AirScout/packages.config b/AirScout/packages.config
index 79fcfe6..00bb9da 100644
--- a/AirScout/packages.config
+++ b/AirScout/packages.config
@@ -2,5 +2,6 @@
-
+
+
\ No newline at end of file
diff --git a/AirScoutDatabaseManager/MainDlg.Designer.cs b/AirScoutDatabaseManager/MainDlg.Designer.cs
deleted file mode 100644
index c5def3d..0000000
--- a/AirScoutDatabaseManager/MainDlg.Designer.cs
+++ /dev/null
@@ -1,1423 +0,0 @@
-namespace AirScoutDatabaseManager
-{
- partial class MainDlg
- {
- ///
- /// Erforderliche Designervariable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Verwendete Ressourcen bereinigen.
- ///
- /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Vom Windows Form-Designer generierter Code
-
- ///
- /// Erforderliche Methode für die Designerunterstützung.
- /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
- ///
- private void InitializeComponent()
- {
- this.ss_Main = new System.Windows.Forms.StatusStrip();
- this.tsl_Status = new System.Windows.Forms.ToolStripStatusLabel();
- this.tc_Main = new System.Windows.Forms.TabControl();
- this.tp_General = new System.Windows.Forms.TabPage();
- this.gm_Coverage = new GMap.NET.WindowsForms.GMapControl();
- this.panel1 = new System.Windows.Forms.Panel();
- this.label35 = new System.Windows.Forms.Label();
- this.label54 = new System.Windows.Forms.Label();
- this.label59 = new System.Windows.Forms.Label();
- this.label60 = new System.Windows.Forms.Label();
- this.tp_Locations = new System.Windows.Forms.TabPage();
- this.splitContainer1 = new System.Windows.Forms.SplitContainer();
- this.dgv_Locations = new System.Windows.Forms.DataGridView();
- this.gm_Locations = new GMap.NET.WindowsForms.GMapControl();
- this.panel2 = new System.Windows.Forms.Panel();
- this.label2 = new System.Windows.Forms.Label();
- this.label1 = new System.Windows.Forms.Label();
- this.tb_Locations_Callsign_Filter = new System.Windows.Forms.TextBox();
- this.cb_Locations_ChangedOnly = new System.Windows.Forms.CheckBox();
- this.btn_Locations_Sort = new System.Windows.Forms.Button();
- this.groupBox2 = new System.Windows.Forms.GroupBox();
- this.btn_Locations_Import_USR = new System.Windows.Forms.Button();
- this.btn_Locations_Import_CSV = new System.Windows.Forms.Button();
- this.btn_Locations_Import_DTB = new System.Windows.Forms.Button();
- this.btn_Locations_Import_CALL3 = new System.Windows.Forms.Button();
- this.btn_Locations_Import_AirScout = new System.Windows.Forms.Button();
- this.btn_Locations_Export = new System.Windows.Forms.Button();
- this.btn_Locations_Save = new System.Windows.Forms.Button();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.btn_QRZ_Stop = new System.Windows.Forms.Button();
- this.btn_QRZ_Start = new System.Windows.Forms.Button();
- this.tb_Locations_Status = new System.Windows.Forms.TextBox();
- this.tp_QRV = new System.Windows.Forms.TabPage();
- this.dgv_QRV = new System.Windows.Forms.DataGridView();
- this.panel4 = new System.Windows.Forms.Panel();
- this.cb_QRV_ChangedOnly = new System.Windows.Forms.CheckBox();
- this.btn_QRV_Sort = new System.Windows.Forms.Button();
- this.btn_QRV_Export = new System.Windows.Forms.Button();
- this.btn_QRV_Save = new System.Windows.Forms.Button();
- this.label4 = new System.Windows.Forms.Label();
- this.label3 = new System.Windows.Forms.Label();
- this.tb_QRV_Callsign_Filter = new System.Windows.Forms.TextBox();
- this.tb_QRV_Status = new System.Windows.Forms.TextBox();
- this.groupBox3 = new System.Windows.Forms.GroupBox();
- this.btn_QRV_Import_EDI = new System.Windows.Forms.Button();
- this.btn_QRV_Import_WinTest = new System.Windows.Forms.Button();
- this.tp_Aircrafts = new System.Windows.Forms.TabPage();
- this.lbl_Aircrafts_UnkownHex = new System.Windows.Forms.Label();
- this.lbl_Aircrafts_UnkownType = new System.Windows.Forms.Label();
- this.lbl_Aircrafts_UnkownCall = new System.Windows.Forms.Label();
- this.lbl_Aircrafts_Total = new System.Windows.Forms.Label();
- this.label8 = new System.Windows.Forms.Label();
- this.button1 = new System.Windows.Forms.Button();
- this.btn_Update_Aircrafts_Stop = new System.Windows.Forms.Button();
- this.btn_Update_Aicrafts_Start = new System.Windows.Forms.Button();
- this.btn_Update_Airports = new System.Windows.Forms.Button();
- this.btn_Update_Airlines = new System.Windows.Forms.Button();
- this.tp_Upload = new System.Windows.Forms.TabPage();
- this.groupBox5 = new System.Windows.Forms.GroupBox();
- this.label13 = new System.Windows.Forms.Label();
- this.label12 = new System.Windows.Forms.Label();
- this.label11 = new System.Windows.Forms.Label();
- this.btn_StationDatabase_Export = new System.Windows.Forms.Button();
- this.label10 = new System.Windows.Forms.Label();
- this.label9 = new System.Windows.Forms.Label();
- this.tp_Extras = new System.Windows.Forms.TabPage();
- this.groupBox4 = new System.Windows.Forms.GroupBox();
- this.btn_SFTP_GenarateFile = new System.Windows.Forms.Button();
- this.label7 = new System.Windows.Forms.Label();
- this.label6 = new System.Windows.Forms.Label();
- this.label5 = new System.Windows.Forms.Label();
- this.bw_QRZ = new System.ComponentModel.BackgroundWorker();
- this.bw_DatabaseUpdater = new System.ComponentModel.BackgroundWorker();
- this.bw_AircraftUpdater = new System.ComponentModel.BackgroundWorker();
- this.groupBox6 = new System.Windows.Forms.GroupBox();
- this.label14 = new System.Windows.Forms.Label();
- this.label15 = new System.Windows.Forms.Label();
- this.label16 = new System.Windows.Forms.Label();
- this.btn_AircraftDatabase_Export = new System.Windows.Forms.Button();
- this.label17 = new System.Windows.Forms.Label();
- this.label18 = new System.Windows.Forms.Label();
- this.tb_Coverage_MaxLat = new ScoutBase.Core.DoubleTextBox();
- this.tb_Coverage_MinLat = new ScoutBase.Core.DoubleTextBox();
- this.tb_Coverage_MaxLon = new ScoutBase.Core.DoubleTextBox();
- this.tb_Coverage_MinLon = new ScoutBase.Core.DoubleTextBox();
- this.tb_Update_Aircrafts = new System.Windows.Forms.TextBox();
- this.tb_Update_Airports = new System.Windows.Forms.TextBox();
- this.tb_Update_Airlines = new System.Windows.Forms.TextBox();
- this.tb_AircraftDatabase_RemoteHost = new System.Windows.Forms.TextBox();
- this.tb_AircraftDatabase_Password = new System.Windows.Forms.TextBox();
- this.tb_AircraftDatabase_User = new System.Windows.Forms.TextBox();
- this.tb_AircraftDatabase_RemoteDir = new System.Windows.Forms.TextBox();
- this.tb_AircraftDabase_LocalDir = new System.Windows.Forms.TextBox();
- this.tb_StationDatabase_RemoteHost = new System.Windows.Forms.TextBox();
- this.tb_StationDatabase_Export_Password = new System.Windows.Forms.TextBox();
- this.tb_StationDatabase_Export_User = new System.Windows.Forms.TextBox();
- this.tb_StationDatabase_RemoteDir = new System.Windows.Forms.TextBox();
- this.tb_StationDatabase_LocalDir = new System.Windows.Forms.TextBox();
- this.tb_SFTP_Password = new System.Windows.Forms.TextBox();
- this.tb_SFTP_User = new System.Windows.Forms.TextBox();
- this.tb_SFTP_URL = new System.Windows.Forms.TextBox();
- this.ss_Main.SuspendLayout();
- this.tc_Main.SuspendLayout();
- this.tp_General.SuspendLayout();
- this.panel1.SuspendLayout();
- this.tp_Locations.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
- this.splitContainer1.Panel1.SuspendLayout();
- this.splitContainer1.Panel2.SuspendLayout();
- this.splitContainer1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.dgv_Locations)).BeginInit();
- this.panel2.SuspendLayout();
- this.groupBox2.SuspendLayout();
- this.groupBox1.SuspendLayout();
- this.tp_QRV.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.dgv_QRV)).BeginInit();
- this.panel4.SuspendLayout();
- this.groupBox3.SuspendLayout();
- this.tp_Aircrafts.SuspendLayout();
- this.tp_Upload.SuspendLayout();
- this.groupBox5.SuspendLayout();
- this.tp_Extras.SuspendLayout();
- this.groupBox4.SuspendLayout();
- this.groupBox6.SuspendLayout();
- this.SuspendLayout();
- //
- // ss_Main
- //
- this.ss_Main.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.tsl_Status});
- this.ss_Main.Location = new System.Drawing.Point(0, 575);
- this.ss_Main.Name = "ss_Main";
- this.ss_Main.Size = new System.Drawing.Size(1106, 22);
- this.ss_Main.TabIndex = 0;
- this.ss_Main.Text = "statusStrip1";
- //
- // tsl_Status
- //
- this.tsl_Status.Name = "tsl_Status";
- this.tsl_Status.Size = new System.Drawing.Size(39, 17);
- this.tsl_Status.Text = "Status";
- //
- // tc_Main
- //
- this.tc_Main.Controls.Add(this.tp_General);
- this.tc_Main.Controls.Add(this.tp_Locations);
- this.tc_Main.Controls.Add(this.tp_QRV);
- this.tc_Main.Controls.Add(this.tp_Aircrafts);
- this.tc_Main.Controls.Add(this.tp_Upload);
- this.tc_Main.Controls.Add(this.tp_Extras);
- this.tc_Main.Dock = System.Windows.Forms.DockStyle.Fill;
- this.tc_Main.Location = new System.Drawing.Point(0, 0);
- this.tc_Main.Name = "tc_Main";
- this.tc_Main.SelectedIndex = 0;
- this.tc_Main.Size = new System.Drawing.Size(1106, 575);
- this.tc_Main.TabIndex = 1;
- //
- // tp_General
- //
- this.tp_General.BackColor = System.Drawing.SystemColors.Control;
- this.tp_General.Controls.Add(this.gm_Coverage);
- this.tp_General.Controls.Add(this.panel1);
- this.tp_General.Location = new System.Drawing.Point(4, 22);
- this.tp_General.Name = "tp_General";
- this.tp_General.Padding = new System.Windows.Forms.Padding(3);
- this.tp_General.Size = new System.Drawing.Size(1098, 549);
- this.tp_General.TabIndex = 0;
- this.tp_General.Text = "General";
- this.tp_General.Enter += new System.EventHandler(this.tp_General_Enter);
- //
- // gm_Coverage
- //
- this.gm_Coverage.Bearing = 0F;
- this.gm_Coverage.CanDragMap = true;
- this.gm_Coverage.Dock = System.Windows.Forms.DockStyle.Fill;
- this.gm_Coverage.EmptyTileColor = System.Drawing.Color.Navy;
- this.gm_Coverage.GrayScaleMode = false;
- this.gm_Coverage.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
- this.gm_Coverage.LevelsKeepInMemmory = 5;
- this.gm_Coverage.Location = new System.Drawing.Point(3, 3);
- this.gm_Coverage.MarkersEnabled = true;
- this.gm_Coverage.MaxZoom = 2;
- this.gm_Coverage.MinZoom = 2;
- this.gm_Coverage.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
- this.gm_Coverage.Name = "gm_Coverage";
- this.gm_Coverage.NegativeMode = false;
- this.gm_Coverage.PolygonsEnabled = true;
- this.gm_Coverage.RetryLoadTile = 0;
- this.gm_Coverage.RoutesEnabled = true;
- this.gm_Coverage.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
- this.gm_Coverage.ShowTileGridLines = false;
- this.gm_Coverage.Size = new System.Drawing.Size(917, 543);
- this.gm_Coverage.TabIndex = 1;
- this.gm_Coverage.Zoom = 0D;
- //
- // panel1
- //
- this.panel1.Controls.Add(this.tb_Coverage_MaxLat);
- this.panel1.Controls.Add(this.tb_Coverage_MinLat);
- this.panel1.Controls.Add(this.tb_Coverage_MaxLon);
- this.panel1.Controls.Add(this.tb_Coverage_MinLon);
- this.panel1.Controls.Add(this.label35);
- this.panel1.Controls.Add(this.label54);
- this.panel1.Controls.Add(this.label59);
- this.panel1.Controls.Add(this.label60);
- this.panel1.Dock = System.Windows.Forms.DockStyle.Right;
- this.panel1.Location = new System.Drawing.Point(920, 3);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(175, 543);
- this.panel1.TabIndex = 0;
- //
- // label35
- //
- this.label35.AutoSize = true;
- this.label35.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label35.Location = new System.Drawing.Point(19, 109);
- this.label35.Name = "label35";
- this.label35.Size = new System.Drawing.Size(74, 13);
- this.label35.TabIndex = 32;
- this.label35.Text = "Max. Latitude:";
- //
- // label54
- //
- this.label54.AutoSize = true;
- this.label54.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label54.Location = new System.Drawing.Point(19, 83);
- this.label54.Name = "label54";
- this.label54.Size = new System.Drawing.Size(71, 13);
- this.label54.TabIndex = 31;
- this.label54.Text = "Min. Latitude:";
- //
- // label59
- //
- this.label59.AutoSize = true;
- this.label59.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label59.Location = new System.Drawing.Point(19, 56);
- this.label59.Name = "label59";
- this.label59.Size = new System.Drawing.Size(83, 13);
- this.label59.TabIndex = 30;
- this.label59.Text = "Max. Longitude:";
- //
- // label60
- //
- this.label60.AutoSize = true;
- this.label60.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label60.Location = new System.Drawing.Point(19, 30);
- this.label60.Name = "label60";
- this.label60.Size = new System.Drawing.Size(80, 13);
- this.label60.TabIndex = 29;
- this.label60.Text = "Min. Longitude:";
- //
- // tp_Locations
- //
- this.tp_Locations.BackColor = System.Drawing.SystemColors.Control;
- this.tp_Locations.Controls.Add(this.splitContainer1);
- this.tp_Locations.Controls.Add(this.panel2);
- this.tp_Locations.Location = new System.Drawing.Point(4, 22);
- this.tp_Locations.Name = "tp_Locations";
- this.tp_Locations.Padding = new System.Windows.Forms.Padding(3);
- this.tp_Locations.Size = new System.Drawing.Size(1098, 549);
- this.tp_Locations.TabIndex = 1;
- this.tp_Locations.Text = "Locations";
- this.tp_Locations.Enter += new System.EventHandler(this.tp_Locations_Enter);
- //
- // splitContainer1
- //
- this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.splitContainer1.Location = new System.Drawing.Point(3, 3);
- this.splitContainer1.Name = "splitContainer1";
- //
- // splitContainer1.Panel1
- //
- this.splitContainer1.Panel1.Controls.Add(this.dgv_Locations);
- //
- // splitContainer1.Panel2
- //
- this.splitContainer1.Panel2.Controls.Add(this.gm_Locations);
- this.splitContainer1.Size = new System.Drawing.Size(1092, 414);
- this.splitContainer1.SplitterDistance = 363;
- this.splitContainer1.TabIndex = 3;
- //
- // dgv_Locations
- //
- this.dgv_Locations.AllowUserToResizeRows = false;
- this.dgv_Locations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- this.dgv_Locations.Dock = System.Windows.Forms.DockStyle.Fill;
- this.dgv_Locations.Location = new System.Drawing.Point(0, 0);
- this.dgv_Locations.Name = "dgv_Locations";
- this.dgv_Locations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
- this.dgv_Locations.Size = new System.Drawing.Size(363, 414);
- this.dgv_Locations.TabIndex = 1;
- this.dgv_Locations.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgv_Locations_CellFormatting);
- this.dgv_Locations.SelectionChanged += new System.EventHandler(this.dgv_Locations_SelectionChanged);
- //
- // gm_Locations
- //
- this.gm_Locations.Bearing = 0F;
- this.gm_Locations.CanDragMap = true;
- this.gm_Locations.Dock = System.Windows.Forms.DockStyle.Fill;
- this.gm_Locations.EmptyTileColor = System.Drawing.Color.Navy;
- this.gm_Locations.GrayScaleMode = false;
- this.gm_Locations.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
- this.gm_Locations.LevelsKeepInMemmory = 5;
- this.gm_Locations.Location = new System.Drawing.Point(0, 0);
- this.gm_Locations.MarkersEnabled = true;
- this.gm_Locations.MaxZoom = 2;
- this.gm_Locations.MinZoom = 2;
- this.gm_Locations.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
- this.gm_Locations.Name = "gm_Locations";
- this.gm_Locations.NegativeMode = false;
- this.gm_Locations.PolygonsEnabled = true;
- this.gm_Locations.RetryLoadTile = 0;
- this.gm_Locations.RoutesEnabled = true;
- this.gm_Locations.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
- this.gm_Locations.ShowTileGridLines = false;
- this.gm_Locations.Size = new System.Drawing.Size(725, 414);
- this.gm_Locations.TabIndex = 2;
- this.gm_Locations.Zoom = 0D;
- this.gm_Locations.OnMarkerEnter += new GMap.NET.WindowsForms.MarkerEnter(this.gm_Locations_OnMarkerEnter);
- this.gm_Locations.OnMarkerLeave += new GMap.NET.WindowsForms.MarkerLeave(this.gm_Locations_OnMarkerLeave);
- this.gm_Locations.MouseDown += new System.Windows.Forms.MouseEventHandler(this.gm_Locations_MouseDown);
- this.gm_Locations.MouseMove += new System.Windows.Forms.MouseEventHandler(this.gm_Locations_MouseMove);
- this.gm_Locations.MouseUp += new System.Windows.Forms.MouseEventHandler(this.gm_Locations_MouseUp);
- //
- // panel2
- //
- this.panel2.Controls.Add(this.label2);
- this.panel2.Controls.Add(this.label1);
- this.panel2.Controls.Add(this.tb_Locations_Callsign_Filter);
- this.panel2.Controls.Add(this.cb_Locations_ChangedOnly);
- this.panel2.Controls.Add(this.btn_Locations_Sort);
- this.panel2.Controls.Add(this.groupBox2);
- this.panel2.Controls.Add(this.btn_Locations_Export);
- this.panel2.Controls.Add(this.btn_Locations_Save);
- this.panel2.Controls.Add(this.groupBox1);
- this.panel2.Controls.Add(this.tb_Locations_Status);
- this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.panel2.Location = new System.Drawing.Point(3, 417);
- this.panel2.Name = "panel2";
- this.panel2.Size = new System.Drawing.Size(1092, 129);
- this.panel2.TabIndex = 0;
- //
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(668, 12);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(68, 13);
- this.label2.TabIndex = 10;
- this.label2.Text = "Callsign Filter";
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(17, 12);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(37, 13);
- this.label1.TabIndex = 9;
- this.label1.Text = "Status";
- //
- // tb_Locations_Callsign_Filter
- //
- this.tb_Locations_Callsign_Filter.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
- this.tb_Locations_Callsign_Filter.Location = new System.Drawing.Point(671, 36);
- this.tb_Locations_Callsign_Filter.Name = "tb_Locations_Callsign_Filter";
- this.tb_Locations_Callsign_Filter.Size = new System.Drawing.Size(100, 20);
- this.tb_Locations_Callsign_Filter.TabIndex = 8;
- this.tb_Locations_Callsign_Filter.TextChanged += new System.EventHandler(this.tb_Locations_Callsign_Filter_TextChanged);
- //
- // cb_Locations_ChangedOnly
- //
- this.cb_Locations_ChangedOnly.AutoSize = true;
- this.cb_Locations_ChangedOnly.Location = new System.Drawing.Point(797, 38);
- this.cb_Locations_ChangedOnly.Name = "cb_Locations_ChangedOnly";
- this.cb_Locations_ChangedOnly.Size = new System.Drawing.Size(145, 17);
- this.cb_Locations_ChangedOnly.TabIndex = 7;
- this.cb_Locations_ChangedOnly.Text = "Show changed rows only";
- this.cb_Locations_ChangedOnly.UseVisualStyleBackColor = true;
- this.cb_Locations_ChangedOnly.CheckedChanged += new System.EventHandler(this.cb_Locations_ChangedOnly_CheckedChanged);
- //
- // btn_Locations_Sort
- //
- this.btn_Locations_Sort.Location = new System.Drawing.Point(735, 94);
- this.btn_Locations_Sort.Name = "btn_Locations_Sort";
- this.btn_Locations_Sort.Size = new System.Drawing.Size(75, 23);
- this.btn_Locations_Sort.TabIndex = 6;
- this.btn_Locations_Sort.Text = "Sort";
- this.btn_Locations_Sort.UseVisualStyleBackColor = true;
- this.btn_Locations_Sort.Click += new System.EventHandler(this.btn_Locations_Sort_Click);
- //
- // groupBox2
- //
- this.groupBox2.Controls.Add(this.btn_Locations_Import_USR);
- this.groupBox2.Controls.Add(this.btn_Locations_Import_CSV);
- this.groupBox2.Controls.Add(this.btn_Locations_Import_DTB);
- this.groupBox2.Controls.Add(this.btn_Locations_Import_CALL3);
- this.groupBox2.Controls.Add(this.btn_Locations_Import_AirScout);
- this.groupBox2.Location = new System.Drawing.Point(188, 68);
- this.groupBox2.Name = "groupBox2";
- this.groupBox2.Size = new System.Drawing.Size(531, 55);
- this.groupBox2.TabIndex = 5;
- this.groupBox2.TabStop = false;
- this.groupBox2.Text = "Import";
- //
- // btn_Locations_Import_USR
- //
- this.btn_Locations_Import_USR.Location = new System.Drawing.Point(113, 26);
- this.btn_Locations_Import_USR.Name = "btn_Locations_Import_USR";
- this.btn_Locations_Import_USR.Size = new System.Drawing.Size(92, 23);
- this.btn_Locations_Import_USR.TabIndex = 4;
- this.btn_Locations_Import_USR.Text = "AirScout (USR)";
- this.btn_Locations_Import_USR.UseVisualStyleBackColor = true;
- this.btn_Locations_Import_USR.Click += new System.EventHandler(this.btn_Locations_Import_USR_Click);
- //
- // btn_Locations_Import_CSV
- //
- this.btn_Locations_Import_CSV.Location = new System.Drawing.Point(432, 26);
- this.btn_Locations_Import_CSV.Name = "btn_Locations_Import_CSV";
- this.btn_Locations_Import_CSV.Size = new System.Drawing.Size(93, 23);
- this.btn_Locations_Import_CSV.TabIndex = 3;
- this.btn_Locations_Import_CSV.Text = "LOC (CSV)";
- this.btn_Locations_Import_CSV.UseVisualStyleBackColor = true;
- this.btn_Locations_Import_CSV.Click += new System.EventHandler(this.btn_Locations_Import_CSV_Click);
- //
- // btn_Locations_Import_DTB
- //
- this.btn_Locations_Import_DTB.Location = new System.Drawing.Point(333, 26);
- this.btn_Locations_Import_DTB.Name = "btn_Locations_Import_DTB";
- this.btn_Locations_Import_DTB.Size = new System.Drawing.Size(93, 23);
- this.btn_Locations_Import_DTB.TabIndex = 2;
- this.btn_Locations_Import_DTB.Text = "DTB (Win-Test)";
- this.btn_Locations_Import_DTB.UseVisualStyleBackColor = true;
- this.btn_Locations_Import_DTB.Click += new System.EventHandler(this.btn_Locations_Import_DTB_Click);
- //
- // btn_Locations_Import_CALL3
- //
- this.btn_Locations_Import_CALL3.Location = new System.Drawing.Point(239, 26);
- this.btn_Locations_Import_CALL3.Name = "btn_Locations_Import_CALL3";
- this.btn_Locations_Import_CALL3.Size = new System.Drawing.Size(88, 23);
- this.btn_Locations_Import_CALL3.TabIndex = 1;
- this.btn_Locations_Import_CALL3.Text = "CALL3 (WSJT)";
- this.btn_Locations_Import_CALL3.UseVisualStyleBackColor = true;
- this.btn_Locations_Import_CALL3.Click += new System.EventHandler(this.btn_Locations_Import_CALL3_Click);
- //
- // btn_Locations_Import_AirScout
- //
- this.btn_Locations_Import_AirScout.Location = new System.Drawing.Point(15, 26);
- this.btn_Locations_Import_AirScout.Name = "btn_Locations_Import_AirScout";
- this.btn_Locations_Import_AirScout.Size = new System.Drawing.Size(92, 23);
- this.btn_Locations_Import_AirScout.TabIndex = 0;
- this.btn_Locations_Import_AirScout.Text = "AirScout (TXT)";
- this.btn_Locations_Import_AirScout.UseVisualStyleBackColor = true;
- this.btn_Locations_Import_AirScout.Click += new System.EventHandler(this.btn_Locations_Import_AirScout_Click);
- //
- // btn_Locations_Export
- //
- this.btn_Locations_Export.Location = new System.Drawing.Point(897, 94);
- this.btn_Locations_Export.Name = "btn_Locations_Export";
- this.btn_Locations_Export.Size = new System.Drawing.Size(75, 23);
- this.btn_Locations_Export.TabIndex = 4;
- this.btn_Locations_Export.Text = "Export";
- this.btn_Locations_Export.UseVisualStyleBackColor = true;
- this.btn_Locations_Export.Click += new System.EventHandler(this.btn_Locations_Export_Click);
- //
- // btn_Locations_Save
- //
- this.btn_Locations_Save.Location = new System.Drawing.Point(816, 94);
- this.btn_Locations_Save.Name = "btn_Locations_Save";
- this.btn_Locations_Save.Size = new System.Drawing.Size(75, 23);
- this.btn_Locations_Save.TabIndex = 3;
- this.btn_Locations_Save.Text = "Save";
- this.btn_Locations_Save.UseVisualStyleBackColor = true;
- this.btn_Locations_Save.Click += new System.EventHandler(this.btn_Locations_Save_Click);
- //
- // groupBox1
- //
- this.groupBox1.Controls.Add(this.btn_QRZ_Stop);
- this.groupBox1.Controls.Add(this.btn_QRZ_Start);
- this.groupBox1.Location = new System.Drawing.Point(5, 68);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(177, 55);
- this.groupBox1.TabIndex = 0;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "QRZ.COM Update";
- //
- // btn_QRZ_Stop
- //
- this.btn_QRZ_Stop.Location = new System.Drawing.Point(96, 26);
- this.btn_QRZ_Stop.Name = "btn_QRZ_Stop";
- this.btn_QRZ_Stop.Size = new System.Drawing.Size(75, 23);
- this.btn_QRZ_Stop.TabIndex = 1;
- this.btn_QRZ_Stop.Text = "Stop";
- this.btn_QRZ_Stop.UseVisualStyleBackColor = true;
- this.btn_QRZ_Stop.Click += new System.EventHandler(this.btn_QRZ_Stop_Click);
- //
- // btn_QRZ_Start
- //
- this.btn_QRZ_Start.Location = new System.Drawing.Point(15, 26);
- this.btn_QRZ_Start.Name = "btn_QRZ_Start";
- this.btn_QRZ_Start.Size = new System.Drawing.Size(75, 23);
- this.btn_QRZ_Start.TabIndex = 0;
- this.btn_QRZ_Start.Text = "Start";
- this.btn_QRZ_Start.UseVisualStyleBackColor = true;
- this.btn_QRZ_Start.Click += new System.EventHandler(this.btn_QRZ_Start_Click);
- //
- // tb_Locations_Status
- //
- this.tb_Locations_Status.Location = new System.Drawing.Point(20, 35);
- this.tb_Locations_Status.Name = "tb_Locations_Status";
- this.tb_Locations_Status.ReadOnly = true;
- this.tb_Locations_Status.Size = new System.Drawing.Size(608, 20);
- this.tb_Locations_Status.TabIndex = 2;
- //
- // tp_QRV
- //
- this.tp_QRV.Controls.Add(this.dgv_QRV);
- this.tp_QRV.Controls.Add(this.panel4);
- this.tp_QRV.Location = new System.Drawing.Point(4, 22);
- this.tp_QRV.Name = "tp_QRV";
- this.tp_QRV.Size = new System.Drawing.Size(1098, 549);
- this.tp_QRV.TabIndex = 2;
- this.tp_QRV.Text = "QRV";
- this.tp_QRV.UseVisualStyleBackColor = true;
- this.tp_QRV.Enter += new System.EventHandler(this.tp_QRV_Enter);
- //
- // dgv_QRV
- //
- this.dgv_QRV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- this.dgv_QRV.Dock = System.Windows.Forms.DockStyle.Fill;
- this.dgv_QRV.Location = new System.Drawing.Point(0, 0);
- this.dgv_QRV.Name = "dgv_QRV";
- this.dgv_QRV.Size = new System.Drawing.Size(1098, 404);
- this.dgv_QRV.TabIndex = 2;
- this.dgv_QRV.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_QRV_CellEndEdit);
- this.dgv_QRV.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgv_QRV_CellFormatting);
- this.dgv_QRV.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_QRV_CellValueChanged);
- //
- // panel4
- //
- this.panel4.BackColor = System.Drawing.SystemColors.ControlLight;
- this.panel4.Controls.Add(this.cb_QRV_ChangedOnly);
- this.panel4.Controls.Add(this.btn_QRV_Sort);
- this.panel4.Controls.Add(this.btn_QRV_Export);
- this.panel4.Controls.Add(this.btn_QRV_Save);
- this.panel4.Controls.Add(this.label4);
- this.panel4.Controls.Add(this.label3);
- this.panel4.Controls.Add(this.tb_QRV_Callsign_Filter);
- this.panel4.Controls.Add(this.tb_QRV_Status);
- this.panel4.Controls.Add(this.groupBox3);
- this.panel4.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.panel4.Location = new System.Drawing.Point(0, 404);
- this.panel4.Name = "panel4";
- this.panel4.Size = new System.Drawing.Size(1098, 145);
- this.panel4.TabIndex = 1;
- //
- // cb_QRV_ChangedOnly
- //
- this.cb_QRV_ChangedOnly.AutoSize = true;
- this.cb_QRV_ChangedOnly.Location = new System.Drawing.Point(799, 38);
- this.cb_QRV_ChangedOnly.Name = "cb_QRV_ChangedOnly";
- this.cb_QRV_ChangedOnly.Size = new System.Drawing.Size(145, 17);
- this.cb_QRV_ChangedOnly.TabIndex = 10;
- this.cb_QRV_ChangedOnly.Text = "Show changed rows only";
- this.cb_QRV_ChangedOnly.UseVisualStyleBackColor = true;
- this.cb_QRV_ChangedOnly.CheckedChanged += new System.EventHandler(this.cb_QRV_ChangedOnly_CheckedChanged);
- //
- // btn_QRV_Sort
- //
- this.btn_QRV_Sort.Location = new System.Drawing.Point(707, 99);
- this.btn_QRV_Sort.Name = "btn_QRV_Sort";
- this.btn_QRV_Sort.Size = new System.Drawing.Size(75, 23);
- this.btn_QRV_Sort.TabIndex = 9;
- this.btn_QRV_Sort.Text = "Sort";
- this.btn_QRV_Sort.UseVisualStyleBackColor = true;
- this.btn_QRV_Sort.Click += new System.EventHandler(this.btn_QRV_Sort_Click);
- //
- // btn_QRV_Export
- //
- this.btn_QRV_Export.Location = new System.Drawing.Point(869, 99);
- this.btn_QRV_Export.Name = "btn_QRV_Export";
- this.btn_QRV_Export.Size = new System.Drawing.Size(75, 23);
- this.btn_QRV_Export.TabIndex = 8;
- this.btn_QRV_Export.Text = "Export";
- this.btn_QRV_Export.UseVisualStyleBackColor = true;
- this.btn_QRV_Export.Click += new System.EventHandler(this.btn_QRV_Export_Click);
- //
- // btn_QRV_Save
- //
- this.btn_QRV_Save.Location = new System.Drawing.Point(788, 99);
- this.btn_QRV_Save.Name = "btn_QRV_Save";
- this.btn_QRV_Save.Size = new System.Drawing.Size(75, 23);
- this.btn_QRV_Save.TabIndex = 7;
- this.btn_QRV_Save.Text = "Save";
- this.btn_QRV_Save.UseVisualStyleBackColor = true;
- this.btn_QRV_Save.Click += new System.EventHandler(this.btn_QRV_Save_Click);
- //
- // label4
- //
- this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(628, 12);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(68, 13);
- this.label4.TabIndex = 4;
- this.label4.Text = "Callsign Filter";
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(11, 12);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(37, 13);
- this.label3.TabIndex = 3;
- this.label3.Text = "Status";
- //
- // tb_QRV_Callsign_Filter
- //
- this.tb_QRV_Callsign_Filter.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
- this.tb_QRV_Callsign_Filter.Location = new System.Drawing.Point(631, 38);
- this.tb_QRV_Callsign_Filter.Name = "tb_QRV_Callsign_Filter";
- this.tb_QRV_Callsign_Filter.Size = new System.Drawing.Size(100, 20);
- this.tb_QRV_Callsign_Filter.TabIndex = 2;
- this.tb_QRV_Callsign_Filter.TextChanged += new System.EventHandler(this.tb_QRV_Callsign_Filter_TextChanged);
- //
- // tb_QRV_Status
- //
- this.tb_QRV_Status.Location = new System.Drawing.Point(14, 38);
- this.tb_QRV_Status.Name = "tb_QRV_Status";
- this.tb_QRV_Status.ReadOnly = true;
- this.tb_QRV_Status.Size = new System.Drawing.Size(485, 20);
- this.tb_QRV_Status.TabIndex = 1;
- //
- // groupBox3
- //
- this.groupBox3.Controls.Add(this.btn_QRV_Import_EDI);
- this.groupBox3.Controls.Add(this.btn_QRV_Import_WinTest);
- this.groupBox3.Location = new System.Drawing.Point(8, 76);
- this.groupBox3.Name = "groupBox3";
- this.groupBox3.Size = new System.Drawing.Size(284, 52);
- this.groupBox3.TabIndex = 0;
- this.groupBox3.TabStop = false;
- this.groupBox3.Text = "Import";
- //
- // btn_QRV_Import_EDI
- //
- this.btn_QRV_Import_EDI.Location = new System.Drawing.Point(87, 23);
- this.btn_QRV_Import_EDI.Name = "btn_QRV_Import_EDI";
- this.btn_QRV_Import_EDI.Size = new System.Drawing.Size(75, 23);
- this.btn_QRV_Import_EDI.TabIndex = 1;
- this.btn_QRV_Import_EDI.Text = "EDI";
- this.btn_QRV_Import_EDI.UseVisualStyleBackColor = true;
- this.btn_QRV_Import_EDI.Click += new System.EventHandler(this.btn_QRV_Import_EDI_Click);
- //
- // btn_QRV_Import_WinTest
- //
- this.btn_QRV_Import_WinTest.Location = new System.Drawing.Point(6, 23);
- this.btn_QRV_Import_WinTest.Name = "btn_QRV_Import_WinTest";
- this.btn_QRV_Import_WinTest.Size = new System.Drawing.Size(75, 23);
- this.btn_QRV_Import_WinTest.TabIndex = 0;
- this.btn_QRV_Import_WinTest.Text = "Win-Test (QRV)";
- this.btn_QRV_Import_WinTest.UseVisualStyleBackColor = true;
- this.btn_QRV_Import_WinTest.Click += new System.EventHandler(this.btn_QRV_Import_WinTest_Click);
- //
- // tp_Aircrafts
- //
- this.tp_Aircrafts.BackColor = System.Drawing.SystemColors.Control;
- this.tp_Aircrafts.Controls.Add(this.lbl_Aircrafts_UnkownHex);
- this.tp_Aircrafts.Controls.Add(this.lbl_Aircrafts_UnkownType);
- this.tp_Aircrafts.Controls.Add(this.lbl_Aircrafts_UnkownCall);
- this.tp_Aircrafts.Controls.Add(this.lbl_Aircrafts_Total);
- this.tp_Aircrafts.Controls.Add(this.label8);
- this.tp_Aircrafts.Controls.Add(this.button1);
- this.tp_Aircrafts.Controls.Add(this.btn_Update_Aircrafts_Stop);
- this.tp_Aircrafts.Controls.Add(this.btn_Update_Aicrafts_Start);
- this.tp_Aircrafts.Controls.Add(this.btn_Update_Airports);
- this.tp_Aircrafts.Controls.Add(this.btn_Update_Airlines);
- this.tp_Aircrafts.Controls.Add(this.tb_Update_Aircrafts);
- this.tp_Aircrafts.Controls.Add(this.tb_Update_Airports);
- this.tp_Aircrafts.Controls.Add(this.tb_Update_Airlines);
- this.tp_Aircrafts.Location = new System.Drawing.Point(4, 22);
- this.tp_Aircrafts.Name = "tp_Aircrafts";
- this.tp_Aircrafts.Size = new System.Drawing.Size(1098, 549);
- this.tp_Aircrafts.TabIndex = 4;
- this.tp_Aircrafts.Text = "Aircrafts";
- this.tp_Aircrafts.Enter += new System.EventHandler(this.tp_Aircrafts_Enter);
- //
- // lbl_Aircrafts_UnkownHex
- //
- this.lbl_Aircrafts_UnkownHex.AutoSize = true;
- this.lbl_Aircrafts_UnkownHex.Location = new System.Drawing.Point(330, 133);
- this.lbl_Aircrafts_UnkownHex.Name = "lbl_Aircrafts_UnkownHex";
- this.lbl_Aircrafts_UnkownHex.Size = new System.Drawing.Size(30, 13);
- this.lbl_Aircrafts_UnkownHex.TabIndex = 12;
- this.lbl_Aircrafts_UnkownHex.Text = "total:";
- //
- // lbl_Aircrafts_UnkownType
- //
- this.lbl_Aircrafts_UnkownType.AutoSize = true;
- this.lbl_Aircrafts_UnkownType.Location = new System.Drawing.Point(738, 133);
- this.lbl_Aircrafts_UnkownType.Name = "lbl_Aircrafts_UnkownType";
- this.lbl_Aircrafts_UnkownType.Size = new System.Drawing.Size(30, 13);
- this.lbl_Aircrafts_UnkownType.TabIndex = 11;
- this.lbl_Aircrafts_UnkownType.Text = "total:";
- //
- // lbl_Aircrafts_UnkownCall
- //
- this.lbl_Aircrafts_UnkownCall.AutoSize = true;
- this.lbl_Aircrafts_UnkownCall.Location = new System.Drawing.Point(517, 133);
- this.lbl_Aircrafts_UnkownCall.Name = "lbl_Aircrafts_UnkownCall";
- this.lbl_Aircrafts_UnkownCall.Size = new System.Drawing.Size(30, 13);
- this.lbl_Aircrafts_UnkownCall.TabIndex = 10;
- this.lbl_Aircrafts_UnkownCall.Text = "total:";
- //
- // lbl_Aircrafts_Total
- //
- this.lbl_Aircrafts_Total.AutoSize = true;
- this.lbl_Aircrafts_Total.Location = new System.Drawing.Point(161, 133);
- this.lbl_Aircrafts_Total.Name = "lbl_Aircrafts_Total";
- this.lbl_Aircrafts_Total.Size = new System.Drawing.Size(30, 13);
- this.lbl_Aircrafts_Total.TabIndex = 9;
- this.lbl_Aircrafts_Total.Text = "total:";
- //
- // label8
- //
- this.label8.AutoSize = true;
- this.label8.Location = new System.Drawing.Point(8, 133);
- this.label8.Name = "label8";
- this.label8.Size = new System.Drawing.Size(134, 13);
- this.label8.TabIndex = 8;
- this.label8.Text = "Aircraft Database Statistics";
- //
- // button1
- //
- this.button1.Enabled = false;
- this.button1.Location = new System.Drawing.Point(8, 96);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(150, 23);
- this.button1.TabIndex = 6;
- this.button1.Text = "Update Aircrafts";
- this.button1.UseVisualStyleBackColor = true;
- //
- // btn_Update_Aircrafts_Stop
- //
- this.btn_Update_Aircrafts_Stop.Location = new System.Drawing.Point(1001, 96);
- this.btn_Update_Aircrafts_Stop.Name = "btn_Update_Aircrafts_Stop";
- this.btn_Update_Aircrafts_Stop.Size = new System.Drawing.Size(75, 23);
- this.btn_Update_Aircrafts_Stop.TabIndex = 5;
- this.btn_Update_Aircrafts_Stop.Text = "Stop";
- this.btn_Update_Aircrafts_Stop.UseVisualStyleBackColor = true;
- this.btn_Update_Aircrafts_Stop.Click += new System.EventHandler(this.btn_Update_Aircrafts_Stop_Click);
- //
- // btn_Update_Aicrafts_Start
- //
- this.btn_Update_Aicrafts_Start.Location = new System.Drawing.Point(906, 96);
- this.btn_Update_Aicrafts_Start.Name = "btn_Update_Aicrafts_Start";
- this.btn_Update_Aicrafts_Start.Size = new System.Drawing.Size(75, 23);
- this.btn_Update_Aicrafts_Start.TabIndex = 4;
- this.btn_Update_Aicrafts_Start.Text = "Start";
- this.btn_Update_Aicrafts_Start.UseVisualStyleBackColor = true;
- this.btn_Update_Aicrafts_Start.Click += new System.EventHandler(this.btn_Update_Aicrafts_Start_Click);
- //
- // btn_Update_Airports
- //
- this.btn_Update_Airports.Location = new System.Drawing.Point(8, 50);
- this.btn_Update_Airports.Name = "btn_Update_Airports";
- this.btn_Update_Airports.Size = new System.Drawing.Size(150, 23);
- this.btn_Update_Airports.TabIndex = 2;
- this.btn_Update_Airports.Text = "Update Airports";
- this.btn_Update_Airports.UseVisualStyleBackColor = true;
- this.btn_Update_Airports.Click += new System.EventHandler(this.btn_Update_Airports_Click);
- //
- // btn_Update_Airlines
- //
- this.btn_Update_Airlines.Location = new System.Drawing.Point(8, 21);
- this.btn_Update_Airlines.Name = "btn_Update_Airlines";
- this.btn_Update_Airlines.Size = new System.Drawing.Size(150, 23);
- this.btn_Update_Airlines.TabIndex = 0;
- this.btn_Update_Airlines.Text = "Update Airlines";
- this.btn_Update_Airlines.UseVisualStyleBackColor = true;
- this.btn_Update_Airlines.Click += new System.EventHandler(this.btn_Update_Airlines_Click);
- //
- // tp_Upload
- //
- this.tp_Upload.BackColor = System.Drawing.SystemColors.Control;
- this.tp_Upload.Controls.Add(this.groupBox6);
- this.tp_Upload.Controls.Add(this.groupBox5);
- this.tp_Upload.Location = new System.Drawing.Point(4, 22);
- this.tp_Upload.Name = "tp_Upload";
- this.tp_Upload.Size = new System.Drawing.Size(1098, 549);
- this.tp_Upload.TabIndex = 5;
- this.tp_Upload.Text = "Upload";
- //
- // groupBox5
- //
- this.groupBox5.Controls.Add(this.tb_StationDatabase_RemoteHost);
- this.groupBox5.Controls.Add(this.label13);
- this.groupBox5.Controls.Add(this.tb_StationDatabase_Export_Password);
- this.groupBox5.Controls.Add(this.label12);
- this.groupBox5.Controls.Add(this.tb_StationDatabase_Export_User);
- this.groupBox5.Controls.Add(this.label11);
- this.groupBox5.Controls.Add(this.btn_StationDatabase_Export);
- this.groupBox5.Controls.Add(this.tb_StationDatabase_RemoteDir);
- this.groupBox5.Controls.Add(this.label10);
- this.groupBox5.Controls.Add(this.tb_StationDatabase_LocalDir);
- this.groupBox5.Controls.Add(this.label9);
- this.groupBox5.Location = new System.Drawing.Point(8, 15);
- this.groupBox5.Name = "groupBox5";
- this.groupBox5.Size = new System.Drawing.Size(881, 189);
- this.groupBox5.TabIndex = 2;
- this.groupBox5.TabStop = false;
- this.groupBox5.Text = "Station Database";
- //
- // label13
- //
- this.label13.AutoSize = true;
- this.label13.Location = new System.Drawing.Point(9, 48);
- this.label13.Name = "label13";
- this.label13.Size = new System.Drawing.Size(72, 13);
- this.label13.TabIndex = 9;
- this.label13.Text = "Remote Host:";
- //
- // label12
- //
- this.label12.AutoSize = true;
- this.label12.Location = new System.Drawing.Point(9, 127);
- this.label12.Name = "label12";
- this.label12.Size = new System.Drawing.Size(56, 13);
- this.label12.TabIndex = 7;
- this.label12.Text = "Password:";
- //
- // label11
- //
- this.label11.AutoSize = true;
- this.label11.Location = new System.Drawing.Point(9, 101);
- this.label11.Name = "label11";
- this.label11.Size = new System.Drawing.Size(32, 13);
- this.label11.TabIndex = 5;
- this.label11.Text = "User:";
- //
- // btn_StationDatabase_Export
- //
- this.btn_StationDatabase_Export.Location = new System.Drawing.Point(107, 150);
- this.btn_StationDatabase_Export.Name = "btn_StationDatabase_Export";
- this.btn_StationDatabase_Export.Size = new System.Drawing.Size(178, 23);
- this.btn_StationDatabase_Export.TabIndex = 4;
- this.btn_StationDatabase_Export.Text = "Export to JSON and Upload";
- this.btn_StationDatabase_Export.UseVisualStyleBackColor = true;
- this.btn_StationDatabase_Export.Click += new System.EventHandler(this.btn_StationDatabase_Export_Click);
- //
- // label10
- //
- this.label10.AutoSize = true;
- this.label10.Location = new System.Drawing.Point(9, 74);
- this.label10.Name = "label10";
- this.label10.Size = new System.Drawing.Size(92, 13);
- this.label10.TabIndex = 2;
- this.label10.Text = "Remote Directory:";
- //
- // label9
- //
- this.label9.AutoSize = true;
- this.label9.Location = new System.Drawing.Point(9, 22);
- this.label9.Name = "label9";
- this.label9.Size = new System.Drawing.Size(81, 13);
- this.label9.TabIndex = 0;
- this.label9.Text = "Local Directory:";
- //
- // tp_Extras
- //
- this.tp_Extras.BackColor = System.Drawing.SystemColors.Control;
- this.tp_Extras.Controls.Add(this.groupBox4);
- this.tp_Extras.Location = new System.Drawing.Point(4, 22);
- this.tp_Extras.Name = "tp_Extras";
- this.tp_Extras.Size = new System.Drawing.Size(1098, 549);
- this.tp_Extras.TabIndex = 3;
- this.tp_Extras.Text = "Extras";
- //
- // groupBox4
- //
- this.groupBox4.Controls.Add(this.btn_SFTP_GenarateFile);
- this.groupBox4.Controls.Add(this.tb_SFTP_Password);
- this.groupBox4.Controls.Add(this.label7);
- this.groupBox4.Controls.Add(this.tb_SFTP_User);
- this.groupBox4.Controls.Add(this.label6);
- this.groupBox4.Controls.Add(this.tb_SFTP_URL);
- this.groupBox4.Controls.Add(this.label5);
- this.groupBox4.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.groupBox4.Location = new System.Drawing.Point(8, 14);
- this.groupBox4.Name = "groupBox4";
- this.groupBox4.Size = new System.Drawing.Size(778, 111);
- this.groupBox4.TabIndex = 0;
- this.groupBox4.TabStop = false;
- this.groupBox4.Text = "SFTP Password File";
- //
- // btn_SFTP_GenarateFile
- //
- this.btn_SFTP_GenarateFile.Location = new System.Drawing.Point(423, 23);
- this.btn_SFTP_GenarateFile.Name = "btn_SFTP_GenarateFile";
- this.btn_SFTP_GenarateFile.Size = new System.Drawing.Size(252, 72);
- this.btn_SFTP_GenarateFile.TabIndex = 6;
- this.btn_SFTP_GenarateFile.Text = "Generate File";
- this.btn_SFTP_GenarateFile.UseVisualStyleBackColor = true;
- this.btn_SFTP_GenarateFile.Click += new System.EventHandler(this.btn_SFTP_GenerateFile_Click);
- //
- // label7
- //
- this.label7.AutoSize = true;
- this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label7.Location = new System.Drawing.Point(6, 78);
- this.label7.Name = "label7";
- this.label7.Size = new System.Drawing.Size(56, 13);
- this.label7.TabIndex = 4;
- this.label7.Text = "Password:";
- //
- // label6
- //
- this.label6.AutoSize = true;
- this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label6.Location = new System.Drawing.Point(6, 52);
- this.label6.Name = "label6";
- this.label6.Size = new System.Drawing.Size(32, 13);
- this.label6.TabIndex = 2;
- this.label6.Text = "User:";
- //
- // label5
- //
- this.label5.AutoSize = true;
- this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label5.Location = new System.Drawing.Point(6, 26);
- this.label5.Name = "label5";
- this.label5.Size = new System.Drawing.Size(32, 13);
- this.label5.TabIndex = 0;
- this.label5.Text = "URL:";
- //
- // bw_QRZ
- //
- this.bw_QRZ.WorkerReportsProgress = true;
- this.bw_QRZ.WorkerSupportsCancellation = true;
- this.bw_QRZ.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bw_QRZ_DoWork);
- this.bw_QRZ.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_QRZ_ProgressChanged);
- this.bw_QRZ.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_QRZ_RunWorkerCompleted);
- //
- // bw_DatabaseUpdater
- //
- this.bw_DatabaseUpdater.WorkerReportsProgress = true;
- this.bw_DatabaseUpdater.WorkerSupportsCancellation = true;
- this.bw_DatabaseUpdater.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bw_DatabaseUpdater_DoWork);
- this.bw_DatabaseUpdater.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_DatabaseUpdater_ProgressChanged);
- this.bw_DatabaseUpdater.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_DatabaseUpdater_RunWorkerCompleted);
- //
- // bw_AircraftUpdater
- //
- this.bw_AircraftUpdater.WorkerReportsProgress = true;
- this.bw_AircraftUpdater.WorkerSupportsCancellation = true;
- this.bw_AircraftUpdater.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bw_AircraftUpdater_DoWork);
- this.bw_AircraftUpdater.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_AircraftUpdater_ProgressChanged);
- this.bw_AircraftUpdater.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_AircraftUpdater_RunWorkerCompleted);
- //
- // groupBox6
- //
- this.groupBox6.Controls.Add(this.tb_AircraftDatabase_RemoteHost);
- this.groupBox6.Controls.Add(this.label14);
- this.groupBox6.Controls.Add(this.tb_AircraftDatabase_Password);
- this.groupBox6.Controls.Add(this.label15);
- this.groupBox6.Controls.Add(this.tb_AircraftDatabase_User);
- this.groupBox6.Controls.Add(this.label16);
- this.groupBox6.Controls.Add(this.btn_AircraftDatabase_Export);
- this.groupBox6.Controls.Add(this.tb_AircraftDatabase_RemoteDir);
- this.groupBox6.Controls.Add(this.label17);
- this.groupBox6.Controls.Add(this.tb_AircraftDabase_LocalDir);
- this.groupBox6.Controls.Add(this.label18);
- this.groupBox6.Location = new System.Drawing.Point(8, 210);
- this.groupBox6.Name = "groupBox6";
- this.groupBox6.Size = new System.Drawing.Size(881, 189);
- this.groupBox6.TabIndex = 3;
- this.groupBox6.TabStop = false;
- this.groupBox6.Text = "Aicraft Database";
- //
- // label14
- //
- this.label14.AutoSize = true;
- this.label14.Location = new System.Drawing.Point(9, 48);
- this.label14.Name = "label14";
- this.label14.Size = new System.Drawing.Size(72, 13);
- this.label14.TabIndex = 9;
- this.label14.Text = "Remote Host:";
- //
- // label15
- //
- this.label15.AutoSize = true;
- this.label15.Location = new System.Drawing.Point(9, 127);
- this.label15.Name = "label15";
- this.label15.Size = new System.Drawing.Size(56, 13);
- this.label15.TabIndex = 7;
- this.label15.Text = "Password:";
- //
- // label16
- //
- this.label16.AutoSize = true;
- this.label16.Location = new System.Drawing.Point(9, 101);
- this.label16.Name = "label16";
- this.label16.Size = new System.Drawing.Size(32, 13);
- this.label16.TabIndex = 5;
- this.label16.Text = "User:";
- //
- // btn_AircraftDatabase_Export
- //
- this.btn_AircraftDatabase_Export.Location = new System.Drawing.Point(107, 150);
- this.btn_AircraftDatabase_Export.Name = "btn_AircraftDatabase_Export";
- this.btn_AircraftDatabase_Export.Size = new System.Drawing.Size(178, 23);
- this.btn_AircraftDatabase_Export.TabIndex = 4;
- this.btn_AircraftDatabase_Export.Text = "Export to JSON and Upload";
- this.btn_AircraftDatabase_Export.UseVisualStyleBackColor = true;
- this.btn_AircraftDatabase_Export.Click += new System.EventHandler(this.btn_AircraftDatabase_Export_Click);
- //
- // label17
- //
- this.label17.AutoSize = true;
- this.label17.Location = new System.Drawing.Point(9, 74);
- this.label17.Name = "label17";
- this.label17.Size = new System.Drawing.Size(92, 13);
- this.label17.TabIndex = 2;
- this.label17.Text = "Remote Directory:";
- //
- // label18
- //
- this.label18.AutoSize = true;
- this.label18.Location = new System.Drawing.Point(9, 22);
- this.label18.Name = "label18";
- this.label18.Size = new System.Drawing.Size(81, 13);
- this.label18.TabIndex = 0;
- this.label18.Text = "Local Directory:";
- //
- // tb_Coverage_MaxLat
- //
- this.tb_Coverage_MaxLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutDatabaseManager.Properties.Settings.Default, "MaxLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Coverage_MaxLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Coverage_MaxLat.FormatSpecifier = "F0";
- this.tb_Coverage_MaxLat.Location = new System.Drawing.Point(105, 104);
- this.tb_Coverage_MaxLat.MaxValue = 90D;
- this.tb_Coverage_MaxLat.MinValue = -90D;
- this.tb_Coverage_MaxLat.Name = "tb_Coverage_MaxLat";
- this.tb_Coverage_MaxLat.Size = new System.Drawing.Size(50, 22);
- this.tb_Coverage_MaxLat.TabIndex = 28;
- this.tb_Coverage_MaxLat.Text = "60";
- this.tb_Coverage_MaxLat.Value = global::AirScoutDatabaseManager.Properties.Settings.Default.MaxLat;
- this.tb_Coverage_MaxLat.TextChanged += new System.EventHandler(this.tp_General_Update);
- //
- // tb_Coverage_MinLat
- //
- this.tb_Coverage_MinLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutDatabaseManager.Properties.Settings.Default, "MinLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Coverage_MinLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Coverage_MinLat.FormatSpecifier = "F0";
- this.tb_Coverage_MinLat.Location = new System.Drawing.Point(105, 79);
- this.tb_Coverage_MinLat.MaxValue = 90D;
- this.tb_Coverage_MinLat.MinValue = -90D;
- this.tb_Coverage_MinLat.Name = "tb_Coverage_MinLat";
- this.tb_Coverage_MinLat.Size = new System.Drawing.Size(50, 22);
- this.tb_Coverage_MinLat.TabIndex = 27;
- this.tb_Coverage_MinLat.Text = "35";
- this.tb_Coverage_MinLat.Value = global::AirScoutDatabaseManager.Properties.Settings.Default.MinLat;
- this.tb_Coverage_MinLat.TextChanged += new System.EventHandler(this.tp_General_Update);
- //
- // tb_Coverage_MaxLon
- //
- this.tb_Coverage_MaxLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutDatabaseManager.Properties.Settings.Default, "MaxLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Coverage_MaxLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Coverage_MaxLon.FormatSpecifier = "F0";
- this.tb_Coverage_MaxLon.Location = new System.Drawing.Point(105, 52);
- this.tb_Coverage_MaxLon.MaxValue = 180D;
- this.tb_Coverage_MaxLon.MinValue = -180D;
- this.tb_Coverage_MaxLon.Name = "tb_Coverage_MaxLon";
- this.tb_Coverage_MaxLon.Size = new System.Drawing.Size(50, 22);
- this.tb_Coverage_MaxLon.TabIndex = 26;
- this.tb_Coverage_MaxLon.Text = "30";
- this.tb_Coverage_MaxLon.Value = global::AirScoutDatabaseManager.Properties.Settings.Default.MaxLon;
- this.tb_Coverage_MaxLon.TextChanged += new System.EventHandler(this.tp_General_Update);
- //
- // tb_Coverage_MinLon
- //
- this.tb_Coverage_MinLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutDatabaseManager.Properties.Settings.Default, "MinLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Coverage_MinLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_Coverage_MinLon.FormatSpecifier = "F0";
- this.tb_Coverage_MinLon.Location = new System.Drawing.Point(105, 25);
- this.tb_Coverage_MinLon.MaxValue = 180D;
- this.tb_Coverage_MinLon.MinValue = -180D;
- this.tb_Coverage_MinLon.Name = "tb_Coverage_MinLon";
- this.tb_Coverage_MinLon.Size = new System.Drawing.Size(50, 22);
- this.tb_Coverage_MinLon.TabIndex = 25;
- this.tb_Coverage_MinLon.Text = "-15";
- this.tb_Coverage_MinLon.Value = global::AirScoutDatabaseManager.Properties.Settings.Default.MinLon;
- this.tb_Coverage_MinLon.TextChanged += new System.EventHandler(this.tp_General_Update);
- //
- // tb_Update_Aircrafts
- //
- this.tb_Update_Aircrafts.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "Aircrafts_BaseURL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Update_Aircrafts.Location = new System.Drawing.Point(164, 98);
- this.tb_Update_Aircrafts.Name = "tb_Update_Aircrafts";
- this.tb_Update_Aircrafts.Size = new System.Drawing.Size(722, 20);
- this.tb_Update_Aircrafts.TabIndex = 7;
- this.tb_Update_Aircrafts.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.Aircrafts_BaseURL;
- //
- // tb_Update_Airports
- //
- this.tb_Update_Airports.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "Airports_Update_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Update_Airports.Location = new System.Drawing.Point(164, 53);
- this.tb_Update_Airports.Name = "tb_Update_Airports";
- this.tb_Update_Airports.Size = new System.Drawing.Size(722, 20);
- this.tb_Update_Airports.TabIndex = 3;
- this.tb_Update_Airports.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.Airports_Update_URL;
- //
- // tb_Update_Airlines
- //
- this.tb_Update_Airlines.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "Airlines_Update_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_Update_Airlines.Location = new System.Drawing.Point(164, 24);
- this.tb_Update_Airlines.Name = "tb_Update_Airlines";
- this.tb_Update_Airlines.Size = new System.Drawing.Size(722, 20);
- this.tb_Update_Airlines.TabIndex = 1;
- this.tb_Update_Airlines.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.Airlines_Update_URL;
- //
- // tb_AircraftDatabase_RemoteHost
- //
- this.tb_AircraftDatabase_RemoteHost.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_RemoteHost", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_AircraftDatabase_RemoteHost.Location = new System.Drawing.Point(107, 45);
- this.tb_AircraftDatabase_RemoteHost.Name = "tb_AircraftDatabase_RemoteHost";
- this.tb_AircraftDatabase_RemoteHost.Size = new System.Drawing.Size(543, 20);
- this.tb_AircraftDatabase_RemoteHost.TabIndex = 10;
- this.tb_AircraftDatabase_RemoteHost.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_RemoteHost;
- //
- // tb_AircraftDatabase_Password
- //
- this.tb_AircraftDatabase_Password.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_Password", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_AircraftDatabase_Password.Location = new System.Drawing.Point(107, 124);
- this.tb_AircraftDatabase_Password.Name = "tb_AircraftDatabase_Password";
- this.tb_AircraftDatabase_Password.Size = new System.Drawing.Size(107, 20);
- this.tb_AircraftDatabase_Password.TabIndex = 8;
- this.tb_AircraftDatabase_Password.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_Password;
- //
- // tb_AircraftDatabase_User
- //
- this.tb_AircraftDatabase_User.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_User", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_AircraftDatabase_User.Location = new System.Drawing.Point(107, 98);
- this.tb_AircraftDatabase_User.Name = "tb_AircraftDatabase_User";
- this.tb_AircraftDatabase_User.Size = new System.Drawing.Size(107, 20);
- this.tb_AircraftDatabase_User.TabIndex = 6;
- this.tb_AircraftDatabase_User.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_User;
- //
- // tb_AircraftDatabase_RemoteDir
- //
- this.tb_AircraftDatabase_RemoteDir.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_RemoteDir", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_AircraftDatabase_RemoteDir.Location = new System.Drawing.Point(107, 71);
- this.tb_AircraftDatabase_RemoteDir.Name = "tb_AircraftDatabase_RemoteDir";
- this.tb_AircraftDatabase_RemoteDir.Size = new System.Drawing.Size(543, 20);
- this.tb_AircraftDatabase_RemoteDir.TabIndex = 3;
- this.tb_AircraftDatabase_RemoteDir.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_RemoteDir;
- //
- // tb_AircraftDabase_LocalDir
- //
- this.tb_AircraftDabase_LocalDir.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_LocalDir", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_AircraftDabase_LocalDir.Location = new System.Drawing.Point(107, 19);
- this.tb_AircraftDabase_LocalDir.Name = "tb_AircraftDabase_LocalDir";
- this.tb_AircraftDabase_LocalDir.Size = new System.Drawing.Size(543, 20);
- this.tb_AircraftDabase_LocalDir.TabIndex = 1;
- this.tb_AircraftDabase_LocalDir.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_LocalDir;
- //
- // tb_StationDatabase_RemoteHost
- //
- this.tb_StationDatabase_RemoteHost.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_RemoteHost", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_StationDatabase_RemoteHost.Location = new System.Drawing.Point(107, 45);
- this.tb_StationDatabase_RemoteHost.Name = "tb_StationDatabase_RemoteHost";
- this.tb_StationDatabase_RemoteHost.Size = new System.Drawing.Size(543, 20);
- this.tb_StationDatabase_RemoteHost.TabIndex = 10;
- this.tb_StationDatabase_RemoteHost.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_RemoteHost;
- //
- // tb_StationDatabase_Export_Password
- //
- this.tb_StationDatabase_Export_Password.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_Password", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_StationDatabase_Export_Password.Location = new System.Drawing.Point(107, 124);
- this.tb_StationDatabase_Export_Password.Name = "tb_StationDatabase_Export_Password";
- this.tb_StationDatabase_Export_Password.Size = new System.Drawing.Size(107, 20);
- this.tb_StationDatabase_Export_Password.TabIndex = 8;
- this.tb_StationDatabase_Export_Password.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_Password;
- //
- // tb_StationDatabase_Export_User
- //
- this.tb_StationDatabase_Export_User.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_User", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_StationDatabase_Export_User.Location = new System.Drawing.Point(107, 98);
- this.tb_StationDatabase_Export_User.Name = "tb_StationDatabase_Export_User";
- this.tb_StationDatabase_Export_User.Size = new System.Drawing.Size(107, 20);
- this.tb_StationDatabase_Export_User.TabIndex = 6;
- this.tb_StationDatabase_Export_User.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_User;
- //
- // tb_StationDatabase_RemoteDir
- //
- this.tb_StationDatabase_RemoteDir.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_RemoteDir", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_StationDatabase_RemoteDir.Location = new System.Drawing.Point(107, 71);
- this.tb_StationDatabase_RemoteDir.Name = "tb_StationDatabase_RemoteDir";
- this.tb_StationDatabase_RemoteDir.Size = new System.Drawing.Size(543, 20);
- this.tb_StationDatabase_RemoteDir.TabIndex = 3;
- this.tb_StationDatabase_RemoteDir.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_RemoteDir;
- //
- // tb_StationDatabase_LocalDir
- //
- this.tb_StationDatabase_LocalDir.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_LocalDir", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_StationDatabase_LocalDir.Location = new System.Drawing.Point(107, 19);
- this.tb_StationDatabase_LocalDir.Name = "tb_StationDatabase_LocalDir";
- this.tb_StationDatabase_LocalDir.Size = new System.Drawing.Size(543, 20);
- this.tb_StationDatabase_LocalDir.TabIndex = 1;
- this.tb_StationDatabase_LocalDir.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_LocalDir;
- //
- // tb_SFTP_Password
- //
- this.tb_SFTP_Password.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "SFTP_Password", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_SFTP_Password.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_SFTP_Password.Location = new System.Drawing.Point(71, 75);
- this.tb_SFTP_Password.Name = "tb_SFTP_Password";
- this.tb_SFTP_Password.Size = new System.Drawing.Size(318, 20);
- this.tb_SFTP_Password.TabIndex = 5;
- this.tb_SFTP_Password.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.SFTP_Password;
- //
- // tb_SFTP_User
- //
- this.tb_SFTP_User.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "SFTP_User", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_SFTP_User.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_SFTP_User.Location = new System.Drawing.Point(71, 49);
- this.tb_SFTP_User.Name = "tb_SFTP_User";
- this.tb_SFTP_User.Size = new System.Drawing.Size(318, 20);
- this.tb_SFTP_User.TabIndex = 3;
- this.tb_SFTP_User.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.SFTP_User;
- //
- // tb_SFTP_URL
- //
- this.tb_SFTP_URL.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "SFTP_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.tb_SFTP_URL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.tb_SFTP_URL.Location = new System.Drawing.Point(71, 23);
- this.tb_SFTP_URL.Name = "tb_SFTP_URL";
- this.tb_SFTP_URL.Size = new System.Drawing.Size(318, 20);
- this.tb_SFTP_URL.TabIndex = 1;
- this.tb_SFTP_URL.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.SFTP_URL;
- //
- // MainDlg
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(1106, 597);
- this.Controls.Add(this.tc_Main);
- this.Controls.Add(this.ss_Main);
- this.Name = "MainDlg";
- this.Text = "AirScout Database Manager";
- this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
- this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainDlg_FormClosing);
- this.Load += new System.EventHandler(this.MainDlg_Load);
- this.ss_Main.ResumeLayout(false);
- this.ss_Main.PerformLayout();
- this.tc_Main.ResumeLayout(false);
- this.tp_General.ResumeLayout(false);
- this.panel1.ResumeLayout(false);
- this.panel1.PerformLayout();
- this.tp_Locations.ResumeLayout(false);
- this.splitContainer1.Panel1.ResumeLayout(false);
- this.splitContainer1.Panel2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
- this.splitContainer1.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.dgv_Locations)).EndInit();
- this.panel2.ResumeLayout(false);
- this.panel2.PerformLayout();
- this.groupBox2.ResumeLayout(false);
- this.groupBox1.ResumeLayout(false);
- this.tp_QRV.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.dgv_QRV)).EndInit();
- this.panel4.ResumeLayout(false);
- this.panel4.PerformLayout();
- this.groupBox3.ResumeLayout(false);
- this.tp_Aircrafts.ResumeLayout(false);
- this.tp_Aircrafts.PerformLayout();
- this.tp_Upload.ResumeLayout(false);
- this.groupBox5.ResumeLayout(false);
- this.groupBox5.PerformLayout();
- this.tp_Extras.ResumeLayout(false);
- this.groupBox4.ResumeLayout(false);
- this.groupBox4.PerformLayout();
- this.groupBox6.ResumeLayout(false);
- this.groupBox6.PerformLayout();
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.StatusStrip ss_Main;
- private System.Windows.Forms.ToolStripStatusLabel tsl_Status;
- private System.Windows.Forms.TabControl tc_Main;
- private System.Windows.Forms.TabPage tp_General;
- private System.Windows.Forms.TabPage tp_Locations;
- private System.Windows.Forms.Panel panel1;
- private GMap.NET.WindowsForms.GMapControl gm_Coverage;
- private ScoutBase.Core.DoubleTextBox tb_Coverage_MaxLat;
- private ScoutBase.Core.DoubleTextBox tb_Coverage_MinLat;
- private ScoutBase.Core.DoubleTextBox tb_Coverage_MaxLon;
- private ScoutBase.Core.DoubleTextBox tb_Coverage_MinLon;
- private System.Windows.Forms.Label label35;
- private System.Windows.Forms.Label label54;
- private System.Windows.Forms.Label label59;
- private System.Windows.Forms.Label label60;
- private System.Windows.Forms.Panel panel2;
- private System.Windows.Forms.DataGridView dgv_Locations;
- private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.TextBox tb_Locations_Status;
- private System.Windows.Forms.Button btn_QRZ_Stop;
- private System.Windows.Forms.Button btn_QRZ_Start;
- private System.ComponentModel.BackgroundWorker bw_QRZ;
- private System.Windows.Forms.Button btn_Locations_Export;
- private System.Windows.Forms.Button btn_Locations_Save;
- private System.ComponentModel.BackgroundWorker bw_DatabaseUpdater;
- private System.Windows.Forms.GroupBox groupBox2;
- private System.Windows.Forms.Button btn_Locations_Import_CALL3;
- private System.Windows.Forms.Button btn_Locations_Sort;
- private System.Windows.Forms.Button btn_Locations_Import_DTB;
- private System.Windows.Forms.Button btn_Locations_Import_CSV;
- private System.Windows.Forms.CheckBox cb_Locations_ChangedOnly;
- private GMap.NET.WindowsForms.GMapControl gm_Locations;
- private System.Windows.Forms.SplitContainer splitContainer1;
- private System.Windows.Forms.TextBox tb_Locations_Callsign_Filter;
- private System.Windows.Forms.Button btn_Locations_Import_USR;
- private System.Windows.Forms.Button btn_Locations_Import_AirScout;
- private System.Windows.Forms.Label label2;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.TabPage tp_QRV;
- private System.Windows.Forms.Panel panel4;
- private System.Windows.Forms.GroupBox groupBox3;
- private System.Windows.Forms.Button btn_QRV_Import_WinTest;
- private System.Windows.Forms.DataGridView dgv_QRV;
- private System.Windows.Forms.Label label4;
- private System.Windows.Forms.Label label3;
- private System.Windows.Forms.TextBox tb_QRV_Callsign_Filter;
- private System.Windows.Forms.TextBox tb_QRV_Status;
- private System.Windows.Forms.Button btn_QRV_Sort;
- private System.Windows.Forms.Button btn_QRV_Export;
- private System.Windows.Forms.Button btn_QRV_Save;
- private System.Windows.Forms.CheckBox cb_QRV_ChangedOnly;
- private System.Windows.Forms.Button btn_QRV_Import_EDI;
- private System.Windows.Forms.TabPage tp_Extras;
- private System.Windows.Forms.GroupBox groupBox4;
- private System.Windows.Forms.Button btn_SFTP_GenarateFile;
- private System.Windows.Forms.TextBox tb_SFTP_Password;
- private System.Windows.Forms.Label label7;
- private System.Windows.Forms.TextBox tb_SFTP_User;
- private System.Windows.Forms.Label label6;
- private System.Windows.Forms.TextBox tb_SFTP_URL;
- private System.Windows.Forms.Label label5;
- private System.Windows.Forms.TabPage tp_Aircrafts;
- private System.Windows.Forms.TextBox tb_Update_Airlines;
- private System.Windows.Forms.Button btn_Update_Airlines;
- private System.Windows.Forms.TextBox tb_Update_Airports;
- private System.Windows.Forms.Button btn_Update_Airports;
- private System.ComponentModel.BackgroundWorker bw_AircraftUpdater;
- private System.Windows.Forms.Button btn_Update_Aircrafts_Stop;
- private System.Windows.Forms.Button btn_Update_Aicrafts_Start;
- private System.Windows.Forms.TextBox tb_Update_Aircrafts;
- private System.Windows.Forms.Button button1;
- private System.Windows.Forms.Label lbl_Aircrafts_UnkownHex;
- private System.Windows.Forms.Label lbl_Aircrafts_UnkownType;
- private System.Windows.Forms.Label lbl_Aircrafts_UnkownCall;
- private System.Windows.Forms.Label lbl_Aircrafts_Total;
- private System.Windows.Forms.Label label8;
- private System.Windows.Forms.TabPage tp_Upload;
- private System.Windows.Forms.GroupBox groupBox5;
- private System.Windows.Forms.Button btn_StationDatabase_Export;
- private System.Windows.Forms.TextBox tb_StationDatabase_RemoteDir;
- private System.Windows.Forms.Label label10;
- private System.Windows.Forms.TextBox tb_StationDatabase_LocalDir;
- private System.Windows.Forms.Label label9;
- private System.Windows.Forms.TextBox tb_StationDatabase_Export_User;
- private System.Windows.Forms.Label label11;
- private System.Windows.Forms.TextBox tb_StationDatabase_Export_Password;
- private System.Windows.Forms.Label label12;
- private System.Windows.Forms.TextBox tb_StationDatabase_RemoteHost;
- private System.Windows.Forms.Label label13;
- private System.Windows.Forms.GroupBox groupBox6;
- private System.Windows.Forms.TextBox tb_AircraftDatabase_RemoteHost;
- private System.Windows.Forms.Label label14;
- private System.Windows.Forms.TextBox tb_AircraftDatabase_Password;
- private System.Windows.Forms.Label label15;
- private System.Windows.Forms.TextBox tb_AircraftDatabase_User;
- private System.Windows.Forms.Label label16;
- private System.Windows.Forms.Button btn_AircraftDatabase_Export;
- private System.Windows.Forms.TextBox tb_AircraftDatabase_RemoteDir;
- private System.Windows.Forms.Label label17;
- private System.Windows.Forms.TextBox tb_AircraftDabase_LocalDir;
- private System.Windows.Forms.Label label18;
- }
-}
-
diff --git a/AirScoutDatabaseManager/MainDlg.cs b/AirScoutDatabaseManager/MainDlg.cs
deleted file mode 100644
index 7b06588..0000000
--- a/AirScoutDatabaseManager/MainDlg.cs
+++ /dev/null
@@ -1,1902 +0,0 @@
-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 System.Net;
-using System.IO;
-using System.Globalization;
-using System.Threading;
-using System.Xml;
-using System.Xml.Linq;
-using GMap.NET;
-using GMap.NET.MapProviders;
-using GMap.NET.WindowsForms;
-using GMap.NET.WindowsForms.Markers;
-using GMap.NET.WindowsForms.ToolTips;
-using ScoutBase;
-using ScoutBase.Core;
-using ScoutBase.Elevation;
-using ScoutBase.Stations;
-using SQLiteDatabase;
-using Newtonsoft.Json;
-using HtmlAgilityPack;
-using AirScout.Aircrafts;
-using Newtonsoft.Json.Linq;
-using Renci.SshNet.Sftp;
-using Renci.SshNet;
-
-namespace AirScoutDatabaseManager
-{
- public partial class MainDlg : Form
- {
-
- [CategoryAttribute("Directories")]
- [DescriptionAttribute("Application Directory")]
- public string AppDirectory
- {
- get
- {
- return Application.StartupPath.TrimEnd(Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar);
- }
- }
-
- [CategoryAttribute("Directories")]
- [DescriptionAttribute("Local Application Data Directory")]
- public string AppDataDirectory
- {
- get
- {
- return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Application.CompanyName, Application.ProductName).TrimEnd(Path.DirectorySeparatorChar);
- }
- }
-
- [CategoryAttribute("Directories")]
- [DescriptionAttribute("Logfile Directory")]
- public string LogDirectory
- {
- get
- {
- // get Property
- string logdir = Properties.Settings.Default.Log_Directory;
- // replace Windows/Linux directory spearator chars
- logdir = logdir.Replace('\\', Path.DirectorySeparatorChar);
- logdir = logdir.Replace('/', Path.DirectorySeparatorChar);
- // set to default value if empty
- if (String.IsNullOrEmpty(logdir))
- logdir = "Log";
- // replace variables, if any
- logdir = VC.ReplaceAllVars(logdir);
- // remove directory separator chars at begin and end
- logdir = logdir.TrimStart(Path.DirectorySeparatorChar);
- logdir = logdir.TrimEnd(Path.DirectorySeparatorChar);
- // fully qualify path
- if (!logdir.Contains(Path.VolumeSeparatorChar))
- logdir = Path.Combine(AppDataDirectory, logdir);
- return logdir;
- }
- }
-
- [CategoryAttribute("Directories")]
- [DescriptionAttribute("Tempfile Directory")]
- public string TmpDirectory
- {
- get
- {
- // get Property
- string tmpdir = Properties.Settings.Default.Tmp_Directory;
- // replace Windows/Linux directory spearator chars
- tmpdir = tmpdir.Replace('\\', Path.DirectorySeparatorChar);
- tmpdir = tmpdir.Replace('/', Path.DirectorySeparatorChar);
- // set to default value if empty
- if (String.IsNullOrEmpty(tmpdir))
- tmpdir = "Tmp";
- // replace variables, if any
- tmpdir = VC.ReplaceAllVars(tmpdir);
- // remove directory separator chars at begin and end
- tmpdir = tmpdir.TrimStart(Path.DirectorySeparatorChar);
- tmpdir = tmpdir.TrimEnd(Path.DirectorySeparatorChar);
- // fully qualify path
- if (!tmpdir.Contains(Path.VolumeSeparatorChar))
- tmpdir = Path.Combine(AppDataDirectory, tmpdir);
- return tmpdir;
- }
- }
-
- [CategoryAttribute("Directories")]
- [DescriptionAttribute("Database Directory")]
- public string DatabaseDirectory
- {
- get
- {
- // get Property
- string databasedir = Properties.Settings.Default.Database_Directory;
- // replace Windows/Linux directory spearator chars
- databasedir = databasedir.Replace('\\', Path.DirectorySeparatorChar);
- databasedir = databasedir.Replace('/', Path.DirectorySeparatorChar);
- // set to default value if empty
- if (String.IsNullOrEmpty(databasedir))
- databasedir = "Database";
- // replace variables, if any
- databasedir = VC.ReplaceAllVars(databasedir);
- // remove directory separator chars at begin and end
- databasedir = databasedir.TrimStart(Path.DirectorySeparatorChar);
- databasedir = databasedir.TrimEnd(Path.DirectorySeparatorChar);
- // fully qualify path
- if (!databasedir.Contains(Path.VolumeSeparatorChar))
- databasedir = Path.Combine(AppDataDirectory, databasedir);
- return databasedir;
- }
- }
-
-
- [CategoryAttribute("Directories")]
- [DescriptionAttribute("Tempfile Directory")]
- public string ExportDirectory
- {
- get
- {
- // get Property
- string expdir = Properties.Settings.Default.Export_Directory;
- // replace Windows/Linux directory spearator chars
- expdir = expdir.Replace('\\', Path.DirectorySeparatorChar);
- expdir = expdir.Replace('/', Path.DirectorySeparatorChar);
- // set to default value if empty
- if (String.IsNullOrEmpty(expdir))
- expdir = "Tmp";
- // replace variables, if any
- expdir = VC.ReplaceAllVars(expdir);
- // remove directory separator chars at begin and end
- expdir = expdir.TrimStart(Path.DirectorySeparatorChar);
- expdir = expdir.TrimEnd(Path.DirectorySeparatorChar);
- // fully qualify path
- if (!expdir.Contains(Path.VolumeSeparatorChar))
- expdir = Path.Combine(AppDataDirectory, expdir);
- return expdir;
- }
- }
-
- GMapOverlay Coverageoverlay = new GMapOverlay("Coveragepolygons");
- GMapOverlay Locationsoverlay = new GMapOverlay("Locations");
-
- DataSet SB = new DataSet();
-
- DataTableLocations Locations = new DataTableLocations();
- DataView LocationsView;
-
- DataTable QRV = new DataTable();
- DataView QRVView;
-
- NumberFormatInfo ENprovider;
-
- public LogWriter Log = LogWriter.Instance;
- public VarConverter VC = new VarConverter();
-
- private bool IsMarkerDragging = false;
- private bool IsMarkerDragged = false;
-
- private GMarkerGoogle CurrentMarker = null;
- private double CurrentMarkerLat;
- private double CurrentMarkerLon;
-
- private double OfsLat, OfsLon;
-
- public MainDlg()
- {
- InitializeComponent();
- ENprovider = new NumberFormatInfo();
- ENprovider.NumberDecimalSeparator = ".";
- ENprovider.NumberGroupSeparator = ",";
- CheckDirectories();
- // set directories and formats for logfile
- ScoutBase.Core.Properties.Settings.Default.LogWriter_Directory = LogDirectory;
- ScoutBase.Core.Properties.Settings.Default.LogWriter_FileFormat = "Log_{0:yyyy_MM_dd}.log";
- ScoutBase.Core.Properties.Settings.Default.LogWriter_MessageFormat = "{0:u} {1}";
- Locations.RowChanged += new DataRowChangeEventHandler(Locations_Row_Changed);
- QRV.RowChanged += new DataRowChangeEventHandler(QRV_Row_Changed);
- tc_Main.Enabled = false;
- }
-
- private void MainDlg_Load(object sender, EventArgs e)
- {
- Log.WriteMessage("Starting up.");
- // set initial settings for CoverageMap
- GMap.NET.MapProviders.GMapProvider.UserAgent = "AirScout";
- // clearing referrer URL issue 2019-12-14
- gm_Coverage.MapProvider.RefererUrl = "";
- gm_Coverage.MapProvider = GMapProviders.Find(Properties.Settings.Default.Map_Provider);
- gm_Coverage.IgnoreMarkerOnMouseWheel = true;
- gm_Coverage.MinZoom = 0;
- gm_Coverage.MaxZoom = 20;
- gm_Coverage.Zoom = 6;
- gm_Coverage.DragButton = System.Windows.Forms.MouseButtons.Left;
- gm_Coverage.CanDragMap = true;
- gm_Coverage.ScalePen = new Pen(Color.Black, 3);
- gm_Coverage.HelperLinePen = null;
- gm_Coverage.SelectionPen = null;
- gm_Coverage.MapScaleInfoEnabled = true;
- gm_Coverage.Overlays.Add(Coverageoverlay);
- // set initial settings for locations map
- GMap.NET.MapProviders.GMapProvider.UserAgent = "AirScout";
- // clearing referrer URL issue 2019-12-14
- gm_Locations.MapProvider.RefererUrl = "";
- gm_Locations.MapProvider = GMapProviders.Find(Properties.Settings.Default.Map_Provider);
- gm_Locations.IgnoreMarkerOnMouseWheel = true;
- gm_Locations.MinZoom = 0;
- gm_Locations.MaxZoom = 20;
- gm_Locations.Zoom = 6;
- gm_Locations.DragButton = System.Windows.Forms.MouseButtons.Left;
- gm_Locations.CanDragMap = true;
- gm_Locations.ScalePen = new Pen(Color.Black, 3);
- gm_Locations.HelperLinePen = null;
- gm_Locations.SelectionPen = null;
- gm_Locations.MapScaleInfoEnabled = true;
- gm_Locations.Overlays.Add(Locationsoverlay);
- gm_Locations.ShowCenter = false;
- // initialize QRV table
- DataColumn qrv_call = new DataColumn("Call", typeof(string));
- QRV.Columns.Add(qrv_call);
- DataColumn qrv_loc = new DataColumn("Loc", typeof(string));
- QRV.Columns.Add(qrv_loc);
- QRV.PrimaryKey = new DataColumn[2] { qrv_call, qrv_loc };
- string[] bands = Bands.GetStringValuesExceptNoneAndAll();
- foreach (string band in bands)
- {
- if (!band.StartsWith("50M") && !band.StartsWith("70M"))
- {
- QRV.Columns.Add(band + "_AH", typeof(double));
- QRV.Columns.Add(band + "_AG", typeof(double));
- QRV.Columns.Add(band + "_P", typeof(double));
- }
- }
- QRV.Columns.Add("LastUpdated", typeof(DateTime));
- // initilize databases
- AircraftData.Database.GetDBLocation();
- StationData.Database.GetDBLocation();
- bw_DatabaseUpdater.RunWorkerAsync();
- }
-
- private void MainDlg_FormClosing(object sender, FormClosingEventArgs e)
- {
- Properties.Settings.Default.Save();
- bw_QRZ.CancelAsync();
- Log.WriteMessage("Closing.");
- }
-
- public void CheckDirectories()
- {
- // check if directories exist
- if (!Directory.Exists(TmpDirectory))
- Directory.CreateDirectory(TmpDirectory);
- if (!Directory.Exists(LogDirectory))
- Directory.CreateDirectory(LogDirectory);
- if (!Directory.Exists(ExportDirectory))
- Directory.CreateDirectory(ExportDirectory);
- }
-
-
- private void Say(string text)
- {
- if (tsl_Status.Text != text)
- {
- tsl_Status.Text = text;
- ss_Main.Refresh();
- }
- }
-
- private void SayLocations(string text)
- {
- if (tb_Locations_Status.Text != text)
- {
- tb_Locations_Status.Text = text;
- tb_Locations_Status.Refresh();
- Application.DoEvents();
- }
- }
-
- private void SayQRV(string text)
- {
- if (tb_QRV_Status.Text != text)
- {
- tb_QRV_Status.Text = text;
- tb_QRV_Status.Refresh();
- Application.DoEvents();
- }
- }
-
- #region tp_General
-
- private void tp_General_Enter(object sender, EventArgs e)
- {
- tp_General_Update(this, null);
- }
-
- private void tp_General_Update(object sender, EventArgs e)
- {
- Coverageoverlay.Clear();
- // add tile to map polygons
- List l = new List();
- l.Add(new PointLatLng(tb_Coverage_MinLat.Value, tb_Coverage_MinLon.Value));
- l.Add(new PointLatLng(tb_Coverage_MinLat.Value, tb_Coverage_MaxLon.Value));
- l.Add(new PointLatLng(tb_Coverage_MaxLat.Value, tb_Coverage_MaxLon.Value));
- l.Add(new PointLatLng(tb_Coverage_MaxLat.Value, tb_Coverage_MinLon.Value));
- GMapPolygon p = new GMapPolygon(l, "Coverage");
- p.Stroke = new Pen(Color.FromArgb(255, Color.Magenta), 3);
- p.Fill = new SolidBrush(Color.FromArgb(0, Color.Magenta));
- Coverageoverlay.Polygons.Add(p);
- // zoom the map
- gm_Coverage.SetZoomToFitRect(RectLatLng.FromLTRB(tb_Coverage_MinLon.Value - 1, tb_Coverage_MaxLat.Value + 1, tb_Coverage_MaxLon.Value + 1, tb_Coverage_MinLat.Value - 1));
- }
-
-
- #endregion
-
- #region tp_Locations
-
- private void tp_Locations_Enter(object sender, EventArgs e)
- {
- // clear map
- Locationsoverlay.Clear();
- Locations.Clear();
- Locations.Merge(StationData.Database.LocationToDataTable());
- Locations.AcceptChanges();
- LocationsView = new DataView(Locations);
- BindingSource source = new BindingSource();
- source.DataSource = LocationsView;
- dgv_Locations.DataSource = source;
- dgv_Locations.ShowRowErrors = true;
- }
-
- private void btn_QRZ_Start_Click(object sender, EventArgs e)
- {
- if (!bw_QRZ.IsBusy)
- bw_QRZ.RunWorkerAsync();
- }
-
- private void btn_QRZ_Stop_Click(object sender, EventArgs e)
- {
- bw_QRZ.CancelAsync();
- }
-
- private void btn_Locations_Sort_Click(object sender, EventArgs e)
- {
- // sort data table
- DataTableLocations sorted = (DataTableLocations)Locations.Clone();
- DataRow[] rows = Locations.Select("", "Call ASC");
- if (rows.Length > 0)
- {
- foreach (DataRow row in rows)
- sorted.ImportRow(row);
- }
- Locations.Clear();
- foreach (DataRow row in sorted.Rows)
- Locations.ImportRow(row);
- }
-
- private void btn_Locations_Save_Click(object sender, EventArgs e)
- {
- SayLocations("Saving changes to database...");
- foreach (DataRow row in Locations.Rows)
- {
- LocationDesignator ld = new LocationDesignator(row);
- StationData.Database.LocationInsertOrUpdateIfNewer(ld);
- }
- SayLocations("Finished.");
- }
-
- private void btn_Locations_Export_Click(object sender, EventArgs e)
- {
- string filename = Path.Combine(ExportDirectory, "locations.json");
- SayLocations("Exporting database to " + filename);
- string json = StationData.Database.LocationToJSON();
- SupportFunctions.WriteStringToFile(json, filename);
- SayLocations("Finished.");
- }
-
- private void btn_Locations_Import_AirScout_Click(object sender, EventArgs e)
- {
- }
-
- private void btn_Locations_Import_CALL3_Click(object sender, EventArgs e)
- {
- }
-
- private void btn_Locations_Import_DTB_Click(object sender, EventArgs e)
- {
- }
-
- private void btn_Locations_Import_CSV_Click(object sender, EventArgs e)
- {
- }
-
- private void btn_Locations_Import_USR_Click(object sender, EventArgs e)
- {
- FolderBrowserDialog Dlg = new FolderBrowserDialog();
- Dlg.ShowNewFolderButton = false;
- if (Dlg.ShowDialog() == DialogResult.OK)
- {
- DataTableLocations dt = new DataTableLocations();
- string[] files = Directory.GetFiles(Dlg.SelectedPath, "*.usr");
- foreach (string file in files)
- {
- try
- {
- SayLocations("Importing " + file + "...");
- string s = "";
- using (StreamReader sr = new StreamReader(File.OpenRead(file)))
- {
- while (!sr.EndOfStream)
- {
- s = sr.ReadLine();
- if (!String.IsNullOrEmpty(s) && !s.StartsWith("//"))
- {
- string[] a = s.Split(';');
- // store array values in DataTable
- DataRow row = dt.NewRow();
- string call = a[0];
- if (Callsign.Check(call))
- {
- double lat = System.Convert.ToDouble(a[1], CultureInfo.InvariantCulture);
- double lon = System.Convert.ToDouble(a[2], CultureInfo.InvariantCulture);
- GEOSOURCE source = (MaidenheadLocator.IsPrecise(lat, lon, 3) ? GEOSOURCE.FROMUSER : GEOSOURCE.FROMLOC);
- string lastupdated = a[6];
- DateTime lu = System.Convert.ToDateTime(lastupdated).ToUniversalTime();
- if (GeographicalPoint.Check(lat, lon))
- {
- row["Call"] = call;
- row["Lat"] = lat;
- row["Lon"] = lon;
- row["Source"] = source;
- row["LastUpdated"] = lu;
- dt.Rows.Add(row);
- }
- }
- }
- }
- }
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- }
- }
- ImportLocations(dt);
- }
- }
-
- private void cb_Locations_ChangedOnly_CheckedChanged(object sender, EventArgs e)
- {
- if (cb_Locations_ChangedOnly.Checked)
- {
- LocationsView.RowStateFilter = DataViewRowState.ModifiedCurrent | DataViewRowState.Added;
- }
- else
- {
- LocationsView.RowStateFilter = DataViewRowState.CurrentRows;
- }
- }
-
- private void gm_Locations_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left && CurrentMarker != null && CurrentMarker.IsMouseOver)
- {
- // get geographic coordinates of mouse pointer and calulate offsets
- PointLatLng p = gm_Locations.FromLocalToLatLng(e.X, e.Y);
- OfsLat = p.Lat - CurrentMarker.Position.Lat;
- OfsLon = p.Lng - CurrentMarker.Position.Lng;
- IsMarkerDragging = true;
- IsMarkerDragged = false;
- CurrentMarkerLat = CurrentMarker.Position.Lat;
- CurrentMarkerLon = CurrentMarker.Position.Lng;
- foreach (DataGridViewRow row in dgv_Locations.Rows)
- {
- try
- {
- string call = row.Cells["Call"].Value.ToString();
- string markercall = (string)CurrentMarker.Tag;
- if (String.Equals(call, markercall))
- {
- dgv_Locations.ClearSelection();
- row.Selected = true;
- dgv_Locations.FirstDisplayedScrollingRowIndex = row.Index;
- break;
- }
- }
- catch
- {
-
- }
- }
- }
- }
-
- private void gm_Locations_MouseMove(object sender, MouseEventArgs e)
- {
- if (IsMarkerDragging && (CurrentMarker != null))
- {
- // get geographic coordinates of mouse pointer
- PointLatLng p = gm_Locations.FromLocalToLatLng(e.X, e.Y);
- p.Lat = p.Lat - OfsLat;
- p.Lng = p.Lng - OfsLon;
- CurrentMarker.Position = p;
- GPoint c = gm_Locations.FromLatLngToLocal(new PointLatLng(CurrentMarkerLat, CurrentMarkerLon));
- if ((Math.Abs(c.X - e.X) > 20) || (Math.Abs(c.Y - e.Y) > 20))
- {
- IsMarkerDragged = true;
- }
- }
- }
-
- private void gm_Locations_MouseUp(object sender, MouseEventArgs e)
- {
- if (CurrentMarker != null)
- {
- if (IsMarkerDragged)
- {
- // get geographic coordinates of mouse pointer
- PointLatLng p = gm_Locations.FromLocalToLatLng(e.X, e.Y);
- double lat = p.Lat - OfsLat;
- double lon = p.Lng - OfsLon;
- string call = CurrentMarker.Tag.ToString();
- string loc = MaidenheadLocator.LocFromLatLon(lat, lon, false, 3);
- GEOSOURCE source = (MaidenheadLocator.IsPrecise(lat, lon, 3) ? GEOSOURCE.FROMUSER : GEOSOURCE.FROMLOC);
- DataRow oldrow = Locations.Rows.Find(new string[] { call, loc });
- if (oldrow != null)
- {
- // call found --> check for update
- if ((double)oldrow["Lat"] != lat)
- {
- oldrow["Lat"] = lat;
- AddRowError(oldrow, "UPDATED", "Lat", "UpdatedValue", "OldValue:" + ((double)oldrow["Lat"]).ToString("F8", CultureInfo.InvariantCulture));
- }
- if ((double)oldrow["Lon"] != lon)
- {
- oldrow["Lon"] = lon;
- AddRowError(oldrow, "UPDATED", "Lon", "UpdatedValue", "OldValue:" + ((double)oldrow["Lon"]).ToString("F8", CultureInfo.InvariantCulture));
- }
- oldrow["Source"] = source;
- AddRowError(oldrow, "UPDATED", "Source", "UpdatedValue", "OldValue:" + oldrow["Source"].ToString());
- oldrow["LastUpdated"] = DateTime.UtcNow;
- }
- else
- {
- // marker is mpved beyond old locator
- // create new line
- if (MessageBox.Show("Marker is moved to a different locator which is not in database so far. Create new entry?","Create new entry", MessageBoxButtons.YesNo) == DialogResult.Yes)
- {
- DataRow row = Locations.NewRow();
- row["Call"] = call;
- row["Loc"] = loc;
- row["Lat"] = lat;
- row["Lon"] = lon;
- row["Source"] = source;
- row["Hits"] = 0;
- row["LastUpdated"] = DateTime.UtcNow;
- Locations.Rows.Add(row);
- }
- }
- }
- else
- {
- // restore original marker position
- CurrentMarker.Position = new PointLatLng(CurrentMarkerLat, CurrentMarkerLon);
- }
- }
- gm_Locations.CanDragMap = true;
- IsMarkerDragging = false;
- IsMarkerDragged = false;
- }
-
- private void gm_Locations_OnMarkerEnter(GMapMarker item)
- {
- CurrentMarker = (GMarkerGoogle)item;
- }
-
- private void gm_Locations_OnMarkerLeave(GMapMarker item)
- {
- // CurrentMarker = null;
- }
-
- private void tb_Locations_Callsign_Filter_TextChanged(object sender, EventArgs e)
- {
- if (String.IsNullOrEmpty(tb_Locations_Callsign_Filter.Text))
- {
- LocationsView.RowFilter = "Call LIKE '*'";
- return;
- }
- string filter = tb_Locations_Callsign_Filter.Text;
- if (!filter.EndsWith("*"))
- filter = filter + "*";
- LocationsView.RowFilter = "Call LIKE '" + filter + "'";
- }
-
- #endregion
-
- private void dgv_Locations_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
- {
- if ((e.RowIndex < 0) || (e.RowIndex >= dgv_Locations.Rows.Count))
- return;
- DataGridViewRow dgvrow = dgv_Locations.Rows[e.RowIndex];
- if ((e.ColumnIndex < 0) || (e.ColumnIndex >= dgvrow.Cells.Count))
- return;
- DataGridViewCell cell = dgvrow.Cells[e.ColumnIndex];
- if (!cell.Displayed)
- return;
- if (String.IsNullOrEmpty(dgvrow.ErrorText))
- return;
- XElement xml = XElement.Parse(dgvrow.ErrorText);
- LOCATIONSTATE state = LOCATIONSTATE.UNKNOWN;
- try
- {
- state = (LOCATIONSTATE)Enum.Parse(typeof(LOCATIONSTATE), xml.Name.ToString());
- }
- catch
- {
-
- }
- if (state == LOCATIONSTATE.ERROR)
- cell.Style.BackColor = Color.Red;
- else if (state == LOCATIONSTATE.LOCDIFF)
- cell.Style.BackColor = Color.Khaki;
- else if (state == LOCATIONSTATE.UPTODATE)
- cell.Style.BackColor = Color.LightGreen;
- else if (state == LOCATIONSTATE.ADDED)
- cell.Style.BackColor = Color.LightBlue;
- else if (state == LOCATIONSTATE.UPDATED)
- {
- string s = xml.ToString();
- string propertyname = dgv_Locations.Columns[e.ColumnIndex].DataPropertyName;
- if (s.IndexOf("<" + propertyname + " />") >= 0)
- {
- cell.Style.BackColor = Color.Bisque;
- }
- }
- }
-
- private void bw_QRZ_DoWork(object sender, DoWorkEventArgs e)
- {
- // check callsign location against QRZ.com entry
- // name current thread
- if (String.IsNullOrEmpty(Thread.CurrentThread.Name))
- Thread.CurrentThread.Name = "QRZ";
- int callschecked = 0;
- int callsfound = 0;
- int callsnotfound = 0;
- int callsuptodate = 0;
- int callsupdated = 0;
- int callsdiffloc = 0;
- int errors = 0;
- // get session key
- WebRequest myWebRequest = WebRequest.Create(Properties.Settings.Default.QRZ_URL_Login);
- myWebRequest.Timeout = 10000;
- WebResponse myWebResponse = myWebRequest.GetResponse();
- Stream ReceiveStream = myWebResponse.GetResponseStream();
- Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
- StreamReader readStream = new StreamReader(ReceiveStream, encode);
- string s = readStream.ReadToEnd();
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(s);
- var nodes = doc.GetElementsByTagName("Key");
- string sessionkey = nodes[0].InnerText;
- foreach (DataRow row in Locations.Rows)
- {
- try
- {
- callschecked++;
- string call = row["Call"].ToString();
- double lat = (double)row["Lat"];
- double lon = (double)row["Lon"];
- GEOSOURCE source = (GEOSOURCE)row["Source"];
- DateTime lastupdated = (DateTime)row["LastUpdated"];
- string loc = MaidenheadLocator.LocFromLatLon(lat, lon, false, 3);
- string qrzloc = "";
- double qrzlat = 0;
- double qrzlon = 0;
- string geoloc = "";
- string addr1 = "";
- string addr2 = "";
- string zip = "";
- string country = "";
- string error = "";
- // get xml data
- myWebRequest = WebRequest.Create(Properties.Settings.Default.QRZ_URL_XMLData + "?s=" + sessionkey + ";callsign=" + call);
- myWebRequest.Timeout = 10000;
- myWebResponse = myWebRequest.GetResponse();
- ReceiveStream = myWebResponse.GetResponseStream();
- encode = System.Text.Encoding.GetEncoding("utf-8");
- readStream = new StreamReader(ReceiveStream, encode);
- s = readStream.ReadToEnd();
- // load xml document
- doc = new XmlDocument();
- doc.LoadXml(s);
- // check for errors
- nodes = doc.GetElementsByTagName("Error");
- if (nodes.Count > 0)
- {
- error = nodes[0].InnerText;
- if (error.ToUpper().Contains("NOT FOUND"))
- {
- callsnotfound++;
- }
- else if (error.ToUpper().Contains("SESSION TIMEOUT"))
- {
- // session timeout --> obtain a new session key and try again
- myWebRequest = WebRequest.Create(Properties.Settings.Default.QRZ_URL_Login);
- myWebRequest.Timeout = 10000;
- myWebResponse = myWebRequest.GetResponse();
- ReceiveStream = myWebResponse.GetResponseStream();
- encode = System.Text.Encoding.GetEncoding("utf-8");
- readStream = new StreamReader(ReceiveStream, encode);
- s = readStream.ReadToEnd();
- doc = new XmlDocument();
- doc.LoadXml(s);
- nodes = doc.GetElementsByTagName("Key");
- sessionkey = nodes[0].InnerText;
- bw_QRZ.ReportProgress((int)LOCATIONSTATE.INFO, "Obtained new session key: " + sessionkey);
- // get xml data
- myWebRequest = WebRequest.Create(Properties.Settings.Default.QRZ_URL_XMLData + "?s=" + sessionkey + ";callsign=" + call);
- myWebRequest.Timeout = 10000;
- myWebResponse = myWebRequest.GetResponse();
- ReceiveStream = myWebResponse.GetResponseStream();
- encode = System.Text.Encoding.GetEncoding("utf-8");
- readStream = new StreamReader(ReceiveStream, encode);
- s = readStream.ReadToEnd();
- // load xml document
- doc = new XmlDocument();
- doc.LoadXml(s);
- }
- else
- {
- // report error
- errors++;
- bw_QRZ.ReportProgress((int)LOCATIONSTATE.ERROR, error);
- }
- }
- // write xml to file
- else
- {
- using (StreamWriter sw = new StreamWriter(call.Replace("/", "_") + ".xml"))
- {
- sw.WriteLine(s);
- }
- callsfound++;
- nodes = doc.GetElementsByTagName("lat");
- if (nodes.Count > 0)
- qrzlat = System.Convert.ToDouble(nodes[0].InnerText, CultureInfo.InvariantCulture);
- nodes = doc.GetElementsByTagName("lon");
- if (nodes.Count > 0)
- qrzlon = System.Convert.ToDouble(nodes[0].InnerText, CultureInfo.InvariantCulture);
- nodes = doc.GetElementsByTagName("grid");
- if (nodes.Count > 0)
- qrzloc = nodes[0].InnerText.ToUpper().Trim();
- nodes = doc.GetElementsByTagName("geoloc");
- if (nodes.Count > 0)
- geoloc = nodes[0].InnerText;
- nodes = doc.GetElementsByTagName("addr1");
- if (nodes.Count > 0)
- addr1 = nodes[0].InnerText;
- nodes = doc.GetElementsByTagName("addr2");
- if (nodes.Count > 0)
- addr2 = nodes[0].InnerText;
- nodes = doc.GetElementsByTagName("zip");
- if (nodes.Count > 0)
- zip = nodes[0].InnerText;
- nodes = doc.GetElementsByTagName("country");
- if (nodes.Count > 0)
- country = nodes[0].InnerText;
- // different loc?
- if (loc != qrzloc)
- {
- Log.WriteMessage("QRZ.COM: Locator is different [" + call + "]: " + loc + " <> " + qrzloc, LogLevel.Warning);
- callsdiffloc++;
- }
- // precise location by user or geocode?
- else if (geoloc.ToUpper().Contains("USER") || geoloc.ToUpper().Contains("GEOCODE"))
- {
- if ((qrzlat != lat) || (qrzlon != lon))
- {
- Log.WriteMessage("QRZ.COM: Location updated [" + call + "].");
- callsupdated++;
- LocationDesignator ld = new LocationDesignator(call, qrzlat, qrzlon, GEOSOURCE.FROMUSER);
- bw_QRZ.ReportProgress((int)LOCATIONSTATE.UPDATED, ld);
- }
- else
- {
- // already up to date
- Log.WriteMessage("QRZ.COM: Location up to date [" + call + "].");
- callsuptodate++;
- }
- }
- else if (geoloc.ToUpper().Contains("GRID"))
- {
- // try to get info by OpenStreetMaps API
- string url = "https://nominatim.openstreetmap.org/search?q=" + addr1 + "+" + addr2 + "+" + zip + "+" + country + "&format=xml&polygon=1&addressdetails=1";
- HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
- httpWebRequest.UserAgent = "Mozilla / 5.0(Windows NT 10.0; Win64; x64; rv: 61.0) Gecko / 20100101 Firefox / 61.0";
- HttpWebResponse httpWebResponse= (HttpWebResponse)httpWebRequest.GetResponse();
- ReceiveStream = httpWebResponse.GetResponseStream();
- // encode = System.Text.Encoding.GetEncoding("utf-8");
- readStream = new StreamReader(ReceiveStream, encode);
- s = readStream.ReadToEnd();
- // load xml document
- doc = new XmlDocument();
- doc.LoadXml(s);
- double glat = 0;
- double glon = 0;
- string gloc = "";
- nodes = doc.GetElementsByTagName("place");
- if (nodes.Count > 0)
- {
- glat = System.Convert.ToDouble(nodes[0].Attributes["lat"].Value.ToString(), CultureInfo.InvariantCulture);
- glon = System.Convert.ToDouble(nodes[0].Attributes["lon"].Value.ToString(), CultureInfo.InvariantCulture);
- }
- gloc = MaidenheadLocator.LocFromLatLon(glat, glon, false, 3);
- if (gloc == qrzloc)
- {
- // precise location from address
- Log.WriteMessage("QRZ.COM: Location updated from postal address[" + call + "].");
- callsupdated++;
- LocationDesignator ld = new LocationDesignator(call, glat, glon, GEOSOURCE.FROMUSER);
- bw_QRZ.ReportProgress((int)LOCATIONSTATE.UPDATED, ld);
- }
- else
- {
- Log.WriteMessage("QRZ.COM: Locator is different [" + call + "]: " + loc + " <> " + qrzloc, LogLevel.Warning);
- callsdiffloc++;
- }
- }
- // alreadyup to date?
- else if ((lat == qrzlat) && (lon == qrzlon))
- {
- callsuptodate++;
- }
- }
- string status = "QRZ.COM query is running: " +
- callschecked.ToString() + " checked, " +
- callsnotfound.ToString() + " not found, " +
- callsfound.ToString() + " found, " +
- callsuptodate.ToString() + " up to date, " +
- callsupdated.ToString() + " updated, " +
- callsdiffloc.ToString() + " different loc, " +
- errors.ToString() + " errors";
- bw_QRZ.ReportProgress((int)LOCATIONSTATE.INFO, status);
- if (bw_QRZ.CancellationPending)
- return;
- Thread.Sleep(10);
- }
- catch (Exception ex)
- {
- errors++;
- bw_QRZ.ReportProgress((int)LOCATIONSTATE.ERROR, ex.Message);
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- }
- }
- }
-
- private void bw_QRZ_ProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- LOCATIONSTATE state = (LOCATIONSTATE)e.ProgressPercentage;
- if (state <= 0)
- SayLocations((string)e.UserState);
- else
- {
- LocationDesignator ld = (LocationDesignator)e.UserState;
- // update data table
- try
- {
- DataRow row = Locations.Rows.Find(new string[2] { ld.Call, ld.Loc });
- if (row != null)
- {
- if (state == LOCATIONSTATE.UPTODATE)
- AddRowError(row, state.ToString(), "", "", "");
- else if (state == LOCATIONSTATE.LOCDIFF)
- AddRowError(row, state.ToString(), "", "", "");
- else
- {
- if ((double)row["Lat"] != ld.Lat)
- {
- AddRowError(row, state.ToString(), "Lat", "UpdatedValue", "OldValue:" + ((double)row["Lat"]).ToString("F8", CultureInfo.InvariantCulture));
- row["Lat"] = ld.Lat;
- }
- if ((double)row["Lon"] != ld.Lon)
- {
- AddRowError(row, state.ToString(), "Lon", "UpdatedValue", "OldValue:" + ((double)row["Lon"]).ToString("F8", CultureInfo.InvariantCulture));
- row["Lon"] = ld.Lon;
- }
- row["Source"] = ld.Source;
- row["LastUpdated"] = ld.LastUpdated;
- }
- }
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- }
- }
- }
-
- private void bw_QRZ_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- SayLocations("Finished.");
- }
-
-
- private void AddRowError(DataRow row, string category, string node, string item, string text)
- {
- try
- {
- // create XML document if not already created
- if (String.IsNullOrEmpty(row.RowError))
- {
- XElement x = new XElement(category);
- row.RowError = x.ToString();
- }
- // read out Errors as XML from RowError
- XElement xml = XElement.Parse(row.RowError);
- if (String.IsNullOrEmpty(node))
- return;
- xml.Add(new XElement(node));
- if (String.IsNullOrEmpty(item))
- return;
- xml.Add(new XElement(item, text));
- row.RowError = xml.ToString();
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- }
- }
-
- private void ImportLocations(DataTable dt)
- {
- if (dt != null)
- {
- int callsimported = dt.Rows.Count;
- int callsupdated = 0;
- int callsadded = 0;
- foreach (DataRow row in dt.Rows)
- {
- DataRow oldrow = Locations.Rows.Find(row["Call"].ToString());
- if (oldrow != null)
- {
- // call found --> check for update
- if ((DateTime)row["LastUpdated"] > (DateTime)oldrow["LastUpdated"])
- {
- if (oldrow["Lat"] != row["Lat"])
- {
- oldrow["Lat"] = row["Lat"];
- AddRowError(oldrow, "UPDATED", "Lat", "UpdatedValue", "OldValue:" + ((double)oldrow["Lat"]).ToString("F8", CultureInfo.InvariantCulture));
- }
- if (oldrow["Lon"] != row["Lon"])
- {
- oldrow["Lon"] = row["Lon"];
- AddRowError(oldrow, "UPDATED", "Lon", "UpdatedValue", "OldValue:" + ((double)oldrow["Lon"]).ToString("F8", CultureInfo.InvariantCulture));
- }
- if (oldrow["Source"] != row["Source"])
- {
- oldrow["Source"] = row["Source"];
- AddRowError(oldrow, "UPDATED", "Source", "UpdatedValue", "OldValue:" + oldrow["Source"].ToString());
- }
- oldrow["LastUpdated"] = row["LastUpdated"];
- callsupdated++;
- }
- }
- else
- {
- // add new row
- AddRowError(row, LOCATIONSTATE.ADDED.ToString(), "", "", "");
- Locations.ImportRow(row);
- callsadded++;
- }
- }
- SayLocations("Import of " + dt.TableName + " finished: " + callsimported.ToString() + " calls imported, " + callsadded.ToString() + " calls added, " + callsupdated.ToString() + " calls updated.");
- }
- }
-
- private void Locations_Row_Changed(object sender, DataRowChangeEventArgs e)
- {
-
- try
- {
- string call = e.Row["Call"].ToString();
- double lat = (double)e.Row["Lat"];
- double lon = (double)e.Row["Lon"];
- GEOSOURCE source = (GEOSOURCE)Enum.Parse(typeof(GEOSOURCE), e.Row["Source"].ToString());
- if (e.Action == DataRowAction.Add)
- {
- GMarkerGoogle gm = new GMarkerGoogle(new PointLatLng(lat, lon), (source == GEOSOURCE.FROMUSER) ? GMarkerGoogleType.green_small : GMarkerGoogleType.white_small);
- gm.ToolTipText = call;
- gm.ToolTipMode = MarkerTooltipMode.OnMouseOver;
- gm.Tag = call;
- Locationsoverlay.Markers.Add(gm);
- }
- else if (e.Action == DataRowAction.Change)
- {
- GMarkerGoogle gm = (GMarkerGoogle)Locationsoverlay.Markers.First(c => (string)c.Tag == call);
- if (gm != null)
- gm.Position = new PointLatLng(lat, lon);
- }
- else if (e.Action == DataRowAction.Delete)
- {
- GMarkerGoogle gm = (GMarkerGoogle)Locationsoverlay.Markers.First(c => (string)c.Tag == call);
- if (gm != null)
- Locationsoverlay.Markers.Remove(gm);
- }
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- }
- }
-
- private void btn_QRV_Import_WinTest_Click(object sender, EventArgs e)
- {
- DataTable dt = QRV.Clone();
- dt.Rows.Clear();
- OpenFileDialog Dlg = new OpenFileDialog();
- Dlg.DefaultExt = ".xdt";
- Dlg.Filter = "Win-Test database|*.xdt";
- Dlg.CheckFileExists = true;
- if (Dlg.ShowDialog() == DialogResult.OK)
- {
- try
- {
- int qrv_ok = 0;
- int qrv_err = 0;
- using (StreamReader sr = new StreamReader(File.OpenRead(Dlg.FileName)))
- {
- while (!sr.EndOfStream)
- {
- string s = sr.ReadLine().Trim();
- string[] a = s.Split();
- DataRow row = dt.NewRow();
- row["Call"] = a[0];
- SayQRV("Importing call: " + a[0] + "...");
- DateTime lastupdated = DateTime.MinValue;
- try
- {
- a[1] = a[1].Replace("[", "").Replace("]", "");
- lastupdated = DateTime.ParseExact(a[1], "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
- lastupdated = lastupdated.ToUniversalTime();
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- qrv_err++;
- }
- row["LastUpdated"] = lastupdated;
- for (int i = 2; i < a.Length; i++)
- {
- a[i] = a[i].Trim();
- if (!String.IsNullOrEmpty(a[i]))
- {
- try
- {
- row[a[i] + "_AH"] = 0;
- row[a[i] + "_AG"] = 0;
- row[a[i] + "_P"] = 0;
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- qrv_err++;
- }
- }
- }
- dt.Rows.Add(row);
- qrv_ok++;
- }
- }
- QRV.Merge(dt);
- SayQRV("Importing calls finished: " + qrv_ok + " calls, " + qrv_err + " error(s).");
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- }
- }
- }
-
- private void tp_QRV_Enter(object sender, EventArgs e)
- {
- QRV.Rows.Clear();
- BAND[] bands = Bands.GetValuesExceptNoneAndAll();
- foreach (BAND band in bands)
- {
- if (band > BAND.B70M)
- {
- SayQRV("Importing band: " + Bands.GetStringValue(band) + "...");
- List qrvs = StationData.Database.QRVGetAll(band);
- string band_ah = Bands.GetStringValue(band) + "_AH";
- string band_ag = Bands.GetStringValue(band) + "_AG";
- string band_p = Bands.GetStringValue(band) + "_P";
- if (qrvs != null)
- {
- foreach (QRVDesignator qrv in qrvs)
- {
- DataRow row = QRV.Rows.Find(new string[]{ qrv.Call, qrv.Loc});
- if (row == null)
- {
- row = QRV.NewRow();
- row["Call"] = qrv.Call;
- row["Loc"] = qrv.Loc;
- row["LastUpdated"] = DateTime.MinValue;
- QRV.Rows.Add(row);
- }
- row[band_ah] = qrv.AntennaHeight;
- row[band_ag] = qrv.AntennaGain;
- row[band_p] = qrv.Power;
- if ((DateTime)row["LastUpdated"] < qrv.LastUpdated)
- row["LastUpdated"] = qrv.LastUpdated;
- }
- }
- }
- }
- QRV.AcceptChanges();
- QRVView = new DataView(QRV);
- BindingSource source = new BindingSource();
- source.DataSource = QRVView;
- dgv_QRV.DataSource = source;
- dgv_QRV.ShowRowErrors = true;
- dgv_QRV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
- for (int i = 0; i < dgv_QRV.Columns.Count; i++)
- {
- if (i % 2 == 0)
- dgv_QRV.Columns[i].DefaultCellStyle.BackColor = Color.LightGray;
- }
- SayQRV("Finished.");
- }
-
- private void tb_QRV_Callsign_Filter_TextChanged(object sender, EventArgs e)
- {
- if (String.IsNullOrEmpty(tb_QRV_Callsign_Filter.Text))
- {
- QRVView.RowFilter = "Call LIKE '*'";
- return;
- }
- string filter = tb_QRV_Callsign_Filter.Text;
- if (!filter.EndsWith("*"))
- filter = filter + "*";
- QRVView.RowFilter = "Call LIKE '" + filter + "'";
-
- }
-
- private void btn_QRV_Sort_Click(object sender, EventArgs e)
- {
- // sort data table
- DataTable sorted = QRV.Clone();
- DataRow[] rows = QRV.Select("", "Call ASC");
- if (rows.Length > 0)
- {
- foreach (DataRow row in rows)
- sorted.ImportRow(row);
- }
- QRV.Clear();
- foreach (DataRow row in sorted.Rows)
- QRV.ImportRow(row);
- }
-
- private void btn_QRV_Save_Click(object sender, EventArgs e)
- {
- SayQRV("Saving changes to database...");
- try
- {
- foreach (DataRow row in QRV.Rows)
- {
- if ((row.RowState == DataRowState.Added) || (row.RowState == DataRowState.Modified))
- {
- BAND[] bands = Bands.GetValuesExceptNoneAndAll();
- foreach (BAND band in bands)
- {
- if (band > BAND.B70M)
- {
- string band_ah = Bands.GetStringValue(band) + "_AH";
- string band_ag = Bands.GetStringValue(band) + "_AG";
- string band_p = Bands.GetStringValue(band) + "_P";
- QRVDesignator qrv = new QRVDesignator();
- qrv.Call = row["Call"].ToString().ToUpper();
- qrv.Loc = row["Loc"].ToString().ToUpper();
- qrv.Band = band;
- if ((row[band_ah].GetType() != typeof(DBNull)) && (row[band_ah].GetType() != typeof(DBNull)) && (row[band_ah].GetType() != typeof(DBNull)))
- {
- qrv.AntennaHeight = (double)row[band_ah];
- qrv.AntennaGain = (double)row[band_ag];
- qrv.Power = (double)row[band_p];
- qrv.LastUpdated = (DateTime)row["LastUpdated"];
- SayQRV("Updating " + qrv.Call + ", " + qrv.Loc + "...");
- StationData.Database.QRVInsertOrUpdateIfNewer(qrv);
- }
- }
- }
- }
- }
- }
- catch (Exception ex)
- {
- Log.WriteMessage(ex.ToString(), LogLevel.Error);
- }
- SayQRV("Finished.");
-
- }
-
- private void btn_QRV_Export_Click(object sender, EventArgs e)
- {
- string filename = Path.Combine(ExportDirectory, "qrv.json");
- SayQRV("Exporting database to " + filename);
- string json = StationData.Database.QRVToJSON();
- SupportFunctions.WriteStringToFile(json, filename);
- SayQRV("Finished.");
- }
-
- private void QRV_Row_Changed(object sender, DataRowChangeEventArgs e)
- {
-
- }
-
- private void dgv_QRV_CellValueChanged(object sender, DataGridViewCellEventArgs e)
- {
- // update LastUpdated column in case of changes
- if (e.ColumnIndex < dgv_QRV.Columns.Count - 1)
- {
- dgv_QRV.Rows[e.RowIndex].Cells["LastUpdated"].Value = DateTime.UtcNow;
- }
- }
-
- private void dgv_QRV_CellEndEdit(object sender, DataGridViewCellEventArgs e)
- {
- }
-
- private void btn_QRV_Import_EDI_Click(object sender, EventArgs e)
- {
-
- }
-
- private void cb_QRV_ChangedOnly_CheckedChanged(object sender, EventArgs e)
- {
- if (cb_QRV_ChangedOnly.Checked)
- {
- QRVView.RowStateFilter = DataViewRowState.ModifiedCurrent | DataViewRowState.Added;
- }
- else
- {
- QRVView.RowStateFilter = DataViewRowState.CurrentRows;
- }
- }
-
- private void btn_SFTP_GenerateFile_Click(object sender, EventArgs e)
- {
- // generates password file for SFTP and other
- if (String.IsNullOrEmpty(tb_SFTP_URL.Text) || String.IsNullOrEmpty(tb_SFTP_User.Text) || String.IsNullOrEmpty(tb_SFTP_Password.Text))
- {
- MessageBox.Show("Invalid entries for URL, user or password!");
- return;
- }
- SaveFileDialog Dlg = new SaveFileDialog();
- Dlg.FileName = "airscout.pwd";
- if (Dlg.ShowDialog() == DialogResult.OK)
- {
- using (StreamWriter sw = new StreamWriter(Dlg.FileName,false))
- {
- string s = tb_SFTP_URL.Text + "\t" + Encryption.SimpleEncryptString(tb_SFTP_User.Text) + "\t" + Encryption.SimpleEncryptString(tb_SFTP_Password.Text);
- sw.WriteLine(s);
- }
- }
- }
-
- private void dgv_QRV_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
- {
- if ((e.Value != null) && (e.Value != DBNull.Value))
- {
- e.Value = e.Value.ToString().ToUpper();
- e.FormattingApplied = true;
- }
- }
-
- private void btn_Update_Airlines_Click(object sender, EventArgs e)
- {
- try
- {
- string json = "";
- using (var client = new WebClient())
- {
- json = client.DownloadString(Properties.Settings.Default.Airlines_Update_URL);
- }
- JsonSerializerSettings settings = new JsonSerializerSettings();
- settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
- settings.FloatFormatHandling = FloatFormatHandling.String;
- settings.Formatting = Newtonsoft.Json.Formatting.Indented;
- FR24Airlines fr24airlines = (FR24Airlines)JsonConvert.DeserializeObject(json, settings);
- int count = 0;
- int errors = 0;
- foreach (FR24AirlineDesignator fr24ad in fr24airlines.rows)
- {
- if (!String.IsNullOrEmpty(fr24ad.Code) && !String.IsNullOrEmpty(fr24ad.ICAO))
- {
- AirlineDesignator ad = new AirlineDesignator(fr24ad.ICAO, fr24ad.Code, fr24ad.Name, "[unknown]");
- int result = AircraftData.Database.AirlineInsertOrUpdateIfNewer(ad);
- if (result >= 0)
- count += result;
- else
- errors++;
- }
- }
- Say("Airlines updated from " + Properties.Settings.Default.Airlines_Update_URL + ": " + count.ToString() + " updated, " + errors.ToString() + " error(s).");
- }
- catch (Exception ex)
- {
- Say(ex.Message);
- }
- }
-
- private void btn_Update_Airports_Click(object sender, EventArgs e)
- {
- try
- {
- string json = "";
- using (var client = new WebClient())
- {
- json = client.DownloadString(Properties.Settings.Default.Airports_Update_URL);
- }
- JsonSerializerSettings settings = new JsonSerializerSettings();
- settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
- settings.FloatFormatHandling = FloatFormatHandling.String;
- settings.Formatting = Newtonsoft.Json.Formatting.Indented;
- FR24Airports fr24airports = (FR24Airports)JsonConvert.DeserializeObject(json, settings);
- int count = 0;
- int errors = 0;
- foreach (FR24AirportDesignator fr24ad in fr24airports.rows)
- {
- if (!String.IsNullOrEmpty(fr24ad.icao) && !String.IsNullOrEmpty(fr24ad.iata))
- {
- AirportDesignator ad = new AirportDesignator(fr24ad.icao, fr24ad.iata, fr24ad.lat, fr24ad.lon, fr24ad.alt, fr24ad.name.Replace("\t","").Replace("\r","").Replace("\n",""), fr24ad.country);
- int result = AircraftData.Database.AirportInsertOrUpdateIfNewer(ad);
- if (result >= 0)
- count += result;
- else
- errors++;
- }
- }
- Say("Airports updated from " + Properties.Settings.Default.Airports_Update_URL + ": " + count.ToString() + " updated, " + errors.ToString() + " error(s).");
- }
- catch (Exception ex)
- {
- Say(ex.Message);
- }
-
- }
-
- private void bw_AircraftUpdater_DoWork(object sender, DoWorkEventArgs e)
- {
- // Divide the earth surface into zones optimized for flights density
- List world_zones = new List(new string[] {
- "90, 70, -180, 180",
- "70, 50, -180, -20",
- "70, 50, -20, 0",
- "70, 50, 0, 20",
- "70, 50, 20, 40",
- "70, 50, 40, 180",
- "50, 30, -180, -120",
- "50, 40, -120, -110",
- "50, 40, -110, -100",
- "40, 30, -120, -110",
- "40, 30, -110, -100",
- "50, 40, -100, -90",
- "50, 40, -90, -80",
- "40, 30, -100, -90",
- "40, 30, -90, -80",
- "50, 30, -80, -60",
- "50, 30, -60, -40",
- "50, 30, -40, -20",
- "50, 30, -20, 0",
- "50, 40, 0, 10",
- "50, 40, 10, 20",
- "40, 30, 0, 10",
- "40, 30, 10, 20",
- "50, 30, 20, 40",
- "50, 30, 40, 60",
- "50, 30, 60, 180",
- "30, 10, -180, -100",
- "30, 10, -100, -80",
- "30, 10, -80, 100",
- "30, 10, 100, 180",
- "10, -10, -180, 180",
- "-10, -30, -180, 180",
- "-30, -90, -180, 180"
- } );
- while (!bw_AircraftUpdater.CancellationPending)
- {
- try
- {
- List aircrafts = new List();
- int errors = 0;
- foreach (string zone in world_zones)
- {
- string url = Properties.Settings.Default.Aircrafts_BaseURL + "&bounds=" + zone;
- bw_AircraftUpdater.ReportProgress(0, "getting aircrafts from: " + url);
- string json = "";
- using (var client = new WebClient())
- {
- json = client.DownloadString(url);
- }
- // modify the JSON string to get a list of aircrafts
- json = json.Substring(json.IndexOf(",") + 1);
- json = json.Substring(json.IndexOf(",") + 1);
- json = "{rows:{" + json;
- json = json.Remove(json.IndexOf(",\"stats\""));
- json = json + "}}";
- JsonSerializerSettings settings = new JsonSerializerSettings();
- settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
- settings.FloatFormatHandling = FloatFormatHandling.String;
- settings.Formatting = Newtonsoft.Json.Formatting.Indented;
- FR24Aircrafts fr24aircrafts = (FR24Aircrafts)JsonConvert.DeserializeObject(json, new FR24AircraftConverter());
- foreach (FR24AircraftDesignator fr24ad in fr24aircrafts.rows.Values)
- {
- try
- {
- AircraftDesignator ad = new AircraftDesignator();
- ad.Hex = fr24ad.hex;
- ad.Call = fr24ad.call;
- ad.Reg = fr24ad.reg;
- ad.TypeCode = fr24ad.typecode;
- ad.LastUpdated = DateTime.UtcNow;
- if (PlaneInfoChecker.Check_Hex(ad.Hex) && PlaneInfoChecker.Check_Call(ad.Call) && PlaneInfoChecker.Check_Reg(ad.Reg) && PlaneInfoChecker.Check_Type(ad.TypeCode))
- aircrafts.Add(ad);
- else
- {
-// Console.WriteLine("Invalid aircraft data: " + fr24ad.hex + "," + fr24ad.call + "," + fr24ad.reg + "," + fr24ad.typecode);
- errors++;
- }
- }
- catch (Exception ex)
- {
- bw_AircraftUpdater.ReportProgress(-1, ex.Message);
- }
- }
- Thread.Sleep(1000);
- }
- bw_AircraftUpdater.ReportProgress(0, "Updating aircrafts...");
- // update aircraft data
- AircraftData.Database.AircraftBulkInsertOrUpdateIfNewer(aircrafts);
- bw_AircraftUpdater.ReportProgress(0, "Aircafts updated from " + Properties.Settings.Default.Aircrafts_BaseURL + ": " + aircrafts.Count.ToString() + " updated, " + errors.ToString() + " error(s).");
- int timeout = 0;
- while (!bw_AircraftUpdater.CancellationPending && (timeout < 600))
- {
- Thread.Sleep(1000);
- timeout++;
- }
- }
- catch (Exception ex)
- {
- bw_AircraftUpdater.ReportProgress(-1, ex.Message);
- }
- }
- }
-
- private void bw_AircraftUpdater_ProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- if (e.ProgressPercentage < 0)
- Say((string)(e.UserState));
- else if (e.ProgressPercentage == 0)
- Say((string)(e.UserState));
- ReportAircraftsStats();
- }
-
- private void bw_AircraftUpdater_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- btn_Update_Aicrafts_Start.Enabled = true;
- btn_Update_Aircrafts_Stop.Enabled = false;
- }
-
- private void ReportAircraftsStats()
- {
- lbl_Aircrafts_Total.Text = "total: " + AircraftData.Database.AircraftCount().ToString();
- lbl_Aircrafts_UnkownHex.Text = "unknown hex: " + AircraftData.Database.AircraftCountUnknownHex().ToString();
- lbl_Aircrafts_UnkownCall.Text = "unknown call: " + AircraftData.Database.AircraftCountUnknownCall().ToString();
- lbl_Aircrafts_UnkownType.Text = "unknown type: " + AircraftData.Database.AircraftCountUnknownType().ToString();
- }
-
- private void btn_Update_Aicrafts_Start_Click(object sender, EventArgs e)
- {
- bw_AircraftUpdater.RunWorkerAsync();
- while (!bw_AircraftUpdater.IsBusy)
- Application.DoEvents();
- btn_Update_Aicrafts_Start.Enabled = false;
- btn_Update_Aircrafts_Stop.Enabled = true;
- }
-
- private void btn_Update_Aircrafts_Stop_Click(object sender, EventArgs e)
- {
- bw_AircraftUpdater.CancelAsync();
- }
-
- private void tp_Aircrafts_Enter(object sender, EventArgs e)
- {
- if (bw_AircraftUpdater.IsBusy)
- {
- btn_Update_Aicrafts_Start.Enabled = false;
- btn_Update_Aircrafts_Stop.Enabled = true;
- }
- else
- {
- btn_Update_Aicrafts_Start.Enabled = true;
- btn_Update_Aircrafts_Stop.Enabled = false;
- }
-
- ReportAircraftsStats();
- }
-
- private void btn_StationDatabase_Export_Click(object sender, EventArgs e)
- {
- // export and upload station database
- if (!SupportFunctions.ValidateDirectoryPath(Properties.Settings.Default.StationDatabase_Export_LocalDir))
- {
- MessageBox.Show("Local Path is not valid: " + Properties.Settings.Default.StationDatabase_Export_LocalDir, " Export Station Database");
- return;
- }
- Say("Getting locations...");
- string locations = StationData.Database.LocationToJSON();
- string locationsfile = Path.Combine(Properties.Settings.Default.StationDatabase_Export_LocalDir, "locations.json");
- string locationszipfile = Path.Combine(Properties.Settings.Default.StationDatabase_Export_LocalDir, "locations.zip");
- SupportFunctions.WriteStringToFile(locations, locationsfile);
- Say("Creating zip file...");
- ZIP.CompressFile(locationsfile, false, 60);
- string qrvs = StationData.Database.QRVToJSON();
- Say("Getting qrv information...");
- string qrvfile = Path.Combine(Properties.Settings.Default.StationDatabase_Export_LocalDir, "qrv.json");
- string qrvzipfile = Path.Combine(Properties.Settings.Default.StationDatabase_Export_LocalDir, "qrv.zip");
- SupportFunctions.WriteStringToFile(qrvs, qrvfile);
- Say("Creating zip file...");
- ZIP.CompressFile(qrvfile, false, 60);
- Say("Upload files...");
- SftpClient client = new SftpClient(Properties.Settings.Default.StationDatabase_Export_RemoteHost, Properties.Settings.Default.StationDatabase_Export_User, Properties.Settings.Default.StationDatabase_Export_Password);
- try
- {
- client.Connect();
- using (FileStream file = new FileStream(locationszipfile, FileMode.Open))
- {
- string uploadfile = Properties.Settings.Default.StationDatabase_Export_RemoteDir + "/" + "locations.zip";
- client.BufferSize = 4 * 1024;
- client.UploadFile(file, uploadfile, true);
- }
- using (FileStream file = new FileStream(qrvzipfile, FileMode.Open))
- {
- string uploadfile = Properties.Settings.Default.StationDatabase_Export_RemoteDir + "/" + "qrv.zip";
- client.BufferSize = 4 * 1024;
- client.UploadFile(file, uploadfile, true);
- }
-
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- Say("Station database exported and uploaded.");
- }
-
- private void btn_AircraftDatabase_Export_Click(object sender, EventArgs e)
- {
- // export and upload aircraftdatabase
- if (!SupportFunctions.ValidateDirectoryPath(Properties.Settings.Default.AircraftDatabase_Export_LocalDir))
- {
- MessageBox.Show("Local Path is not valid: " + Properties.Settings.Default.AircraftDatabase_Export_LocalDir, " Export Aircraft Database");
- return;
- }
- Say("Getting aircraft registrations...");
- string ars = AircraftData.Database.AircraftRegistrationToJSON();
- string arsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "AircraftRegistrations.json");
- string arszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "AircraftRegistrations.zip");
- SupportFunctions.WriteStringToFile(ars, arsfile);
- Say("Creating zip file...");
- ZIP.CompressFile(arsfile, false, 60);
- Say("Getting aircrafts...");
- string acs = AircraftData.Database.AircraftToJSON();
- string acsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Aircrafts.json");
- string acszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Aircrafts.zip");
- SupportFunctions.WriteStringToFile(acs, acsfile);
- Say("Creating zip file...");
- ZIP.CompressFile(acsfile, false, 60);
- Say("Getting aircraft typess...");
- string ats = AircraftData.Database.AircraftTypeToJSON();
- string atsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "AircraftTypes.json");
- string atszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "AircraftTypes.zip");
- SupportFunctions.WriteStringToFile(ats, atsfile);
- Say("Creating zip file...");
- ZIP.CompressFile(atsfile, false, 60);
- Say("Getting airlines...");
- string als = AircraftData.Database.AirlineToJSON();
- string alsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Airlines.json");
- string alszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Airlines.zip");
- SupportFunctions.WriteStringToFile(als, alsfile);
- Say("Creating zip file...");
- ZIP.CompressFile(alsfile, false, 60);
- Say("Getting airports...");
- string aps = AircraftData.Database.AirportToJSON();
- string apsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Airports.json");
- string apszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Airports.zip");
- SupportFunctions.WriteStringToFile(aps, apsfile);
- Say("Creating zip file...");
- ZIP.CompressFile(apsfile, false, 60);
- Say("Upload files...");
- SftpClient client = new SftpClient(Properties.Settings.Default.AircraftDatabase_Export_RemoteHost, Properties.Settings.Default.AircraftDatabase_Export_User, Properties.Settings.Default.AircraftDatabase_Export_Password);
- try
- {
- client.Connect();
- using (FileStream file = new FileStream(arszipfile, FileMode.Open))
- {
- string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "AircraftRegistrations.zip";
- client.BufferSize = 4 * 1024;
- client.UploadFile(file, uploadfile, true);
- }
- using (FileStream file = new FileStream(acszipfile, FileMode.Open))
- {
- string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "Aircrafts.zip";
- client.BufferSize = 4 * 1024;
- client.UploadFile(file, uploadfile, true);
- }
- using (FileStream file = new FileStream(atszipfile, FileMode.Open))
- {
- string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "AircraftTypes.zip";
- client.BufferSize = 4 * 1024;
- client.UploadFile(file, uploadfile, true);
- }
- using (FileStream file = new FileStream(alszipfile, FileMode.Open))
- {
- string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "Airlines.zip";
- client.BufferSize = 4 * 1024;
- client.UploadFile(file, uploadfile, true);
- }
- using (FileStream file = new FileStream(apszipfile, FileMode.Open))
- {
- string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "Airports.zip";
- client.BufferSize = 4 * 1024;
- client.UploadFile(file, uploadfile, true);
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- Say("Aircraft database exported and uploaded.");
- }
-
- private void dgv_Locations_SelectionChanged(object sender, EventArgs e)
- {
- DataGridViewSelectedRowCollection rows = dgv_Locations.SelectedRows;
- if (!IsMarkerDragging && (rows.Count > 0))
- {
- try
- {
- // clear locations
- Locationsoverlay.Clear();
- double minlat = double.MaxValue;
- double maxlat = double.MinValue;
- double minlon = double.MaxValue;
- double maxlon = double.MinValue;
- foreach (DataGridViewRow row in rows)
- {
- // get info
- string call = row.Cells["Call"].Value.ToString();
- double lat = (double)row.Cells["Lat"].Value;
- double lon = (double)row.Cells["Lon"].Value;
- GEOSOURCE source = (GEOSOURCE)row.Cells["Source"].Value;
- // add location
- GMarkerGoogle gm = new GMarkerGoogle(new PointLatLng(lat, lon), (source == GEOSOURCE.FROMUSER) ? GMarkerGoogleType.green_small : GMarkerGoogleType.white_small);
- gm.ToolTipText = call;
- gm.ToolTipMode = MarkerTooltipMode.OnMouseOver;
- gm.Tag = call;
- Locationsoverlay.Markers.Add(gm);
- if (minlat > lat)
- minlat = lat;
- if (maxlat < lat)
- maxlat = lat;
- if (minlon > lon)
- minlon = lon;
- if (maxlon < lon)
- maxlon = lon;
- }
- // ensure that all location are visible
- if (rows.Count > 1)
- {
- gm_Locations.SetZoomToFitRect(RectLatLng.FromLTRB(minlon, maxlat, maxlon, minlat));
- }
- else
- {
- // set standard zoom if only 1 location
- gm_Locations.Zoom = 15;
- gm_Locations.Position = new PointLatLng(minlat,minlon);
- }
- }
- catch (Exception ex)
- {
- // cannot set position -- > do nothing
- }
- }
- }
-
- }
-
- public class FR24Airlines
- {
- public int version;
- public FR24AirlineDesignator[] rows;
-
- public FR24Airlines()
- {
- version = 0;
- rows = null;
- }
- }
-
- public class FR24AirlineDesignator
- {
- public string Name;
- public string Code;
- public string ICAO;
-
- public FR24AirlineDesignator()
- {
- Name = "";
- Code = "";
- ICAO = "";
- }
- }
-
- public class FR24Airports
- {
- public int version;
- public FR24AirportDesignator[] rows;
-
- public FR24Airports()
- {
- version = 0;
- rows = null;
- }
- }
-
- public class FR24AirportDesignator
- {
- public string name;
- public string iata;
- public string icao;
- public string city;
- public double lat;
- public double lon;
- public string country;
- public double alt;
- public double size;
-
- public FR24AirportDesignator()
- {
- name = "";
- iata = "";
- icao = "";
- city = "";
- lat = 0;
- lon = 0;
- country = "";
- alt = 0;
- size = 0;
- }
- }
-
- public class FR24Aircrafts
- {
- public Dictionary rows;
- public FR24Aircrafts()
- {
- rows = null;
- }
- }
-
- public class FR24AircraftDesignator
- {
- public string hex;
- public double lat;
- public double lon;
- public int track;
- public int alt;
- public int speed;
- public string squawk;
- public string radar;
- public string typecode;
- public string reg;
- public long time;
- public string src;
- public string dst;
- public string call;
- public int dummy1;
- public int dummy2;
- public string flight;
- public int dummy3;
- public string airline;
-
- public FR24AircraftDesignator()
- {
- hex = "";
- lat = 0;
- lon = 0;
- track = 0;
- alt = 0;
- speed = 0;
- squawk = "";
- radar = "";
- typecode = "";
- reg = "";
- time = 0;
- src = "";
- dst = "";
- call = "";
- dummy1 = 0;
- dummy2 = 0;
- flight = "";
- dummy3 = 0;
- airline = "";
- }
- }
-
- class FR24AircraftConverter : JsonConverter
- {
- public override bool CanConvert(Type objectType)
- {
- return (objectType == typeof(FR24AircraftDesignator));
- }
-
- public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
- {
- JArray array = JArray.Load(reader);
- return new FR24AircraftDesignator
- {
- hex = (string)array[0],
- lat = (double)array[1],
- lon = (double)array[2],
- track = (int)array[3],
- alt = (int)array[4],
- speed = (int)array[5],
- squawk = (string)array[6],
- radar = (string)array[7],
- typecode = (string)array[8],
- reg = (string)array[9],
- time = (long)array[10],
- src = (string)array[11],
- dst = (string)array[12],
- flight = (string)array[13],
- dummy1 = (int)array[14],
- dummy2 = (int)array[15],
- call = (string)array[16],
- dummy3 = (int)array[17],
- airline = (string)array[18]
- };
- }
-
- public override bool CanWrite
- {
- get { return false; }
- }
-
- public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
- {
- throw new NotImplementedException();
- }
- }
- public enum DATABASEUPDATERSTARTOPTIONS
- {
- NONE = 0,
- FIRSTRUN = 1,
- RUNONCE = 2,
- RUNPERIODICALLY = 3
- }
-
- public enum LOCATIONSTATE
- {
- UNKNOWN = -2,
- ERROR = -1,
- INFO = 0,
- UPTODATE = 1,
- UPDATED = 2,
- LOCDIFF = 3,
- ADDED = 4
- }
-}
diff --git a/AirScoutDatabaseManager/Properties/Settings.Designer.cs b/AirScoutDatabaseManager/Properties/Settings.Designer.cs
deleted file mode 100644
index c155d71..0000000
--- a/AirScoutDatabaseManager/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,376 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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.
-//
-//------------------------------------------------------------------------------
-
-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;
- }
- }
- }
-}
diff --git a/AirScoutDatabaseManager/Properties/Settings.settings b/AirScoutDatabaseManager/Properties/Settings.settings
deleted file mode 100644
index c5e540f..0000000
--- a/AirScoutDatabaseManager/Properties/Settings.settings
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-
- -15
-
-
- 30
-
-
- 35
-
-
- 60
-
-
- OpenStreetMap
-
-
- http://www.qrz.com/db/
-
-
- \Log
-
-
- \Database
-
-
- \Tmp
-
-
- \Export
-
-
- http://www.airscout.eu/downloads/ScoutBase/1/StationData/
-
-
- https://xmldata.qrz.com/xml/current/?username=dl2alf;password=271192;agent=AirScout
-
-
- http://xmldata.qrz.com/xml/current/
-
-
- www.airscout.eu
-
-
- u45565180-airscout
-
-
- airscout
-
-
- https://www.flightradar24.com/_json/airlines.php
-
-
- https://www.flightradar24.com/_json/airports2.php
-
-
- 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
-
-
- Z:\CSharp\AirScout\Database\ScoutBase\V1
-
-
- /wsb4556518002/downloads/ScoutBase/1/StationData
-
-
- u45565180
-
-
-
-
-
- home208518495.1and1-/data.host
-
-
- Z:\CSharp\AirScout\Database\AirScout\V1
-
-
-
-
-
- /wsb4556518002/downloads/AirScout/1/AircraftData
-
-
- home208518495.1and1-/data.host
-
-
- u45565180
-
-
-
\ No newline at end of file
diff --git a/AirScoutDatabaseManager/StationDatabaseUpdater.cs b/AirScoutDatabaseManager/StationDatabaseUpdater.cs
deleted file mode 100644
index b2536f2..0000000
--- a/AirScoutDatabaseManager/StationDatabaseUpdater.cs
+++ /dev/null
@@ -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 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
-
- }
-}
diff --git a/AirScoutDatabaseManager/app.config b/AirScoutDatabaseManager/app.config
deleted file mode 100644
index fa12240..0000000
--- a/AirScoutDatabaseManager/app.config
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- -15
-
-
- 30
-
-
- 35
-
-
- 60
-
-
- OpenStreetMap
-
-
- http://www.qrz.com/db/
-
-
- \Log
-
-
- \Database
-
-
- \Tmp
-
-
- \Export
-
-
- http://www.airscout.eu/downloads/ScoutBase/1/StationData/
-
-
- https://xmldata.qrz.com/xml/current/?username=dl2alf;password=271192;agent=AirScout
-
-
- http://xmldata.qrz.com/xml/current/
-
-
- www.airscout.eu
-
-
- u45565180-airscout
-
-
- airscout
-
-
- https://www.flightradar24.com/_json/airlines.php
-
-
- https://www.flightradar24.com/_json/airports2.php
-
-
- 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
-
-
- Z:\CSharp\AirScout\Database\ScoutBase\V1
-
-
- /wsb4556518002/downloads/ScoutBase/1/StationData
-
-
- u45565180
-
-
-
-
-
- home208518495.1and1-/data.host
-
-
- Z:\CSharp\AirScout\Database\AirScout\V1
-
-
-
-
-
- /wsb4556518002/downloads/AirScout/1/AircraftData
-
-
- home208518495.1and1-/data.host
-
-
- u45565180
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AirScoutDatabaseManager/packages.config b/AirScoutDatabaseManager/packages.config
deleted file mode 100644
index bd583a5..0000000
--- a/AirScoutDatabaseManager/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AirScoutPlaneServer/AirScoutPlaneServer.csproj b/AirScoutPlaneServer/AirScoutPlaneServer.csproj
index 9344b18..733ec7b 100644
--- a/AirScoutPlaneServer/AirScoutPlaneServer.csproj
+++ b/AirScoutPlaneServer/AirScoutPlaneServer.csproj
@@ -69,8 +69,8 @@
-
- ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll
@@ -158,12 +158,12 @@
-
+
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}".
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/AirScoutViewClient/packages.config b/AirScoutViewClient/packages.config
index 2bc3b5b..05a4de8 100644
--- a/AirScoutViewClient/packages.config
+++ b/AirScoutViewClient/packages.config
@@ -1,5 +1,6 @@

-
+
+
\ No newline at end of file
diff --git a/AquaGauge/AquaGauge.csproj b/AquaGauge/AquaGauge.csproj
index 16c1924..c87483a 100644
--- a/AquaGauge/AquaGauge.csproj
+++ b/AquaGauge/AquaGauge.csproj
@@ -42,8 +42,8 @@
-
- ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll
@@ -69,12 +69,12 @@
-
+
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}".
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CATCheck/CATCheck.csproj b/CATCheck/CATCheck.csproj
new file mode 100644
index 0000000..1e180ad
--- /dev/null
+++ b/CATCheck/CATCheck.csproj
@@ -0,0 +1,571 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {0F0B27D0-7957-4CE0-9121-2C89746AF136}
+ WinExe
+ CATCheck
+ CATCheck
+ v4.0
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ AboutDlg.cs
+
+
+
+ Form
+
+
+ FrequencyOfToneDlg.cs
+
+
+
+ Form
+
+
+ MainDlg.cs
+
+
+
+
+ Form
+
+
+ SetFrequencyDlg.cs
+
+
+
+ AboutDlg.cs
+
+
+ FrequencyOfToneDlg.cs
+
+
+ MainDlg.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SetFrequencyDlg.cs
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
+
+ {c9291203-b5d0-4179-888d-04bc670b158f}
+ ScoutBase.CAT
+
+
+ {ee86e933-d883-4b18-80eb-0fba55ec67c6}
+ ScoutBase.Core
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CATCheck/ComboBoxItem.cs b/CATCheck/ComboBoxItem.cs
new file mode 100644
index 0000000..55af384
--- /dev/null
+++ b/CATCheck/ComboBoxItem.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace CATCheck
+{
+ public class ComboBoxItem
+ {
+ 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;
+ }
+ }
+}
diff --git a/CATCheck/FrequencyOfToneDlg.Designer.cs b/CATCheck/FrequencyOfToneDlg.Designer.cs
new file mode 100644
index 0000000..642e684
--- /dev/null
+++ b/CATCheck/FrequencyOfToneDlg.Designer.cs
@@ -0,0 +1,130 @@
+namespace CATCheck
+{
+ partial class FrequencyOfToneDlg
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ 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;
+ }
+}
\ No newline at end of file
diff --git a/CATCheck/FrequencyOfToneDlg.cs b/CATCheck/FrequencyOfToneDlg.cs
new file mode 100644
index 0000000..7556962
--- /dev/null
+++ b/CATCheck/FrequencyOfToneDlg.cs
@@ -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";
+ }
+ }
+ }
+}
diff --git a/CATCheck/FrequencyOfToneDlg.resx b/CATCheck/FrequencyOfToneDlg.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/CATCheck/FrequencyOfToneDlg.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CATCheck/Helpers.cs b/CATCheck/Helpers.cs
new file mode 100644
index 0000000..3951938
--- /dev/null
+++ b/CATCheck/Helpers.cs
@@ -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(this ComboBox comboBox)
+ {
+ var enumType = typeof(TEnum);
+
+ var fields = enumType.GetMembers()
+ .OfType()
+ .Where(p => p.MemberType == MemberTypes.Field)
+ .Where(p => p.IsLiteral)
+ .ToList();
+
+ var valuesByName = new Dictionary();
+
+ 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";
+ }
+ }
+}
diff --git a/CATCheck/MainDlg.Designer.cs b/CATCheck/MainDlg.Designer.cs
new file mode 100644
index 0000000..a47f3bb
--- /dev/null
+++ b/CATCheck/MainDlg.Designer.cs
@@ -0,0 +1,1320 @@
+namespace CATCheck
+{
+ partial class MainDlg
+ {
+ ///
+ /// Erforderliche Designervariable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Verwendete Ressourcen bereinigen.
+ ///
+ /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Vom Windows Form-Designer generierter Code
+
+ ///
+ /// Erforderliche Methode für die Designerunterstützung.
+ /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainDlg));
+ this.tt_Set = new System.Windows.Forms.ToolTip(this.components);
+ this.mnu_Main = new System.Windows.Forms.MenuStrip();
+ this.mni_Exit = new System.Windows.Forms.ToolStripMenuItem();
+ this.mni_Commands = new System.Windows.Forms.ToolStripMenuItem();
+ this.mni_ClearRIT = new System.Windows.Forms.ToolStripMenuItem();
+ this.mni_FrequencyOfTone = new System.Windows.Forms.ToolStripMenuItem();
+ this.mni_About = new System.Windows.Forms.ToolStripMenuItem();
+ this.gb_Log = new System.Windows.Forms.GroupBox();
+ this.lv_Messages = new System.Windows.Forms.ListView();
+ this.ch_LogLevel = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.ch_TimeStamp = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.ch_Message = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.il_MessageStates = new System.Windows.Forms.ImageList(this.components);
+ this.lbl_Queue = new System.Windows.Forms.Label();
+ this.label15 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.cb_LogVerbosity = new System.Windows.Forms.ComboBox();
+ this.btn_Log_Show = new System.Windows.Forms.Button();
+ this.btn_Log_Clear = new System.Windows.Forms.Button();
+ this.btn_Log_StartStop = new System.Windows.Forms.Button();
+ this.gb_RigControl = new System.Windows.Forms.GroupBox();
+ this.lbl_RIT_OFS = new System.Windows.Forms.Label();
+ this.lbl_FreqB = new System.Windows.Forms.Label();
+ this.lbl_FreqA = new System.Windows.Forms.Label();
+ this.lbl_Freq = new System.Windows.Forms.Label();
+ this.lbl_RIT_OFF = new System.Windows.Forms.Label();
+ this.lbl_RIT_ON = new System.Windows.Forms.Label();
+ this.lbl_SPLIT_OFF = new System.Windows.Forms.Label();
+ this.lbl_SPLIT_ON = new System.Windows.Forms.Label();
+ this.lbl_XIT_OFF = new System.Windows.Forms.Label();
+ this.lbl_XIT_ON = new System.Windows.Forms.Label();
+ this.lbl_VFO_Swap = new System.Windows.Forms.Label();
+ this.lbl_VFO_Equal = new System.Windows.Forms.Label();
+ this.lbl_VFO_B = new System.Windows.Forms.Label();
+ this.lbl_VFO_A = new System.Windows.Forms.Label();
+ this.lbl_VFO_AB = new System.Windows.Forms.Label();
+ this.lbl_VFO_AA = new System.Windows.Forms.Label();
+ this.lbl_VFO_BB = new System.Windows.Forms.Label();
+ this.lbl_VFO_BA = new System.Windows.Forms.Label();
+ this.lbl_TX = new System.Windows.Forms.Label();
+ this.lbl_RX = new System.Windows.Forms.Label();
+ this.lbl_FM = new System.Windows.Forms.Label();
+ this.lbl_AM = new System.Windows.Forms.Label();
+ this.lbl_DIG_L = new System.Windows.Forms.Label();
+ this.lbl_DIG_U = new System.Windows.Forms.Label();
+ this.lbl_CW_U = new System.Windows.Forms.Label();
+ this.lbl_CW_L = new System.Windows.Forms.Label();
+ this.lbl_SSB_L = new System.Windows.Forms.Label();
+ this.lbl_SSB_U = new System.Windows.Forms.Label();
+ this.tb_Freq = new System.Windows.Forms.TextBox();
+ this.label14 = new System.Windows.Forms.Label();
+ this.tb_Status = new System.Windows.Forms.TextBox();
+ this.tb_FreqA = new System.Windows.Forms.TextBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.tb_FreqB = new System.Windows.Forms.TextBox();
+ this.gb_RigSettings = new System.Windows.Forms.GroupBox();
+ this.btn_Restart = new System.Windows.Forms.Button();
+ this.ud_TimeoutMs = new System.Windows.Forms.NumericUpDown();
+ this.label13 = new System.Windows.Forms.Label();
+ this.ud_PollMs = new System.Windows.Forms.NumericUpDown();
+ this.label12 = new System.Windows.Forms.Label();
+ this.label11 = new System.Windows.Forms.Label();
+ this.cb_DTR = new System.Windows.Forms.ComboBox();
+ this.label10 = new System.Windows.Forms.Label();
+ this.cb_RTS = new System.Windows.Forms.ComboBox();
+ this.label9 = new System.Windows.Forms.Label();
+ this.cb_Stopbits = new System.Windows.Forms.ComboBox();
+ this.label8 = new System.Windows.Forms.Label();
+ this.cb_Parity = new System.Windows.Forms.ComboBox();
+ this.label7 = new System.Windows.Forms.Label();
+ this.cb_Databits = new System.Windows.Forms.ComboBox();
+ this.label6 = new System.Windows.Forms.Label();
+ this.cb_Baudrate = new System.Windows.Forms.ComboBox();
+ this.label5 = new System.Windows.Forms.Label();
+ this.cb_PortName = new System.Windows.Forms.ComboBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.cb_Rig = new System.Windows.Forms.ComboBox();
+ this.gb_RigSettingsFolder = new System.Windows.Forms.GroupBox();
+ this.btn_RigDefinitions_Folder = new System.Windows.Forms.Button();
+ this.tb_RigDefinitionsFolder = new System.Windows.Forms.TextBox();
+ this.ti_Main = new System.Windows.Forms.Timer(this.components);
+ this.gb_COM = new System.Windows.Forms.GroupBox();
+ this.lbl_RTS = new System.Windows.Forms.Label();
+ this.lbl_DTR = new System.Windows.Forms.Label();
+ this.lbl_CTS = new System.Windows.Forms.Label();
+ this.lbl_DSR = new System.Windows.Forms.Label();
+ this.mnu_Main.SuspendLayout();
+ this.gb_Log.SuspendLayout();
+ this.gb_RigControl.SuspendLayout();
+ this.gb_RigSettings.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_TimeoutMs)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_PollMs)).BeginInit();
+ this.gb_RigSettingsFolder.SuspendLayout();
+ this.gb_COM.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // mnu_Main
+ //
+ this.mnu_Main.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.mni_Exit,
+ this.mni_Commands,
+ this.mni_About});
+ this.mnu_Main.Location = new System.Drawing.Point(0, 0);
+ this.mnu_Main.Name = "mnu_Main";
+ this.mnu_Main.Size = new System.Drawing.Size(1008, 24);
+ this.mnu_Main.TabIndex = 10;
+ this.mnu_Main.Text = "menuStrip1";
+ //
+ // mni_Exit
+ //
+ this.mni_Exit.Name = "mni_Exit";
+ this.mni_Exit.Size = new System.Drawing.Size(38, 20);
+ this.mni_Exit.Text = "E&xit";
+ this.mni_Exit.Click += new System.EventHandler(this.mni_Exit_Click);
+ //
+ // mni_Commands
+ //
+ this.mni_Commands.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.mni_ClearRIT,
+ this.mni_FrequencyOfTone});
+ this.mni_Commands.Name = "mni_Commands";
+ this.mni_Commands.Size = new System.Drawing.Size(81, 20);
+ this.mni_Commands.Text = "Commands";
+ //
+ // mni_ClearRIT
+ //
+ this.mni_ClearRIT.Name = "mni_ClearRIT";
+ this.mni_ClearRIT.Size = new System.Drawing.Size(170, 22);
+ this.mni_ClearRIT.Text = "Clear RIT";
+ this.mni_ClearRIT.Click += new System.EventHandler(this.mni_ClearRIT_Click);
+ //
+ // mni_FrequencyOfTone
+ //
+ this.mni_FrequencyOfTone.Name = "mni_FrequencyOfTone";
+ this.mni_FrequencyOfTone.Size = new System.Drawing.Size(170, 22);
+ this.mni_FrequencyOfTone.Text = "Frequency of tone";
+ this.mni_FrequencyOfTone.Click += new System.EventHandler(this.mni_FrequencyOfTone_Click);
+ //
+ // mni_About
+ //
+ this.mni_About.Name = "mni_About";
+ this.mni_About.Size = new System.Drawing.Size(52, 20);
+ this.mni_About.Text = "&About";
+ this.mni_About.Click += new System.EventHandler(this.mni_About_Click);
+ //
+ // gb_Log
+ //
+ this.gb_Log.Controls.Add(this.lv_Messages);
+ this.gb_Log.Controls.Add(this.lbl_Queue);
+ this.gb_Log.Controls.Add(this.label15);
+ this.gb_Log.Controls.Add(this.label1);
+ this.gb_Log.Controls.Add(this.cb_LogVerbosity);
+ this.gb_Log.Controls.Add(this.btn_Log_Show);
+ this.gb_Log.Controls.Add(this.btn_Log_Clear);
+ this.gb_Log.Controls.Add(this.btn_Log_StartStop);
+ this.gb_Log.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.gb_Log.Location = new System.Drawing.Point(234, 191);
+ this.gb_Log.Name = "gb_Log";
+ this.gb_Log.Size = new System.Drawing.Size(774, 358);
+ this.gb_Log.TabIndex = 14;
+ this.gb_Log.TabStop = false;
+ this.gb_Log.Text = "Log";
+ //
+ // lv_Messages
+ //
+ this.lv_Messages.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.ch_LogLevel,
+ this.ch_TimeStamp,
+ this.ch_Message});
+ this.lv_Messages.Dock = System.Windows.Forms.DockStyle.Top;
+ this.lv_Messages.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lv_Messages.FullRowSelect = true;
+ this.lv_Messages.GridLines = true;
+ this.lv_Messages.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
+ this.lv_Messages.HideSelection = false;
+ this.lv_Messages.Location = new System.Drawing.Point(3, 16);
+ this.lv_Messages.Name = "lv_Messages";
+ this.lv_Messages.OwnerDraw = true;
+ this.lv_Messages.Size = new System.Drawing.Size(768, 280);
+ this.lv_Messages.SmallImageList = this.il_MessageStates;
+ this.lv_Messages.TabIndex = 13;
+ this.lv_Messages.UseCompatibleStateImageBehavior = false;
+ this.lv_Messages.View = System.Windows.Forms.View.Details;
+ this.lv_Messages.DrawColumnHeader += new System.Windows.Forms.DrawListViewColumnHeaderEventHandler(this.lv_Messages_DrawColumnHeader);
+ this.lv_Messages.DrawItem += new System.Windows.Forms.DrawListViewItemEventHandler(this.lv_Messages_DrawItem);
+ this.lv_Messages.DrawSubItem += new System.Windows.Forms.DrawListViewSubItemEventHandler(this.lv_Messages_DrawSubItem);
+ //
+ // ch_LogLevel
+ //
+ this.ch_LogLevel.Text = "L";
+ this.ch_LogLevel.Width = 30;
+ //
+ // ch_TimeStamp
+ //
+ this.ch_TimeStamp.Text = "UTC";
+ this.ch_TimeStamp.Width = 180;
+ //
+ // ch_Message
+ //
+ this.ch_Message.Text = "Message";
+ this.ch_Message.Width = 540;
+ //
+ // il_MessageStates
+ //
+ this.il_MessageStates.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("il_MessageStates.ImageStream")));
+ this.il_MessageStates.TransparentColor = System.Drawing.Color.Transparent;
+ this.il_MessageStates.Images.SetKeyName(0, "CAT.png");
+ this.il_MessageStates.Images.SetKeyName(1, "eventlogInfo.ico");
+ this.il_MessageStates.Images.SetKeyName(2, "eventlogWarn.ico");
+ this.il_MessageStates.Images.SetKeyName(3, "eventlogError.ico");
+ //
+ // lbl_Queue
+ //
+ this.lbl_Queue.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_Queue.Location = new System.Drawing.Point(291, 324);
+ this.lbl_Queue.Name = "lbl_Queue";
+ this.lbl_Queue.Size = new System.Drawing.Size(61, 19);
+ this.lbl_Queue.TabIndex = 12;
+ this.lbl_Queue.Text = "0";
+ //
+ // label15
+ //
+ this.label15.AutoSize = true;
+ this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label15.Location = new System.Drawing.Point(231, 325);
+ this.label15.Name = "label15";
+ this.label15.Size = new System.Drawing.Size(54, 13);
+ this.label15.TabIndex = 11;
+ this.label15.Text = "In Queue:";
+ //
+ // 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(368, 325);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(74, 13);
+ this.label1.TabIndex = 10;
+ this.label1.Text = "Log Verbosity:";
+ //
+ // cb_LogVerbosity
+ //
+ this.cb_LogVerbosity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_LogVerbosity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_LogVerbosity.FormattingEnabled = true;
+ this.cb_LogVerbosity.Location = new System.Drawing.Point(448, 322);
+ this.cb_LogVerbosity.Name = "cb_LogVerbosity";
+ this.cb_LogVerbosity.Size = new System.Drawing.Size(121, 21);
+ this.cb_LogVerbosity.TabIndex = 7;
+ this.cb_LogVerbosity.SelectedIndexChanged += new System.EventHandler(this.cb_LogVerbosity_SelectedIndexChanged);
+ //
+ // btn_Log_Show
+ //
+ this.btn_Log_Show.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_Log_Show.Location = new System.Drawing.Point(608, 318);
+ this.btn_Log_Show.Name = "btn_Log_Show";
+ this.btn_Log_Show.Size = new System.Drawing.Size(148, 27);
+ this.btn_Log_Show.TabIndex = 5;
+ this.btn_Log_Show.Text = "Show Log File in Explorer";
+ this.btn_Log_Show.UseVisualStyleBackColor = true;
+ this.btn_Log_Show.Click += new System.EventHandler(this.btn_Log_Show_Click);
+ //
+ // btn_Log_Clear
+ //
+ this.btn_Log_Clear.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_Log_Clear.Location = new System.Drawing.Point(115, 318);
+ this.btn_Log_Clear.Name = "btn_Log_Clear";
+ this.btn_Log_Clear.Size = new System.Drawing.Size(103, 27);
+ this.btn_Log_Clear.TabIndex = 4;
+ this.btn_Log_Clear.Text = "Clear Log";
+ this.btn_Log_Clear.UseVisualStyleBackColor = true;
+ this.btn_Log_Clear.Click += new System.EventHandler(this.btn_Log_Clear_Click);
+ //
+ // btn_Log_StartStop
+ //
+ this.btn_Log_StartStop.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_Log_StartStop.Location = new System.Drawing.Point(6, 318);
+ this.btn_Log_StartStop.Name = "btn_Log_StartStop";
+ this.btn_Log_StartStop.Size = new System.Drawing.Size(103, 27);
+ this.btn_Log_StartStop.TabIndex = 3;
+ this.btn_Log_StartStop.Text = "Stop Log";
+ this.btn_Log_StartStop.UseVisualStyleBackColor = true;
+ this.btn_Log_StartStop.Click += new System.EventHandler(this.btn_Log_StartStop_Click);
+ //
+ // gb_RigControl
+ //
+ this.gb_RigControl.Controls.Add(this.lbl_RIT_OFS);
+ this.gb_RigControl.Controls.Add(this.lbl_FreqB);
+ this.gb_RigControl.Controls.Add(this.lbl_FreqA);
+ this.gb_RigControl.Controls.Add(this.lbl_Freq);
+ this.gb_RigControl.Controls.Add(this.lbl_RIT_OFF);
+ this.gb_RigControl.Controls.Add(this.lbl_RIT_ON);
+ this.gb_RigControl.Controls.Add(this.lbl_SPLIT_OFF);
+ this.gb_RigControl.Controls.Add(this.lbl_SPLIT_ON);
+ this.gb_RigControl.Controls.Add(this.lbl_XIT_OFF);
+ this.gb_RigControl.Controls.Add(this.lbl_XIT_ON);
+ this.gb_RigControl.Controls.Add(this.lbl_VFO_Swap);
+ this.gb_RigControl.Controls.Add(this.lbl_VFO_Equal);
+ this.gb_RigControl.Controls.Add(this.lbl_VFO_B);
+ this.gb_RigControl.Controls.Add(this.lbl_VFO_A);
+ this.gb_RigControl.Controls.Add(this.lbl_VFO_AB);
+ this.gb_RigControl.Controls.Add(this.lbl_VFO_AA);
+ this.gb_RigControl.Controls.Add(this.lbl_VFO_BB);
+ this.gb_RigControl.Controls.Add(this.lbl_VFO_BA);
+ this.gb_RigControl.Controls.Add(this.lbl_TX);
+ this.gb_RigControl.Controls.Add(this.lbl_RX);
+ this.gb_RigControl.Controls.Add(this.lbl_FM);
+ this.gb_RigControl.Controls.Add(this.lbl_AM);
+ this.gb_RigControl.Controls.Add(this.lbl_DIG_L);
+ this.gb_RigControl.Controls.Add(this.lbl_DIG_U);
+ this.gb_RigControl.Controls.Add(this.lbl_CW_U);
+ this.gb_RigControl.Controls.Add(this.lbl_CW_L);
+ this.gb_RigControl.Controls.Add(this.lbl_SSB_L);
+ this.gb_RigControl.Controls.Add(this.lbl_SSB_U);
+ this.gb_RigControl.Controls.Add(this.tb_Freq);
+ this.gb_RigControl.Controls.Add(this.label14);
+ this.gb_RigControl.Controls.Add(this.tb_Status);
+ this.gb_RigControl.Controls.Add(this.tb_FreqA);
+ this.gb_RigControl.Controls.Add(this.label3);
+ this.gb_RigControl.Controls.Add(this.label2);
+ this.gb_RigControl.Controls.Add(this.tb_FreqB);
+ this.gb_RigControl.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.gb_RigControl.Location = new System.Drawing.Point(0, 77);
+ this.gb_RigControl.Name = "gb_RigControl";
+ this.gb_RigControl.Size = new System.Drawing.Size(938, 114);
+ this.gb_RigControl.TabIndex = 13;
+ this.gb_RigControl.TabStop = false;
+ this.gb_RigControl.Text = "Rig Control";
+ //
+ // lbl_RIT_OFS
+ //
+ this.lbl_RIT_OFS.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_RIT_OFS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_RIT_OFS.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_RIT_OFS.Location = new System.Drawing.Point(792, 84);
+ this.lbl_RIT_OFS.Name = "lbl_RIT_OFS";
+ this.lbl_RIT_OFS.Size = new System.Drawing.Size(65, 20);
+ this.lbl_RIT_OFS.TabIndex = 46;
+ this.lbl_RIT_OFS.Text = "0.00";
+ this.lbl_RIT_OFS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // lbl_FreqB
+ //
+ this.lbl_FreqB.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_FreqB.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_FreqB.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_FreqB.Location = new System.Drawing.Point(462, 79);
+ this.lbl_FreqB.Name = "lbl_FreqB";
+ this.lbl_FreqB.Size = new System.Drawing.Size(45, 25);
+ this.lbl_FreqB.TabIndex = 45;
+ this.lbl_FreqB.Text = "Set";
+ this.lbl_FreqB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_FreqB.Click += new System.EventHandler(this.lbl_FreqB_Click);
+ //
+ // lbl_FreqA
+ //
+ this.lbl_FreqA.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_FreqA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_FreqA.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_FreqA.Location = new System.Drawing.Point(462, 47);
+ this.lbl_FreqA.Name = "lbl_FreqA";
+ this.lbl_FreqA.Size = new System.Drawing.Size(45, 25);
+ this.lbl_FreqA.TabIndex = 44;
+ this.lbl_FreqA.Text = "Set";
+ this.lbl_FreqA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_FreqA.Click += new System.EventHandler(this.lbl_FreqA_Click);
+ //
+ // lbl_Freq
+ //
+ this.lbl_Freq.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_Freq.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_Freq.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_Freq.Location = new System.Drawing.Point(462, 15);
+ this.lbl_Freq.Name = "lbl_Freq";
+ this.lbl_Freq.Size = new System.Drawing.Size(45, 25);
+ this.lbl_Freq.TabIndex = 43;
+ this.lbl_Freq.Text = "Set";
+ this.lbl_Freq.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_Freq.Click += new System.EventHandler(this.lbl_Freq_Click);
+ //
+ // lbl_RIT_OFF
+ //
+ this.lbl_RIT_OFF.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_RIT_OFF.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_RIT_OFF.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_RIT_OFF.Location = new System.Drawing.Point(863, 61);
+ this.lbl_RIT_OFF.Name = "lbl_RIT_OFF";
+ this.lbl_RIT_OFF.Size = new System.Drawing.Size(65, 20);
+ this.lbl_RIT_OFF.TabIndex = 42;
+ this.lbl_RIT_OFF.Text = "RIT OFF";
+ this.lbl_RIT_OFF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_RIT_OFF.Click += new System.EventHandler(this.lbl_RIT_OFF_Click);
+ //
+ // lbl_RIT_ON
+ //
+ this.lbl_RIT_ON.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_RIT_ON.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_RIT_ON.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_RIT_ON.Location = new System.Drawing.Point(792, 61);
+ this.lbl_RIT_ON.Name = "lbl_RIT_ON";
+ this.lbl_RIT_ON.Size = new System.Drawing.Size(65, 20);
+ this.lbl_RIT_ON.TabIndex = 41;
+ this.lbl_RIT_ON.Text = "RIT ON";
+ this.lbl_RIT_ON.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_RIT_ON.Click += new System.EventHandler(this.lbl_RIT_ON_Click);
+ //
+ // lbl_SPLIT_OFF
+ //
+ this.lbl_SPLIT_OFF.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_SPLIT_OFF.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_SPLIT_OFF.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_SPLIT_OFF.Location = new System.Drawing.Point(863, 15);
+ this.lbl_SPLIT_OFF.Name = "lbl_SPLIT_OFF";
+ this.lbl_SPLIT_OFF.Size = new System.Drawing.Size(65, 20);
+ this.lbl_SPLIT_OFF.TabIndex = 40;
+ this.lbl_SPLIT_OFF.Text = "SPLIT OFF";
+ this.lbl_SPLIT_OFF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_SPLIT_OFF.Click += new System.EventHandler(this.lbl_SPLIT_OFF_Click);
+ //
+ // lbl_SPLIT_ON
+ //
+ this.lbl_SPLIT_ON.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_SPLIT_ON.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_SPLIT_ON.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_SPLIT_ON.Location = new System.Drawing.Point(792, 15);
+ this.lbl_SPLIT_ON.Name = "lbl_SPLIT_ON";
+ this.lbl_SPLIT_ON.Size = new System.Drawing.Size(65, 20);
+ this.lbl_SPLIT_ON.TabIndex = 39;
+ this.lbl_SPLIT_ON.Text = "SPLIT ON";
+ this.lbl_SPLIT_ON.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_SPLIT_ON.Click += new System.EventHandler(this.lbl_SPLIT_ON_Click);
+ //
+ // lbl_XIT_OFF
+ //
+ this.lbl_XIT_OFF.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_XIT_OFF.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_XIT_OFF.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_XIT_OFF.Location = new System.Drawing.Point(863, 38);
+ this.lbl_XIT_OFF.Name = "lbl_XIT_OFF";
+ this.lbl_XIT_OFF.Size = new System.Drawing.Size(65, 20);
+ this.lbl_XIT_OFF.TabIndex = 38;
+ this.lbl_XIT_OFF.Text = "XIT OFF";
+ this.lbl_XIT_OFF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_XIT_OFF.Click += new System.EventHandler(this.lbl_XIT_OFF_Click);
+ //
+ // lbl_XIT_ON
+ //
+ this.lbl_XIT_ON.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_XIT_ON.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_XIT_ON.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_XIT_ON.Location = new System.Drawing.Point(792, 38);
+ this.lbl_XIT_ON.Name = "lbl_XIT_ON";
+ this.lbl_XIT_ON.Size = new System.Drawing.Size(65, 20);
+ this.lbl_XIT_ON.TabIndex = 37;
+ this.lbl_XIT_ON.Text = "XIT ON";
+ this.lbl_XIT_ON.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_XIT_ON.Click += new System.EventHandler(this.lbl_XIT_ON_Click);
+ //
+ // lbl_VFO_Swap
+ //
+ this.lbl_VFO_Swap.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_VFO_Swap.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_VFO_Swap.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_VFO_Swap.Location = new System.Drawing.Point(721, 84);
+ this.lbl_VFO_Swap.Name = "lbl_VFO_Swap";
+ this.lbl_VFO_Swap.Size = new System.Drawing.Size(55, 20);
+ this.lbl_VFO_Swap.TabIndex = 36;
+ this.lbl_VFO_Swap.Text = "A <> B";
+ this.lbl_VFO_Swap.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_VFO_Swap.Click += new System.EventHandler(this.lbl_VFO_Swap_Click);
+ //
+ // lbl_VFO_Equal
+ //
+ this.lbl_VFO_Equal.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_VFO_Equal.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_VFO_Equal.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_VFO_Equal.Location = new System.Drawing.Point(660, 84);
+ this.lbl_VFO_Equal.Name = "lbl_VFO_Equal";
+ this.lbl_VFO_Equal.Size = new System.Drawing.Size(55, 20);
+ this.lbl_VFO_Equal.TabIndex = 35;
+ this.lbl_VFO_Equal.Text = "A = B";
+ this.lbl_VFO_Equal.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_VFO_Equal.Click += new System.EventHandler(this.lbl_VFO_Equal_Click);
+ //
+ // lbl_VFO_B
+ //
+ this.lbl_VFO_B.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_VFO_B.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_VFO_B.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_VFO_B.Location = new System.Drawing.Point(721, 61);
+ this.lbl_VFO_B.Name = "lbl_VFO_B";
+ this.lbl_VFO_B.Size = new System.Drawing.Size(55, 20);
+ this.lbl_VFO_B.TabIndex = 34;
+ this.lbl_VFO_B.Text = "VFO B";
+ this.lbl_VFO_B.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_VFO_B.Click += new System.EventHandler(this.lbl_VFO_B_Click);
+ //
+ // lbl_VFO_A
+ //
+ this.lbl_VFO_A.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_VFO_A.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_VFO_A.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_VFO_A.Location = new System.Drawing.Point(660, 61);
+ this.lbl_VFO_A.Name = "lbl_VFO_A";
+ this.lbl_VFO_A.Size = new System.Drawing.Size(55, 20);
+ this.lbl_VFO_A.TabIndex = 33;
+ this.lbl_VFO_A.Text = "VFO A";
+ this.lbl_VFO_A.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_VFO_A.Click += new System.EventHandler(this.lbl_VFO_A_Click);
+ //
+ // lbl_VFO_AB
+ //
+ this.lbl_VFO_AB.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_VFO_AB.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_VFO_AB.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_VFO_AB.Location = new System.Drawing.Point(721, 15);
+ this.lbl_VFO_AB.Name = "lbl_VFO_AB";
+ this.lbl_VFO_AB.Size = new System.Drawing.Size(55, 20);
+ this.lbl_VFO_AB.TabIndex = 32;
+ this.lbl_VFO_AB.Text = "VFA AB";
+ this.lbl_VFO_AB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_VFO_AB.Click += new System.EventHandler(this.lbl_VFO_AB_Click);
+ //
+ // lbl_VFO_AA
+ //
+ this.lbl_VFO_AA.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_VFO_AA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_VFO_AA.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_VFO_AA.Location = new System.Drawing.Point(660, 15);
+ this.lbl_VFO_AA.Name = "lbl_VFO_AA";
+ this.lbl_VFO_AA.Size = new System.Drawing.Size(55, 20);
+ this.lbl_VFO_AA.TabIndex = 31;
+ this.lbl_VFO_AA.Text = "VFO AA";
+ this.lbl_VFO_AA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_VFO_AA.Click += new System.EventHandler(this.lbl_VFO_AA_Click);
+ //
+ // lbl_VFO_BB
+ //
+ this.lbl_VFO_BB.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_VFO_BB.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_VFO_BB.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_VFO_BB.Location = new System.Drawing.Point(721, 38);
+ this.lbl_VFO_BB.Name = "lbl_VFO_BB";
+ this.lbl_VFO_BB.Size = new System.Drawing.Size(55, 20);
+ this.lbl_VFO_BB.TabIndex = 30;
+ this.lbl_VFO_BB.Text = "VFO BB";
+ this.lbl_VFO_BB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_VFO_BB.Click += new System.EventHandler(this.lbl_VFO_BB_Click);
+ //
+ // lbl_VFO_BA
+ //
+ this.lbl_VFO_BA.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_VFO_BA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_VFO_BA.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_VFO_BA.Location = new System.Drawing.Point(660, 38);
+ this.lbl_VFO_BA.Name = "lbl_VFO_BA";
+ this.lbl_VFO_BA.Size = new System.Drawing.Size(55, 20);
+ this.lbl_VFO_BA.TabIndex = 29;
+ this.lbl_VFO_BA.Text = "VFO BA";
+ this.lbl_VFO_BA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_VFO_BA.Click += new System.EventHandler(this.lbl_VFO_BA_Click);
+ //
+ // lbl_TX
+ //
+ this.lbl_TX.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_TX.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_TX.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_TX.Location = new System.Drawing.Point(110, 58);
+ this.lbl_TX.Name = "lbl_TX";
+ this.lbl_TX.Size = new System.Drawing.Size(84, 39);
+ this.lbl_TX.TabIndex = 28;
+ this.lbl_TX.Text = "TX";
+ this.lbl_TX.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_TX.Click += new System.EventHandler(this.lbl_TX_Click);
+ //
+ // lbl_RX
+ //
+ this.lbl_RX.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_RX.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_RX.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_RX.Location = new System.Drawing.Point(12, 58);
+ this.lbl_RX.Name = "lbl_RX";
+ this.lbl_RX.Size = new System.Drawing.Size(84, 39);
+ this.lbl_RX.TabIndex = 27;
+ this.lbl_RX.Text = "RX";
+ this.lbl_RX.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_RX.Click += new System.EventHandler(this.lbl_RX_Click);
+ //
+ // lbl_FM
+ //
+ this.lbl_FM.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_FM.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_FM.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_FM.Location = new System.Drawing.Point(586, 84);
+ this.lbl_FM.Name = "lbl_FM";
+ this.lbl_FM.Size = new System.Drawing.Size(55, 20);
+ this.lbl_FM.TabIndex = 26;
+ this.lbl_FM.Text = "FM";
+ this.lbl_FM.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_FM.Click += new System.EventHandler(this.lbl_FM_Click);
+ //
+ // lbl_AM
+ //
+ this.lbl_AM.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_AM.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_AM.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_AM.Location = new System.Drawing.Point(525, 84);
+ this.lbl_AM.Name = "lbl_AM";
+ this.lbl_AM.Size = new System.Drawing.Size(55, 20);
+ this.lbl_AM.TabIndex = 25;
+ this.lbl_AM.Text = "AM";
+ this.lbl_AM.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_AM.Click += new System.EventHandler(this.lbl_AM_Click);
+ //
+ // lbl_DIG_L
+ //
+ this.lbl_DIG_L.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_DIG_L.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_DIG_L.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_DIG_L.Location = new System.Drawing.Point(586, 61);
+ this.lbl_DIG_L.Name = "lbl_DIG_L";
+ this.lbl_DIG_L.Size = new System.Drawing.Size(55, 20);
+ this.lbl_DIG_L.TabIndex = 24;
+ this.lbl_DIG_L.Text = "DATA_R";
+ this.lbl_DIG_L.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_DIG_L.Click += new System.EventHandler(this.lbl_DIG_L_Click);
+ //
+ // lbl_DIG_U
+ //
+ this.lbl_DIG_U.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_DIG_U.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_DIG_U.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_DIG_U.Location = new System.Drawing.Point(525, 61);
+ this.lbl_DIG_U.Name = "lbl_DIG_U";
+ this.lbl_DIG_U.Size = new System.Drawing.Size(55, 20);
+ this.lbl_DIG_U.TabIndex = 23;
+ this.lbl_DIG_U.Text = "DATA";
+ this.lbl_DIG_U.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_DIG_U.Click += new System.EventHandler(this.lbl_DIG_U_Click);
+ //
+ // lbl_CW_U
+ //
+ this.lbl_CW_U.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_CW_U.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_CW_U.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_CW_U.Location = new System.Drawing.Point(586, 15);
+ this.lbl_CW_U.Name = "lbl_CW_U";
+ this.lbl_CW_U.Size = new System.Drawing.Size(55, 20);
+ this.lbl_CW_U.TabIndex = 22;
+ this.lbl_CW_U.Text = "CW-R";
+ this.lbl_CW_U.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_CW_U.Click += new System.EventHandler(this.lbl_CW_U_Click);
+ //
+ // lbl_CW_L
+ //
+ this.lbl_CW_L.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_CW_L.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_CW_L.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_CW_L.Location = new System.Drawing.Point(525, 15);
+ this.lbl_CW_L.Name = "lbl_CW_L";
+ this.lbl_CW_L.Size = new System.Drawing.Size(55, 20);
+ this.lbl_CW_L.TabIndex = 21;
+ this.lbl_CW_L.Text = "CW";
+ this.lbl_CW_L.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_CW_L.Click += new System.EventHandler(this.lbl_CW_L_Click);
+ //
+ // lbl_SSB_L
+ //
+ this.lbl_SSB_L.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_SSB_L.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_SSB_L.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_SSB_L.Location = new System.Drawing.Point(586, 38);
+ this.lbl_SSB_L.Name = "lbl_SSB_L";
+ this.lbl_SSB_L.Size = new System.Drawing.Size(55, 20);
+ this.lbl_SSB_L.TabIndex = 20;
+ this.lbl_SSB_L.Text = "LSB";
+ this.lbl_SSB_L.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_SSB_L.Click += new System.EventHandler(this.lbl_SSB_L_Click);
+ //
+ // lbl_SSB_U
+ //
+ this.lbl_SSB_U.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lbl_SSB_U.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_SSB_U.ForeColor = System.Drawing.Color.Gray;
+ this.lbl_SSB_U.Location = new System.Drawing.Point(525, 38);
+ this.lbl_SSB_U.Name = "lbl_SSB_U";
+ this.lbl_SSB_U.Size = new System.Drawing.Size(55, 20);
+ this.lbl_SSB_U.TabIndex = 19;
+ this.lbl_SSB_U.Text = "USB";
+ this.lbl_SSB_U.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_SSB_U.Click += new System.EventHandler(this.lbl_SSB_U_Click);
+ //
+ // tb_Freq
+ //
+ this.tb_Freq.BackColor = System.Drawing.Color.Gray;
+ this.tb_Freq.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Freq.ForeColor = System.Drawing.Color.Chartreuse;
+ this.tb_Freq.Location = new System.Drawing.Point(254, 14);
+ this.tb_Freq.Name = "tb_Freq";
+ this.tb_Freq.ReadOnly = true;
+ this.tb_Freq.Size = new System.Drawing.Size(186, 26);
+ this.tb_Freq.TabIndex = 6;
+ //
+ // label14
+ //
+ this.label14.AutoSize = true;
+ this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label14.Location = new System.Drawing.Point(204, 20);
+ this.label14.Name = "label14";
+ this.label14.Size = new System.Drawing.Size(31, 13);
+ this.label14.TabIndex = 7;
+ this.label14.Text = "Freq:";
+ //
+ // tb_Status
+ //
+ this.tb_Status.BackColor = System.Drawing.Color.AntiqueWhite;
+ this.tb_Status.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_Status.Location = new System.Drawing.Point(12, 20);
+ this.tb_Status.Name = "tb_Status";
+ this.tb_Status.Size = new System.Drawing.Size(182, 26);
+ this.tb_Status.TabIndex = 0;
+ //
+ // tb_FreqA
+ //
+ this.tb_FreqA.BackColor = System.Drawing.Color.Gray;
+ this.tb_FreqA.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_FreqA.ForeColor = System.Drawing.Color.Chartreuse;
+ this.tb_FreqA.Location = new System.Drawing.Point(254, 46);
+ this.tb_FreqA.Name = "tb_FreqA";
+ this.tb_FreqA.ReadOnly = true;
+ this.tb_FreqA.Size = new System.Drawing.Size(186, 26);
+ this.tb_FreqA.TabIndex = 2;
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ 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(204, 83);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(41, 13);
+ this.label3.TabIndex = 5;
+ this.label3.Text = "Freq B:";
+ //
+ // 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(204, 50);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(41, 13);
+ this.label2.TabIndex = 3;
+ this.label2.Text = "Freq A:";
+ //
+ // tb_FreqB
+ //
+ this.tb_FreqB.BackColor = System.Drawing.Color.Gray;
+ this.tb_FreqB.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_FreqB.ForeColor = System.Drawing.Color.Chartreuse;
+ this.tb_FreqB.Location = new System.Drawing.Point(254, 78);
+ this.tb_FreqB.Name = "tb_FreqB";
+ this.tb_FreqB.ReadOnly = true;
+ this.tb_FreqB.Size = new System.Drawing.Size(186, 26);
+ this.tb_FreqB.TabIndex = 4;
+ //
+ // gb_RigSettings
+ //
+ this.gb_RigSettings.Controls.Add(this.btn_Restart);
+ this.gb_RigSettings.Controls.Add(this.ud_TimeoutMs);
+ this.gb_RigSettings.Controls.Add(this.label13);
+ this.gb_RigSettings.Controls.Add(this.ud_PollMs);
+ this.gb_RigSettings.Controls.Add(this.label12);
+ this.gb_RigSettings.Controls.Add(this.label11);
+ this.gb_RigSettings.Controls.Add(this.cb_DTR);
+ this.gb_RigSettings.Controls.Add(this.label10);
+ this.gb_RigSettings.Controls.Add(this.cb_RTS);
+ this.gb_RigSettings.Controls.Add(this.label9);
+ this.gb_RigSettings.Controls.Add(this.cb_Stopbits);
+ this.gb_RigSettings.Controls.Add(this.label8);
+ this.gb_RigSettings.Controls.Add(this.cb_Parity);
+ this.gb_RigSettings.Controls.Add(this.label7);
+ this.gb_RigSettings.Controls.Add(this.cb_Databits);
+ this.gb_RigSettings.Controls.Add(this.label6);
+ this.gb_RigSettings.Controls.Add(this.cb_Baudrate);
+ this.gb_RigSettings.Controls.Add(this.label5);
+ this.gb_RigSettings.Controls.Add(this.cb_PortName);
+ this.gb_RigSettings.Controls.Add(this.label4);
+ this.gb_RigSettings.Controls.Add(this.cb_Rig);
+ this.gb_RigSettings.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.gb_RigSettings.Location = new System.Drawing.Point(18, 191);
+ this.gb_RigSettings.Name = "gb_RigSettings";
+ this.gb_RigSettings.Size = new System.Drawing.Size(210, 358);
+ this.gb_RigSettings.TabIndex = 12;
+ this.gb_RigSettings.TabStop = false;
+ this.gb_RigSettings.Text = "Rig Settings";
+ //
+ // btn_Restart
+ //
+ this.btn_Restart.BackColor = System.Drawing.Color.PaleGreen;
+ this.btn_Restart.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_Restart.Location = new System.Drawing.Point(12, 318);
+ this.btn_Restart.Name = "btn_Restart";
+ this.btn_Restart.Size = new System.Drawing.Size(182, 27);
+ this.btn_Restart.TabIndex = 8;
+ this.btn_Restart.Text = "Restart Rig";
+ this.btn_Restart.UseVisualStyleBackColor = false;
+ this.btn_Restart.Click += new System.EventHandler(this.btn_Restart_Click);
+ //
+ // ud_TimeoutMs
+ //
+ this.ud_TimeoutMs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_TimeoutMs.Increment = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_TimeoutMs.Location = new System.Drawing.Point(125, 276);
+ this.ud_TimeoutMs.Maximum = new decimal(new int[] {
+ 10000,
+ 0,
+ 0,
+ 0});
+ this.ud_TimeoutMs.Minimum = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_TimeoutMs.Name = "ud_TimeoutMs";
+ this.ud_TimeoutMs.Size = new System.Drawing.Size(69, 20);
+ this.ud_TimeoutMs.TabIndex = 26;
+ this.ud_TimeoutMs.Value = new decimal(new int[] {
+ 5000,
+ 0,
+ 0,
+ 0});
+ this.ud_TimeoutMs.ValueChanged += new System.EventHandler(this.ud_TimeoutMs_ValueChanged);
+ //
+ // label13
+ //
+ this.label13.AutoSize = true;
+ this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label13.Location = new System.Drawing.Point(9, 278);
+ this.label13.Name = "label13";
+ this.label13.Size = new System.Drawing.Size(70, 13);
+ this.label13.TabIndex = 27;
+ this.label13.Text = "Timeout [ms]:";
+ //
+ // ud_PollMs
+ //
+ this.ud_PollMs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_PollMs.Increment = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_PollMs.Location = new System.Drawing.Point(125, 250);
+ this.ud_PollMs.Maximum = new decimal(new int[] {
+ 10000,
+ 0,
+ 0,
+ 0});
+ this.ud_PollMs.Minimum = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ 0});
+ this.ud_PollMs.Name = "ud_PollMs";
+ this.ud_PollMs.Size = new System.Drawing.Size(69, 20);
+ this.ud_PollMs.TabIndex = 8;
+ this.ud_PollMs.Value = new decimal(new int[] {
+ 500,
+ 0,
+ 0,
+ 0});
+ this.ud_PollMs.ValueChanged += new System.EventHandler(this.ud_PollMs_ValueChanged);
+ //
+ // label12
+ //
+ this.label12.AutoSize = true;
+ this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label12.Location = new System.Drawing.Point(9, 252);
+ this.label12.Name = "label12";
+ this.label12.Size = new System.Drawing.Size(64, 13);
+ this.label12.TabIndex = 25;
+ this.label12.Text = "Poll Int [ms]:";
+ //
+ // label11
+ //
+ this.label11.AutoSize = true;
+ this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label11.Location = new System.Drawing.Point(9, 225);
+ this.label11.Name = "label11";
+ this.label11.Size = new System.Drawing.Size(33, 13);
+ this.label11.TabIndex = 23;
+ this.label11.Text = "DTR:";
+ //
+ // cb_DTR
+ //
+ this.cb_DTR.DisplayMember = "Text";
+ this.cb_DTR.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_DTR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_DTR.FormattingEnabled = true;
+ this.cb_DTR.Location = new System.Drawing.Point(87, 222);
+ this.cb_DTR.Name = "cb_DTR";
+ this.cb_DTR.Size = new System.Drawing.Size(107, 21);
+ this.cb_DTR.TabIndex = 22;
+ this.cb_DTR.ValueMember = "Value";
+ this.cb_DTR.SelectedIndexChanged += new System.EventHandler(this.cb_DTR_SelectedIndexChanged);
+ //
+ // label10
+ //
+ this.label10.AutoSize = true;
+ this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label10.Location = new System.Drawing.Point(9, 198);
+ this.label10.Name = "label10";
+ this.label10.Size = new System.Drawing.Size(32, 13);
+ this.label10.TabIndex = 21;
+ this.label10.Text = "RTS:";
+ //
+ // cb_RTS
+ //
+ this.cb_RTS.DisplayMember = "Text";
+ this.cb_RTS.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_RTS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_RTS.FormattingEnabled = true;
+ this.cb_RTS.Location = new System.Drawing.Point(87, 195);
+ this.cb_RTS.Name = "cb_RTS";
+ this.cb_RTS.Size = new System.Drawing.Size(107, 21);
+ this.cb_RTS.TabIndex = 20;
+ this.cb_RTS.ValueMember = "Value";
+ this.cb_RTS.SelectedIndexChanged += new System.EventHandler(this.cb_RTS_SelectedIndexChanged);
+ //
+ // label9
+ //
+ this.label9.AutoSize = true;
+ this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label9.Location = new System.Drawing.Point(9, 171);
+ this.label9.Name = "label9";
+ this.label9.Size = new System.Drawing.Size(48, 13);
+ this.label9.TabIndex = 19;
+ this.label9.Text = "Stopbits:";
+ //
+ // cb_Stopbits
+ //
+ this.cb_Stopbits.DisplayMember = "Text";
+ this.cb_Stopbits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Stopbits.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Stopbits.FormattingEnabled = true;
+ this.cb_Stopbits.Location = new System.Drawing.Point(87, 168);
+ this.cb_Stopbits.Name = "cb_Stopbits";
+ this.cb_Stopbits.Size = new System.Drawing.Size(107, 21);
+ this.cb_Stopbits.TabIndex = 18;
+ this.cb_Stopbits.ValueMember = "Value";
+ this.cb_Stopbits.SelectedIndexChanged += new System.EventHandler(this.cb_Stopbits_SelectedIndexChanged);
+ //
+ // label8
+ //
+ this.label8.AutoSize = true;
+ this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label8.Location = new System.Drawing.Point(9, 144);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(36, 13);
+ this.label8.TabIndex = 17;
+ this.label8.Text = "Parity:";
+ //
+ // cb_Parity
+ //
+ this.cb_Parity.DisplayMember = "Text";
+ this.cb_Parity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Parity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Parity.FormattingEnabled = true;
+ this.cb_Parity.Location = new System.Drawing.Point(87, 141);
+ this.cb_Parity.Name = "cb_Parity";
+ this.cb_Parity.Size = new System.Drawing.Size(107, 21);
+ this.cb_Parity.TabIndex = 16;
+ this.cb_Parity.ValueMember = "Value";
+ this.cb_Parity.SelectedIndexChanged += new System.EventHandler(this.cb_Parity_SelectedIndexChanged);
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label7.Location = new System.Drawing.Point(9, 117);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(49, 13);
+ this.label7.TabIndex = 15;
+ this.label7.Text = "Databits:";
+ //
+ // cb_Databits
+ //
+ this.cb_Databits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Databits.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Databits.FormattingEnabled = true;
+ this.cb_Databits.Location = new System.Drawing.Point(87, 114);
+ this.cb_Databits.Name = "cb_Databits";
+ this.cb_Databits.Size = new System.Drawing.Size(107, 21);
+ this.cb_Databits.TabIndex = 14;
+ this.cb_Databits.SelectedIndexChanged += new System.EventHandler(this.cb_Databits_SelectedIndexChanged);
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label6.Location = new System.Drawing.Point(9, 90);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(53, 13);
+ this.label6.TabIndex = 13;
+ this.label6.Text = "Baudrate:";
+ //
+ // cb_Baudrate
+ //
+ this.cb_Baudrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Baudrate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Baudrate.FormattingEnabled = true;
+ this.cb_Baudrate.Location = new System.Drawing.Point(87, 87);
+ this.cb_Baudrate.Name = "cb_Baudrate";
+ this.cb_Baudrate.Size = new System.Drawing.Size(107, 21);
+ this.cb_Baudrate.TabIndex = 12;
+ this.cb_Baudrate.SelectedIndexChanged += new System.EventHandler(this.cb_Baudrate_SelectedIndexChanged);
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label5.Location = new System.Drawing.Point(9, 63);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(57, 13);
+ this.label5.TabIndex = 11;
+ this.label5.Text = "PortName:";
+ //
+ // cb_PortName
+ //
+ this.cb_PortName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_PortName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_PortName.FormattingEnabled = true;
+ this.cb_PortName.Location = new System.Drawing.Point(87, 60);
+ this.cb_PortName.Name = "cb_PortName";
+ this.cb_PortName.Size = new System.Drawing.Size(107, 21);
+ this.cb_PortName.TabIndex = 10;
+ this.cb_PortName.SelectedIndexChanged += new System.EventHandler(this.cb_PortName_SelectedIndexChanged);
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label4.Location = new System.Drawing.Point(9, 36);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(26, 13);
+ this.label4.TabIndex = 9;
+ this.label4.Text = "Rig:";
+ //
+ // cb_Rig
+ //
+ this.cb_Rig.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cb_Rig.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cb_Rig.FormattingEnabled = true;
+ this.cb_Rig.Location = new System.Drawing.Point(87, 33);
+ this.cb_Rig.Name = "cb_Rig";
+ this.cb_Rig.Size = new System.Drawing.Size(107, 21);
+ this.cb_Rig.TabIndex = 8;
+ this.cb_Rig.SelectedIndexChanged += new System.EventHandler(this.cb_Rig_SelectedIndexChanged);
+ //
+ // gb_RigSettingsFolder
+ //
+ this.gb_RigSettingsFolder.Controls.Add(this.btn_RigDefinitions_Folder);
+ this.gb_RigSettingsFolder.Controls.Add(this.tb_RigDefinitionsFolder);
+ this.gb_RigSettingsFolder.Dock = System.Windows.Forms.DockStyle.Top;
+ this.gb_RigSettingsFolder.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.gb_RigSettingsFolder.Location = new System.Drawing.Point(0, 24);
+ this.gb_RigSettingsFolder.Name = "gb_RigSettingsFolder";
+ this.gb_RigSettingsFolder.Size = new System.Drawing.Size(1008, 53);
+ this.gb_RigSettingsFolder.TabIndex = 11;
+ this.gb_RigSettingsFolder.TabStop = false;
+ this.gb_RigSettingsFolder.Text = "Rig Definitions Folder";
+ //
+ // btn_RigDefinitions_Folder
+ //
+ this.btn_RigDefinitions_Folder.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btn_RigDefinitions_Folder.Location = new System.Drawing.Point(915, 18);
+ this.btn_RigDefinitions_Folder.Name = "btn_RigDefinitions_Folder";
+ this.btn_RigDefinitions_Folder.Size = new System.Drawing.Size(75, 23);
+ this.btn_RigDefinitions_Folder.TabIndex = 2;
+ this.btn_RigDefinitions_Folder.Text = "Select";
+ this.btn_RigDefinitions_Folder.UseVisualStyleBackColor = true;
+ this.btn_RigDefinitions_Folder.Click += new System.EventHandler(this.btn_Configurations_Folder_Click);
+ //
+ // tb_RigDefinitionsFolder
+ //
+ this.tb_RigDefinitionsFolder.BackColor = System.Drawing.Color.AntiqueWhite;
+ this.tb_RigDefinitionsFolder.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::CATCheck.Properties.Settings.Default, "RigDefinitionsFolder", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.tb_RigDefinitionsFolder.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tb_RigDefinitionsFolder.Location = new System.Drawing.Point(12, 19);
+ this.tb_RigDefinitionsFolder.Name = "tb_RigDefinitionsFolder";
+ this.tb_RigDefinitionsFolder.ReadOnly = true;
+ this.tb_RigDefinitionsFolder.Size = new System.Drawing.Size(897, 20);
+ this.tb_RigDefinitionsFolder.TabIndex = 1;
+ this.tb_RigDefinitionsFolder.Text = global::CATCheck.Properties.Settings.Default.RigDefinitionsFolder;
+ //
+ // ti_Main
+ //
+ this.ti_Main.Enabled = true;
+ this.ti_Main.Tick += new System.EventHandler(this.ti_Main_Tick);
+ //
+ // gb_COM
+ //
+ this.gb_COM.Controls.Add(this.lbl_DSR);
+ this.gb_COM.Controls.Add(this.lbl_CTS);
+ this.gb_COM.Controls.Add(this.lbl_DTR);
+ this.gb_COM.Controls.Add(this.lbl_RTS);
+ this.gb_COM.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.gb_COM.Location = new System.Drawing.Point(944, 77);
+ this.gb_COM.Name = "gb_COM";
+ this.gb_COM.Size = new System.Drawing.Size(64, 114);
+ this.gb_COM.TabIndex = 15;
+ this.gb_COM.TabStop = false;
+ this.gb_COM.Text = "COM";
+ //
+ // lbl_RTS
+ //
+ this.lbl_RTS.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.lbl_RTS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_RTS.Location = new System.Drawing.Point(10, 21);
+ this.lbl_RTS.Name = "lbl_RTS";
+ this.lbl_RTS.Size = new System.Drawing.Size(41, 19);
+ this.lbl_RTS.TabIndex = 0;
+ this.lbl_RTS.Text = "RTS";
+ this.lbl_RTS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_RTS.Click += new System.EventHandler(this.lbl_RTS_Click);
+ //
+ // lbl_DTR
+ //
+ this.lbl_DTR.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.lbl_DTR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_DTR.Location = new System.Drawing.Point(10, 42);
+ this.lbl_DTR.Name = "lbl_DTR";
+ this.lbl_DTR.Size = new System.Drawing.Size(41, 19);
+ this.lbl_DTR.TabIndex = 1;
+ this.lbl_DTR.Text = "DTR";
+ this.lbl_DTR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lbl_DTR.Click += new System.EventHandler(this.lbl_DTR_Click);
+ //
+ // lbl_CTS
+ //
+ this.lbl_CTS.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.lbl_CTS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_CTS.Location = new System.Drawing.Point(10, 63);
+ this.lbl_CTS.Name = "lbl_CTS";
+ this.lbl_CTS.Size = new System.Drawing.Size(41, 19);
+ this.lbl_CTS.TabIndex = 2;
+ this.lbl_CTS.Text = "CTS";
+ this.lbl_CTS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // lbl_DSR
+ //
+ this.lbl_DSR.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.lbl_DSR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbl_DSR.Location = new System.Drawing.Point(10, 84);
+ this.lbl_DSR.Name = "lbl_DSR";
+ this.lbl_DSR.Size = new System.Drawing.Size(41, 19);
+ this.lbl_DSR.TabIndex = 3;
+ this.lbl_DSR.Text = "DSR";
+ this.lbl_DSR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // MainDlg
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1008, 561);
+ this.Controls.Add(this.gb_COM);
+ this.Controls.Add(this.gb_Log);
+ this.Controls.Add(this.gb_RigControl);
+ this.Controls.Add(this.gb_RigSettings);
+ this.Controls.Add(this.gb_RigSettingsFolder);
+ this.Controls.Add(this.mnu_Main);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "MainDlg";
+ this.Text = "CAT- Checker Vxxx (c) 2012 DL2ALF";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainDlg_FormClosing);
+ this.Load += new System.EventHandler(this.MainDlg_Load);
+ this.mnu_Main.ResumeLayout(false);
+ this.mnu_Main.PerformLayout();
+ this.gb_Log.ResumeLayout(false);
+ this.gb_Log.PerformLayout();
+ this.gb_RigControl.ResumeLayout(false);
+ this.gb_RigControl.PerformLayout();
+ this.gb_RigSettings.ResumeLayout(false);
+ this.gb_RigSettings.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_TimeoutMs)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_PollMs)).EndInit();
+ this.gb_RigSettingsFolder.ResumeLayout(false);
+ this.gb_RigSettingsFolder.PerformLayout();
+ this.gb_COM.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private System.Windows.Forms.ToolTip tt_Set;
+ private System.Windows.Forms.MenuStrip mnu_Main;
+ private System.Windows.Forms.GroupBox gb_Log;
+ private System.Windows.Forms.Button btn_Log_Show;
+ private System.Windows.Forms.Button btn_Log_Clear;
+ private System.Windows.Forms.Button btn_Log_StartStop;
+ private System.Windows.Forms.GroupBox gb_RigControl;
+ private System.Windows.Forms.Label lbl_FreqB;
+ private System.Windows.Forms.Label lbl_FreqA;
+ private System.Windows.Forms.Label lbl_Freq;
+ private System.Windows.Forms.Label lbl_RIT_OFF;
+ private System.Windows.Forms.Label lbl_RIT_ON;
+ private System.Windows.Forms.Label lbl_SPLIT_OFF;
+ private System.Windows.Forms.Label lbl_SPLIT_ON;
+ private System.Windows.Forms.Label lbl_XIT_OFF;
+ private System.Windows.Forms.Label lbl_XIT_ON;
+ private System.Windows.Forms.Label lbl_VFO_Swap;
+ private System.Windows.Forms.Label lbl_VFO_Equal;
+ private System.Windows.Forms.Label lbl_VFO_B;
+ private System.Windows.Forms.Label lbl_VFO_A;
+ private System.Windows.Forms.Label lbl_VFO_AB;
+ private System.Windows.Forms.Label lbl_VFO_AA;
+ private System.Windows.Forms.Label lbl_VFO_BB;
+ private System.Windows.Forms.Label lbl_VFO_BA;
+ private System.Windows.Forms.Label lbl_TX;
+ private System.Windows.Forms.Label lbl_RX;
+ private System.Windows.Forms.Label lbl_FM;
+ private System.Windows.Forms.Label lbl_AM;
+ private System.Windows.Forms.Label lbl_DIG_L;
+ private System.Windows.Forms.Label lbl_DIG_U;
+ private System.Windows.Forms.Label lbl_CW_U;
+ private System.Windows.Forms.Label lbl_CW_L;
+ private System.Windows.Forms.Label lbl_SSB_L;
+ private System.Windows.Forms.Label lbl_SSB_U;
+ private System.Windows.Forms.TextBox tb_Freq;
+ private System.Windows.Forms.Label label14;
+ private System.Windows.Forms.TextBox tb_Status;
+ private System.Windows.Forms.TextBox tb_FreqA;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.TextBox tb_FreqB;
+ private System.Windows.Forms.GroupBox gb_RigSettings;
+ private System.Windows.Forms.Button btn_Restart;
+ private System.Windows.Forms.NumericUpDown ud_TimeoutMs;
+ private System.Windows.Forms.Label label13;
+ private System.Windows.Forms.NumericUpDown ud_PollMs;
+ private System.Windows.Forms.Label label12;
+ private System.Windows.Forms.Label label11;
+ private System.Windows.Forms.ComboBox cb_DTR;
+ private System.Windows.Forms.Label label10;
+ private System.Windows.Forms.ComboBox cb_RTS;
+ private System.Windows.Forms.Label label9;
+ private System.Windows.Forms.ComboBox cb_Stopbits;
+ private System.Windows.Forms.Label label8;
+ private System.Windows.Forms.ComboBox cb_Parity;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.ComboBox cb_Databits;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.ComboBox cb_Baudrate;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.ComboBox cb_PortName;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.ComboBox cb_Rig;
+ private System.Windows.Forms.GroupBox gb_RigSettingsFolder;
+ private System.Windows.Forms.Button btn_RigDefinitions_Folder;
+ private System.Windows.Forms.TextBox tb_RigDefinitionsFolder;
+ private System.Windows.Forms.ToolStripMenuItem mni_Exit;
+ private System.Windows.Forms.ToolStripMenuItem mni_Commands;
+ private System.Windows.Forms.ToolStripMenuItem mni_About;
+ private System.Windows.Forms.Timer ti_Main;
+ private System.Windows.Forms.ImageList il_MessageStates;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.ComboBox cb_LogVerbosity;
+ private System.Windows.Forms.Label lbl_Queue;
+ private System.Windows.Forms.Label label15;
+ private System.Windows.Forms.ListView lv_Messages;
+ private System.Windows.Forms.ColumnHeader ch_LogLevel;
+ private System.Windows.Forms.ColumnHeader ch_TimeStamp;
+ private System.Windows.Forms.ColumnHeader ch_Message;
+ private System.Windows.Forms.Label lbl_RIT_OFS;
+ private System.Windows.Forms.ToolStripMenuItem mni_ClearRIT;
+ private System.Windows.Forms.ToolStripMenuItem mni_FrequencyOfTone;
+ private System.Windows.Forms.GroupBox gb_COM;
+ private System.Windows.Forms.Label lbl_DSR;
+ private System.Windows.Forms.Label lbl_CTS;
+ private System.Windows.Forms.Label lbl_DTR;
+ private System.Windows.Forms.Label lbl_RTS;
+ }
+}
+
diff --git a/CATCheck/MainDlg.cs b/CATCheck/MainDlg.cs
new file mode 100644
index 0000000..eb192ca
--- /dev/null
+++ b/CATCheck/MainDlg.cs
@@ -0,0 +1,1305 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Configuration;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Security.Cryptography;
+using System.Text;
+using System.Threading;
+using System.Windows.Forms;
+using System.Xml;
+using System.Xml.Serialization;
+using ScoutBase.Core;
+using ScoutBase.CAT;
+
+namespace CATCheck
+{
+ public partial class MainDlg : Form
+ {
+
+ private bool Loaded = false;
+ private bool Logging = true;
+
+ private RigParam LastMode = RigParam.pmNone;
+ private RigParam LastTx = RigParam.pmNone;
+ private RigParam LastVfo = RigParam.pmNone;
+ private RigParam LastSplit = RigParam.pmNone;
+ private RigParam LastXit = RigParam.pmNone;
+ private RigParam LastRit = RigParam.pmNone;
+
+ private long LastRitOffset = 0;
+
+ Rig Rig1 = null;
+
+ private Queue MsgQueue = new Queue();
+
+ public MainDlg()
+ {
+ InitializeComponent();
+
+ this.Text = this.Text.Replace("xxx", Application.ProductVersion);
+ // set OmniRig rig settings directory
+ if (String.IsNullOrEmpty(Properties.Settings.Default.RigDefinitionsFolder))
+ {
+ Properties.Settings.Default.RigDefinitionsFolder = Path.Combine(Application.StartupPath, "Rigs");
+ }
+ OmniRig.RigDefinitionsDirectory = Properties.Settings.Default.RigDefinitionsFolder;
+
+ // start timer
+ ti_Main.Start();
+
+ // subscribe to events
+ OmniRig.LogNotify += OmniRig_LogNotify;
+ OmniRig.StatusChange += OmniRig_ComNotifyStatus;
+ OmniRig.ParamsChange += OmniRig_ComNotifyParams;
+
+ }
+
+ private void MainDlg_Load(object sender, EventArgs e)
+ {
+
+ // load user settings
+ LoadUserSettings();
+
+ // set the "Loaded" flag and start rig
+ Loaded = true;
+
+ Rig1 = new Rig();
+ RestartRig();
+ }
+
+
+ private void MainDlg_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ SaveUserSettings();
+ }
+
+ #region User Settings
+
+ private void LoadUserSettings()
+ {
+
+ Console.WriteLine("Loading user settings.");
+
+
+ // generate empty RigSettings object if null
+ if (Properties.Settings.Default.RigSettings == null)
+ {
+ Console.WriteLine("Creating empty rig settings...");
+ Properties.Settings.Default.RigSettings = new RigSettings();
+ }
+
+ // initially fill dropdowns
+ cb_Rig_DropDown(this, null);
+ cb_PortName_DropDown(this, null);
+ cb_Baudrate_DropDown(this, null);
+ cb_Databits_DropDown(this, null);
+ cb_Parity_DropDown(this, null);
+ cb_Stopbits_DropDown(this, null);
+ cb_RTS_DropDown(this, null);
+ cb_DTR_DropDown(this, null);
+
+ // try to select settings
+ try
+ {
+ cb_Rig.DataSource = OmniRig.SupportedRigs();
+ cb_Rig.SelectedItem = Properties.Settings.Default.RigSettings.RigType;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up rig dropdown: " + ex.Message));
+ }
+ try
+ {
+ cb_PortName.SelectedItem = Properties.Settings.Default.RigSettings.PortName;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up port dropdown: " + ex.Message));
+ }
+ try
+ {
+ cb_Baudrate.SelectedItem = Properties.Settings.Default.RigSettings.Baudrate.ToString();
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up baudrate dropdown: " + ex.Message));
+ }
+ try
+ {
+ cb_Databits.SelectedItem = Properties.Settings.Default.RigSettings.DataBits.ToString();
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up databits dropdown: " + ex.Message));
+ }
+ try
+ {
+ Helpers.BindToEnum(cb_Parity);
+ cb_Parity.SelectedValue = (int)Properties.Settings.Default.RigSettings.Parity;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up parity dropdown: " + ex.Message));
+ }
+ try
+ {
+ Helpers.BindToEnum(cb_Stopbits);
+ cb_Stopbits.SelectedValue = (int)Properties.Settings.Default.RigSettings.StopBits;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up stopbits dropdown: " + ex.Message));
+ }
+ try
+ {
+ Helpers.BindToEnum(cb_RTS);
+ cb_RTS.SelectedValue = (int)Properties.Settings.Default.RigSettings.RtsMode;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up rts mode dropdown: " + ex.Message));
+ }
+ try
+ {
+ Helpers.BindToEnum(cb_DTR);
+ cb_DTR.SelectedValue = (int)Properties.Settings.Default.RigSettings.DtrMode;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up dtr mode dropdown: " + ex.Message));
+ }
+ try
+ {
+ Helpers.BindToEnum(cb_LogVerbosity);
+ cb_LogVerbosity.SelectedValue = (int)Properties.Settings.Default.LogVerbosity;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up log verbosity dropdown: " + ex.Message));
+ }
+ try
+ {
+ ud_PollMs.Value = Properties.Settings.Default.RigSettings.PollMs;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up PollMs updown: " + ex.Message));
+ }
+ try
+ {
+ ud_TimeoutMs.Value = Properties.Settings.Default.RigSettings.TimeoutMs;
+ }
+ catch (Exception ex)
+ {
+ // do nothing if fails
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up PollMs updown: " + ex.Message));
+ }
+
+ Console.WriteLine("Loading user settings finished.");
+
+ }
+
+ private string GetUserSettingsPath()
+ {
+ if (!SupportFunctions.IsMono)
+ return ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
+ // try to build a path to user specific settings under Linux/Mono
+ string usersettingspath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
+ usersettingspath = Path.Combine(usersettingspath, Application.CompanyName, AppDomain.CurrentDomain.FriendlyName);
+ usersettingspath += "_Url_";
+ Assembly assembly = Assembly.GetEntryAssembly();
+ if (assembly == null)
+ {
+ assembly = Assembly.GetCallingAssembly();
+ }
+ byte[] pkt = assembly.GetName().GetPublicKeyToken();
+ byte[] hash = SHA1.Create().ComputeHash((pkt != null && pkt.Length > 0) ? pkt : Encoding.UTF8.GetBytes(assembly.EscapedCodeBase));
+ StringBuilder evidence_string = new StringBuilder();
+ byte[] array = hash;
+ for (int i = 0; i < array.Length; i++)
+ {
+ byte b = array[i];
+ evidence_string.AppendFormat("{0:x2}", b);
+ }
+ usersettingspath += evidence_string.ToString();
+ if (!Directory.Exists(usersettingspath))
+ {
+ Directory.CreateDirectory(usersettingspath);
+ }
+ usersettingspath = Path.Combine(usersettingspath, "user.config");
+ return usersettingspath;
+ }
+
+ private XmlElement CreateUserSection(XmlDocument doc, SettingsBase settings)
+ {
+ XmlElement usersection = doc.CreateElement(string.Empty, "section", string.Empty);
+ XmlAttribute sectionname = doc.CreateAttribute(string.Empty, "name", string.Empty);
+ sectionname.Value = settings.GetType().FullName;
+ usersection.Attributes.Append(sectionname);
+ XmlAttribute sectiontype = doc.CreateAttribute(string.Empty, "type", string.Empty);
+ Assembly assembly = Assembly.GetAssembly(typeof(System.Configuration.ClientSettingsSection));
+ // sectiontype.Value = "System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
+ sectiontype.Value = typeof(System.Configuration.ClientSettingsSection).FullName + ", " + assembly.FullName;
+ usersection.Attributes.Append(sectiontype);
+ XmlAttribute sectionallowexedefinition = doc.CreateAttribute(string.Empty, "allowExeDefinition", string.Empty);
+ sectionallowexedefinition.Value = "MachineToLocalUser";
+ usersection.Attributes.Append(sectionallowexedefinition);
+ XmlAttribute sectionrequirepermission = doc.CreateAttribute(string.Empty, "requirePermission", string.Empty);
+ sectionrequirepermission.Value = "false";
+ usersection.Attributes.Append(sectionrequirepermission);
+ return usersection;
+ }
+
+ private XmlElement SerializeSettings(XmlDocument doc, SettingsBase settings)
+ {
+ XmlElement properties = doc.CreateElement(string.Empty, settings.ToString(), string.Empty);
+ foreach (SettingsPropertyValue p in settings.PropertyValues)
+ {
+ if ((p != null) && (p.Name != null) && (p.PropertyValue != null) && !p.UsingDefaultValue)
+ {
+ // Console.WriteLine("Appending " + p.Name + " = " + p.PropertyValue.ToString());
+ XmlElement setting = doc.CreateElement(string.Empty, "setting", string.Empty);
+ XmlAttribute name = doc.CreateAttribute(string.Empty, "name", string.Empty);
+ name.Value = p.Name.ToString();
+ setting.Attributes.Append(name);
+ XmlAttribute serializeas = doc.CreateAttribute(string.Empty, "serializeAs", string.Empty);
+ serializeas.Value = p.Property.SerializeAs.ToString();
+ setting.Attributes.Append(serializeas);
+ XmlElement value = doc.CreateElement(string.Empty, "value", string.Empty);
+ if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.String)
+ {
+ XmlText text = doc.CreateTextNode(p.SerializedValue.ToString());
+ value.AppendChild(text);
+ }
+ else
+ {
+ if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.Xml)
+ {
+ MemoryStream ms = new MemoryStream();
+ XmlWriter writer = XmlWriter.Create(ms, new XmlWriterSettings
+ {
+ NewLineOnAttributes = true,
+ OmitXmlDeclaration = true
+ });
+ XmlSerializer serializer = new XmlSerializer(p.PropertyValue.GetType());
+ serializer.Serialize(writer, p.PropertyValue);
+ byte[] text2 = new byte[ms.ToArray().Length - 3];
+ Array.Copy(ms.ToArray(), 3, text2, 0, text2.Length);
+ XmlText xml = doc.CreateTextNode(Encoding.UTF8.GetString(text2.ToArray()));
+ value.AppendChild(xml);
+ value.InnerXml = WebUtility.HtmlDecode(value.InnerXml);
+ }
+ }
+ setting.AppendChild(value);
+ properties.AppendChild(setting);
+ }
+ }
+ return properties;
+ }
+
+
+ private void SaveUserSettings()
+ {
+ try
+ {
+ if (!SupportFunctions.IsMono)
+ {
+ Properties.Settings.Default.Save();
+ return;
+ }
+
+ // Linux/Mono hack to save all properties in a correct manner
+ Console.WriteLine("Saving user settings...");
+ Console.WriteLine("Creating XML document...");
+ XmlDocument doc = new XmlDocument();
+ XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
+ XmlElement root = doc.DocumentElement;
+ doc.InsertBefore(xmlDeclaration, root);
+ XmlElement configuration = doc.CreateElement(string.Empty, "configuration", string.Empty);
+ doc.AppendChild(configuration);
+ XmlElement configsections = doc.CreateElement(string.Empty, "configSections", string.Empty);
+ configuration.AppendChild(configsections);
+ XmlElement usersettingsgroup = doc.CreateElement(string.Empty, "sectionGroup", string.Empty);
+ XmlAttribute usersettingsname = doc.CreateAttribute(string.Empty, "name", string.Empty);
+ usersettingsname.Value = "userSettings";
+ usersettingsgroup.Attributes.Append(usersettingsname);
+ usersettingsgroup.AppendChild(CreateUserSection(doc, ScoutBase.CAT.Properties.Settings.Default));
+ configsections.AppendChild(usersettingsgroup);
+ XmlElement usersettings = doc.CreateElement(string.Empty, "userSettings", string.Empty);
+ configuration.AppendChild(usersettings);
+ Console.WriteLine("Writing user settings...");
+ // append AirScout.CAT properties
+ Console.WriteLine("Appending AirScout.CAT.Settings.Default node...");
+ usersettings.AppendChild(SerializeSettings(doc, ScoutBase.CAT.Properties.Settings.Default));
+ // append properties
+ Console.WriteLine("Appending Properties.Settings.Default node...");
+ usersettings.AppendChild(SerializeSettings(doc, Properties.Settings.Default));
+ doc.Save(GetUserSettingsPath());
+ Console.WriteLine("Saving user settings finished.");
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("Unable to save settings: " + ex.ToString());
+ }
+ }
+
+ #endregion
+
+ private void cb_Rig_DropDown(object sender, EventArgs e)
+ {
+ }
+
+ private void cb_Rig_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // do nothing while loading
+ if (!Loaded)
+ return;
+
+ try
+ {
+ Console.WriteLine("RigType changed to : " + (string)cb_Rig.SelectedItem);
+ Properties.Settings.Default.RigSettings.RigType = (string)cb_Rig.SelectedItem;
+ SaveUserSettings();
+
+ //restart rig
+ RestartRig();
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void cb_PortName_DropDown(object sender, EventArgs e)
+ {
+ cb_PortName.Items.Clear();
+
+ foreach (string s in System.IO.Ports.SerialPort.GetPortNames())
+ {
+ cb_PortName.Items.Add(s);
+ }
+ }
+
+ private void cb_PortName_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // do nothing while loading
+ if (!Loaded)
+ return;
+
+ try
+ {
+ Console.WriteLine("PortName changed to : " + (string)cb_PortName.SelectedItem);
+ Properties.Settings.Default.RigSettings.PortName = (string)cb_PortName.SelectedItem;
+ SaveUserSettings();
+
+ //restart rig
+ RestartRig();
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void cb_Baudrate_DropDown(object sender, EventArgs e)
+ {
+ cb_Baudrate.Items.Clear();
+ string[] baudrates = new string[] { "110", "300", "600", "1200", "2400", "4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200", "128000", "256000"};
+ cb_Baudrate.Items.AddRange(baudrates);
+ }
+
+ private void cb_Baudrate_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // do nothing while loading
+ if (!Loaded)
+ return;
+
+ try
+ {
+ Properties.Settings.Default.RigSettings.Baudrate = System.Convert.ToInt32(cb_Baudrate.SelectedItem);
+ SaveUserSettings();
+
+ //restart rig
+ RestartRig();
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void cb_Databits_DropDown(object sender, EventArgs e)
+ {
+ cb_Databits.Items.Clear();
+ string[] databits = new string[] { "5", "6", "7", "8"};
+ cb_Databits.Items.AddRange(databits);
+ }
+
+ private void cb_Databits_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ try
+ {
+ Properties.Settings.Default.RigSettings.DataBits = System.Convert.ToInt32(cb_Databits.SelectedItem);
+ SaveUserSettings();
+
+ //restart rig
+ RestartRig();
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void cb_Parity_DropDown(object sender, EventArgs e)
+ {
+ }
+
+ private void cb_Parity_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // do nothing while loading
+ if (!Loaded)
+ return;
+
+ try
+ {
+ if (cb_Parity.SelectedValue != null)
+ {
+ Properties.Settings.Default.RigSettings.Parity = (Parity)cb_Parity.SelectedValue;
+ SaveUserSettings();
+ //restart rig
+ RestartRig();
+ }
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void cb_Stopbits_DropDown(object sender, EventArgs e)
+ {
+ }
+
+ private void cb_Stopbits_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // do nothing while loading
+ if (!Loaded)
+ return;
+
+ try
+ {
+ if (cb_Stopbits.SelectedValue != null)
+ {
+ Properties.Settings.Default.RigSettings.StopBits = (StopBits)cb_Stopbits.SelectedValue;
+ SaveUserSettings();
+ //restart rig
+ RestartRig();
+ }
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void cb_RTS_DropDown(object sender, EventArgs e)
+ {
+ }
+
+ private void cb_RTS_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // do nothing while loading
+ if (!Loaded)
+ return;
+
+ try
+ {
+ if (cb_RTS.SelectedValue != null)
+ {
+ Properties.Settings.Default.RigSettings.RtsMode = (FlowControl)cb_RTS.SelectedValue;
+ SaveUserSettings();
+ //restart rig
+ RestartRig();
+ }
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void cb_DTR_DropDown(object sender, EventArgs e)
+ {
+ }
+
+ private void cb_DTR_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // do nothing while loading
+ if (!Loaded)
+ return;
+
+ try
+ {
+ if (cb_DTR.SelectedValue != null)
+ {
+ Properties.Settings.Default.RigSettings.DtrMode = (FlowControl)cb_DTR.SelectedValue;
+ SaveUserSettings();
+ //restart rig
+ RestartRig();
+ }
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void cb_LogVerbosity_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // do nothing while loading
+ if (!Loaded)
+ return;
+
+ try
+ {
+ if (cb_LogVerbosity != null)
+ {
+ Properties.Settings.Default.LogVerbosity = (LOGLEVEL)cb_LogVerbosity.SelectedValue;
+ SaveUserSettings();
+ }
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ }
+
+ private void ud_PollMs_ValueChanged(object sender, EventArgs e)
+ {
+ if (!Loaded)
+ return;
+
+ try
+ {
+ Properties.Settings.Default.RigSettings.PollMs = (int)ud_PollMs.Value;
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+
+ RestartRig();
+ }
+
+ private void ud_TimeoutMs_ValueChanged(object sender, EventArgs e)
+ {
+ if (!Loaded)
+ return;
+
+ try
+ {
+ Properties.Settings.Default.RigSettings.TimeoutMs = (int)ud_TimeoutMs.Value;
+ }
+ catch
+ {
+ // do nothing if fails
+ }
+ RestartRig();
+ }
+
+ private void btn_Configurations_Folder_Click(object sender, EventArgs e)
+ {
+ FolderBrowserDialog Dlg = new FolderBrowserDialog();
+ if (!String.IsNullOrEmpty(Properties.Settings.Default.RigDefinitionsFolder))
+ {
+ Dlg.SelectedPath = Properties.Settings.Default.RigDefinitionsFolder;
+ }
+
+ if (Dlg.ShowDialog() == DialogResult.OK)
+ {
+ if (Directory.Exists(Dlg.SelectedPath))
+ {
+ Properties.Settings.Default.RigDefinitionsFolder = Dlg.SelectedPath;
+ SaveUserSettings();
+ OmniRig.RigDefinitionsDirectory = Properties.Settings.Default.RigDefinitionsFolder;
+ }
+ else
+ {
+ MessageBox.Show("Selected path does not exist!", "Select Rig Definitions Folder");
+ }
+ }
+ }
+
+ private void btn_Restart_Click(object sender, EventArgs e)
+ {
+ RestartRig();
+ }
+
+ private void btn_Log_StartStop_Click(object sender, EventArgs e)
+ {
+ if (Logging)
+ {
+ btn_Log_StartStop.Text = "Start Log";
+ Logging = false;
+ }
+ else
+ {
+ btn_Log_StartStop.Text = "Stop Log";
+ Logging = true;
+ }
+ }
+
+ private void btn_Log_Clear_Click(object sender, EventArgs e)
+ {
+ lv_Messages.Items.Clear();
+ }
+
+ private void btn_Log_Show_Click(object sender, EventArgs e)
+ {
+ // get log directory, set application dir if not specified
+ string dir = Path.GetDirectoryName(OmniRig.LogFileName);
+ if (String.IsNullOrEmpty(dir))
+ {
+ dir = Application.StartupPath;
+ }
+
+ Process.Start("explorer.exe", dir);
+ }
+
+ private void lbl_Freq_Click(object sender, EventArgs e)
+ {
+ // return if param is not writeable
+ if (!Rig1.RigCommands.WriteableParams.Contains(RigParam.pmFreq))
+ return;
+ SetFrequencyDlg Dlg = new SetFrequencyDlg();
+ Dlg.ud_Frequency.Value = Rig1.Freq;
+ if (Dlg.ShowDialog() == DialogResult.OK)
+ {
+ Rig1.Freq = (int)Dlg.ud_Frequency.Value;
+ }
+ }
+
+ private void lbl_FreqA_Click(object sender, EventArgs e)
+ {
+ // return if param is not writeable
+ if (!Rig1.RigCommands.WriteableParams.Contains(RigParam.pmFreqA))
+ return;
+ SetFrequencyDlg Dlg = new SetFrequencyDlg();
+ Dlg.ud_Frequency.Value = Rig1.FreqA;
+ if (Dlg.ShowDialog() == DialogResult.OK)
+ {
+ Rig1.FreqA = (int)Dlg.ud_Frequency.Value;
+ }
+ }
+
+ private void lbl_FreqB_Click(object sender, EventArgs e)
+ {
+ // return if param is not writeable
+ if (!Rig1.RigCommands.WriteableParams.Contains(RigParam.pmFreqB))
+ return;
+ SetFrequencyDlg Dlg = new SetFrequencyDlg();
+ Dlg.ud_Frequency.Value = Rig1.FreqB;
+ if (Dlg.ShowDialog() == DialogResult.OK)
+ {
+ Rig1.FreqB = (int)Dlg.ud_Frequency.Value;
+ }
+ }
+
+ private void lbl_CW_U_Click(object sender, EventArgs e)
+ {
+ Rig1.Mode = RigParam.pmCW_U;
+ }
+
+ private void lbl_CW_L_Click(object sender, EventArgs e)
+ {
+ Rig1.Mode = RigParam.pmCW_L;
+ }
+
+ private void lbl_SSB_U_Click(object sender, EventArgs e)
+ {
+ Rig1.Mode = RigParam.pmSSB_U;
+ }
+
+ private void lbl_SSB_L_Click(object sender, EventArgs e)
+ {
+ Rig1.Mode = RigParam.pmSSB_L;
+ }
+
+ private void lbl_DIG_U_Click(object sender, EventArgs e)
+ {
+ Rig1.Mode = RigParam.pmDIG_U;
+ }
+
+ private void lbl_DIG_L_Click(object sender, EventArgs e)
+ {
+ Rig1.Mode = RigParam.pmDIG_L;
+ }
+
+ private void lbl_AM_Click(object sender, EventArgs e)
+ {
+ Rig1.Mode = RigParam.pmAM;
+ }
+
+ private void lbl_FM_Click(object sender, EventArgs e)
+ {
+ Rig1.Mode = RigParam.pmFM;
+ }
+
+ private void lbl_TX_Click(object sender, EventArgs e)
+ {
+ Rig1.Tx = RigParam.pmTx;
+ }
+
+ private void lbl_RX_Click(object sender, EventArgs e)
+ {
+ Rig1.Tx = RigParam.pmRx;
+ }
+
+ private void lbl_VFO_AA_Click(object sender, EventArgs e)
+ {
+ Rig1.Vfo = RigParam.pmVfoAA;
+ }
+
+ private void lbl_VFO_AB_Click(object sender, EventArgs e)
+ {
+ Rig1.Vfo = RigParam.pmVfoAB;
+ }
+
+ private void lbl_VFO_BA_Click(object sender, EventArgs e)
+ {
+ Rig1.Vfo = RigParam.pmVfoBA;
+ }
+
+ private void lbl_VFO_BB_Click(object sender, EventArgs e)
+ {
+ Rig1.Vfo = RigParam.pmVfoBB;
+ }
+
+ private void lbl_VFO_A_Click(object sender, EventArgs e)
+ {
+ Rig1.Vfo = RigParam.pmVfoA;
+ }
+
+ private void lbl_VFO_B_Click(object sender, EventArgs e)
+ {
+ Rig1.Vfo = RigParam.pmVfoB;
+ }
+
+ private void lbl_VFO_Equal_Click(object sender, EventArgs e)
+ {
+ Rig1.Vfo = RigParam.pmVfoEqual;
+ }
+
+ private void lbl_VFO_Swap_Click(object sender, EventArgs e)
+ {
+ Rig1.Vfo = RigParam.pmVfoSwap;
+ }
+
+ private void lbl_SPLIT_ON_Click(object sender, EventArgs e)
+ {
+ Rig1.Split = RigParam.pmSplitOn;
+ }
+
+ private void lbl_SPLIT_OFF_Click(object sender, EventArgs e)
+ {
+ Rig1.Split = RigParam.pmSplitOff;
+ }
+
+ private void lbl_XIT_ON_Click(object sender, EventArgs e)
+ {
+ Rig1.Xit = RigParam.pmXitOn;
+ }
+
+ private void lbl_XIT_OFF_Click(object sender, EventArgs e)
+ {
+ Rig1.Xit = RigParam.pmXitOff;
+ }
+
+ private void lbl_RIT_ON_Click(object sender, EventArgs e)
+ {
+ Rig1.Rit = RigParam.pmRitOn;
+ }
+
+ private void lbl_RIT_OFF_Click(object sender, EventArgs e)
+ {
+ Rig1.Rit = RigParam.pmRitOff;
+ }
+
+ private void lbl_RIT_0_Click(object sender, EventArgs e)
+ {
+ Rig1.Rit = RigParam.pmRit0;
+ }
+
+ private void lbl_RTS_Click(object sender, EventArgs e)
+ {
+ Rig1.PortBits.Rts = !Rig1.PortBits.Rts;
+ }
+
+ private void lbl_DTR_Click(object sender, EventArgs e)
+ {
+ Rig1.PortBits.Dtr = !Rig1.PortBits.Dtr;
+ }
+
+
+ // special functions
+ private void mni_ClearRIT_Click(object sender, EventArgs e)
+ {
+ Rig1.ClearRit();
+ }
+
+ private void mni_FrequencyOfTone_Click(object sender, EventArgs e)
+ {
+ FrequencyOfToneDlg Dlg = new FrequencyOfToneDlg(Rig1);
+ Dlg.Show();
+ }
+
+ private void RestartRig()
+ {
+ // suppress restarts until fully loaded
+ if (Loaded)
+ {
+ // stop rig if running
+ if (Rig1.Enabled)
+ {
+ Rig1.Enabled = false;
+ }
+
+ DateTime timeout = DateTime.Now.AddMilliseconds((int)Properties.Settings.Default.RigSettings.TimeoutMs);
+ do
+ {
+ Application.DoEvents();
+ if (DateTime.Now > timeout)
+ {
+ OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Cannot not stop rig!"));
+ break;
+ }
+ }
+ while (Rig1.Enabled);
+
+ // clear log
+ if (File.Exists(OmniRig.LogFileName))
+ {
+ try
+ {
+ File.Delete(OmniRig.LogFileName);
+ }
+ catch
+ {
+ // do nothing
+ }
+ }
+ // refresh settings
+ Rig1.RigNumber = 1;
+ Properties.Settings.Default.RigSettings.ToRig(Rig1);
+ // start rig
+ Rig1.Enabled = true;
+
+ }
+ }
+
+ private void OmniRig_LogNotify(LogNotifyEventArgs args)
+ {
+ if (!Logging)
+ return;
+
+ // queue message
+ MsgQueue.Enqueue(args);
+ }
+
+ private void OmniRig_ComNotifyParams(int rignumber, int Params)
+ {
+
+ // set frequencies
+ tb_Freq.Text = Rig1.Freq.ToString();
+ tb_FreqA.Text = Rig1.FreqA.ToString();
+ tb_FreqB.Text = Rig1.FreqB.ToString();
+
+ // set mode
+ if (LastMode != Rig1.Mode)
+ {
+ SetLabelStyle(lbl_CW_L, RigParam.pmCW_L, false);
+ SetLabelStyle(lbl_CW_U, RigParam.pmCW_U, false);
+ SetLabelStyle(lbl_SSB_L, RigParam.pmSSB_L, false);
+ SetLabelStyle(lbl_SSB_U, RigParam.pmSSB_U, false);
+ SetLabelStyle(lbl_DIG_L, RigParam.pmDIG_L, false);
+ SetLabelStyle(lbl_DIG_U, RigParam.pmDIG_U, false);
+ SetLabelStyle(lbl_AM, RigParam.pmAM, false);
+ SetLabelStyle(lbl_FM, RigParam.pmFM, false);
+
+ switch (Rig1.Mode)
+ {
+ case RigParam.pmCW_U: SetLabelStyle(lbl_CW_U, RigParam.pmCW_U, true, 1); break;
+ case RigParam.pmCW_L: SetLabelStyle(lbl_CW_L, RigParam.pmCW_L, true, 1); break;
+ case RigParam.pmSSB_U: SetLabelStyle(lbl_SSB_U, RigParam.pmSSB_U, true, 1);break;
+ case RigParam.pmSSB_L: SetLabelStyle(lbl_SSB_L, RigParam.pmSSB_L, true, 1); break;
+ case RigParam.pmDIG_U: SetLabelStyle(lbl_DIG_U, RigParam.pmDIG_U, true, 1); break;
+ case RigParam.pmDIG_L: SetLabelStyle(lbl_DIG_L, RigParam.pmDIG_L, true, 1); break;
+ case RigParam.pmAM: SetLabelStyle(lbl_AM, RigParam.pmAM, true, 1); break;
+ case RigParam.pmFM: SetLabelStyle(lbl_FM, RigParam.pmFM, true, 1); break;
+ }
+
+ LastMode = Rig1.Mode;
+ }
+
+ // set TX
+ if (LastTx != Rig1.Tx)
+ {
+ SetLabelStyle(lbl_RX, RigParam.pmRx, false);
+ SetLabelStyle(lbl_TX, RigParam.pmTx, false);
+
+ switch (Rig1.Tx)
+ {
+ case RigParam.pmRx: SetLabelStyle(lbl_RX, RigParam.pmRx, true, 1); break;
+ case RigParam.pmTx: SetLabelStyle(lbl_TX, RigParam.pmTx, true, 2); break;
+ }
+
+ LastTx = Rig1.Tx;
+ }
+
+ // set VFO
+ if (LastVfo != Rig1.Vfo)
+ {
+ SetLabelStyle(lbl_VFO_AA, RigParam.pmVfoAA, false);
+ SetLabelStyle(lbl_VFO_AB, RigParam.pmVfoAB, false);
+ SetLabelStyle(lbl_VFO_BA, RigParam.pmVfoBA, false);
+ SetLabelStyle(lbl_VFO_BB, RigParam.pmVfoBB, false);
+ SetLabelStyle(lbl_VFO_A, RigParam.pmVfoA, false);
+ SetLabelStyle(lbl_VFO_B, RigParam.pmVfoB, false);
+ SetLabelStyle(lbl_VFO_Equal, RigParam.pmVfoEqual, false);
+ SetLabelStyle(lbl_VFO_Swap, RigParam.pmVfoSwap, false);
+
+ switch (Rig1.Vfo)
+ {
+ case RigParam.pmVfoAA: SetLabelStyle(lbl_VFO_AA, RigParam.pmVfoAA, true, 1); break;
+ case RigParam.pmVfoAB: SetLabelStyle(lbl_VFO_AB, RigParam.pmVfoAB, true, 1); break;
+ case RigParam.pmVfoBA: SetLabelStyle(lbl_VFO_BA, RigParam.pmVfoBA, true, 1); break;
+ case RigParam.pmVfoBB: SetLabelStyle(lbl_VFO_BB, RigParam.pmVfoBB, true, 1); break;
+ case RigParam.pmVfoA: SetLabelStyle(lbl_VFO_A, RigParam.pmVfoA, true, 1); break;
+ case RigParam.pmVfoB: SetLabelStyle(lbl_VFO_B, RigParam.pmVfoB, true, 1); break;
+ case RigParam.pmVfoEqual: SetLabelStyle(lbl_VFO_Equal, RigParam.pmVfoEqual, true, 1); break;
+ case RigParam.pmVfoSwap: SetLabelStyle(lbl_VFO_Swap, RigParam.pmVfoSwap, true, 1); break;
+ }
+
+ LastVfo = Rig1.Vfo;
+ }
+
+ // set split
+ if (LastSplit != Rig1.Split)
+ {
+ SetLabelStyle(lbl_SPLIT_ON, RigParam.pmSplitOn, false);
+ SetLabelStyle(lbl_SPLIT_OFF, RigParam.pmSplitOff, false);
+
+ switch (Rig1.Split)
+ {
+ case RigParam.pmSplitOn: SetLabelStyle(lbl_SPLIT_ON, RigParam.pmSplitOn, true, 1); break;
+ case RigParam.pmSplitOff: SetLabelStyle(lbl_SPLIT_OFF, RigParam.pmSplitOff, true, 1); break;
+ }
+
+ LastSplit = Rig1.Split;
+ }
+
+ // set xit
+ if (LastXit != Rig1.Xit)
+ {
+ SetLabelStyle(lbl_XIT_ON, RigParam.pmXitOn, false);
+ SetLabelStyle(lbl_XIT_OFF, RigParam.pmXitOff, false);
+
+ switch (Rig1.Xit)
+ {
+ case RigParam.pmXitOn: SetLabelStyle(lbl_XIT_ON, RigParam.pmXitOn, true, 1); break;
+ case RigParam.pmXitOff: SetLabelStyle(lbl_XIT_OFF, RigParam.pmXitOff, true, 1); break;
+ }
+
+ LastXit = Rig1.Xit;
+ }
+
+ // set rit
+ if (LastRit != Rig1.Rit)
+ {
+ SetLabelStyle(lbl_RIT_ON, RigParam.pmRitOn, false);
+ SetLabelStyle(lbl_RIT_OFF, RigParam.pmRitOff, false);
+
+ switch (Rig1.Rit)
+ {
+ case RigParam.pmRitOn: SetLabelStyle(lbl_RIT_ON, RigParam.pmRitOn, true, 1); break;
+ case RigParam.pmRitOff: SetLabelStyle(lbl_RIT_OFF, RigParam.pmRitOff, true, 1); break;
+ }
+
+ LastRit = Rig1.Rit;
+ }
+
+ // set rit offset
+ if (LastRitOffset != Rig1.RitOffset)
+ {
+ // show RIT offset in kHz
+ lbl_RIT_OFS.Text = (Rig1.RitOffset/1000.0).ToString("0.00");
+ LastRitOffset = Rig1.RitOffset;
+ }
+
+
+ Application.DoEvents();
+ }
+
+ private void SetLabelStyle(Label label, RigParam param, bool on, int color = 1)
+ {
+ // calculate color
+ Color c = Color.Transparent;
+ switch (color)
+ {
+ case 1: c = Color.Chartreuse; break;
+ case 2: c = Color.LightSalmon; break;
+ default: c = Color.LightGray; break;
+ }
+
+ // set colors according to read/write caps
+ if (!Rig1.RigCommands.ReadableParams.Contains(param) && !Rig1.RigCommands.WriteableParams.Contains(param))
+ {
+ label.BorderStyle = BorderStyle.Fixed3D;
+ label.ForeColor = Color.Gray;
+ label.BackColor = Color.LightGray;
+ tt_Set.SetToolTip(label, "Not writeable!");
+ }
+ else if (Rig1.RigCommands.ReadableParams.Contains(param) && !Rig1.RigCommands.WriteableParams.Contains(param))
+ {
+ label.BorderStyle = BorderStyle.FixedSingle;
+ label.ForeColor = Color.Black;
+ label.BackColor = on ? c : Color.FloralWhite;
+ tt_Set.SetToolTip(label, "Not writeable!");
+ }
+ else if (!Rig1.RigCommands.ReadableParams.Contains(param) && Rig1.RigCommands.WriteableParams.Contains(param))
+ {
+ label.BorderStyle = BorderStyle.FixedSingle;
+ label.BackColor = Color.LightGray;
+ label.ForeColor = Color.Black;
+ tt_Set.SetToolTip(label, "Click to send command!");
+ }
+ else if (Rig1.RigCommands.ReadableParams.Contains(param) && Rig1.RigCommands.WriteableParams.Contains(param))
+ {
+ label.ForeColor = Color.Black;
+ label.BorderStyle = BorderStyle.FixedSingle;
+ label.BackColor = on ? c : Color.White;
+ tt_Set.SetToolTip(label, "Click to send command!");
+ }
+ }
+
+ private void SetTextBoxStyle(TextBox textbox, RigParam param, bool on, int color = 1)
+ {
+ // calculate color
+ Color c = Color.Transparent;
+ switch (color)
+ {
+ case 1: c = Color.Chartreuse; break;
+ case 2: c = Color.LightSalmon; break;
+ default: c = Color.LightGray; break;
+ }
+
+ // set colors according to read/write caps
+ if (!Rig1.RigCommands.ReadableParams.Contains(param))
+ {
+ textbox.BorderStyle = BorderStyle.Fixed3D;
+ textbox.ForeColor = Color.Gray;
+ textbox.BackColor = Color.LightGray;
+ }
+ else
+ {
+ textbox.BorderStyle = BorderStyle.FixedSingle;
+ textbox.ForeColor = c;
+ textbox.BackColor = Color.Gray;
+ tt_Set.SetToolTip(textbox, "Not writeable!");
+ }
+ }
+
+ private void OmniRig_ComNotifyStatus(int rignumber)
+ {
+ RigCtlStatus status = Rig1.Status;
+
+ // reset all last values to None if offline
+ if (status != RigCtlStatus.stOnLine)
+ {
+ LastMode = RigParam.pmNone;
+ LastTx = RigParam.pmNone;
+ LastVfo = RigParam.pmNone;
+ LastSplit = RigParam.pmNone;
+ LastXit = RigParam.pmNone;
+ LastRit = RigParam.pmNone;
+
+ LastRitOffset = 0;
+
+ }
+
+ // show status text in text box
+ tb_Status.Text = Rig1.StatusStr;
+
+ // enable/disable elements according to rig capabilities
+ SetTextBoxStyle(tb_Freq, RigParam.pmFreq,false);
+ SetTextBoxStyle(tb_FreqA, RigParam.pmFreqA, false);
+ SetTextBoxStyle(tb_FreqB, RigParam.pmFreqB, false);
+
+ SetLabelStyle(lbl_Freq, RigParam.pmFreq, false);
+ SetLabelStyle(lbl_FreqA, RigParam.pmFreqA, false);
+ SetLabelStyle(lbl_FreqB, RigParam.pmFreqB, false);
+
+ // initially set all buttons
+ SetLabelStyle(lbl_CW_L, RigParam.pmCW_L, false);
+ SetLabelStyle(lbl_CW_U, RigParam.pmCW_U, false);
+ SetLabelStyle(lbl_SSB_L, RigParam.pmSSB_L, false);
+ SetLabelStyle(lbl_SSB_U, RigParam.pmSSB_U, false);
+ SetLabelStyle(lbl_DIG_L, RigParam.pmDIG_L, false);
+ SetLabelStyle(lbl_DIG_U, RigParam.pmDIG_U, false);
+ SetLabelStyle(lbl_AM, RigParam.pmAM, false);
+ SetLabelStyle(lbl_FM, RigParam.pmFM, false);
+
+ SetLabelStyle(lbl_RX, RigParam.pmRx, false);
+ SetLabelStyle(lbl_TX, RigParam.pmTx, false);
+
+ SetLabelStyle(lbl_VFO_AA, RigParam.pmVfoAA, false);
+ SetLabelStyle(lbl_VFO_AB, RigParam.pmVfoAB, false);
+ SetLabelStyle(lbl_VFO_BA, RigParam.pmVfoBA, false);
+ SetLabelStyle(lbl_VFO_BB, RigParam.pmVfoBB, false);
+ SetLabelStyle(lbl_VFO_A, RigParam.pmVfoA, false);
+ SetLabelStyle(lbl_VFO_B, RigParam.pmVfoB, false);
+ SetLabelStyle(lbl_VFO_Equal, RigParam.pmVfoEqual, false);
+ SetLabelStyle(lbl_VFO_Swap, RigParam.pmVfoSwap, false);
+
+ SetLabelStyle(lbl_SPLIT_ON, RigParam.pmSplitOn, false);
+ SetLabelStyle(lbl_SPLIT_OFF, RigParam.pmSplitOff, false);
+
+ SetLabelStyle(lbl_XIT_ON, RigParam.pmXitOn, false);
+ SetLabelStyle(lbl_XIT_OFF, RigParam.pmXitOff, false);
+
+ SetLabelStyle(lbl_RIT_ON, RigParam.pmRitOn, false);
+ SetLabelStyle(lbl_RIT_OFF, RigParam.pmRitOff, false);
+ SetLabelStyle(lbl_RIT_OFS, RigParam.pmRitOffset, false);
+
+ // show status lines
+ if (status != RigCtlStatus.stPortBusy)
+ {
+ lbl_RTS.BackColor = (Rig1.PortBits.Rts) ? Color.Red : Color.Chartreuse;
+ lbl_DTR.BackColor = (Rig1.PortBits.Dtr) ? Color.Red : Color.Chartreuse;
+ lbl_CTS.BackColor = (Rig1.PortBits.Cts) ? Color.Red : Color.Chartreuse;
+ lbl_DSR.BackColor = (Rig1.PortBits.Dsr) ? Color.Red : Color.Chartreuse;
+ tt_Set.SetToolTip(lbl_RTS, "Click to toggle!");
+ tt_Set.SetToolTip(lbl_DTR, "Click to toggle!");
+ }
+ else
+ {
+ lbl_RTS.BackColor = Color.LightGray;
+ lbl_DTR.BackColor = Color.LightGray;
+ lbl_CTS.BackColor = Color.LightGray;
+ lbl_DSR.BackColor = Color.LightGray;
+ tt_Set.SetToolTip(lbl_RTS, "");
+ tt_Set.SetToolTip(lbl_DTR, "");
+ }
+ }
+
+ private void mni_Exit_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void mni_About_Click(object sender, EventArgs e)
+ {
+ AboutDlg Dlg = new AboutDlg();
+ Dlg.lbl_Version.Text = Dlg.lbl_Version.Text.Replace("x.x.x", Application.ProductVersion.ToString());
+ Dlg.ShowDialog();
+ }
+
+ private void lv_Messages_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
+ {
+ // Draw the header background
+ e.Graphics.FillRectangle(Brushes.LightCyan, e.Bounds);
+
+ // Draw the header text
+ Font font = new Font("Courier New", 8, FontStyle.Bold);
+ StringFormat sf = new StringFormat();
+ sf.Alignment = StringAlignment.Near;
+ sf.LineAlignment = StringAlignment.Center;
+ e.Graphics.DrawString(e.Header.Text, font, Brushes.Black, e.Bounds, sf);
+ }
+
+ private void lv_Messages_DrawItem(object sender, DrawListViewItemEventArgs e)
+ {
+ e.DrawDefault = true;
+ }
+
+ private void lv_Messages_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
+ {
+ e.DrawDefault = true;
+ }
+
+ private void ti_Main_Tick(object sender, EventArgs e)
+ {
+ // stop timer
+ ti_Main.Stop();
+
+ try
+ {
+ // show msg queue count
+ lbl_Queue.Text = MsgQueue.Count.ToString();
+ lbl_Queue.Refresh();
+
+ lock (MsgQueue)
+ {
+ while (MsgQueue.Count > 0)
+ {
+ // get message
+ LogNotifyEventArgs args = MsgQueue.Dequeue();
+
+ if (args.LogLevel >= Properties.Settings.Default.LogVerbosity)
+ {
+ lv_Messages.BeginUpdate();
+
+ // maintain size
+ while (lv_Messages.Items.Count > 100)
+ {
+ lv_Messages.Items.RemoveAt(0);
+ }
+
+ // add new entry
+ ListViewItem item = new ListViewItem();
+ item.ImageIndex = ((int)args.LogLevel) - 1;
+ item.SubItems.Add(args.TimeStamp.ToString("yyyy-MM-dd HH:mm:ss,fff"));
+ item.SubItems.Add(args.Message);
+ lv_Messages.Items.Add(item);
+
+ lv_Messages.EndUpdate();
+
+ lv_Messages.Items[lv_Messages.Items.Count - 1].EnsureVisible();
+
+ // check for application events
+ Application.DoEvents();
+
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("Error while adding message to list: " + ex.Message);
+ }
+
+ // restart timer
+ ti_Main.Start();
+ }
+
+ }
+}
diff --git a/CATCheck/MainDlg.resx b/CATCheck/MainDlg.resx
new file mode 100644
index 0000000..3e1730e
--- /dev/null
+++ b/CATCheck/MainDlg.resx
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 99, 17
+
+
+ 299, 17
+
+
+
+ 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=
+
+
+
+ 208, 17
+
+
+
+
+ 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==
+
+
+
\ No newline at end of file
diff --git a/AirScoutDatabaseManager/Program.cs b/CATCheck/Program.cs
similarity index 93%
rename from AirScoutDatabaseManager/Program.cs
rename to CATCheck/Program.cs
index 3fd3f1a..a398054 100644
--- a/AirScoutDatabaseManager/Program.cs
+++ b/CATCheck/Program.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
-namespace AirScoutDatabaseManager
+namespace CATCheck
{
static class Program
{
diff --git a/CATCheck/Properties/AssemblyInfo.cs b/CATCheck/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..80e6445
--- /dev/null
+++ b/CATCheck/Properties/AssemblyInfo.cs
@@ -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")]
diff --git a/AirScoutDatabaseManager/Properties/Resources.Designer.cs b/CATCheck/Properties/Resources.Designer.cs
similarity index 93%
rename from AirScoutDatabaseManager/Properties/Resources.Designer.cs
rename to CATCheck/Properties/Resources.Designer.cs
index 0536a52..941829b 100644
--- a/AirScoutDatabaseManager/Properties/Resources.Designer.cs
+++ b/CATCheck/Properties/Resources.Designer.cs
@@ -1,14 +1,14 @@
//------------------------------------------------------------------------------
//
// 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.
//
//------------------------------------------------------------------------------
-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;
diff --git a/AirScoutDatabaseManager/Properties/Resources.resx b/CATCheck/Properties/Resources.resx
similarity index 100%
rename from AirScoutDatabaseManager/Properties/Resources.resx
rename to CATCheck/Properties/Resources.resx
diff --git a/CATCheck/Properties/Settings.Designer.cs b/CATCheck/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..4e692fd
--- /dev/null
+++ b/CATCheck/Properties/Settings.Designer.cs
@@ -0,0 +1,61 @@
+//------------------------------------------------------------------------------
+//
+// 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.
+//
+//------------------------------------------------------------------------------
+
+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;
+ }
+ }
+ }
+}
diff --git a/CATCheck/Properties/Settings.settings b/CATCheck/Properties/Settings.settings
new file mode 100644
index 0000000..037a8a8
--- /dev/null
+++ b/CATCheck/Properties/Settings.settings
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+ llAll
+
+
+
\ No newline at end of file
diff --git a/CATCheck/Ressources/CAT.ico b/CATCheck/Ressources/CAT.ico
new file mode 100644
index 0000000..cf5be99
Binary files /dev/null and b/CATCheck/Ressources/CAT.ico differ
diff --git a/CATCheck/Ressources/CAT.png b/CATCheck/Ressources/CAT.png
new file mode 100644
index 0000000..637a47b
Binary files /dev/null and b/CATCheck/Ressources/CAT.png differ
diff --git a/CATCheck/Ressources/eventlogError.ico b/CATCheck/Ressources/eventlogError.ico
new file mode 100644
index 0000000..02c331b
Binary files /dev/null and b/CATCheck/Ressources/eventlogError.ico differ
diff --git a/CATCheck/Ressources/eventlogInfo.ico b/CATCheck/Ressources/eventlogInfo.ico
new file mode 100644
index 0000000..5454d0f
Binary files /dev/null and b/CATCheck/Ressources/eventlogInfo.ico differ
diff --git a/CATCheck/Ressources/eventlogWarn.ico b/CATCheck/Ressources/eventlogWarn.ico
new file mode 100644
index 0000000..72ffc0b
Binary files /dev/null and b/CATCheck/Ressources/eventlogWarn.ico differ
diff --git a/CATCheck/Ressources/transceiver.png b/CATCheck/Ressources/transceiver.png
new file mode 100644
index 0000000..96b0f6e
Binary files /dev/null and b/CATCheck/Ressources/transceiver.png differ
diff --git a/CATCheck/Rigs/ADT-200A.ini b/CATCheck/Rigs/ADT-200A.ini
new file mode 100644
index 0000000..4cfb34e
--- /dev/null
+++ b/CATCheck/Rigs/ADT-200A.ini
@@ -0,0 +1,183 @@
+;;; ===========================================================================
+;;;
+;;; OmniRig INI file for ADAT ADT-200A
+;;;
+;;; ===========================================================================
+;;;
+;;; For more info on ADAT see http://www.adat.ch
+;;; This file was created by Frank Goenninger, DG1SBG, on 2013-06-30
+;;;
+;;; In case of questions please email to: frank.goenninger@consequor.de - Tnx!
+;;;
+;;; Compatibility info:
+;;; ADT-200A: DSP Firmware: 1.36e
+;;; GUI Firmware: 1.24
+;;;
+;;; Note: At least DSP firmware version 1.36e is required to run OmniRig
+;;; or CW Skimmer.
+;;;
+;;; As the ADT-200A is not (yet) sending I/Q data this radio has to be
+;;; configured as a 3 kHz rig in OmniRig.
+;;;
+;;; ---
+;;;
+;;; OmniRig Port Settings to be configured:
+;;;
+;;; Rig type: ADT-200A
+;;; Port:
+;;; Baud rate: 38400
+;;; Data bits: 8
+;;; Parity: None
+;;; Stop bits: 1
+;;; RTS: Hanshake
+;;; DTR: Low
+;;; Poll int, ms: 100
+;;; Timeout, ms: 100
+;;;
+;;; ---
+;;;
+;;; Support matrix:
+;;;
+;;; pmFreq: COMMAND: Supported STATUS: Supported
+;;; pmFreqA: COMMAND: Supported STATUS: Supported
+;;; pmFreqB: COMMAND: Supported STATUS: Supported
+;;; pmPitch: COMMAND: Not Supported STATUS: Not Supported
+;;; pmRitOffset: COMMAND: Not Supported STATUS: Not Supported
+;;; pmRit0: COMMAND: Not Supported STATUS: Not Supported
+;;; pmVfoAA: COMMAND: Not Supported STATUS: Not Supported
+;;; pmVfoAB: COMMAND: Not Supported STATUS: Not Supported
+;;; pmVfoBA: COMMAND: Not Supported STATUS: Not Supported
+;;; pmVfoBB: COMMAND: Not Supported STATUS: Not Supported
+;;; pmVfoA: COMMAND: Not Supported STATUS: Not Supported
+;;; pmVfoB: COMMAND: Not Supported STATUS: Not Supported
+;;; pmVfoEqual: COMMAND: Not Supported STATUS: Not Supported
+;;; pm:VfoSwap: COMMAND: Not Supported STATUS: Not Supported
+;;; pmSplitOn: COMMAND: Not Supported STATUS: Not Supported
+;;; pmSplitOff: COMMAND: Not Supported STATUS: Not Supported
+;;; pmRitOn: COMMAND: Not Supported STATUS: Not Supported
+;;; pmRitOff: COMMAND: Not Supported STATUS: Not Supported
+;;; pmXitOn: COMMAND: Not Supported STATUS: Not Supported
+;;; pmXitOff: COMMAND: Not Supported STATUS: Not Supported
+;;; pmRx: COMMAND: Supported STATUS: Not Supported
+;;; pmTx: COMMAND: Supported STATUS: Not Supported
+;;; pmCW_U: COMMAND: Supported STATUS: Not Supported
+;;; pmCW_L: COMMAND: Not Supported STATUS: Not Supported
+;;; pmSSB_U: COMMAND: Supported STATUS: Not Supported
+;;; pmSSB_L: COMMAND: Supported STATUS: Not Supported
+;;; pmDIG_U: COMMAND: Not Supported STATUS: Not Supported
+;;; pmDIG_L: COMMAND: Not Supported STATUS: Not Supported
+;;; pmAM: COMMAND: Supported STATUS: Not Supported
+;;; pmFM: COMMAND: Supported STATUS: Not Supported
+;;;
+;;; ---
+;;; $Id$
+;;;
+;;; ===========================================================================
+
+;;; --- INIT SECTION ---
+;;;
+;;; Sequence of init commands:
+;;; INIT 1 : Switch On VFO A
+;;; INIT 2 : Switch On VFO B
+;;; INIT 3 : Set Band to HAM
+;;; INIT 4 : Siwtch Display On
+;;; INIT 5 : Set Mode to USB
+;;; INIT 6 : Set Filter to 3000 Hz
+;;; INIT 7 : Set Tuning Step to 500 Hz per revolution
+
+[INIT1]
+Command=24.56.31.3E.0D
+ReplyLength=0
+
+[INIT2]
+Command=24.56.32.3E.0D
+ReplyLength=0
+
+[INIT3]
+Command=24.42.4E.44.21.31.0D
+ReplyLength=0
+
+[INIT4]
+Command=24.56.52.55.3C.0D
+ReplyLength=0
+
+[INIT5]
+Command=24.4D.4F.44.3A.30.33.0D
+ReplyLength=0
+
+[INIT6]
+Command=24.46.4C.53.3A.31.31.0D
+ReplyLength=0
+
+[INIT7]
+Command=24.52.44.57.3A.30.30.0D
+ReplyLength=0
+
+
+;;; --- COMMANDS SECTION ---
+
+[pmFreq]
+Command=24.46.52.31.3A.00.00.00.00.00.00.00.00.0D
+Value=5|8|vfText|1|0
+ReplyEnd=0D
+
+[pmFreqA]
+Command=24.46.52.31.3A.00.00.00.00.00.00.00.00.0D
+Value=5|8|vfText|1|0
+ReplyEnd=0D
+
+[pmFreqB]
+Command=24.46.52.32.3A.00.00.00.00.00.00.00.00.0D
+Value=5|8|vfText|1|0
+ReplyEnd=0D
+
+[pmTx]
+Command=24.4D.4F.58.3E.0D
+ReplyLength=0
+
+[pmRx]
+Command=24.4D.4F.58.3C.0D
+ReplyLength=0
+
+[pmCW_U]
+Command=24.4D.4F.44.3A.30.31.0D
+ReplyLength=0
+
+[pmSSB_L]
+Command=24.4D.4F.44.3A.30.32.0D
+ReplyLength=0
+
+[pmSSB_U]
+Command=24.4D.4F.44.3A.30.33.0D
+ReplyLength=0
+
+[pmAM]
+Command=24.4D.4F.44.3A.30.35.0D
+ReplyLength=0
+
+[pmFM]
+Command=24.4D.4F.44.3A.30.38.0D
+ReplyLength=0
+
+;;; --- STATUS SECTION ---
+
+[STATUS1]
+; Get VFO 1 Frequency
+; $FR1?
+Command=24.46.52.31.3F.0D
+ReplyEnd=0D
+Value1=4|13|vfText|1|0|pmFreqA
+
+[STATUS2]
+; Get VFO 2 Frequency
+; $FR2?
+Command=24.46.52.32.3F.0D
+ReplyEnd=0D
+Value1=4|13|vfText|1|0|pmFreqB
+
+[STATUS3]
+; Get Main VFO Frequency
+; $FR1?
+Command=24.46.52.31.3F.0D
+ReplyEnd=0D
+Value1=4|13|vfText|1|0|pmFreq
diff --git a/CATCheck/Rigs/AORAR5000.ini b/CATCheck/Rigs/AORAR5000.ini
new file mode 100644
index 0000000..d8cdd11
--- /dev/null
+++ b/CATCheck/Rigs/AORAR5000.ini
@@ -0,0 +1,179 @@
+;-------------------------------------------------------------------------------
+; AOR AR5000A command set
+;
+; File created by Göran Sandin SM6PPS gsan.faros@mailnull.com
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none required
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+; VAnnnnnnnnnn
+Command=56.41.00.00.00.00.00.00.00.00.00.00.0D.0A
+Value=2|10|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+; RFnnnnnnnnnn
+Command=52.46.00.00.00.00.00.00.00.00.00.00.0D.0A
+Value=2|10|vfText|1|0
+ReplyLength=0
+
+[pmRitOffset]
+;not supported
+
+[pmPitch]
+;not supported
+;
+; Well it is, with CWn where n=0-7
+; 400 Hz...n=0
+; 500 Hz...n=1
+; 600 Hz...n=2
+; 700 Hz...n=3
+; 800 Hz...n=4
+; 900 Hz...n=5
+; 1000 Hz...n=6
+; 1100 Hz...n=7
+;
+; Not sure though how to code this and since it is not
+; required by Faros...
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmRit0]
+; Not supported since there is no RIT in this receiver.
+; Faros needs this command according to VE3NEA.
+;
+; We send a AGC=Slow command instead to the receiver.
+;
+; AC2
+Command=41.43.32.0D.0A
+ReplyLength=0
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; MD4
+Command=4D.44.34.0D.0A
+ReplyLength=0
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+; MD3
+Command=4D.44.33.0D.0A
+ReplyLength=0
+
+[pmSSB_L]
+; MD2
+Command=4D.44.32.0D.0A
+ReplyLength=0
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+; MD1
+Command=4D.44.31.0D.0A
+ReplyLength=0
+
+[pmFM]
+; MD0
+Command=4D.44.30.0D.0A
+ReplyLength=0
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+; RF
+Command=52.46.0D.0A
+ReplyEnd=0A
+; Vx RFnnnnnnnnnn STnnnnnn AUn MDn
+Validate=560000000000000000000000000000000000000000000000000000000000000000000D0A
+Value1=5|10|vfText|1|0|pmFreq
+Flag1 = (V..RF...........ST........AU..MD0...)|pmFM
+Flag2 = (V..RF...........ST........AU..MD1...)|pmAM
+Flag3 = (V..RF...........ST........AU..MD2...)|pmSSB_L
+Flag4 = (V..RF...........ST........AU..MD3...)|pmSSB_U
+Flag5 = (V..RF...........ST........AU..MD4...)|pmCW_U
+
+[STATUS2]
+; VA
+Command=56.41.0D.0A
+ReplyEnd=0A
+; VA RFnnnnnnnnnn STnnnnnn AUn MDn
+Validate=564100000000000000000000000000000000000000000000000000000000000000000D0A
+Value1=5|10|vfText|1|0|pmFreqA
+
+[STATUS3]
+; CW
+Command=43.57.0D.0A
+ReplyEnd=0A
+; CWn
+Validate=435700000D0A
+Value1=2|1|vfText|100|400|pmPitch
diff --git a/CATCheck/Rigs/AR8600.ini b/CATCheck/Rigs/AR8600.ini
new file mode 100644
index 0000000..8674d4c
--- /dev/null
+++ b/CATCheck/Rigs/AR8600.ini
@@ -0,0 +1,69 @@
+;-------------------------------------------------------------------------------
+; AOR AR8600Mark2 command set
+;
+; File created by Mirek Mach, OK4FX, OK1-36292 chromos@chromos.cz
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;one VFO
+Command=56460D
+ReplyEnd=0D
+
+[INIT2]
+;receiving mode AUTO
+Command=4155310D
+ReplyEnd=0D
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreq]
+Command=5646.0000000000000000.30.300D
+Value=3|8|vfText|0.01|0
+ReplyEnd=0D
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=4D44350D
+ReplyEnd=0D
+
+[pmCW_L]
+;not CW but AUTO mode
+Command=4155310D
+ReplyEnd=0D
+
+[pmSSB_U]
+Command=4D44330D
+ReplyEnd=0D
+
+[pmSSB_L]
+Command=4D44340D
+ReplyEnd=0D
+
+[pmAM]
+Command=4D44320D
+ReplyEnd=0D
+
+[pmFM]
+Command=4D44310D
+ReplyEnd=0D
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+;Vx RFnnnnnnnnnn STnnnnnn AUn MDn ATn
+
+[STATUS]
+;Read operating frequency and mode
+Command=52580D
+ReplyLength=36
+Validate=5646.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4400.20.415400
+Value=5|10|vfText|1|0|pmFreq
+
+Flag1=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4434.20.415400|pmSSB_L
+Flag2=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4433.20.415400|pmSSB_U
+Flag3=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4438.20.415400|pmAM
+Flag4=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4435.20.415400|pmCW_U
+Flag6=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4431.20.415400|pmFM
diff --git a/CATCheck/Rigs/Bearcat996x.ini b/CATCheck/Rigs/Bearcat996x.ini
new file mode 100644
index 0000000..77bc641
--- /dev/null
+++ b/CATCheck/Rigs/Bearcat996x.ini
@@ -0,0 +1,69 @@
+;-------------------------------------------------------------------------------
+; Uniden Bearcat command set
+;
+; File created by Alex Schwarz - VE7DXW
+;-------------------------------------------------------------------------------
+;Note: only frequency can be updated and read - mode and all other parameters are
+; either set to "Auto" or are default setting.
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+;[INIT] not used
+
+;[INIT1]not used
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+
+[pmFreq]
+;(QSH,Value,,AUTO,0,2,,0,1000000000000000,0,0,0,0,400)
+Command=5153482C2C2C2C2C2C2C2C2C2C2C4155544F2C302C322C2C302C313030303030303030303030303030302C302C302C302C302C3430300D
+Value=4|8|vfText|0.01|0
+ReplyLength=0
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+;[pmCW_U]- na
+
+;[pmSSB_U]- na
+
+;[pmSSB_L]- na
+
+;[pmDIG_U]- na
+
+;[pmAM] - na
+
+;[pmFM]- na
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+;Command (PWR)
+Command=5057520D
+ReplyLength=17
+Value1=8|8|vfText|100|0|pmFreq
+
+[STATUS2]
+;Command (GLG)
+Command=474C470D
+ReplyLength=18
+Validate=(GLG,..............)
+;Value1=5|9|vfDPIcom|1|0|pmFreq
+Flag1 =(..............NFM.)|pmFM
+Flag2 =(..............AM..)|pmAM
+
+
+
diff --git a/CATCheck/Rigs/CODAN-Comments.txt b/CATCheck/Rigs/CODAN-Comments.txt
new file mode 100644
index 0000000..0085fbe
--- /dev/null
+++ b/CATCheck/Rigs/CODAN-Comments.txt
@@ -0,0 +1,42 @@
+The CODAN.ini file has been tested with the CODAN 9360 and should
+also work with the 9323, 9390 and 9780 models using the RS232 CAT interface
+port on the rear of the transceiver. These transceivers come up for sale on
+Ebay from time to time for relatively low cost with an excellent receiver programmable
+from 250KHz to 30MHz.
+
+The CODAN supports only four functions of Amateur radio use via the RS232 CAT port:
+
+
+Set Frequency - [pmFreq]
+Set Mode - [pmSSB_U]
+Set Mode - [pmSSB_L]
+Read Status - [STATUS1]
+
+In addition a [pmSplitOff] dummy command has been inserted to comply with the Faros requirement.
+
+The [INIT] command sets the CODAN RS232 CAT port to the ECHO=OFF mode to prevent the Command received
+from being echoed back from the RS232 TXD port.
+
+Note!! Frequencies cannot be programmed directly as all these transceivers are channelised.
+The CODAN models have a user selectable option to Recall channels by frequency
+so is an ideal low cost rig to monitor the IARU HF Beacons using FAROS.
+
+For FAROS use program the CODAN with the HF Beacon channels 600Hz lower in frequency than the nominal
+Beacon channel using USB. e.g. 14.09940.The CODAN will then select the nearest frequency
+(programmed channel) to that sent by Faros via the RS232 CAT port.
+
+Note that the CODAN rigs won't handle anything less than 1KHz resolution via commands to the RS232 CAT port in
+the frequency section mode although the cODAN channels can be programmed with the keypad/front panel controls
+to 10Hz resolution.
+
+Because of this you need to add the following into the SETTINGS area of the Faros.ini file:
+
+Frequencies=14099:18109:21149:24929:28199
+
+Dave Wright G3XOU
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CATCheck/Rigs/CODAN.ini b/CATCheck/Rigs/CODAN.ini
new file mode 100644
index 0000000..f49be65
--- /dev/null
+++ b/CATCheck/Rigs/CODAN.ini
@@ -0,0 +1,153 @@
+;-------------------------------------------------------------------------------
+; CODAN 9360-9323-9390-9780 command set
+;
+; File created by Dave Wright G3XOU
+;-------------------------------------------------------------------------------
+
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|]|
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=45.43.48.4F.3D.4F.46.46.0A.0D
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=46.52.45.51.3D.00.00.00.00.00.0A.0D
+Value=5|5|vfText|1|0
+ReplyLength=0
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+Command=53.42.3F.0A.0D
+ReplyLength=0
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;not supported
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=53.42.3D.55.0A.0D
+ReplyLength=0
+
+[pmSSB_L]
+Command=53.42.3D.4C.0A.0D
+ReplyLength=0
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+;not supported
+
+[pmFM]
+;not supported
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=46.52.45.51.3F.0A.0D
+Value1=8|5|vfText|1|0|pmFreq
+ReplyEnd=2E
+
+[STATUS2]
+;not supported
+
+[STATUS3]
+;not supported
+
+[STATUS4]
+;not supported
diff --git a/CATCheck/Rigs/DX-77-Comments.txt b/CATCheck/Rigs/DX-77-Comments.txt
new file mode 100644
index 0000000..33275d4
--- /dev/null
+++ b/CATCheck/Rigs/DX-77-Comments.txt
@@ -0,0 +1,47 @@
+ Comments for corrected version of DX-77.ini. 23.3.2005
+
+ I have tested all combinations of commenting and uncommenting of pmVFOA, pmVFOB, pmVFOAB...etc
+ and enclosed version is optimal by my mean. It works fine with Hamport and Bandmaster.
+
+ Alinco's software is primarily intended for use with terminal program like Hyperterminal in Windows etc.
+ In this reason there are some restrictions for use it with your software:
+
+ - every command must end by hex characters '0A 0D' - by this sequence is press of key "Enter" simulated
+ and in Alinco's reply are there characters '0A 0D' more times - that's why I cannot use ReplyEnd statement
+ in case of variable length of reply string
+
+ - Alinco MUST reply immediatly on each known command and that's why I cannot merge more commands in one line. Alinco's reply for the first command goes simultaneously with the second coomand and result is crash and error message "COM PORT ERROR"
+
+ - Alinco's reply has two parts in all cases:
+ first part: all bytes of last sended command are returned back and sequence '0A 0D' is added
+ second part: in case of SET command is seguence 'O K 0A 0D' returned
+ in case of READ command is variable legth reply string + '0A 0D' returned
+ in case of unknown command is string 'E R R O R 0A 0D' returned.
+
+ - Alinco's software switches positions of VFOA FRQ and VFOB FRQ in reply string in case of switching VFO's:
+ if VFOA is active (on display) : NNNNNNAAAAAAAAAABBBBBBBBBB
+ where AAAAAAAAAA is FRQ of VFOA (RX FRQ in Alinco's terminology)
+ and BBBBBBBBBB is FRQ of VFOB (TX FRQ in Alinco's terminology)
+ if VFOB is active (on display) : NNNNNNBBBBBBBBBBAAAAAAAAAA
+ where AAAAAAAAAA is FRQ of VFOA (TX FRQ in Alinco's terminology)
+ and BBBBBBBBBB is FRQ of VFOB (RX FRQ in Alinco's terminology)
+
+ Use DX-77.ini with Hamport - all works fine but
+
+ - in right above corner displayed FRQ of second VFO is all time the same - see "switching position
+ of FRQ in reply string" above mentioned
+ - setting of VFO's "VFOA/A, VFOB/B" are "dead"
+ - in memory functions Hamport writes and reads both frequencies and modes of VFO's correctly
+ - it's no way to toggle split ON/OFF from Hamport - must be set manually
+ - it's no way to toggle RX / TX (PTT) from Hamport - PTT must be switched outside the program
+
+ Use DX-77.ini with Bandmaster - all works fine but
+
+ - click and doubleclick for offset setting works fine, but no Split is toggled and offset displayed simultaneously. Split must be switched by click on "Split" field or manually on the TRX.
+ If Split is toggled ON before clicking / doubleclicking to set offset, all is O.K.
+ - no RED NUMBERS are there in case of PTT is ON (problem with variable lentgh of reply string
+ mentioned above - pmRX and pmTX was not used)
+
+ -------------------------------------------------no comments more ----------------------------------------------------
+
+
\ No newline at end of file
diff --git a/CATCheck/Rigs/DX-77.ini b/CATCheck/Rigs/DX-77.ini
new file mode 100644
index 0000000..3434794
--- /dev/null
+++ b/CATCheck/Rigs/DX-77.ini
@@ -0,0 +1,244 @@
+;---------------------------------------------------------------------------------------------------------------------
+; Alinco DX-77 command set
+;
+; File created by Josef Vychytil, OK1WSL, vychytil@post.cz 22.03.2005
+;---------------------------------------------------------------------------------------------------------------------
+;
+; COMX port settings :
+; nastavení COMX portu:
+; Bit Rate : 9600
+; Data Bits : 9
+; Parity : None
+; Stop Bits : 2
+; RTS : HIGH (it's not obligatory but so I this tested - hodnota není povinná, ale takto jsem testoval)
+; DTR : HIGH (it's not obligatory but so I this tested - hodnota není povinná, ale takto jsem testoval)
+; Pol Int. : 100 (it's not obligatory but so I this tested - hodnota není povinná, ale takto jsem testoval)
+; TimeOut : 1 000 (it's not obligatory but so I this tested - hodnota není povinná, ale takto jsem testoval)
+
+; Command=
+; ReplyLength=
+; ReplyEnd=
+; Value=||||[|]
+; Flag=[|]|
+
+;--------------------------------------------------------------------------------------------------------------------
+; initialize - inicializace
+;-------------------------------------------------------------------------------------------------------------------
+[INIT]
+; not supported - nepodporován
+
+;--------------------------------------------------------------------------------------------------------------------
+; set frequency - nastavení kmitoètu
+;--------------------------------------------------------------------------------------------------------------------
+
+[pmFreq]
+; not supported, but for Bandmaster and Hamport is this param. essential
+; that's why is used VFO A frequency for it
+; pracovní kmitoèet nepodporován, ale je nutný pro Bandmaster a Hamport
+; proto byl použit kmitoèet VFO A
+Command=41.4C.30.42.00.00.00.00.00.00.00.00.0D.0A
+Value=4|8|vfText|1|0
+ReplyLength=20
+
+[pmFreqA]
+; VFO A frequency - kmitoèet VFO A
+Command=41.4C.30.42.00.00.00.00.00.00.00.00.0D.0A
+Value=4|8|vfText|1|0
+ReplyLength=20
+
+[pmFreqB]
+; VFO B frequency - kmitoèet VFO B
+Command=41.4C.30.41.00.00.00.00.00.00.00.00.0D.0A
+Value=4|8|vfText|1|0
+ReplyLength=20
+
+[pmPitch]
+; set Pitch but no way to read value of Pitch
+; Field Pitch is used for display of S-meter reading
+; nastavení Pitch, hodnotu nelze ale èíst
+; pole Pitch je použito pro zobrazení S metru
+Command=41.4C.32.57.4D.00.00.0D.0A
+Value=5|2|vfText|1|0
+ReplyLength=15
+
+[pmRitOffset]
+; not supported - nelze nastavit
+
+[pmRit0]
+; not supported - nelze nastavit
+
+;----------------------------------------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx - nastavení RIT/XIT/Split/RX/TX
+;----------------------------------------------------------------------------------------------------------------------
+
+[pmVfoAA]
+; not used - nepoužit
+
+[pmVfoAB]
+; used VFO A:
+Command=41.4C.31.41.31.0D.0A
+ReplyLength=14
+
+[pmVfoBA]
+; used VFO B:
+Command=41.4C.31.41.32.0D.0A
+ReplyLength=14
+
+[pmVfoBB]
+; not used - nepoužit
+
+[pmVfoA]
+; not used- see pmVfoAB - nepoužit viz pmVfoAB
+
+[pmVfoB]
+; not used- see pmVfoBA - nepoužit viz pmVfoBA
+
+[pmVfoEqual]
+; not supported - nepodporováno
+
+[pmVfoSwap]
+; not supported - nepodporováno
+
+[pmSplitOn]
+; toggle split ON
+; pøepne Split ON
+Command=41.4C.32.46.31.0D.0A
+ReplyLength=13
+
+[pmSplitOff]
+; toggle split OFF
+; pøepne Split OFF
+Command=41.4C.32.46.30.0D.0A
+ReplyLength=13
+
+[pmRitOn]
+; not supported - nepodporováno
+
+[pmRitOff]
+; not supported - nepodporováno
+
+[pmXitOn]
+; not supported - nepodporováno
+
+[pmXitOff]
+; not supported - nepodporováno
+
+[pmRx]
+; not supported - nepodporováno
+; section used for similar function
+; the second possibility is comment section out
+; toggle PTT Lock ON - PTT is out of function - RX is possible only
+; pøepne PTT Lock ON - je možno pouze pøijímat
+Command=41.4C.32.57.42.31.0D.0A
+Replylength=14
+
+[pmTx]
+; not supported - nepodporováno
+; section used for similar function
+; the second possibility is comment section out
+; toggle PTT Lock OFF - PTT is activated - RX and TX is possible
+; pøepne PTT Lock OFF
+Command=41.4C.32.57.42.30.0D.0A
+Replylength=14
+
+;-------------------------------------------------------------------------------------------------------------------------
+; set mode - nastavení módu
+;-------------------------------------------------------------------------------------------------------------------------
+
+[pmCW_U]
+Command=41.4C.32.47.33.0D.0A
+ReplyLength=12
+
+[pmCW_L]
+Command=41.4C.32.47.32.0D.0A
+ReplyLength=12
+
+[pmSSB_U]
+Command=41.4C.32.47.31.0D.0A
+ReplyLength=12
+
+[pmSSB_L]
+Command=41.4C.32.47.30.0D.0A
+ReplyLength=12
+
+[pmDIG_U]
+; not supported - nepodporováno
+
+[pmDIG_L]
+; not supported - nepodporováno
+
+[pmAM]
+Command=41.4C.32.47.34.0D.0A
+ReplyLength=12
+
+[pmFM]
+Command=41.4C.32.47.35.0D.0A
+ReplyLength=12
+
+;-----------------------------------------------------------------------------------------------------------
+; read status - ètení stavu
+;-----------------------------------------------------------------------------------------------------------
+[STATUS1]
+; FRQ's, MODE reading
+; ètení kmitoètù a módu
+Command=41.4C.33.48.0D.0A
+ReplyLength=36
+; reading all three parameters pmFreq, pmFreqA and pmFreqB
+; is necessary for correct function of Hamport and BandMaster programs
+Value1=16|8|vfText|1|0|pmFreq
+Value2=16|8|vfText|1|0|pmFreqA
+Value3=26|8|vfText|1|0|pmFreqB
+Flag1 =(..........00........................)|pmSSB_L
+Flag2 =(..........01........................)|pmSSB_U
+Flag3 =(..........02........................)|pmCW_L
+Flag4 =(..........03........................)|pmCW_U
+Flag5 =(..........04........................)|pmAM
+Flag6 =(..........05........................)|pmFM
+
+
+[STATUS2]
+; SPLIT state reading
+; ètení stavu SPLIT
+Command=41.4C.33.49.0D.0A
+ReplyLength=12
+Flag1 =(........ON..)|pmSplitOn
+Flag2 =(........OF..)|pmSplitOff
+
+[STATUS3]
+; selected VFO reading
+; ètení vybraného VFO
+Command=41.4C.33.47.0D.0A
+ReplyLength=14
+Flag1 =(........VFOA..)|pmVfoAB
+Flag2 =(........VFOB..)|pmVfoBA
+
+[STATUS4]
+; RX/TX reading - problem vith variable length of reply
+; Alinco's software reply is in state RX "REV" - 3 chars, in state TX "SEND" - 4 chars
+; that's why command was not used
+; case "SEND" ReplyLength is 14, case "REV" ReplyLength is 13
+; ètení RX/TX problém s ReplyLength: SEND =>14, REV => 13
+; proto nebylo možno použít
+; Command=41.4C.33.42.0D.0A
+; ReplyLength=13
+; ReplyEnd=
+; Flag1=(........SEND..)|pmTx
+; Flag1=(........REV..)|pmRx
+
+[STATUS5]
+; RIT reading
+; ètení hodnoty RIT
+Command=41.4C.33.44.30.0D.0A
+ReplyLength=19
+Value1=12|5|vfText|1|0|pmRitOffset
+
+[STATUS6]
+; S-meter reading - Pitch Field is used for display
+; For demonstration purposes only - with software "Client.exe"
+; normally let comment out
+; Value 0.5348 approx. converts LCD SEG to grad "S"
+; ètení S-metru - pro zobrazení je použito pole Pitch
+; hodnota 0.5348 pøibližnì pøevádí LCD SEG na stupnì "S"
+; Command=41.4C.33.41.30.0D.0A
+; ReplyLength=16
+; Value1=12|2|vfText|0.5348|0|pmPitch
diff --git a/CATCheck/Rigs/Elad-FDMSW2.ini b/CATCheck/Rigs/Elad-FDMSW2.ini
new file mode 100644
index 0000000..a85e008
--- /dev/null
+++ b/CATCheck/Rigs/Elad-FDMSW2.ini
@@ -0,0 +1,174 @@
+;-------------------------------------------------------------------------------
+; Elad FDM-SW2 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; Tested by Willi, DJ6JZ
+;-------------------------------------------------------------------------------
+
+
+;2005-09-12 Changed ReplyLength=0 to ReplyLength=1. Works better now. /SM2Z
+:2014-04-18 adopted from Yaesu FT-897 command set, tested. /DJ6JZ
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.01
+Value=0|4|vfBcdBU|0.1|0
+ReplyLength=1
+
+[pmRitOffset]
+Command=00000000.F5
+Value=0|4|vfBcdBS|0.1|0
+ReplyLength=1
+
+[pmRit0]
+Command=00000000.F5
+ReplyLength=1
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000000.02
+ReplyLength=1
+
+[pmSplitOff]
+Command=00000000.82
+ReplyLength=1
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+Command=00000000.81
+ReplyLength=1
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+
+[pmRitOn]
+Command=00000000.05
+ReplyLength=1
+
+[pmRitOff]
+Command=00000000.85
+ReplyLength=1
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=00000000.88
+ReplyLength=1
+
+[pmTx]
+Command=00000000.08
+ReplyLength=1
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=02.00000007
+ReplyLength=1
+
+[pmCW_L]
+Command=03.00000007
+ReplyLength=1
+
+[pmSSB_U]
+Command=01.00000007
+ReplyLength=1
+
+[pmSSB_L]
+Command=00.00000007
+ReplyLength=1
+
+[pmDIG_U]
+Command=0A.00000007
+ReplyLength=1
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=04.00000007
+ReplyLength=1
+
+[pmFM]
+Command=08.00000007
+ReplyLength=1
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=00000000.03
+ReplyLength=5
+Value=0|4|vfBcdBU|10|0|pmFreq
+Flag1 =00000000.0F|00000000.00|pmSSB_L
+Flag2 =00000000.0F|00000000.01|pmSSB_U
+Flag3 =00000000.0F|00000000.02|pmCW_U
+Flag4 =00000000.0F|00000000.03|pmCW_L
+Flag5 =00000000.0F|00000000.04|pmAM
+Flag6 =00000000.0F|00000000.06|pmFM
+Flag7 =00000000.0F|00000000.08|pmFM
+Flag8 =00000000.0F|00000000.0A|pmDIG_U
+Flag9 =00000000.0F|00000000.0C|pmDIG_U
+
+[STATUS2]
+Command=00000000.F7
+ReplyLength=1
+Flag1 =20|00|pmSplitOn
+Flag2 =20|20|pmSplitOff
+Flag3 =80|00|pmTx
+Flag4 =80|80|pmRx
+
+
+
diff --git a/CATCheck/Rigs/Elecraft K2.ini b/CATCheck/Rigs/Elecraft K2.ini
new file mode 100644
index 0000000..62cd0df
--- /dev/null
+++ b/CATCheck/Rigs/Elecraft K2.ini
@@ -0,0 +1,191 @@
+;-------------------------------------------------------------------------------
+; Elecraft K2 command set
+;
+; File created by Brendan Minish EI6IZ ei6iz@oceanfree.net
+;-------------------------------------------------------------------------------
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;enable extended K2 command set
+[INIT1]
+Command=(K22;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=(SW10;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SW09;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR1;FT0;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(RX;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD3;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD7;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD6;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD9;)
+ReplyLength=0
+
+[pmAM]
+;not supported
+
+[pmFM]
+;not supported
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value1=18|5|vfText|1|0|pmRitOffset
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(.......................0..............)|pmRitOff
+Flag2 =(.......................1..............)|pmRitOn
+Flag3 =(........................0.............)|pmXitOff
+Flag4 =(........................1.............)|pmXitOn
+Flag5 =(............................0.........)|pmRx
+Flag6 =(............................1.........)|pmTx
+Flag7 =(.............................1........)|pmSSB_L
+Flag8 =(.............................2........)|pmSSB_U
+Flag9 =(.............................3........)|pmCW_U
+Flag10=(.............................4........)|pmFM
+Flag11=(.............................5........)|pmAM
+Flag12=(.............................6........)|pmDIG_L
+Flag13=(.............................7........)|pmCW_L
+Flag14=(.............................9........)|pmDIG_U
+Flag15=(..............................0.0.....)|pmVfoAA
+Flag16=(..............................1.0.....)|pmVfoBB
+Flag17=(............................0.0.1.....)|pmVfoAB
+Flag18=(............................0.1.1.....)|pmVfoBA
+Flag19=(............................1.0.1.....)|pmVfoBA
+Flag20=(............................1.1.1.....)|pmVfoAB
+;Flag21=(................................1.....)|pmSplitOn
+;Flag21=(................................0.....)|pmSplitOff
+
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqB
diff --git a/CATCheck/Rigs/Elecraft K3.ini b/CATCheck/Rigs/Elecraft K3.ini
new file mode 100644
index 0000000..c3e3a75
--- /dev/null
+++ b/CATCheck/Rigs/Elecraft K3.ini
@@ -0,0 +1,195 @@
+;-------------------------------------------------------------------------------
+; Elecraft K3 command set
+;
+; File created by Brendan Minish EI6IZ ei6iz.brendan@gmail.com
+; Modified by Iain N6ML ar@dseven.org
+;-------------------------------------------------------------------------------
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;enable extended K3 command set
+[INIT1]
+Command=(K31;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=(SWT13;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SWT11;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(RX;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD7;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD3;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD6;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD9;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD5;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD4;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value1=18|5|vfText|1|0|pmRitOffset
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(.......................0..............)|pmRitOff
+Flag2 =(.......................1..............)|pmRitOn
+Flag3 =(........................0.............)|pmXitOff
+Flag4 =(........................1.............)|pmXitOn
+Flag5 =(............................0.........)|pmRx
+Flag6 =(............................1.........)|pmTx
+Flag7 =(.............................1........)|pmSSB_L
+Flag8 =(.............................2........)|pmSSB_U
+Flag9 =(.............................3........)|pmCW_L
+Flag10=(.............................4........)|pmFM
+Flag11=(.............................5........)|pmAM
+Flag12=(.............................6........)|pmDIG_L
+Flag13=(.............................7........)|pmCW_U
+Flag14=(.............................9........)|pmDIG_U
+Flag15=(..............................0.0.....)|pmVfoAA
+Flag16=(..............................1.0.....)|pmVfoBB
+Flag17=(............................0.0.1.....)|pmVfoAB
+Flag18=(............................0.1.1.....)|pmVfoBA
+Flag19=(............................1.0.1.....)|pmVfoAB
+Flag20=(............................1.1.1.....)|pmVfoBA
+Flag21=(................................1.....)|pmSplitOn
+Flag22=(................................0.....)|pmSplitOff
+
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqB
diff --git a/CATCheck/Rigs/Elecraft KX2.ini b/CATCheck/Rigs/Elecraft KX2.ini
new file mode 100644
index 0000000..8a16879
--- /dev/null
+++ b/CATCheck/Rigs/Elecraft KX2.ini
@@ -0,0 +1,200 @@
+;-------------------------------------------------------------------------------
+; Elecraft KX2 command set
+;
+; Original K3 file created by Brendan Minish EI6IZ ei6iz.brendan@gmail.com,
+; further improved by Iain N6ML ar@dseven.org and Tim KC1EOQ kc1eoq@gmail.com.
+;
+; Adapted for the KX2 by Björn Ekelund SM7IUN bjorn@ekelund.nu 11/7/2018
+;
+; If not required, RIT status polling can commented out to save bandwidth
+; at low serial port speeds
+;
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+; No auto-info, only polling
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=(SWH44;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SWT44;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(RX;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; Set CW REV
+Command=(MD7;)
+ReplyLength=0
+
+[pmCW_L]
+; Set CW
+Command=(MD3;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+; Set DATA
+Command=(MD6;)
+ReplyLength=0
+
+[pmDIG_L]
+; Set DATA REV
+Command=(MD9;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD5;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD4;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value1=18|5|vfText|1|0|pmRitOffset
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(.......................0..............)|pmRitOff
+Flag2 =(.......................1..............)|pmRitOn
+Flag3 =(........................0.............)|pmXitOff
+Flag4 =(........................1.............)|pmXitOn
+Flag5 =(............................0.........)|pmRx
+Flag6 =(............................1.........)|pmTx
+Flag7 =(.............................1........)|pmSSB_L
+Flag8 =(.............................2........)|pmSSB_U
+Flag9 =(.............................3........)|pmCW_L
+Flag10=(.............................4........)|pmFM
+Flag11=(.............................5........)|pmAM
+Flag12=(.............................6........)|pmDIG_U
+Flag13=(.............................7........)|pmCW_U
+Flag14=(.............................9........)|pmDIG_L
+Flag15=(..............................0.0.....)|pmVfoAA
+Flag16=(..............................1.0.....)|pmVfoBB
+Flag17=(............................0.0.1.....)|pmVfoAB
+Flag18=(............................0.1.1.....)|pmVfoBA
+Flag19=(............................1.0.1.....)|pmVfoAB
+Flag20=(............................1.1.1.....)|pmVfoBA
+Flag21=(................................1.....)|pmSplitOn
+Flag22=(................................0.....)|pmSplitOff
+
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(RO;)
+ReplyEnd=(;)
+Validate=(RO.....;)
+Value1=2|5|vfText|1|0|pmRitOffset
diff --git a/CATCheck/Rigs/Elecraft KX3.ini b/CATCheck/Rigs/Elecraft KX3.ini
new file mode 100644
index 0000000..988f502
--- /dev/null
+++ b/CATCheck/Rigs/Elecraft KX3.ini
@@ -0,0 +1,197 @@
+;-------------------------------------------------------------------------------
+; Elecraft KX3 command set
+;
+; Original K3 file created by Brendan Minish EI6IZ ei6iz.brendan@gmail.com
+; Modified by Iain N6ML ar@dseven.org
+;
+; Tweaked for the KX3 by Tim KC1EOQ kc1eoq@gmail.com 6/14/16
+;-------------------------------------------------------------------------------
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;enable extended K3 command set
+[INIT1]
+Command=(K31;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=(SWT25;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SWT24;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(RX;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD7;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD3;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD6;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD9;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD5;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD4;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value1=18|5|vfText|1|0|pmRitOffset
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(.......................0..............)|pmRitOff
+Flag2 =(.......................1..............)|pmRitOn
+Flag3 =(........................0.............)|pmXitOff
+Flag4 =(........................1.............)|pmXitOn
+Flag5 =(............................0.........)|pmRx
+Flag6 =(............................1.........)|pmTx
+Flag7 =(.............................1........)|pmSSB_L
+Flag8 =(.............................2........)|pmSSB_U
+Flag9 =(.............................3........)|pmCW_L
+Flag10=(.............................4........)|pmFM
+Flag11=(.............................5........)|pmAM
+Flag12=(.............................6........)|pmDIG_L
+Flag13=(.............................7........)|pmCW_U
+Flag14=(.............................9........)|pmDIG_U
+Flag15=(..............................0.0.....)|pmVfoAA
+Flag16=(..............................1.0.....)|pmVfoBB
+Flag17=(............................0.0.1.....)|pmVfoAB
+Flag18=(............................0.1.1.....)|pmVfoBA
+Flag19=(............................1.0.1.....)|pmVfoAB
+Flag20=(............................1.1.1.....)|pmVfoBA
+Flag21=(................................1.....)|pmSplitOn
+Flag22=(................................0.....)|pmSplitOff
+
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqB
diff --git a/CATCheck/Rigs/ExpertSDR.ini b/CATCheck/Rigs/ExpertSDR.ini
new file mode 100644
index 0000000..3df80fa
--- /dev/null
+++ b/CATCheck/Rigs/ExpertSDR.ini
@@ -0,0 +1,201 @@
+;-------------------------------------------------------------------------------
+; ExpertSDR command set
+;
+; File created by Alexei Chernobai, RX4HX, rx4hx@mail.ru
+;-------------------------------------------------------------------------------
+
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|]|
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR1;FT0;)
+
+[pmVfoBB]
+Command=(FR1;FT1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(RX;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD3;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD7;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD9;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD6;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD5;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD4;)
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value1=17|6|vfText|1|0|pmRitOffset
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(.......................0..............)|pmRitOff
+Flag2 =(.......................1..............)|pmRitOn
+Flag3 =(........................0.............)|pmXitOff
+Flag4 =(........................1.............)|pmXitOn
+Flag5 =(............................0.........)|pmRx
+Flag6 =(............................1.........)|pmTx
+Flag7 =(.............................1........)|pmSSB_L
+Flag8 =(.............................2........)|pmSSB_U
+Flag9 =(.............................3........)|pmCW_U
+Flag10=(.............................4........)|pmFM
+Flag11=(.............................5........)|pmAM
+Flag12=(.............................6........)|pmDIG_L
+Flag13=(.............................7........)|pmCW_L
+Flag14=(.............................9........)|pmDIG_U
+Flag15=(..............................0.0.....)|pmVfoAA
+Flag16=(..............................1.0.....)|pmVfoBB
+Flag17=(............................0.0.1.....)|pmVfoAB
+Flag18=(............................0.1.1.....)|pmVfoBA
+Flag19=(............................1.0.1.....)|pmVfoBA
+Flag20=(............................1.1.1.....)|pmVfoAB
+Flag21=(................................1.....)|pmSplitOn
+Flag22=(................................0.....)|pmSplitOff
+
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqB
diff --git a/CATCheck/Rigs/FRG-100.ini b/CATCheck/Rigs/FRG-100.ini
new file mode 100644
index 0000000..d44528d
--- /dev/null
+++ b/CATCheck/Rigs/FRG-100.ini
@@ -0,0 +1,81 @@
+;-------------------------------------------------------------------------------
+; Yaesu FRG-100 command set
+;
+; File created by Eckhard Roth
+;-------------------------------------------------------------------------------
+
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=00.00.00.01.20
+ReplyLength=0
+
+[INIT1]
+Command=00.00.00.00.05
+ReplyLength=0
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreq]
+Command=00000000.0A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=00000002.0C
+ReplyLength=0
+
+[pmSSB_U]
+Command=00000001.0C
+ReplyLength=0
+
+[pmSSB_L]
+Command=00000000.0C
+ReplyLength=0
+
+[pmDIG_U]
+Command=00000002.0C
+ReplyLength=0
+
+
+[pmAM]
+Command=00000004.0C
+ReplyLength=0
+
+[pmFM]
+Command=00000006.0C
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=00000003.10
+ReplyLength=18
+Value1=1|3|vfBinL|10|0|pmFreq
+Flag1=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|pmCW_U
+Flag2=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00|pmSSB_U
+Flag3=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00|pmSSB_L
+Flag4=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|pmDIG_U
+Flag5=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.04.00.00.00.00.00.00.00.00.00.00.00|pmAM
+
+
diff --git a/CATCheck/Rigs/FT-100 D.ini b/CATCheck/Rigs/FT-100 D.ini
new file mode 100644
index 0000000..8c5e248
--- /dev/null
+++ b/CATCheck/Rigs/FT-100 D.ini
@@ -0,0 +1,177 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-100D command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; Corrected by Jim N0UL
+; Corrected by VE3NEA 2008-06-14
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=00000000.0E
+ReplyLength=0
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.0A
+;32-bit BCD unsigned little endian in 100 Hz units
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000001.01
+ReplyLength=0
+
+[pmSplitOff]
+Command=00000000.01
+ReplyLength=0
+
+[pmVfoA]
+Command=00000000.05
+ReplyLength=0
+
+[pmVfoB]
+Command=00000001.05
+ReplyLength=0
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=00000000.0F
+ReplyLength=0
+
+[pmTx]
+Command=00000001.0F
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=00000002.0C
+ReplyLength=0
+
+[pmCW_L]
+Command=00000003.0C
+ReplyLength=0
+
+[pmSSB_U]
+Command=00000001.0C
+ReplyLength=0
+
+[pmSSB_L]
+Command=00000000.0C
+ReplyLength=0
+
+[pmDIG_U]
+Command=00000005.0C
+ReplyLength=0
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=00000004.0C
+ReplyLength=0
+
+[pmFM]
+Command=00000006.0C
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;4-th byte is a parameter, doc does not explain what it means
+Command=000000.00.10
+ReplyLength=32
+;32-bit unsigned integer, big endian, in 1.25 Hz unints
+Value2=1|4|vfBinB|1.25|0|pmFreq
+;16-bit signed integer, big endian, in 1.25 Hz unints
+Value1=10|2|vfYaesu|1.25|0|pmRitOffset
+Flag1 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.00.0000000000000000000000000000000000000000000000000000|pmSSB_L
+Flag2 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.01.0000000000000000000000000000000000000000000000000000|pmSSB_U
+Flag3 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.02.0000000000000000000000000000000000000000000000000000|pmCW_U
+Flag4 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.03.0000000000000000000000000000000000000000000000000000|pmCW_L
+Flag5 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.04.0000000000000000000000000000000000000000000000000000|pmAM
+Flag6 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.05.0000000000000000000000000000000000000000000000000000|pmDIG_U
+Flag7 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.06.0000000000000000000000000000000000000000000000000000|pmFM
+Flag8 =000000000000000000.01.00000000000000000000000000000000000000000000|000000000000000000.01.00000000000000000000000000000000000000000000|pmSplitOn
+Flag9 =000000000000000000.01.00000000000000000000000000000000000000000000|000000000000000000.00.00000000000000000000000000000000000000000000|pmSplitOff
+Flag10=000000000000000000000000000000.80.00000000000000000000000000000000|000000000000000000000000000000.80.00000000000000000000000000000000|pmRitOn
+Flag11=000000000000000000000000000000.80.00000000000000000000000000000000|000000000000000000000000000000.00.00000000000000000000000000000000|pmRitOff
+
+[STATUS2]
+Command=00000001.FA
+ReplyLength=8
+Flag1 =00.04.00.00.00.00.00.00|00.00.00.00.00.00.00.00|pmVfoA
+Flag2 =00.04.00.00.00.00.00.00|00.04.00.00.00.00.00.00|pmVfoB
+Flag5 =80.00.00.10.00.00.00.00|00.00.00.00.00.00.00.00|pmRx
+Flag6 =80.00.00.00.00.00.00.00|80.00.00.00.00.00.00.00|pmTx
+Flag7 =00.00.00.10.00.00.00.00|00.00.00.10.00.00.00.00|pmTx
diff --git a/CATCheck/Rigs/FT-1000 MP.ini b/CATCheck/Rigs/FT-1000 MP.ini
new file mode 100644
index 0000000..c17c2d0
--- /dev/null
+++ b/CATCheck/Rigs/FT-1000 MP.ini
@@ -0,0 +1,196 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-1000MP command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=00000000.0E
+ReplyLength=0
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=00000000.0A
+;32-bit BCD, unsigned, big endian
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=00000000.8A
+;32-bit BCD, unsigned, big endian
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;Command=000000FF.09
+;16-bit little endian BCD plus sign byte, 10 Hz units
+;Value=0|3|vfBcdLS|0.1|0
+;ReplyLength=0
+
+[pmRit0]
+Command=000000FF.09
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000001.01
+ReplyLength=0
+
+[pmSplitOff]
+Command=00000000.01
+ReplyLength=0
+
+[pmVfoA]
+Command=00000000.05
+ReplyLength=0
+
+[pmVfoB]
+Command=00000001.05
+ReplyLength=0
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+
+[pmRitOn]
+Command=00000001.09
+ReplyLength=0
+
+[pmRitOff]
+Command=00000000.09
+ReplyLength=0
+
+[pmXitOn]
+Command=00000081.09
+ReplyLength=0
+
+[pmXitOff]
+Command=00000080.09
+ReplyLength=0
+
+[pmRx]
+Command=00000000.0F
+ReplyLength=0
+
+[pmTx]
+Command=00000001.0F
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=00000002.0C
+ReplyLength=0
+
+[pmCW_L]
+Command=00000003.0C
+ReplyLength=0
+
+[pmSSB_U]
+Command=00000001.0C
+ReplyLength=0
+
+[pmSSB_L]
+Command=00000000.0C
+ReplyLength=0
+
+[pmDIG_U]
+Command=00000009.0C
+ReplyLength=0
+
+[pmDIG_L]
+Command=00000008.0C
+ReplyLength=0
+
+[pmAM]
+Command=00000004.0C
+ReplyLength=0
+
+[pmFM]
+Command=00000006.0C
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=00000002.10
+ReplyLength=16
+Value1=5|2|vfBinB|0.625|0|pmRitOffset
+Value2=1|4|vfBinB|0.625|0|pmFreq
+Flag1 =00000000000000.07.0000000000000000|00000000000000.00.0000000000000000|pmSSB_L
+Flag2 =00000000000000.07.0000000000000000|00000000000000.01.0000000000000000|pmSSB_U
+Flag3 =00000000000000.07.8000000000000000|00000000000000.02.0000000000000000|pmCW_U
+Flag4 =00000000000000.07.8000000000000000|00000000000000.02.8000000000000000|pmCW_L
+Flag5 =00000000000000.07.0000000000000000|00000000000000.03.0000000000000000|pmAM
+Flag6 =00000000000000.07.0000000000000000|00000000000000.04.0000000000000000|pmFM
+Flag7 =00000000000000.07.8000000000000000|00000000000000.05.8000000000000000|pmDIG_U
+Flag8 =00000000000000.07.8000000000000000|00000000000000.05.0000000000000000|pmDIG_L
+Flag9 =00000000000000.07.0000000000000000|00000000000000.06.0000000000000000|pmDIG_L
+Flag10=000000000000000000.01.000000000000|000000000000000000.00.000000000000|pmXitOff
+Flag11=000000000000000000.01.000000000000|000000000000000000.01.000000000000|pmXitOn
+Flag12=000000000000000000.02.000000000000|000000000000000000.00.000000000000|pmRitOff
+Flag13=000000000000000000.02.000000000000|000000000000000000.02.000000000000|pmRitOn
+
+[STATUS2]
+Command=00000003.10
+ReplyLength=32
+Value1=1|4|vfBinB|0.625|0|pmFreqA
+Value2=17|4|vfBinB|0.625|0|pmFreqB
+
+[STATUS3]
+Command=00000001.FA
+ReplyLength=6
+Flag1=11.00.00.00.00.00|00.00.00.00.00.00|pmVfoAA
+Flag2=11.00.00.00.00.00|01.00.00.00.00.00|pmVfoAB
+Flag3=11.00.00.00.00.00|11.00.00.00.00.00|pmVfoBA
+Flag4=11.00.00.00.00.00|10.00.00.00.00.00|pmVfoBB
+Flag5=80.00.00.10.00.00|00.00.00.00.00.00|pmRx
+Flag6=80.00.00.00.00.00|80.00.00.00.00.00|pmTx
+Flag7=00.00.00.10.00.00|00.00.00.10.00.00|pmTx
+Flag8=01.0000000000|01.0000000000|pmSplitOn
+Flag9=01.0000000000|00.0000000000|pmSplitOff
diff --git a/CATCheck/Rigs/FT-1000.ini b/CATCheck/Rigs/FT-1000.ini
new file mode 100644
index 0000000..1d09751
--- /dev/null
+++ b/CATCheck/Rigs/FT-1000.ini
@@ -0,0 +1,192 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-1000 & 1000D command set
+;
+; File created by Erkki Latomaa, SM5NBE / SA5N 11/28/2004
+; Not complete but does work - tested under CQWW CW 2004
+; Split / RIT / XIT OK 12/03/2004 SM5NBE
+;-------------------------------------------------------------------------------
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+
+[INIT]
+Command=00000000.0E
+ReplyLength=0
+;-------------------------------------------------------------------------------
+; set frequency
+
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=00000000.0A
+;32-bit BCD, unsigned, big endian
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=00000000.8A
+;32-bit BCD, unsigned, big endian
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=000000FF.09
+;16-bit little endian BCD plus sign byte, 10 Hz units
+Value=0|3|vfBcdLS|0.1|0
+ReplyLength=0
+
+[pmRit0]
+Command=000000FF.09
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000001.01
+ReplyLength=0
+
+[pmSplitOff]
+Command=00000000.01
+ReplyLength=0
+
+[pmVfoA]
+Command=00000000.05
+ReplyLength=0
+
+[pmVfoB]
+Command=00000001.05
+ReplyLength=0
+
+[pmVfoEqual]
+Command=00000000.85
+ReplyLength=0
+
+[pmVfoSwap]
+;Command=00000000.05
+;ReplyLength=0
+
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=00000001.09
+ReplyLength=0
+
+[pmRitOff]
+Command=00000000.09
+ReplyLength=0
+
+[pmXitOn]
+Command=00000081.09
+ReplyLength=0
+
+[pmXitOff]
+Command=00000080.09
+ReplyLength=0
+
+[pmRx]
+Command=00000000.0F
+ReplyLength=0
+
+[pmTx]
+Command=00000001.0F
+ReplyLength=0
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=00000002.0C
+ReplyLength=0
+
+[pmCW_L]
+Command=00000003.0C
+ReplyLength=0
+
+[pmSSB_U]
+Command=00000001.0C
+ReplyLength=0
+
+[pmSSB_L]
+Command=00000000.0C
+ReplyLength=0
+
+[pmDIG_U]
+Command=00000009.0C
+ReplyLength=0
+
+[pmDIG_L]
+Command=00000008.0C
+ReplyLength=0
+
+[pmAM]
+Command=00000004.0C
+ReplyLength=0
+
+[pmFM]
+Command=00000006.0C
+ReplyLength=0
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=00000002.10
+ReplyLength=16
+Value1=5|2|vfBinB|10|0|pmRitOffset
+Value2=1|3|vfBinB|10|0|pmFreq
+Flag1 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00|pmSSB_L
+Flag2 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.01.00.00.00.00.00.00.00.00|pmSSB_U
+
+Flag3 =00.00.00.00.00.00.00.07.80.00.00.00.00.00.00.00|00.00.00.00.00.00.00.02.00.00.00.00.00.00.00.00|pmCW_U
+Flag4 =00.00.00.00.00.00.00.07.80.00.00.00.00.00.00.00|00.00.00.00.00.00.00.02.80.00.00.00.00.00.00.00|pmCW_L
+
+Flag5 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.03.00.00.00.00.00.00.00.00|pmAM
+Flag6 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.04.00.00.00.00.00.00.00.00|pmFM
+
+Flag7 =00.00.00.00.00.00.00.07.80.00.00.00.00.00.00.00|00.00.00.00.00.00.00.05.80.00.00.00.00.00.00.00|pmDIG_U
+Flag8 =00.00.00.00.00.00.00.07.80.00.00.00.00.00.00.00|00.00.00.00.00.00.00.05.00.00.00.00.00.00.00.00|pmDIG_L
+Flag9 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.06.00.00.00.00.00.00.00.00|pmDIG_L
+
+Flag10=00.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00|pmXitOff
+Flag11=00.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00|pmXitOn
+
+Flag12=00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00|pmRitOff
+Flag13=00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|pmRitOn
+
+Flag14=00.00.00.00.00.00.10.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.10.00.00.00.00.00.00.00.00|pmSplitOn
+Flag15=00.00.00.00.00.80.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.08.00.00.00.00.00.00.00.00.00|pmSplitOff
+
+
+[STATUS2]
+Command=00000003.10
+ReplyLength=32
+Value1=1|3|vfBinB|10|0|pmFreqA
+Value2=17|3|vfBinB|10|0|pmFreqB
+
+[STATUS3]
+Command=00000000.FA
+ReplyLength=5
+Flag1 =03.00.00.00.00|00.00.00.00.00|pmVfoAA
+Flag2 =03.00.00.00.00|02.00.00.00.00|pmVfoBB
+Flag3 =03.00.00.00.00|01.00.00.00.00|pmVfoAB
+Flag4 =03.00.00.00.00|03.00.00.00.00|pmVfoBA
+Flag7 =80.00.01.00.00|00.00.00.00.00|pmRx
+Flag8 =80.00.00.00.00|80.00.00.00.00|pmTx
+Flag8 =00.00.01.00.00|00.00.01.00.00|pmTx
diff --git a/CATCheck/Rigs/FT-2000.ini b/CATCheck/Rigs/FT-2000.ini
new file mode 100644
index 0000000..2e36d54
--- /dev/null
+++ b/CATCheck/Rigs/FT-2000.ini
@@ -0,0 +1,219 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-2000
+;
+; 2006-12-31 - File created by Serge Filonenko UA0SC ua0sc@teleos.ru
+; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net
+; - Recognize all modes returned by the IF; command
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.02|-300
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT0;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................A......)|pmFM
+Flag15=(....................B......)|pmFM
+Flag16=(....................C......)|pmDIG_U
+Flag17=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|50|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FT-2000PEPV3.ini b/CATCheck/Rigs/FT-2000PEPV3.ini
new file mode 100644
index 0000000..8396274
--- /dev/null
+++ b/CATCheck/Rigs/FT-2000PEPV3.ini
@@ -0,0 +1,215 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-2000 firmware PEPV3 or later
+;
+; 2009-12-15 - File created by Lou N2TU N2TU@ARRL.net
+; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net
+; - Recognize all modes returned by the IF; command
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.02|-300
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT2;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT2;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT3;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................A......)|pmFM
+Flag15=(....................B......)|pmFM
+Flag16=(....................C......)|pmDIG_U
+Flag17=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|50|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FT-2KAFSKPEPV3.ini b/CATCheck/Rigs/FT-2KAFSKPEPV3.ini
new file mode 100644
index 0000000..463018c
--- /dev/null
+++ b/CATCheck/Rigs/FT-2KAFSKPEPV3.ini
@@ -0,0 +1,221 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-2000 command set ver. 3.0 10-22-2010
+;
+; File modified by Dan K3ZXL dan-schaaf@att.net
+; THIS FILE IS FOR AFSK RTTY AND PSK, NOT FSK RTTY. PC Sound Card
+; must be connected to the Packet Jack on the back of the FT-2000.
+; All other modes still are supported.
+; Omnirig setup in my PC: 38400, 8, N, 1, RTS Low, DTR Low,
+; Poll int 500, Timeout 3000
+;
+; For FSK operation, use INI file FT-2KFSKPEPV3.ini
+;
+; Other users may modify it as necessary. If mods are made and
+; tested, please inform Alex, VE3NEA alshovk@dxatlas.com so that he
+; can include it in the Omnirig downloads.
+;
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.02|-300
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT2;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT2;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT3;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;MD13;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;MD17;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;MD12;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;MD11;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD0C;MD1C;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD08;MD18;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;MD15;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;MD14;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................8......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................C......)|pmDIG_U
+Flag13=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|50|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
\ No newline at end of file
diff --git a/CATCheck/Rigs/FT-2KFSKPEPV3.ini b/CATCheck/Rigs/FT-2KFSKPEPV3.ini
new file mode 100644
index 0000000..b994b80
--- /dev/null
+++ b/CATCheck/Rigs/FT-2KFSKPEPV3.ini
@@ -0,0 +1,222 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-2000 command set ver. 3.0 10-22-2010
+;
+; File modified by Dan K3ZXL dan-schaaf@att.net
+; THIS FILE IS FOR FSK RTTY NOT PSK, NOT AFSK RTTY. TNC must be
+; connected to the RTTY FSK Jack on the back of the FT-2000.
+; All other modes still are supported.
+; Omnirig setup in my PC: 38400, 8, N, 1, RTS Low, DTR Low,
+; Poll int 500, Timeout 3000
+;
+; For AFSK operation, use INI file FT-2KAFSKPEPV3.in
+;
+; I do not have a TNC in order to test this file. But I think it will
+; work. Other users may modify it as necessary. If mods are made and
+; tested, please inform Alex, VE3NEA alshovk@dxatlas.com so that he
+; can include it in the Omnirig downloads.
+;
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.02|-300
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT2;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT2;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT3;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;MD13;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;MD17;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;MD12;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;MD11;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;MD19;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;MD16;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;MD15;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;MD14)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................9......)|pmDIG_U
+Flag13=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|50|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
\ No newline at end of file
diff --git a/CATCheck/Rigs/FT-2K_Readme.txt b/CATCheck/Rigs/FT-2K_Readme.txt
new file mode 100644
index 0000000..782f063
--- /dev/null
+++ b/CATCheck/Rigs/FT-2K_Readme.txt
@@ -0,0 +1,16 @@
+FT-2KAFSKPEPV3.ini, FT-2KFSKPEPV3.ini
+
+Here is what you do:
+
+1) Copy the attached files into Program Files/Afreet/Omnirig/Rigs folder
+2) Depending if you use FSK or AFSK, you will open Bandmaster then Tools
+then Settings then Miscellaneous
+Click on Configure and select from the list of INI files either of the 2 INI
+files that I just supplied, depending on if you are using FSK or AFSK
+Then you are ready to go.
+Restart Bandmaster just to be sure that the selection workd.
+Now when you click on a cluster spot SPLIT operation, the VFO B should
+follow VFO A in Mode , ie., SSB should be on both VFOs or CW or RTTY /
+PAcket depending the mode listed in Bandmaster spot.
+
+Dan Schaaf
\ No newline at end of file
diff --git a/CATCheck/Rigs/FT-450.ini b/CATCheck/Rigs/FT-450.ini
new file mode 100644
index 0000000..85d3a77
--- /dev/null
+++ b/CATCheck/Rigs/FT-450.ini
@@ -0,0 +1,204 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-450 command set ver. 1.0 30.12.2007
+;
+; File created by Serge Filonenko UA0SC ua0sc@teleos.ru
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.02|-300
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FT0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(VS0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(VS1;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(VV;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(VS0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(VS0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(VS1;FT0;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(VS1;FT1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................9......)|pmDIG_U
+Flag13=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|50|300|pmPitch
+
+[STATUS5]
+Command=(VS;FT;)
+ReplyEnd=(;)
+Validate=(VS.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..1.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..1...0.)|pmVfoBA
+Flag6=(..1...1.)|pmVfoBB
+Flag7=(......1.)|pmSplitOn
+Flag8=(......0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
\ No newline at end of file
diff --git a/CATCheck/Rigs/FT-450Dmod.ini b/CATCheck/Rigs/FT-450Dmod.ini
new file mode 100644
index 0000000..50f387f
--- /dev/null
+++ b/CATCheck/Rigs/FT-450Dmod.ini
@@ -0,0 +1,208 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-450 command set ver. 1.0 30.12.2007
+;
+; File created by Serge Filonenko UA0SC ua0sc@teleos.ru
+; 2014 Edited by Pavel Zubenko R2DFD
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.02|-300
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FT0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(VS0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(VS1;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(VV;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(VS0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(VS0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(VS1;FT0;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(VS1;FT1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD0C;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD08;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................8......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................C......)|pmDIG_U
+Flag13=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|50|300|pmPitch
+
+[STATUS5]
+Command=(VS;FT;)
+ReplyLength=8
+Validate=(VS.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..1.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..1...0.)|pmVfoBA
+Flag6=(..1...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..1...0.)|pmSplitOn
+Flag9=(..0...0.)|pmSplitOff
+Flag10=(..1...1.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
+Flag3=(..2.)|pmTX
\ No newline at end of file
diff --git a/CATCheck/Rigs/FT-747.ini b/CATCheck/Rigs/FT-747.ini
new file mode 100644
index 0000000..a9bcdd9
--- /dev/null
+++ b/CATCheck/Rigs/FT-747.ini
@@ -0,0 +1,161 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-747 command set V-1.00
+;
+; by Gintaras LY1GP ly1gp@qrz.lt
+;
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;Lowest pacing possible
+Command=000000000E
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.0A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+;[pmPitch]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=0000000101
+ReplyLength=0
+
+[pmSplitOff]
+Command=0000000001
+ReplyLength=0
+
+[pmVfoA]
+Command=0000000005
+ReplyLength=0
+
+[pmVfoB]
+Command=0000000105
+ReplyLength=0
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=0000000109
+ReplyLength=0
+
+[pmRitOff]
+Command=0000000009
+ReplyLength=0
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=000000000F
+ReplyLength=0
+
+[pmTx]
+Command=000000010F
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;CW Narrow
+Command=000000030C
+ReplyLength=0
+
+[pmCW_L]
+;CW Normal
+Command=000000020C
+ReplyLength=0
+
+[pmSSB_U]
+Command=000000010C
+ReplyLength=0
+
+[pmSSB_L]
+Command=000000000C
+ReplyLength=0
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=000000040C
+ReplyLength=0
+
+[pmFM]
+Command=000000070C
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS]
+Command=0000000010
+ReplyLength=345
+;TRX options status
+Flag1 = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn
+Flag2 = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff
+Flag3 = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn
+Flag4 = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff
+Flag5 = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB
+Flag6 = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA
+;Mode status (CW with Narrow showed as CW_U, normal as CW_L)
+Flag7 = 000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM
+Flag8 = 000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag9 = 000000000000000000000000000000000000000000000000820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag10 = 000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L
+Flag11 = 000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U
+Flag12 = 000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U
+Flag13 = 000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L
+;TRX TX/RX status
+Flag14 = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx
+Flag15 = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx
+;Get working freq
+Value1=1|5|vfBcdBU|1|0|pmFreq
+Value3=8|5|vfBcdBU|1|0|pmFreqA
+Value4=16|5|vfBcdBU|1|0|pmFreqB
diff --git a/CATCheck/Rigs/FT-747GX.ini b/CATCheck/Rigs/FT-747GX.ini
new file mode 100644
index 0000000..6410116
--- /dev/null
+++ b/CATCheck/Rigs/FT-747GX.ini
@@ -0,0 +1,175 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-747GX command set V-1.10
+;
+; by Gintaras LY1GP ly1gp@qrz.lt
+; adapted to FT-747GX by Bud Leavell AF5YT 4/30/2016
+;Only the first 25 bytes of status return of 345? bytes relevant bud it seemed
+;necessary to accept ;a total of 344 bytes to insure a consistent return.
+;Apparently, this model only returns 344 bytes instead of 345, and that was the
+;reason it was not responding.
+;This .ini file supports all of the commands described, but will NOT work with
+;Band Master
+;Polling interval works at 2000ms, but is unstable at 500ms.At 1000ms, with verify.exe
+;it polls too frequently to run the custom command window, but seems to work well
+;with the radio.
+;
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;Lowest pacing possible
+Command=000000000E
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.0A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+;[pmPitch]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=0000000101
+ReplyLength=0
+
+[pmSplitOff]
+Command=0000000001
+ReplyLength=0
+
+
+[pmVfoA]
+Command=0000000005
+ReplyLength=0
+
+[pmVfoB]
+Command=0000000105
+ReplyLength=0
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=0000000109
+ReplyLength=0
+
+[pmRitOff]
+Command=0000000009
+ReplyLength=0
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=000000000F
+ReplyLength=0
+
+[pmTx]
+Command=000000010F
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;CW Narrow
+Command=000000030C
+ReplyLength=0
+
+[pmCW_L]
+;CW Normal
+Command=000000020C
+ReplyLength=0
+
+[pmSSB_U]
+Command=000000010C
+ReplyLength=0
+
+[pmSSB_L]
+Command=000000000C
+ReplyLength=0
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=000000040C
+ReplyLength=0
+
+[pmFM]
+Command=000000070C
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS]
+Command=0000000010
+ReplyLength=344
+;TRX options status
+; 1 2 3 3
+; 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344| 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344
+Flag1 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn
+Flag2 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff
+Flag3 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn
+Flag4 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff
+Flag5 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB
+Flag6 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA
+;Mode status (CW with Narrow showed as CW_U, normal as CW_L)
+; 1 2 3 4 5 6 7 8 910111213141516171819202122232425
+Flag7 = 0000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM
+Flag8 = 0000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag9 = 0000000000000000000000000000000000000000000000008200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag10 = 0000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L
+Flag11 = 0000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U
+Flag12 = 0000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U
+Flag13 = 0000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L
+;TRX TX/RX status 1 2 3 4 5 6 7 8 9101112131415161718192021222324
+Flag14 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx
+Flag15 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx
+;Get working freq
+Value1=1|5|vfBcdBU|1|0|pmFreq
+Value3=8|5|vfBcdBU|1|0|pmFreqA
+Value4=16|5|vfBcdBU|1|0|pmFreqB
diff --git a/CATCheck/Rigs/FT-747GX1.ini b/CATCheck/Rigs/FT-747GX1.ini
new file mode 100644
index 0000000..3864259
--- /dev/null
+++ b/CATCheck/Rigs/FT-747GX1.ini
@@ -0,0 +1,179 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-747GX1 command set V-1.10
+;
+; by Gintaras LY1GP ly1gp@qrz.lt
+; adapted to FT-747GX by Bud Leavell AF5YT 5/8/2016
+;Only the first 25 bytes of status return of 345? bytes relevant bud it seemed
+;necessary to accept ;a total of 344 bytes to insure a consistent return.
+;Apparently, this model only returns 344 bytes instead of 345, and that was the
+;reason it was not responding.
+;This .ini file suppresses several commands to enable it to work with Band Master.
+;Band Master sends several commands at one time to place it into split mode with
+;the clarifyier on and individually programms each VFO. Too many commands are
+;sent at one time overflowing the input buffer on the radio.Disabling those
+;commands limits Band Master to sending only 2 commands to the radio enabling
+;Band Master to "tune to freq"
+;Polling interval works at 2000ms, but is unstable at 500ms.At 1000ms, with verify.exe
+;it polls too frequently to run the custom command window, but seems to work well
+;with the radio.
+;
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;Lowest pacing possible
+Command=000000000E
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.0A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+;[pmPitch]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;Command=0000000101
+;ReplyLength=0
+
+[pmSplitOff]
+;Command=0000000001
+;ReplyLength=0
+
+
+[pmVfoA]
+;Command=0000000005
+;ReplyLength=0
+
+[pmVfoB]
+;Command=0000000105
+;ReplyLength=0
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;Command=0000000109
+;ReplyLength=0
+
+[pmRitOff]
+;Command=0000000009
+;ReplyLength=0
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=000000000F
+ReplyLength=0
+
+[pmTx]
+Command=000000010F
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;CW Narrow
+Command=000000030C
+ReplyLength=0
+
+[pmCW_L]
+;CW Normal
+Command=000000020C
+ReplyLength=0
+
+[pmSSB_U]
+Command=000000010C
+ReplyLength=0
+
+[pmSSB_L]
+Command=000000000C
+ReplyLength=0
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=000000040C
+ReplyLength=0
+
+[pmFM]
+Command=000000070C
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS]
+Command=0000000010
+ReplyLength=344
+;TRX options status
+; 1 2 3 3
+; 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344| 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344
+Flag1 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn
+Flag2 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff
+Flag3 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn
+Flag4 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff
+Flag5 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB
+Flag6 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA
+;Mode status (CW with Narrow showed as CW_U, normal as CW_L)
+; 1 2 3 4 5 6 7 8 910111213141516171819202122232425
+Flag7 = 0000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM
+Flag8 = 0000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag9 = 0000000000000000000000000000000000000000000000008200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag10 = 0000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L
+Flag11 = 0000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U
+Flag12 = 0000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U
+Flag13 = 0000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L
+;TRX TX/RX status 1 2 3 4 5 6 7 8 9101112131415161718192021222324
+Flag14 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx
+Flag15 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx
+;Get working freq
+Value1=1|5|vfBcdBU|1|0|pmFreq
+Value3=8|5|vfBcdBU|1|0|pmFreqA
+Value4=16|5|vfBcdBU|1|0|pmFreqB
diff --git a/CATCheck/Rigs/FT-747GX2.ini b/CATCheck/Rigs/FT-747GX2.ini
new file mode 100644
index 0000000..63eaeab
--- /dev/null
+++ b/CATCheck/Rigs/FT-747GX2.ini
@@ -0,0 +1,183 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-747GX1 command set V-1.10
+;
+; by Gintaras LY1GP ly1gp@qrz.lt
+; adapted to FT-747GX by Bud Leavell AF5YT 5/10/2016
+;Only the first 25 bytes of status return of 345? bytes relevant bud it seemed
+;necessary to accept a total of 344 bytes to insure a consistent return.
+;Apparently, this model only returns 344 bytes instead of 345, and that was the
+;reason it was not responding.
+;This .ini file suppresses several commands to enable it to work with Band Master.
+;Band Master sends several commands at one time to place it into split mode with
+;the clarifyier on and individually programms each VFO. Too many commands are
+;sent at one time overflowing the input buffer on the radio.Disabling those
+;commands limits Band Master to sending only 2 commands to the radio enabling
+;Band Master to "tune to freq" but still not setting mode. Changed ReplyLength to =1
+;on [pmFreq] & mode commands. This forces the application to send one command, wait
+;until timeout and then send the next command. This config and radio now works
+;with Band Master and DXtreme DX SpotChecker plus the tune radio buttons on DXTreme
+;Station Log. It takes a couple of extra seconds to configure radio but still works.
+;Polling interval works at 2000ms, but is too busy at 500ms.At 1000ms, with verify.exe
+;it polls too frequently to run the custom command window, but seems to work well
+;with the radio and applications. Set timeout to 2000ms or more.
+;
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;Lowest pacing possible
+Command=000000000E
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.0A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=1
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+;[pmPitch]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;Command=0000000101
+;ReplyLength=0
+
+[pmSplitOff]
+;Command=0000000001
+;ReplyLength=0
+
+
+[pmVfoA]
+;Command=0000000005
+;ReplyLength=0
+
+[pmVfoB]
+;Command=0000000105
+;ReplyLength=0
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;Command=0000000109
+;ReplyLength=0
+
+[pmRitOff]
+;Command=0000000009
+;ReplyLength=0
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=000000000F
+ReplyLength=0
+
+[pmTx]
+Command=000000010F
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;CW Narrow
+Command=000000030C
+ReplyLength=1
+
+[pmCW_L]
+;CW Normal
+Command=000000020C
+ReplyLength=1
+
+[pmSSB_U]
+Command=000000010C
+ReplyLength=1
+
+[pmSSB_L]
+Command=000000000C
+ReplyLength=1
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=000000040C
+ReplyLength=1
+
+[pmFM]
+Command=000000070C
+ReplyLength=1
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS]
+Command=0000000010
+ReplyLength=344
+;TRX options status
+; 1 2 3 3
+; 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344| 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344
+Flag1 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn
+Flag2 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff
+Flag3 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn
+Flag4 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff
+Flag5 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB
+Flag6 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA
+;Mode status (CW with Narrow showed as CW_U, normal as CW_L)
+; 1 2 3 4 5 6 7 8 910111213141516171819202122232425
+Flag7 = 0000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM
+Flag8 = 0000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag9 = 0000000000000000000000000000000000000000000000008200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag10 = 0000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L
+Flag11 = 0000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U
+Flag12 = 0000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U
+Flag13 = 0000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L
+;TRX TX/RX status 1 2 3 4 5 6 7 8 9101112131415161718192021222324
+Flag14 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx
+Flag15 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx
+;Get working freq
+Value1=1|5|vfBcdBU|1|0|pmFreq
+Value3=8|5|vfBcdBU|1|0|pmFreqA
+Value4=16|5|vfBcdBU|1|0|pmFreqB
diff --git a/CATCheck/Rigs/FT-757GXII.ini b/CATCheck/Rigs/FT-757GXII.ini
new file mode 100644
index 0000000..f3d2a74
--- /dev/null
+++ b/CATCheck/Rigs/FT-757GXII.ini
@@ -0,0 +1,213 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-757GXII command set
+;
+; File created by Yuri Klimonov RX3QFY, rx3qfy@mail.ru
+; Correct by Alexei Chernobai RX4HX, rx4hx@mail.ru
+; Correct by Yuri Klimonov RX3QFY, rx3qfy@mail.ru
+; Special thanks Nick Banschikov RN3KK
+; Modified by Andrew Chin VK3CHI, chinsta00@hotmail.com
+;-------------------------------------------------------------------------------
+
+;Modifications by VK3CHI:
+; - added [pmRitOn], [pmRitOff] commands and status flags
+; - added initialisation VFO mode
+; - corrected Value multiplier in [pmFreq]
+; - corrected status flag bits
+; - workaround for receive overrun
+
+
+;see FT-757GXII user manual for CAT instruction code details (code names provided in comments)
+
+;FT-757GXII does not have an instruction command receive buffer. Workaround is to force non-replying commands to wait for reply timeout.
+;Set timeout period to minimum required for radio to execute instruction command (e.g. 150ms). Alternatively, client program must send commands at slower rate.
+;timeout 150ms and polling interval 500ms seems to work ok with WSJT-X 2.0.0
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;M-VFO (copy current memory channel to current VFO, and change to VFO mode)
+;4-th byte is a parameter, seems to have no effect on M-VFO instruction code
+Command=00000000.06
+ReplyLength=1
+;initialise transceiver in VFO mode
+;FREQ SET command will not function if transceiver is in memory mode
+
+[INIT2]
+;RETURN DELAY
+Command=00000000.0E
+ReplyLength=75
+;set reply transmission delay to 0ms between bytes
+;RETURN DELAY command also returns 75 byte transceiver status
+;total command and reply communication time = [208.333us*(1+8+2)]*(5+75) + 0ms*75 = 183.333ms
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+;FREQ SET
+Command=00000000.0A
+ReplyLength=1
+;32-bit BCD unsigned little endian in 10 Hz units
+Value=0|4|vfBcdLU|0.1|0
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;SPLIT
+Command=00000001.01
+ReplyLength=1
+
+[pmSplitOff]
+;SPLIT
+Command=00000000.01
+ReplyLength=1
+
+[pmVfoA]
+;VFO A/B
+Command=00000000.05
+ReplyLength=1
+
+[pmVfoB]
+;VFO A/B
+Command=00000001.05
+ReplyLength=1
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;CLARIFIER
+Command=00000001.09
+ReplyLength=1
+
+[pmRitOff]
+;CLARIFIER
+Command=00000000.09
+ReplyLength=1
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;CW Wide
+;MODESEL
+Command=00000002.0C
+ReplyLength=1
+
+[pmCW_L]
+;CW Narrow
+;MODESEL
+Command=00000003.0C
+ReplyLength=1
+
+[pmSSB_U]
+;MODESEL
+Command=00000001.0C
+ReplyLength=1
+
+[pmSSB_L]
+;MODESEL
+Command=00000000.0C
+ReplyLength=1
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+;MODESEL
+Command=00000004.0C
+ReplyLength=1
+
+[pmFM]
+;MODESEL
+Command=00000005.0C
+ReplyLength=1
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS]
+;4-th byte is a parameter, doc does not explain what it means (VK3CHI: it means return digitised S-meter reading. Unimplemented in Omni-Rig.)
+;READ STATUS
+Command=00000000.10
+ReplyLength=75
+;32-bit BCD unsigned little endian in 10 Hz units
+Value1=5|4|vfBcdLU|10|0|pmFreq
+Value2=10|4|vfBcdLU|10|0|pmFreqA
+Value3=15|4|vfBcdLU|10|0|pmFreqB
+; Mode status
+; 1 2 3 4 5 6 7 8 9 10 1112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 1 2 3 4 5 6 7 8 9 10 1112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
+Flag1 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L
+Flag2 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.01.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U
+Flag3 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.02.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U
+Flag4 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.03.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L
+Flag5 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.04.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM
+Flag6 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.05.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM
+; Transceiver status
+; 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
+Flag7 =02.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|02.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn
+Flag8 =02.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff
+Flag9 =04.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|04.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn
+Flag10 =04.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff
+Flag11 =08.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA
+Flag12 =08.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|08.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB
+Flag13 =20.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx
+Flag14 =20.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|20.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx
+
diff --git a/CATCheck/Rigs/FT-817.ini b/CATCheck/Rigs/FT-817.ini
new file mode 100644
index 0000000..e710a27
--- /dev/null
+++ b/CATCheck/Rigs/FT-817.ini
@@ -0,0 +1,182 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-817 command set
+;
+; File created by Erkki Latomaa, SM5NBE 28/11 2004
+;
+; Updated by Dan Schaaf K3ZXL, dan-schaaf@att.net 9 April 2011
+;-------------------------------------------------------------------------------
+
+
+;2005-09-12 Changed ReplyLength=0 to ReplyLength=1. Works better now. /SM2Z
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;not required
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.01
+Value=0|4|vfBcdBU|0.1|00
+ReplyLength=1
+
+[pmRitOffset]
+Command=00000000.01
+Value=0|4|vfBcdBS|0.1|00
+ReplyLength=1
+
+
+[pmRit0]
+Command=00000000.F5
+ReplyLength=1
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000000.02
+ReplyLength=1
+
+
+[pmSplitOff]
+Command=00000000.82
+ReplyLength=1
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+Command=00000000.81
+ReplyLength=1
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+
+[pmRitOn]
+Command=00000000.05
+ReplyLength=1
+
+
+[pmRitOff]
+Command=00000000.85
+ReplyLength=1
+
+
+[pmXitOn]
+;not supported
+
+
+[pmXitOff]
+;not supported
+
+
+[pmRx]
+Command=00000000.88
+ReplyLength=1
+
+
+[pmTx]
+Command=00000000.08
+ReplyLength=1
+
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=0200000007
+ReplyLength=1
+
+[pmCW_L]
+Command=0300000007
+ReplyLength=1
+
+[pmSSB_U]
+Command=0100000007
+ReplyLength=1
+
+[pmSSB_L]
+Command=0000000007
+ReplyLength=1
+
+[pmDIG_U]
+Command=0A00000007
+ReplyLength=1
+
+[pmDIG_L]
+;Not supported
+
+[pmAM]
+Command=0400000007
+ReplyLength=1
+
+[pmFM]
+Command=0800000007
+ReplyLength=1
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=0000000003
+ReplyLength=5
+Value1=0|4|vfBcdBU|10|0|pmFreq
+Flag1 =00000000.0F|00000000.00|pmSSB_L
+Flag2 =00000000.0F|00000000.01|pmSSB_U
+Flag3 =00000000.0F|00000000.02|pmCW_U
+Flag4 =00000000.0F|00000000.03|pmCW_L
+Flag5 =00000000.0F|00000000.04|pmAM
+Flag7 =00000000.0F|00000000.06|pmFM
+Flag8 =00000000.0F|00000000.08|pmFM
+Flag9 =00000000.0F|00000000.0A|pmDIG_U
+Flag10 =00000000.0F|00000000.0C|pmDIG_U
+
+[STATUS2]
+Command=00000000.F7
+ReplyLength=1
+Flag1 =20|00|pmSplitOn
+Flag2 =20|20|pmSplitOff
+Flag3 =80|00|pmTx
+Flag4 =80|80|pmRx
diff --git a/CATCheck/Rigs/FT-840.ini b/CATCheck/Rigs/FT-840.ini
new file mode 100644
index 0000000..8416183
--- /dev/null
+++ b/CATCheck/Rigs/FT-840.ini
@@ -0,0 +1,190 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-840 command set V-2.02
+;
+; File created by Vitaly RA9WOY ra9woy@mail.ru
+;
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=000000000E
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.0A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmRitOffset]
+Command=000000FF.09
+16-bit BCD, little endian, plus sign byte (00 or FF)
+Value=0|3|vfBcdLS|0.1|0
+ReplyLength=0
+
+[pmRit0]
+Command=000000FF.09
+ReplyLength=0
+
+;[pmPitch]
+;not supported (ýòî èç èñõîäíèêà)
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000001.01
+ReplyLength=0
+
+[pmSplitOff]
+Command=00000000.01
+ReplyLength=0
+
+[pmVfoA]
+Command=00000000.05
+ReplyLength=0
+
+[pmVfoB]
+Command=00000001.05
+ReplyLength=0
+
+[pmVfoEqual]
+Command=00000000.85
+ReplyLength=0
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=000000.01.09
+ReplyLength=0
+
+[pmRitOff]
+Command=00000000.09
+ReplyLength=0
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=00000000.0F
+;ReplyLength=0
+ReplyLength=0
+
+[pmTx]
+Command=00000001.0F
+;ReplyLength=0
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=000000030C
+ReplyLength=0
+
+[pmCW_L]
+Command=000000020C
+ReplyLength=0
+;mmmmmy addons
+
+[pmSSB_U]
+Command=000000010C
+ReplyLength=0
+
+[pmSSB_L]
+Command=000000000C
+ReplyLength=0
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=000000050C
+ReplyLength=0
+
+[pmFM]
+Command=000000060C
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=000000.02.10
+ReplyLength=19
+Value1=5|2|vfBinB|10|0|pmRitOffset
+Value2=2|3|vfBinB|10|0|pmFreq
+Flag1 =00000000000000.07.0000000000000000000000|00000000000000.00.0000000000000000000000|pmSSB_L
+Flag2 =00000000000000.07.0000000000000000000000|00000000000000.01.0000000000000000000000|pmSSB_U
+Flag3 =00000000000000.07.0000000000000000000000|00000000000000.02.0000000000000000000000|pmCW_U
+Flag4 =00000000000000.07.0000000000000000000000|00000000000000.03.0000000000000000000000|pmAM
+Flag5 =00000000000000.07.0000000000000000000000|00000000000000.04.0000000000000000000000|pmFM
+Flag6 =000000000000000000.20.000000000000000000|000000000000000000.00.000000000000000000|pmRitOff
+Flag7 =000000000000000000.20.000000000000000000|000000000000000000.20.000000000000000000|pmRitOn
+
+[STATUS2]
+Command=000000.03.10
+ReplyLength=18
+Value1=1|3|vfBinB|10|0|pmFreqA
+Value2=10|3|vfBinB|10|0|pmFreqB
+
+[STATUS3]
+Command=000000.01.FA
+;åñëè ïîñòàâèòü =0, òî ðèã âîîáùå íå îòçûâàåòñÿ
+ReplyLength=5
+
+;the rig that was tested returned 0655 instead of 0841
+;àïàðàòóðà, êîòîðàÿ áûëà ïðîâåðåíà, âîçâðàòèëà 0655 âìåñòî 0841
+;Validate=000000.FFFF|000000.0841
+;÷òî åñòü, ÷òî íåò - íå âëèÿåò...
+
+;doc fails to explain how VFO bits are set
+;äîêè íå â ñîñòîÿíèè îáúÿñíèòü, êàê áèòû VFO óñòàíîâëåíû
+Flag1 =C4.00.00.00.00|00.00.00.00.00|pmVfoAA
+Flag2 =C4.00.00.00.00|04.00.00.00.00|pmVfoAB
+Flag3 =C4.00.00.00.00|84.00.00.00.00|pmVfoBA
+Flag4 =C4.00.00.00.00|40.00.00.00.00|pmVfoBB
+
+Flag5 =00.01.80.00.00|00.00.00.00.00|pmRx
+;Flag6 =00.01.80.00.00|00.01.00.00.00|pmTx
+;Flag7 =00.01.80.00.00|00.00.80.00.00|pmTx
+;òàê ðàáîòàþò êíîïêè â êëèåíòå, åñòü èíäèêàöèÿ, íî â eqf èíäèêàöèè íåò...
+;Flag6 =00.01.80.00.00|00.01.80.00.00|pmTx
+;Flag7 =00.01.80.00.00|00.01.80.00.00|pmTx
+;òàê ðàáîòàåò è îò ïåäàëè,êíîïêè è êíîïîê êëèåíòà
+;äâå ðàçíûõ ìàñêè-äâà ðàçíûõ ñèãíàëà-îäèí ôëàã-ðåçóëüòàò
+Flag6 =00.01.00.00.00|00.01.00.00.00|pmTx
+Flag7 =00.00.80.00.00|00.00.80.00.00|pmTx
+
+Flag8 =04.00.00.00.00|04.00.00.00.00|pmSplitOn
+Flag9 =04.00.00.00.00|00.00.00.00.00|pmSplitOff
diff --git a/CATCheck/Rigs/FT-847.ini b/CATCheck/Rigs/FT-847.ini
new file mode 100644
index 0000000..36928fa
--- /dev/null
+++ b/CATCheck/Rigs/FT-847.ini
@@ -0,0 +1,154 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-847 command set
+;
+; File created by Bob Barrett, G8HEZ bob.barrett@ntlworld.com
+; Modified by Alex VE3NEA
+; Modified by Jason G4KVT 18-SEP-2014
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=00000000.00
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.01
+;32-bit BCD, unsigned, big endian
+Value=0|4|vfBcdBU|0.1|00
+ReplyLength=0
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+Command=00000000.00
+ReplyLength=0
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=00000000.88
+ReplyLength=0
+
+[pmTx]
+Command=00000000.08
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=0200000007
+ReplyLength=0
+
+[pmCW_L]
+Command=0300000007
+ReplyLength=0
+
+[pmSSB_U]
+Command=0100000007
+ReplyLength=0
+
+[pmSSB_L]
+Command=0000000007
+ReplyLength=0
+
+[pmDIG_U]
+;Not supported
+
+[pmDIG_L]
+;Not supported
+
+[pmAM]
+Command=0400000007
+ReplyLength=0
+
+[pmFM]
+Command=0800000007
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;Get Rig Main VFO Frequ
+Command=0000000003
+ReplyLength=5
+;32-bit unsigned BCD, big endian, in 10 Hz unints
+Value1=0|4|vfBcdBU|10|0|pmFreq
+;check 5 th byte for data match
+Flag1 =00000000.07|00000000.00|pmSSB_L
+Flag2 =00000000.07|00000000.01|pmSSB_U
+Flag3 =00000000.07|00000000.02|pmCW_U
+Flag4 =00000000.07|00000000.03|pmCW_L
+Flag5 =00000000.07|00000000.04|pmAM
+Flag7 =00000000.09|00000000.08|pmFM
+
+[STATUS2]
+Command=00000000.E7
+ReplyLength=1
+Flag1=80|80|pmTx
+
+[STATUS3]
+Command=00000000.F7
+ReplyLength=1
+Flag1=80|80|pmRx
diff --git a/CATCheck/Rigs/FT-857.ini b/CATCheck/Rigs/FT-857.ini
new file mode 100644
index 0000000..d443a89
--- /dev/null
+++ b/CATCheck/Rigs/FT-857.ini
@@ -0,0 +1,180 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-857 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+
+;2005-09-12 Changed ReplyLength=0 to ReplyLength=1. Works better now. /SM2Z
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;not required
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.01
+Value=0|4|vfBcdBU|0.1|00
+ReplyLength=1
+
+[pmRitOffset]
+Command=00000000.01
+Value=0|4|vfBcdBS|0.1|00
+ReplyLength=1
+
+
+[pmRit0]
+Command=00000000.F5
+ReplyLength=1
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000000.02
+ReplyLength=1
+
+
+[pmSplitOff]
+Command=00000000.82
+ReplyLength=1
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+Command=00000000.81
+ReplyLength=1
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+
+[pmRitOn]
+Command=00000000.05
+ReplyLength=1
+
+
+[pmRitOff]
+Command=00000000.85
+ReplyLength=1
+
+
+[pmXitOn]
+;not supported
+
+
+[pmXitOff]
+;not supported
+
+
+[pmRx]
+Command=00000000.88
+ReplyLength=1
+
+
+[pmTx]
+Command=00000000.08
+ReplyLength=1
+
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=0200000007
+ReplyLength=1
+
+[pmCW_L]
+Command=0300000007
+ReplyLength=1
+
+[pmSSB_U]
+Command=0100000007
+ReplyLength=1
+
+[pmSSB_L]
+Command=0000000007
+ReplyLength=1
+
+[pmDIG_U]
+Command=0A00000007
+ReplyLength=1
+
+[pmDIG_L]
+;Not supported
+
+[pmAM]
+Command=0400000007
+ReplyLength=1
+
+[pmFM]
+Command=0800000007
+ReplyLength=1
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=0000000003
+ReplyLength=5
+Value1=0|4|vfBcdBU|10|0|pmFreq
+Flag1 =00000000.0F|00000000.00|pmSSB_L
+Flag2 =00000000.0F|00000000.01|pmSSB_U
+Flag3 =00000000.0F|00000000.02|pmCW_U
+Flag4 =00000000.0F|00000000.03|pmCW_L
+Flag5 =00000000.0F|00000000.04|pmAM
+Flag7 =00000000.0F|00000000.06|pmFM
+Flag8 =00000000.0F|00000000.08|pmFM
+Flag9 =00000000.0F|00000000.0A|pmDIG_U
+Flag10 =00000000.0F|00000000.0C|pmDIG_U
+
+[STATUS2]
+Command=00000000.F7
+ReplyLength=1
+Flag1 =20|00|pmSplitOn
+Flag2 =20|20|pmSplitOff
+Flag3 =80|00|pmTx
+Flag4 =80|80|pmRx
diff --git a/CATCheck/Rigs/FT-891.ini b/CATCheck/Rigs/FT-891.ini
new file mode 100644
index 0000000..d309efc
--- /dev/null
+++ b/CATCheck/Rigs/FT-891.ini
@@ -0,0 +1,192 @@
+;-------------------------------------------------------------------------------;
+;Yaesu FT-891
+;
+; 2018/01/17 Modified by Bunshiro Tamura JA5FNX from the FT-5000MP Tnx Ram VU3RCN
+;
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA.........;)
+Value=2|9|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB.........;)
+Value=2|9|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(ST1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(ST0;)
+ReplyLength=0
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=(CF1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(CF0;)
+ReplyLength=0
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF.........................;)
+Value1=14|5|vfText|1|0|pmRitOffset
+Value2=5|9|vfText|1|0|pmFreq
+Flag1 =(...................0........)|pmRitOff
+Flag2 =(...................1........)|pmRitOn
+Flag3 =(....................0.......)|pmXitOff
+Flag4 =(....................1.......)|pmXitOn
+Flag5 =(.....................1......)|pmSSB_L
+Flag6 =(.....................2......)|pmSSB_U
+Flag7 =(.....................3......)|pmCW_U
+Flag8 =(.....................4......)|pmFM
+Flag9 =(.....................5......)|pmAM
+Flag10=(.....................6......)|pmDIG_L
+Flag11=(.....................7......)|pmCW_L
+Flag12=(.....................9......)|pmDIG_U
+Flag13=(...............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA.........;)
+Value1=2|9|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB.........;)
+Value1=2|9|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+;not supported
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FT-897.ini b/CATCheck/Rigs/FT-897.ini
new file mode 100644
index 0000000..3c2f5fd
--- /dev/null
+++ b/CATCheck/Rigs/FT-897.ini
@@ -0,0 +1,170 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-897 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; Tested by Elijah, KC0RDG
+;-------------------------------------------------------------------------------
+
+
+;2005-09-12 Changed ReplyLength=0 to ReplyLength=1. Works better now. /SM2Z
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.01
+Value=0|4|vfBcdBU|0.1|0
+ReplyLength=1
+
+[pmRitOffset]
+Command=00000000.F5
+Value=0|4|vfBcdBS|0.1|0
+ReplyLength=1
+
+[pmRit0]
+Command=00000000.F5
+ReplyLength=1
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000000.02
+ReplyLength=1
+
+[pmSplitOff]
+Command=00000000.82
+ReplyLength=1
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+Command=00000000.81
+ReplyLength=1
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+
+[pmRitOn]
+Command=00000000.05
+ReplyLength=1
+
+[pmRitOff]
+Command=00000000.85
+ReplyLength=1
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=00000000.88
+ReplyLength=1
+
+[pmTx]
+Command=00000000.08
+ReplyLength=1
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=02.00000007
+ReplyLength=1
+
+[pmCW_L]
+Command=03.00000007
+ReplyLength=1
+
+[pmSSB_U]
+Command=01.00000007
+ReplyLength=1
+
+[pmSSB_L]
+Command=00.00000007
+ReplyLength=1
+
+[pmDIG_U]
+Command=0A.00000007
+ReplyLength=1
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=04.00000007
+ReplyLength=1
+
+[pmFM]
+Command=08.00000007
+ReplyLength=1
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=00000000.03
+ReplyLength=5
+Value=0|4|vfBcdBU|10|0|pmFreq
+Flag1 =00000000.0F|00000000.00|pmSSB_L
+Flag2 =00000000.0F|00000000.01|pmSSB_U
+Flag3 =00000000.0F|00000000.02|pmCW_U
+Flag4 =00000000.0F|00000000.03|pmCW_L
+Flag5 =00000000.0F|00000000.04|pmAM
+Flag6 =00000000.0F|00000000.06|pmFM
+Flag7 =00000000.0F|00000000.08|pmFM
+Flag8 =00000000.0F|00000000.0A|pmDIG_U
+Flag9 =00000000.0F|00000000.0C|pmDIG_U
+
+[STATUS2]
+Command=00000000.F7
+ReplyLength=1
+Flag1 =20|00|pmSplitOn
+Flag2 =20|20|pmSplitOff
+Flag3 =80|00|pmTx
+Flag4 =80|80|pmRx
diff --git a/CATCheck/Rigs/FT-900.ini b/CATCheck/Rigs/FT-900.ini
new file mode 100644
index 0000000..f210d69
--- /dev/null
+++ b/CATCheck/Rigs/FT-900.ini
@@ -0,0 +1,187 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-900 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=000000000E
+ReplyLength=0
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.0A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmRitOffset]
+Command=000000FF.09
+16-bit BCD, little endian, plus sign byte (00 or FF)
+Value=0|3|vfBcdLS|0.1|0
+ReplyLength=0
+
+[pmRit0]
+Command=000000FF.09
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000001.01
+ReplyLength=0
+
+[pmSplitOff]
+Command=00000000.01
+ReplyLength=0
+
+[pmVfoA]
+Command=00000000.05
+ReplyLength=0
+
+[pmVfoB]
+Command=00000001.05
+ReplyLength=0
+
+[pmVfoEqual]
+Command=00000000.85
+ReplyLength=0
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=000000.01.09
+ReplyLength=0
+
+[pmRitOff]
+Command=00000000.09
+ReplyLength=0
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=00000000.0F
+ReplyLength=0
+
+[pmTx]
+Command=00000001.0F
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=000000030C
+ReplyLength=0
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=000000010C
+ReplyLength=0
+
+[pmSSB_L]
+Command=000000000C
+ReplyLength=0
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=000000050C
+ReplyLength=0
+
+[pmFM]
+Command=000000060C
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=000000.02.10
+ReplyLength=19
+Value1=5|2|vfBinB|10|0|pmRitOffset
+Value2=2|3|vfBinB|10|0|pmFreq
+Flag1 =00000000000000.07.0000000000000000000000|00000000000000.00.0000000000000000000000|pmSSB_L
+Flag2 =00000000000000.07.0000000000000000000000|00000000000000.01.0000000000000000000000|pmSSB_U
+Flag3 =00000000000000.07.0000000000000000000000|00000000000000.02.0000000000000000000000|pmCW_U
+Flag4 =00000000000000.07.0000000000000000000000|00000000000000.03.0000000000000000000000|pmAM
+Flag5 =00000000000000.07.0000000000000000000000|00000000000000.04.0000000000000000000000|pmFM
+Flag6 =000000000000000000.20.000000000000000000|000000000000000000.00.000000000000000000|pmRitOff
+Flag7 =000000000000000000.20.000000000000000000|000000000000000000.20.000000000000000000|pmRitOn
+
+[STATUS2]
+Command=000000.03.10
+ReplyLength=18
+Value1=1|3|vfBinB|10|0|pmFreqA
+Value2=10|3|vfBinB|10|0|pmFreqB
+
+[STATUS3]
+Command=000000.01.FA
+ReplyLength=5
+
+;the rig that was tested returned 0655 instead of 0841
+;Validate=000000.FFFF|000000.0841
+
+;doc fails to explain how VFO bits are set
+Flag1 =C4.00.00.00.00|00.00.00.00.00|pmVfoAA
+Flag2 =C4.00.00.00.00|04.00.00.00.00|pmVfoAB
+Flag3 =C4.00.00.00.00|84.00.00.00.00|pmVfoBA
+Flag4 =C4.00.00.00.00|40.00.00.00.00|pmVfoBB
+
+Flag5 =00.01.80.00.00|00.00.00.00.00|pmRx
+Flag6 =00.01.80.00.00|00.01.00.00.00|pmTx
+Flag7 =00.01.80.00.00|00.00.80.00.00|pmTx
+Flag8 =04.00.00.00.00|04.00.00.00.00|pmSplitOn
+Flag9 =04.00.00.00.00|00.00.00.00.00|pmSplitOff
diff --git a/CATCheck/Rigs/FT-920.ini b/CATCheck/Rigs/FT-920.ini
new file mode 100644
index 0000000..d64597c
--- /dev/null
+++ b/CATCheck/Rigs/FT-920.ini
@@ -0,0 +1,200 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-920 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=000000000E
+ReplyLength=0
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=00000000.0A
+;32-bit BCD, unsigned, little endian, in 10 Hz units
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmFreqB]
+;32-bit BCD, unsigned, little endian, in 10 Hz units
+Command=00000000.8A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=10
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;Command=000000FF.09
+;16-bit BCD, little endian, plus sign byte (00 or FF)
+;Value=0|3|vfBcdL|0.1|0
+;ReplyLength=0
+
+[pmRit0]
+Command=000000FF.09
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000001.01
+ReplyLength=0
+
+[pmSplitOff]
+Command=00000000.01
+ReplyLength=0
+
+[pmVfoA]
+Command=00000000.05
+ReplyLength=0
+
+[pmVfoB]
+Command=00000001.05
+ReplyLength=0
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=000000.01.09
+ReplyLength=0
+
+[pmRitOff]
+Command=00000000.09
+ReplyLength=0
+
+[pmXitOn]
+Command=00000081.09
+ReplyLength=0
+
+[pmXitOff]
+Command=00000080.09
+ReplyLength=0
+
+[pmRx]
+;not supported?
+Command=00000000.0F
+ReplyLength=0
+
+[pmTx]
+;not supported?
+Command=00000001.0F
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=000000020C.000000820C
+ReplyLength=0
+
+[pmCW_L]
+Command=000000030C.000000830C
+ReplyLength=0
+
+[pmSSB_U]
+Command=000000010C.000000810C
+ReplyLength=0
+
+[pmSSB_L]
+Command=000000000C.000000800C
+ReplyLength=0
+
+[pmDIG_U]
+Command=0000000A0C.0000008A0C
+ReplyLength=0
+
+[pmDIG_L]
+Command=000000080C.000000880C
+ReplyLength=0
+
+[pmAM]
+Command=000000040C.000000840C
+ReplyLength=0
+
+[pmFM]
+Command=000000060C.000000860C
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=00000002.10
+ReplyLength=28
+;16-bit signed integer, big endian, in 1 Hz units
+Value1=5|2|vfBinB|1|0|pmRitOffset
+;32-bit unsigned integer, big endian, in 1Hz units
+Value2=1|4|vfBinB|1|0|pmFreq
+Flag1 =00000000000000.47.000000000000.0000000000000000000000000000|00000000000000.41.000000000000.0000000000000000000000000000|pmCW_U
+Flag2 =00000000000000.47.000000000000.0000000000000000000000000000|00000000000000.01.000000000000.0000000000000000000000000000|pmCW_L
+Flag3 =00000000000000.47.000000000000.0000000000000000000000000000|00000000000000.40.000000000000.0000000000000000000000000000|pmSSB_U
+Flag4 =00000000000000.47.000000000000.0000000000000000000000000000|00000000000000.00.000000000000.0000000000000000000000000000|pmSSB_L
+Flag5 =00000000000000.07.000000000000.0000000000000000000000000000|00000000000000.05.000000000000.0000000000000000000000000000|pmDIG_U
+Flag6 =00000000000000.07.000000000000.0000000000000000000000000000|00000000000000.04.000000000000.0000000000000000000000000000|pmDIG_L
+Flag7 =00000000000000.07.000000000000.0000000000000000000000000000|00000000000000.02.000000000000.0000000000000000000000000000|pmAM
+Flag8 =00000000000000.07.000000000000.0000000000000000000000000000|00000000000000.03.000000000000.0000000000000000000000000000|pmFM
+Flag9 =0000000000000000.01.0000000000.0000000000000000000000000000|0000000000000000.00.0000000000.0000000000000000000000000000|pmXitOff
+Flag10=0000000000000000.01.0000000000.0000000000000000000000000000|0000000000000000.01.0000000000.0000000000000000000000000000|pmXitOn
+Flag11=0000000000000000.02.0000000000.0000000000000000000000000000|0000000000000000.00.0000000000.0000000000000000000000000000|pmRitOff
+Flag12=0000000000000000.02.0000000000.0000000000000000000000000000|0000000000000000.02.0000000000.0000000000000000000000000000|pmRitOn
+
+[STATUS2]
+Command=00000003.10
+ReplyLength=28
+;32-bit unsigned integer, big endian, in 1Hz units
+Value1=1|4|vfBinB|1|0|pmFreqA
+Value2=15|4|vfBinB|1|0|pmFreqB
+
+[STATUS3]
+Command=00000001.FA
+ReplyLength=8
+Flag1 =13.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00|pmVfoAA
+Flag2 =13.00.00.00.00.00.00.00|01.00.00.00.00.00.00.00|pmVfoAB
+Flag3 =13.00.00.00.00.00.00.00|02.00.00.00.00.00.00.00|pmVfoBA
+Flag4 =10.00.00.00.00.00.00.00|10.00.00.00.00.00.00.00|pmVfoBB
+Flag5 =80.00.00.10.00.00.00.00|00.00.00.00.00.00.00.00|pmRx
+Flag6 =80.00.00.00.00.00.00.00|80.00.00.00.00.00.00.00|pmTx
+Flag7 =00.00.00.10.00.00.00.00|00.00.00.10.00.00.00.00|pmTx
+Flag8 =03.00.00.00.00.00.00.00|01.00.00.00.00.00.00.00|pmSplitOn
+Flag9 =03.00.00.00.00.00.00.00|02.00.00.00.00.00.00.00|pmSplitOn
+Flag10=03.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00|pmSplitOff
diff --git a/CATCheck/Rigs/FT-950.ini b/CATCheck/Rigs/FT-950.ini
new file mode 100644
index 0000000..df562a9
--- /dev/null
+++ b/CATCheck/Rigs/FT-950.ini
@@ -0,0 +1,216 @@
+;-------------------------------------------------------------------------------
+;
+; Yaesu FT-950 command set ver. 2.0 20.02.2010
+; File created by 5P5R / OZ6ABM oz6abm@qsl.net
+; 10.08.2013 modified by SP8ALC to solve problem with entering SPLIT mode
+; on every click on any spot
+; was : modified :
+; [pmSplitOff]
+; Command=(FR0;FT0;) (command=(FR0;FT2;)
+; ReplyLength=0
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RC;R.....;)
+Value=4|5|vfTextUD|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.02|-300
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT2;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR4;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT2;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR4;FT2;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR4;FT3;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................8......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................C......)|pmDIG_U
+Flag13=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|50|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..4.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..4...0.)|pmVfoBA
+Flag6=(..4...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
\ No newline at end of file
diff --git a/CATCheck/Rigs/FT-990.ini b/CATCheck/Rigs/FT-990.ini
new file mode 100644
index 0000000..8857634
--- /dev/null
+++ b/CATCheck/Rigs/FT-990.ini
@@ -0,0 +1,191 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-990 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;
+; Tested by: Garrett Brandt, AA0OI
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=00000000.0E
+ReplyLength=0
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=00000000.0A
+Value=0|4|vfBcdLU|0.1|0
+ReplyLength=0
+
+[pmRitOffset]
+;perhaps this can be construsted as Clear RIT + RIT Up
+
+[pmRit0]
+Command=000000FF.09
+ReplyLength=0
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=00000001.01
+ReplyLength=0
+
+[pmSplitOff]
+Command=00000000.01
+ReplyLength=0
+
+[pmVfoA]
+Command=00000000.05
+ReplyLength=0
+
+[pmVfoB]
+Command=00000001.05
+ReplyLength=0
+
+[pmVfoEqual]
+Command=00000000.85
+ReplyLength=0
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+
+[pmRitOn]
+Command=00000001.09
+ReplyLength=0
+
+[pmRitOff]
+Command=00000000.09
+ReplyLength=0
+
+[pmXitOn]
+Command=00000081.09
+ReplyLength=0
+
+[pmXitOff]
+Command=00000080.09
+ReplyLength=0
+
+[pmRx]
+Command=00000000.0F
+ReplyLength=0
+
+[pmTx]
+Command=00000001.0F
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=00000003.0C
+ReplyLength=0
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=00000001.0C
+ReplyLength=0
+
+[pmSSB_L]
+Command=00000000.0C
+ReplyLength=0
+
+[pmDIG_U]
+Command=00000009.0C
+ReplyLength=0
+
+[pmDIG_L]
+Command=00000008.0C
+ReplyLength=0
+
+[pmAM]
+Command=00000005.0C
+ReplyLength=0
+
+[pmFM]
+Command=00000006.0C
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=00000002.10
+ReplyLength=32
+;scale? B/L endian?
+Value1=5|2|vfBinB|10|0|pmRitOffset
+Value2=1|3|vfBinB|10|0|pmFreq
+Flag1 =00000000000000.07.000000000000000000000000000000000000000000000000|00000000000000.00.000000000000000000000000000000000000000000000000|pmSSB_L
+Flag2 =00000000000000.07.000000000000000000000000000000000000000000000000|00000000000000.01.000000000000000000000000000000000000000000000000|pmSSB_U
+Flag3 =00000000000000.07.800000000000000000000000000000000000000000000000|00000000000000.02.000000000000000000000000000000000000000000000000|pmCW_U
+Flag5 =00000000000000.07.000000000000000000000000000000000000000000000000|00000000000000.03.000000000000000000000000000000000000000000000000|pmAM
+Flag6 =00000000000000.07.000000000000000000000000000000000000000000000000|00000000000000.04.000000000000000000000000000000000000000000000000|pmFM
+Flag7 =00000000000000.07.800000000000000000000000000000000000000000000000|00000000000000.05.800000000000000000000000000000000000000000000000|pmDIG_U
+Flag10=00000000.01.000000000000000000000000000000000000000000000000000000|00000000.00.000000000000000000000000000000000000000000000000000000|pmXitOff
+Flag11=00000000.01.000000000000000000000000000000000000000000000000000000|00000000.01.000000000000000000000000000000000000000000000000000000|pmXitOn
+Flag12=00000000.02.000000000000000000000000000000000000000000000000000000|00000000.00.000000000000000000000000000000000000000000000000000000|pmRitOff
+Flag13=00000000.02.000000000000000000000000000000000000000000000000000000|00000000.02.000000000000000000000000000000000000000000000000000000|pmRitOn
+
+
+[STATUS2]
+Command=00000003.10
+ReplyLength=32
+Value1=1|3|vfBinB|10|0|pmFreqA
+Value2=17|3|vfBinB|10|0|pmFreqB
+
+
+[STATUS3]
+Command=00000000.FA
+ReplyLength=5
+Flag1 =03.00.00.00.00|00.00.00.00.00|pmVfoAA
+Flag2 =03.00.00.00.00|02.00.00.00.00|pmVfoBB
+Flag3 =03.00.00.00.00|01.00.00.00.00|pmVfoAB
+Flag4 =03.00.00.00.00|03.00.00.00.00|pmVfoBA
+Flag5 =01.00.00.00.00|00.00.00.00.00|pmSplitOff
+Flag6 =01.00.00.00.00|01.00.00.00.00|pmSplitOn
+Flag7 =80.00.01.00.00|00.00.00.00.00|pmRx
+Flag8 =80.00.00.00.00|80.00.00.00.00|pmTx
+Flag8 =00.00.01.00.00|00.00.01.00.00|pmTx
diff --git a/CATCheck/Rigs/FT-991-DATA.ini b/CATCheck/Rigs/FT-991-DATA.ini
new file mode 100644
index 0000000..b8aea44
--- /dev/null
+++ b/CATCheck/Rigs/FT-991-DATA.ini
@@ -0,0 +1,211 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-991-DATA
+;
+; Same as FT-991, but DIG modes select DATA-USB and DATA-LSB instead of RTTY-USB
+; and RTTY-LSB.
+;
+; 2018-05-01 Created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA.........;)
+Value=2|9|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB.........;)
+Value=2|9|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FT3;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FT2;)
+ReplyLength=0
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FT2;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD0C;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD08;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF.........................;)
+Value1=14|5|vfText|1|0|pmRitOffset
+Value2=5|9|vfText|1|0|pmFreq
+Flag1 =(...................0........)|pmRitOff
+Flag2 =(...................1........)|pmRitOn
+Flag3 =(....................0.......)|pmXitOff
+Flag4 =(....................1.......)|pmXitOn
+Flag5 =(.....................1......)|pmSSB_L
+Flag6 =(.....................2......)|pmSSB_U
+Flag7 =(.....................3......)|pmCW_U
+Flag8 =(.....................4......)|pmFM
+Flag9 =(.....................5......)|pmAM
+Flag10=(.....................6......)|pmDIG_L
+Flag11=(.....................7......)|pmCW_L
+Flag12=(.....................8......)|pmDIG_L
+Flag13=(.....................9......)|pmDIG_U
+Flag14=(.....................A......)|pmFM
+Flag15=(.....................B......)|pmFM
+Flag16=(.....................C......)|pmDIG_U
+Flag17=(.....................D......)|pmAM
+Flag18=(.....................E......)|pmFM
+Flag19=(...............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA.........;)
+Value1=2|9|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB.........;)
+Value1=2|9|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+Command=(FT;)
+ReplyEnd=(;)
+Validate=(FT.;)
+Flag1=(..1.)|pmSplitOn
+Flag2=(..0.)|pmSplitOff
+Flag3=(..0.)|pmVfoAA
+Flag4=(..1.)|pmVfoAB
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FT-991.ini b/CATCheck/Rigs/FT-991.ini
new file mode 100644
index 0000000..5af9392
--- /dev/null
+++ b/CATCheck/Rigs/FT-991.ini
@@ -0,0 +1,211 @@
+;-------------------------------------------------------------------------------
+; Yaesu FT-991
+;
+; 2015/07/11 modified by Bunshiro Tamura JA5FNX from the FT-5000MP
+; 2015/12/28 modified by R. A. Wilson, N6TV, to fix the [pmPitch] command
+; 2016/01/02 modified by R. A. Wilson, N6TV, to fix the pmSplitOn/pmSplitOff status
+; 2018/05/01 modified by R. A. Wilson, N6TV, to recognize all modes returned by IF;
+;
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA.........;)
+Value=2|9|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB.........;)
+Value=2|9|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FT3;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FT2;)
+ReplyLength=0
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FT2;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF.........................;)
+Value1=14|5|vfText|1|0|pmRitOffset
+Value2=5|9|vfText|1|0|pmFreq
+Flag1 =(...................0........)|pmRitOff
+Flag2 =(...................1........)|pmRitOn
+Flag3 =(....................0.......)|pmXitOff
+Flag4 =(....................1.......)|pmXitOn
+Flag5 =(.....................1......)|pmSSB_L
+Flag6 =(.....................2......)|pmSSB_U
+Flag7 =(.....................3......)|pmCW_U
+Flag8 =(.....................4......)|pmFM
+Flag9 =(.....................5......)|pmAM
+Flag10=(.....................6......)|pmDIG_L
+Flag11=(.....................7......)|pmCW_L
+Flag12=(.....................8......)|pmDIG_L
+Flag13=(.....................9......)|pmDIG_U
+Flag14=(.....................A......)|pmFM
+Flag15=(.....................B......)|pmFM
+Flag16=(.....................C......)|pmDIG_U
+Flag17=(.....................D......)|pmAM
+Flag18=(.....................E......)|pmFM
+Flag19=(...............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA.........;)
+Value1=2|9|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB.........;)
+Value1=2|9|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+Command=(FT;)
+ReplyEnd=(;)
+Validate=(FT.;)
+Flag1=(..1.)|pmSplitOn
+Flag2=(..0.)|pmSplitOff
+Flag3=(..0.)|pmVfoAA
+Flag4=(..1.)|pmVfoAB
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FTDX-1200-DATA.ini b/CATCheck/Rigs/FTDX-1200-DATA.ini
new file mode 100644
index 0000000..6e7c0f9
--- /dev/null
+++ b/CATCheck/Rigs/FTDX-1200-DATA.ini
@@ -0,0 +1,221 @@
+;-------------------------------------------------------------------------------
+; Yaesu FTDX-1200-DATA
+;
+; Same as FTDX-1200, but DIG modes select DATA-USB and DATA-LSB instead of RTTY-USB
+; and RTTY-LSB (like prior FTDX-1200.ini)
+;
+; 2018-05-01 Created by Bob Wilson, N6TV, n6tv@arrl.net
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT0;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+; DATA-USB. Use FTDX-1200.ini for RTTY-USB
+[pmDIG_U]
+Command=(MD0C;)
+ReplyLength=0
+
+; DATA-LSB. Use FTDX-1200.ini for RTTY-LSB
+[pmDIG_L]
+Command=(MD08;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................B......)|pmFM
+Flag15=(....................C......)|pmDIG_U
+Flag16=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FTDX-1200.ini b/CATCheck/Rigs/FTDX-1200.ini
new file mode 100644
index 0000000..2593ed7
--- /dev/null
+++ b/CATCheck/Rigs/FTDX-1200.ini
@@ -0,0 +1,224 @@
+;-------------------------------------------------------------------------------
+; Yaesu FTDX-1200
+;
+; 2015-06-04 - File created by Philippe CHARDON F5FDV ph.chardon@laposte.net
+; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net:
+; - Digital modes now select RTTY insted of DATA modes
+; (use FTDX-1200-DATA.ini for DATA modes)
+; - Recognize all modes returned by IF; command
+; - Fix pmPitch command and status
+; - Corrected CR/LF errors
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT0;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+; update: Now RTTY-USB. Use FTDX-1200-DATA.ini for DATA-USB.
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+; update: Now RTTY-LSB. Use FTDX-1200-DATA.ini for DATA-LSB.
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................B......)|pmFM
+Flag15=(....................C......)|pmDIG_U
+Flag16=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FTDX-3000-DATA.ini b/CATCheck/Rigs/FTDX-3000-DATA.ini
new file mode 100644
index 0000000..594eb11
--- /dev/null
+++ b/CATCheck/Rigs/FTDX-3000-DATA.ini
@@ -0,0 +1,221 @@
+;-------------------------------------------------------------------------------
+; Yaesu FTDX-3000-DATA
+;
+; Same as FTDX-3000, but DIG modes select PKT-U and PKT-L instead of RTTY-USB
+; and RTTY-LSB.
+;
+; 2018-05-01 Created by Bob Wilson, N6TV, n6tv@arrl.net
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT0;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD0C;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD08;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................B......)|pmFM
+Flag15=(....................C......)|pmDIG_U
+Flag16=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyLength=4
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
+Flag3=(..2.)|pmTX
diff --git a/CATCheck/Rigs/FTDX-3000.ini b/CATCheck/Rigs/FTDX-3000.ini
new file mode 100644
index 0000000..b1f4c5b
--- /dev/null
+++ b/CATCheck/Rigs/FTDX-3000.ini
@@ -0,0 +1,222 @@
+;-------------------------------------------------------------------------------
+; Yaesu FTDX-3000
+;
+; 2014-10-21 - File created by Paul Jones paul@nn4f.com
+; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net:
+; - Copied and renamed FTdx3000.ini to FTDX-3000.ini
+; - Recognize all modes returned by IF; command
+; - Fix pmPitch command and status
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT0;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................B......)|pmFM
+Flag15=(....................C......)|pmDIG_U
+Flag16=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyLength=4
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
+Flag3=(..2.)|pmTX
diff --git a/CATCheck/Rigs/FTDX-5000MP-DATA.ini b/CATCheck/Rigs/FTDX-5000MP-DATA.ini
new file mode 100644
index 0000000..8f19aec
--- /dev/null
+++ b/CATCheck/Rigs/FTDX-5000MP-DATA.ini
@@ -0,0 +1,219 @@
+;-------------------------------------------------------------------------------
+; Yaesu FTDX-5000MP-DATA
+;
+; Same as FTDX-5000MP, but DIG modes select PKT-U and PKT-L instead of RTTY-USB
+; and RTTY-LSB
+;
+; 2018-05-01 Created by Bob Wilson, N6TV, n6tv@arrl.net
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT2;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT2;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT3;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD0C;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD08;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................A......)|pmFM
+Flag15=(....................B......)|pmFM
+Flag16=(....................C......)|pmDIG_U
+Flag17=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+Validate=(FR.;FT.;)
+Flag1=(..0...0.)|pmVfoAA
+Flag2=(..0...1.)|pmVfoAB
+Flag3=(..2...0.)|pmVfoAA
+Flag4=(..2...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...0.)|pmSplitOff
+Flag8=(..0...1.)|pmSplitOn
+Flag9=(..2...0.)|pmSplitOff
+Flag10=(..2...1.)|pmSplitOn
+Flag11=(..3...0.)|pmSplitOn
+Flag12=(..3...1.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FTDX-5000MP.ini b/CATCheck/Rigs/FTDX-5000MP.ini
new file mode 100644
index 0000000..7ee07fd
--- /dev/null
+++ b/CATCheck/Rigs/FTDX-5000MP.ini
@@ -0,0 +1,219 @@
+;-------------------------------------------------------------------------------
+; Yaesu FTDX-5000MP
+;
+; 2009-09-29 - File created by DANILO IZ0PUE THE_HAWK@TELVIA.IT
+; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net:
+; - Recognize all modes returned by IF; command
+; - Fix pmPitch command and status
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.1|-30
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT2;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT2;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT3;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................A......)|pmFM
+Flag15=(....................B......)|pmFM
+Flag16=(....................C......)|pmDIG_U
+Flag17=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|10|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+Validate=(FR.;FT.;)
+Flag1=(..0...0.)|pmVfoAA
+Flag2=(..0...1.)|pmVfoAB
+Flag3=(..2...0.)|pmVfoAA
+Flag4=(..2...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...0.)|pmSplitOff
+Flag8=(..0...1.)|pmSplitOn
+Flag9=(..2...0.)|pmSplitOff
+Flag10=(..2...1.)|pmSplitOn
+Flag11=(..3...0.)|pmSplitOn
+Flag12=(..3...1.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/FTDX-9000.ini b/CATCheck/Rigs/FTDX-9000.ini
new file mode 100644
index 0000000..87a7e66
--- /dev/null
+++ b/CATCheck/Rigs/FTDX-9000.ini
@@ -0,0 +1,220 @@
+;-------------------------------------------------------------------------------
+; Yaesu FTDX-9000
+;
+; 2009-12-07 - File created by N2TU@arrl.net as FT-9000v1.ini
+; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net:
+; - Copied and renamed FT-9000v1.ini to FTDX-9000.ini
+; - Recognize all modes returned by IF; command
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+Command=(FA........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB........;)
+Value=2|8|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+Command=(RU....;)
+Value=2|4|vfText|1|0
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(KP..;)
+Value=2|2|vfText|0.02|-300
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(FR0;FT2;)
+ReplyLength=0
+
+[pmVfoA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoB]
+Command=(FR3;)
+ReplyLength=0
+
+[pmVfoEqual]
+Command=(AB;)
+ReplyLength=0
+
+[pmVfoSwap]
+Command=(SV;)
+ReplyLength=0
+
+[pmVfoAA]
+Command=(FR0;FT0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT3;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR3;FT2;)
+ReplyLength=0
+
+[pmVfoBB]
+Command=(FR3;FT3;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmRx]
+Command=(TX0;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX1;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD03;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD07;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD02;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD01;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD09;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD06;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD05;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD04;)
+ReplyLength=0
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF........................;)
+Value1=13|5|vfText|1|0|pmRitOffset
+Value2=5|8|vfText|1|0|pmFreq
+Flag1 =(..................0........)|pmRitOff
+Flag2 =(..................1........)|pmRitOn
+Flag3 =(...................0.......)|pmXitOff
+Flag4 =(...................1.......)|pmXitOn
+Flag5 =(....................1......)|pmSSB_L
+Flag6 =(....................2......)|pmSSB_U
+Flag7 =(....................3......)|pmCW_U
+Flag8 =(....................4......)|pmFM
+Flag9 =(....................5......)|pmAM
+Flag10=(....................6......)|pmDIG_L
+Flag11=(....................7......)|pmCW_L
+Flag12=(....................8......)|pmDIG_L
+Flag13=(....................9......)|pmDIG_U
+Flag14=(....................A......)|pmFM
+Flag15=(....................B......)|pmFM
+Flag16=(....................C......)|pmDIG_U
+Flag17=(..............0000.........)|pmRit0
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+;Validate=(FA........;)
+Value1=2|8|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+;Validate=(FB........;)
+Value1=2|8|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(KP;)
+ReplyEnd=(;)
+Validate=(KP..;)
+Value1=2|2|vfText|50|300|pmPitch
+
+[STATUS5]
+Command=(FR;FT;)
+ReplyLength=8
+;ReplyEnd=(;)
+Validate=(FR.;FT.;)
+Flag1=(..0.....)|pmVfoA
+Flag2=(..3.....)|pmVfoB
+Flag3=(..0...0.)|pmVfoAA
+Flag4=(..0...1.)|pmVfoAB
+Flag5=(..3...0.)|pmVfoBA
+Flag6=(..3...1.)|pmVfoBB
+Flag7=(..0...1.)|pmSplitOn
+Flag8=(..0...0.)|pmSplitOff
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
diff --git a/CATCheck/Rigs/HRD.ini b/CATCheck/Rigs/HRD.ini
new file mode 100644
index 0000000..b668003
--- /dev/null
+++ b/CATCheck/Rigs/HRD.ini
@@ -0,0 +1,177 @@
+;-------------------------------------------------------------------------------
+; Ham Radio Delux command set
+;
+; File created by Alexei Chernobai, RX4HX rx4hx@mail.ru
+;-------------------------------------------------------------------------------
+
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|]|
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;Command=(AI0;)
+;ReplyLength=0
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD3;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD7;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD9;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD6;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD5;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD4;)
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(............................0.........)|pmRx
+Flag2 =(............................1.........)|pmTx
+Flag3 =(.............................1........)|pmSSB_L
+Flag4 =(.............................2........)|pmSSB_U
+Flag5 =(.............................3........)|pmCW_U
+Flag6 =(.............................4........)|pmFM
+Flag7 =(.............................5........)|pmAM
+Flag8 =(.............................6........)|pmDIG_L
+Flag9 =(.............................7........)|pmCW_L
+Flag10=(.............................9........)|pmDIG_U
+
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqB
+
diff --git a/CATCheck/Rigs/IC- 821.ini b/CATCheck/Rigs/IC- 821.ini
new file mode 100644
index 0000000..229f92c
--- /dev/null
+++ b/CATCheck/Rigs/IC- 821.ini
@@ -0,0 +1,187 @@
+;-------------------------------------------------------------------------------
+ ; Icom IC-821 command set
+;
+; File created for IC-970D by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+ Corrected by Vlad Tarasov , RA4HO, ra4ho@ncts.ru
+; fiddled with for IC-821 by MM0RBZ
+;
+;-------------------------------------------------------------------------------
+
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE4CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE4CE0050000000000FD.FEFEE04CFBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE4CE0.0F01.FD
+ReplyLength=13
+Validate=FEFE4CE00F01FD.FEFEE04CFBFD
+
+[pmSplitOff]
+Command=FEFE4CE0.0F00.FD
+ReplyLength=13
+Validate=FEFE4CE00F00FD.FEFEE04CFBFD
+
+[pmVfoA]
+Command=FEFE4CE0.0700.FD
+ReplyLength=13
+Validate=FEFE4CE00700FD.FEFEE04CFBFD
+
+[pmVfoB]
+Command=FEFE4CE0.0701.FD
+ReplyLength=13
+Validate=FEFE4CE00701FD.FEFEE04CFBFD
+
+[pmVfoEqual]
+Command=FEFE4CE0.07A0.FD
+ReplyLength=13
+Validate=FEFE4CE007A0FD.FEFEE04CFBFD
+
+[pmVfoSwap]
+;SWAP MAIN AND SUB
+Command=FEFE4CE0.07B0.FD
+ReplyLength=13
+Validate=FEFE4CE007B0FD.FEFEE04CFBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;Not supported
+[pmTx]
+;Not Supported
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE4CE0.06.03.FD
+ReplyLength=13
+Validate=FEFE4CE00603FD.FEFEE04CFBFD
+
+[pmCW_L]
+;NOT SUPPORTED
+
+
+[pmSSB_U]
+Command=FEFE4CE0.06.01.FD
+ReplyLength=13
+Validate=FEFE4CE00601FD.FEFEE04CFBFD
+
+[pmSSB_L]
+Command=FEFE4CE0.06.00.FD
+ReplyLength=13
+Validate=FEFE4CE00600FD.FEFEE04CFBFD
+
+[pmDIG_U]
+;not supported
+[pmDIG_L]
+;not supported
+
+[pmAM]
+;not supported
+
+[pmFM]
+Command=FEFE4CE0.06.05.FD
+ReplyLength=13
+Validate=FEFE4CE00605FD.FEFEE04CFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;READ CURRENT FREQUENCY DATA
+Command=FEFE4CE0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE4CE003FD.FEFEE04C.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;READ CURRENT MODE
+Command=FEFE4CE0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE4CE004FD.FEFEE04C.04.0000.FD
+is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+;not supported
+
+
+
+
diff --git a/CATCheck/Rigs/IC- 970D.ini b/CATCheck/Rigs/IC- 970D.ini
new file mode 100644
index 0000000..b41e233
--- /dev/null
+++ b/CATCheck/Rigs/IC- 970D.ini
@@ -0,0 +1,205 @@
+;-------------------------------------------------------------------------------
+ ; Icom IC-970 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+ Corrected by Vlad Tarasov , RA4HO, ra4ho@ncts.ru
+;
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE2EE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE2EE0050000000000FD.FEFEE02EFBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+Command=FEFE2EE0.1409.0000.FD
+;300Hz=0 600Hz=128 900Hz=255
+Value=6|2|vfBcdLU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE2EE014090000FD.FEFEE02EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE2EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE2EE00F01FD.FEFEE02EFBFD
+
+[pmSplitOff]
+Command=FEFE2EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE2EE00F00FD.FEFEE02EFBFD
+
+[pmVfoA]
+Command=FEFE2EE0.0700.FD
+ReplyLength=13
+Validate=FEFE2EE00700FD.FEFEE02EFBFD
+
+[pmVfoB]
+Command=FEFE2EE0.0701.FD
+ReplyLength=13
+Validate=FEFE2EE00701FD.FEFEE02EFBFD
+
+[pmVfoEqual]
+Command=FEFE2EE0.07A0.FD
+ReplyLength=13
+Validate=FEFE2EE007A0FD.FEFEE02EFBFD
+
+[pmVfoSwap]
+Command=FEFE2EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE2EE007B0FD.FEFEE02EFBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE2EE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE2EE01C0000FD.FEFEE02EFBFD
+
+[pmTx]
+Command=FEFE2EE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE2EE01C0001FD.FEFEE02EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE2EE0.06.03.FD
+ReplyLength=13
+Validate=FEFE2EE00603FD.FEFEE02EFBFD
+
+[pmCW_L]
+Command=FEFE2EE0.06.07.FD
+ReplyLength=13
+Validate=FEFE2EE00607FD.FEFEE02EFBFD
+
+[pmSSB_U]
+Command=FEFE2EE0.06.01.FD
+ReplyLength=13
+Validate=FEFE2EE00601FD.FEFEE02EFBFD
+
+[pmSSB_L]
+Command=FEFE2EE0.06.00.FD
+ReplyLength=13
+Validate=FEFE2EE00600FD.FEFEE02EFBFD
+
+[pmDIG_U]
+Command=FEFE2EE0.06.04.FD
+ReplyLength=13
+Validate=FEFE2EE00604FD.FEFEE02EFBFD
+
+[pmDIG_L]
+Command=FEFE2EE0.06.08.FD
+ReplyLength=13
+Validate=FEFE2EE00608FD.FEFEE02EFBFD
+
+[pmAM]
+Command=FEFE2EE0.06.02.FD
+ReplyLength=13
+Validate=FEFE2EE00602FD.FEFEE02EFBFD
+
+[pmFM]
+Command=FEFE2EE0.06.05.FD
+ReplyLength=13
+Validate=FEFE2EE00605FD.FEFEE02EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE2EE0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE2EE003FD.FEFEE02E.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE2EE0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE2EE004FD.FEFEE02E.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE2EE0.1409.FD
+ReplyLength=16
+Validate=FFFFFFFFFFFFFF.FFFFFFFFFFFF.0000.FF|FEFE2EE01409FD.FEFEE02E1409.0000.FD
+Value1=13|2|vfBcdLU|2.352941|300|pmPitch
+
+[STATUS4]
+Command=FEFE2EE0.1C00.FD
+ReplyLength=15
+Validate=FFFFFFFFFFFFFF.FFFFFFFF.FFFF.00.FF|FEFE2EE01C00FD.FEFEE02E.1C00.00.FD
+Flag1=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
diff --git a/CATCheck/Rigs/IC-275H.ini b/CATCheck/Rigs/IC-275H.ini
new file mode 100644
index 0000000..88e4cf7
--- /dev/null
+++ b/CATCheck/Rigs/IC-275H.ini
@@ -0,0 +1,178 @@
+;-------------------------------------------------------------------------------
+; Icom IC-275 command set
+;
+; File modified by Adrian Sinclair LU1CGB 07/2009
+;
+; Tested by: _________
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE10E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE10E0050000000000FD.FEFEE010FBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE10E0.0F01.FD
+ReplyLength=13
+Validate=FEFE10E00F01FD.FEFEE010FBFD
+
+[pmSplitOff]
+Command=FEFE10E0.0F00.FD
+ReplyLength=13
+Validate=FEFE10E00F00FD.FEFEE010FBFD
+
+[pmVfoA]
+Command=FEFE10E0.0700.FD
+ReplyLength=13
+Validate=FEFE10E00700FD.FEFEE010FBFD
+
+[pmVfoB]
+Command=FEFE10E0.0701.FD
+ReplyLength=13
+Validate=FEFE10E00701FD.FEFEE010FBFD
+
+[pmVfoEqual]
+Command=FEFE10E0.07A0.FD
+ReplyLength=13
+Validate=FEFE10E007A0FD.FEFEE010FBFD
+
+[pmVfoSwap]
+Command=FEFE10E0.07B0.FD
+ReplyLength=13
+Validate=FEFE10E007B0FD.FEFEE010FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE10E0.06.03.FD
+ReplyLength=13
+Validate=FEFE10E00603FD.FEFEE010FBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE10E0.06.01.FD
+ReplyLength=13
+Validate=FEFE10E00601FD.FEFEE010FBFD
+
+[pmSSB_L]
+Command=FEFE10E0.06.00.FD
+ReplyLength=13
+Validate=FEFE10E00600FD.FEFEE010FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+Command=FEFE10E0.06.04.FD
+ReplyLength=13
+Validate=FEFE10E00608FD.FEFEE010FBFD
+
+[pmAM]
+Command=FEFE10E0.06.02.FD
+ReplyLength=13
+Validate=FEFE10E00602FD.FEFEE010FBFD
+
+[pmFM]
+Command=FEFE10E0.06.05.FD
+ReplyLength=13
+Validate=FEFE10E00605FD.FEFEE010FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE10E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE10E003FD.FEFEE010.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE10E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE10E004FD.FEFEE04E.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM
diff --git a/CATCheck/Rigs/IC-7000.ini b/CATCheck/Rigs/IC-7000.ini
new file mode 100644
index 0000000..c085608
--- /dev/null
+++ b/CATCheck/Rigs/IC-7000.ini
@@ -0,0 +1,148 @@
+;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+;
+; Icom IC-7000 Omni-Rig commands
+;
+; File created by: Elijah Figueroa, KC0RDG kc0rdg@gmail.com
+;
+;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+;--------------------------------------------------------------------------
+; Initialize the radio
+;--------------------------------------------------------------------------
+
+; Need to disable CI-V Transceive Mode, see page 136 of
+; the IC-7000 PDF manual to do this in the radio
+; http://www.icomamerica.com/support/manuals/IC-7000_Manual_Eng.pdf
+[INIT1]
+Command=FEFE70E0.1A050092.00.FD
+ReplyLength=16
+Validate=FEFE70E01A05009200FD.FEFEE070FBFD
+
+
+;--------------------------------------------------------------------------
+; Set frequency
+;--------------------------------------------------------------------------
+
+; Set operating frequency
+[pmFreq]
+Command=FEFE70E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE70E0050000000000FD.FEFEE070FBFD
+
+
+;--------------------------------------------------------------------------
+; Set Split, Rx & Tx
+;--------------------------------------------------------------------------
+
+; Turn Split function on
+[pmSplitOn]
+Command=FEFE70E0.0F01.FD
+ReplyLength=13
+Validate=FEFE70E00F01FD.FEFEE070FBFD
+
+; Turn Split function off
+[pmSplitOff]
+Command=FEFE70E0.0F00.FD
+ReplyLength=13
+Validate=FEFE70E00F00FD.FEFEE070FBFD
+
+; Enable receive mode
+[pmRx]
+Command=FEFE70E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE70E01C0000FD.FEFEE070FBFD
+
+; Enable transmit mode
+[pmTx]
+Command=FEFE70E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE70E01C0001FD.FEFEE070FBFD
+
+
+;--------------------------------------------------------------------------
+; Set modes of the radio
+;--------------------------------------------------------------------------
+
+; Upper sideband CW
+[pmCW_U]
+Command=FEFE70E0.06.07.FD
+ReplyLength=13
+Validate=FEFE70E00607FD.FEFEE070FBFD
+
+; Lower sideband CW
+[pmCW_L]
+Command=FEFE70E0.06.03.FD
+ReplyLength=13
+Validate=FEFE70E00603FD.FEFEE070FBFD
+
+; USB
+[pmSSB_U]
+Command=FEFE70E0.06.01.FD
+ReplyLength=13
+Validate=FEFE70E00601FD.FEFEE070FBFD
+
+; LSB
+[pmSSB_L]
+Command=FEFE70E0.06.00.FD
+ReplyLength=13
+Validate=FEFE70E00600FD.FEFEE070FBFD
+
+; Upper sideband digital modes
+[pmDIG_U]
+Command=FEFE70E0.06.08.FD
+ReplyLength=13
+Validate=FEFE70E00608FD.FEFEE070FBFD
+
+; Lower sideband digital modes
+[pmDIG_L]
+Command=FEFE70E0.06.04.FD
+ReplyLength=13
+Validate=FEFE70E00604FD.FEFEE070FBFD
+
+; AM
+[pmAM]
+Command=FEFE70E0.06.02.FD
+ReplyLength=13
+Validate=FEFE70E00602FD.FEFEE070FBFD
+
+; FM
+[pmFM]
+Command=FEFE70E0.06.05.FD
+ReplyLength=13
+Validate=FEFE70E00605FD.FEFEE070FBFD
+
+
+;------------------------------------------------------------------------
+; Read the status of the radio
+;------------------------------------------------------------------------
+
+; Read the current frequency
+[STATUS1]
+Command=FEFE70E0.03.FD
+ReplyLength=17
+Validate=FEFE70E003FD.FEFEE070.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+; Read the current operating mode
+[STATUS2]
+Command=FEFE70E0.04.FD
+ReplyLength=14
+Validate=FEFE70E004FD.FEFEE070.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+; Are we in Rx or Tx?
+[STATUS3]
+Command=FEFE70E0.1C00.FD
+ReplyLength=15
+Validate=FEFE70E01C00FD.FEFEE070.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
diff --git a/CATCheck/Rigs/IC-7000v2.ini b/CATCheck/Rigs/IC-7000v2.ini
new file mode 100644
index 0000000..442cf20
--- /dev/null
+++ b/CATCheck/Rigs/IC-7000v2.ini
@@ -0,0 +1,204 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7000 version 2
+;
+; IC-7000v2 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: N6TV @ KE1B
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE70E0.1A050092.00.FD
+ReplyLength=16
+Validate=FEFE70E01A05009200FD.FEFEE070FBFD
+
+[INIT2]
+;set CW normal to lower sideband
+Command=FEFE70E0.1A050079.00.FD
+ReplyLength=16
+Validate=FEFE70E01A05007900FD.FEFEE070FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE70E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE70E0050000000000FD.FEFEE070FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE70E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE70E014090000FD.FEFEE070FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE70E0.0F01.FD
+ReplyLength=13
+Validate=FEFE70E00F01FD.FEFEE070FBFD
+
+[pmSplitOff]
+Command=FEFE70E0.0F00.FD
+ReplyLength=13
+Validate=FEFE70E00F00FD.FEFEE070FBFD
+
+[pmVfoA]
+Command=FEFE70E0.0700.FD
+ReplyLength=13
+Validate=FEFE70E00700FD.FEFEE070FBFD
+
+[pmVfoB]
+Command=FEFE70E0.0701.FD
+ReplyLength=13
+Validate=FEFE70E00701FD.FEFEE070FBFD
+
+[pmVfoEqual]
+Command=FEFE70E0.07A0.FD
+ReplyLength=13
+Validate=FEFE70E007A0FD.FEFEE070FBFD
+
+[pmVfoSwap]
+Command=FEFE70E0.07B0.FD
+ReplyLength=13
+Validate=FEFE70E007B0FD.FEFEE070FBFD
+
+[pmVfoAA]
+Command=FEFE70E0.0700.FD.FEFE70E0.0F00.FD
+ReplyLength=20
+Validate=FEFE70E00700FD.FEFE70E00F00FD.FEFEE070FBFD
+
+[pmVfoAB]
+Command=FEFE70E0.0700.FD.FEFE70E0.0F01.FD
+ReplyLength=20
+Validate=FEFE70E00700FD.FEFE70E00F01FD.FEFEE070FBFD
+
+[pmVfoBA]
+Command=FEFE70E0.0701.FD.FEFE70E0.0F01.FD
+ReplyLength=20
+Validate=FEFE70E00701FD.FEFE70E00F01FD.FEFEE070FBFD
+
+[pmVfoBB]
+Command=FEFE70E0.0701.FD.FEFE70E0.0F00.FD
+ReplyLength=20
+Validate=FEFE70E00701FD.FEFE70E00F00FD.FEFEE070FBFD
+
+[pmRx]
+Command=FEFE70E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE70E01C0000FD.FEFEE070FBFD
+
+[pmTx]
+Command=FEFE70E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE70E01C0001FD.FEFEE070FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE70E0.06.07.FD
+ReplyLength=13
+Validate=FEFE70E00607FD.FEFEE070FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE70E0.06.03.FD
+ReplyLength=13
+Validate=FEFE70E00603FD.FEFEE070FBFD
+
+[pmSSB_U]
+Command=FEFE70E0.06.01.FD
+ReplyLength=13
+Validate=FEFE70E00601FD.FEFEE070FBFD
+
+[pmSSB_L]
+Command=FEFE70E0.06.00.FD
+ReplyLength=13
+Validate=FEFE70E00600FD.FEFEE070FBFD
+
+[pmDIG_U]
+Command=FEFE70E0.06.08.FD
+ReplyLength=13
+Validate=FEFE70E00608FD.FEFEE070FBFD
+
+[pmDIG_L]
+Command=FEFE70E0.06.04.FD
+ReplyLength=13
+Validate=FEFE70E00604FD.FEFEE070FBFD
+
+[pmAM]
+Command=FEFE70E0.06.02.FD
+ReplyLength=13
+Validate=FEFE70E00602FD.FEFEE070FBFD
+
+[pmFM]
+Command=FEFE70E0.06.05.FD
+ReplyLength=13
+Validate=FEFE70E00605FD.FEFEE070FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE70E0.03.FD
+ReplyLength=17
+Validate=FEFE70E003FD.FEFEE070.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE70E0.04.FD
+ReplyLength=14
+Validate=FEFE70E004FD.FEFEE070.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE70E0.1409.FD
+ReplyLength=16
+Validate=FEFE70E01409FD.FEFEE070.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE70E0.1C00.FD
+ReplyLength=15
+Validate=FEFE70E01C00FD.FEFEE070.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
diff --git a/CATCheck/Rigs/IC-703.ini b/CATCheck/Rigs/IC-703.ini
new file mode 100644
index 0000000..625798c
--- /dev/null
+++ b/CATCheck/Rigs/IC-703.ini
@@ -0,0 +1,178 @@
+;-------------------------------------------------------------------------------
+; Icom IC-703 command set
+;
+; File created by Alex, G7KSE
+;
+; Tested by: _________
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE68E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE68E0050000000000FD.FEFEE068FBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE68E0.0F01.FD
+ReplyLength=13
+Validate=FEFE68E00F01FD.FEFEE068FBFD
+
+[pmSplitOff]
+Command=FEFE68E0.0F00.FD
+ReplyLength=13
+Validate=FEFE68E00F00FD.FEFEE068FBFD
+
+[pmVfoA]
+Command=FEFE68E0.0700.FD
+ReplyLength=13
+Validate=FEFE68E00700FD.FEFEE068FBFD
+
+[pmVfoB]
+Command=FEFE68E0.0701.FD
+ReplyLength=13
+Validate=FEFE68E00701FD.FEFEE068FBFD
+
+[pmVfoEqual]
+Command=FEFE68E0.07A0.FD
+ReplyLength=13
+Validate=FEFE68E007A0FD.FEFEE068FBFD
+
+[pmVfoSwap]
+Command=FEFE68E0.07B0.FD
+ReplyLength=13
+Validate=FEFE68E007B0FD.FEFEE068FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE68E0.06.03.FD
+ReplyLength=13
+Validate=FEFE68E00603FD.FEFEE068FBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE68E0.06.01.FD
+ReplyLength=13
+Validate=FEFE68E00601FD.FEFEE068FBFD
+
+[pmSSB_L]
+Command=FEFE68E0.06.00.FD
+ReplyLength=13
+Validate=FEFE68E00600FD.FEFEE068FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+Command=FEFE68E0.06.04.FD
+ReplyLength=13
+Validate=FEFE68E00608FD.FEFEE068FBFD
+
+[pmAM]
+Command=FEFE68E0.06.02.FD
+ReplyLength=13
+Validate=FEFE68E00602FD.FEFEE068FBFD
+
+[pmFM]
+Command=FEFE68E0.06.05.FD
+ReplyLength=13
+Validate=FEFE68E00605FD.FEFEE068FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE68E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE68E003FD.FEFEE068.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE68E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE68E004FD.FEFEE068.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM
diff --git a/CATCheck/Rigs/IC-703a.ini b/CATCheck/Rigs/IC-703a.ini
new file mode 100644
index 0000000..fed3e95
--- /dev/null
+++ b/CATCheck/Rigs/IC-703a.ini
@@ -0,0 +1,159 @@
+;-------------------------------------------------------------------------------
+; Icom IC-703 command set
+;
+; by: Antoon Milatz (PA3BWE)
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+;none
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE68E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE68E0050000000000FD.FEFEE068FBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE68E0.0F01.FD
+ReplyLength=13
+Validate=FEFE68E00F01FD.FEFEE068FBFD
+
+[pmSplitOff]
+Command=FEFE68E0.0F00.FD
+ReplyLength=13
+Validate=FEFE68E00F00FD.FEFEE068FBFD
+
+[pmVfoA]
+Command=FEFE68E0.0700.FD
+ReplyLength=13
+Validate=FEFE68E00700FD.FEFEE068FBFD
+
+[pmVfoB]
+Command=FEFE68E0.0701.FD
+ReplyLength=13
+Validate=FEFE68E00701FD.FEFEE068FBFD
+
+[pmVfoEqual]
+Command=FEFE68E0.07A0.FD
+ReplyLength=13
+Validate=FEFE68E007A0FD.FEFEE068FBFD
+
+[pmVfoSwap]
+Command=FEFE68E0.07B0.FD
+ReplyLength=13
+Validate=FEFE68E007B0FD.FEFEE068FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE68E0.06.03.FD
+ReplyLength=13
+Validate=FEFE68E00603FD.FEFEE068FBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE68E0.06.01.FD
+ReplyLength=13
+Validate=FEFE68E00601FD.FEFEE068FBFD
+
+[pmSSB_L]
+Command=FEFE68E0.06.00.FD
+ReplyLength=13
+Validate=FEFE68E00600FD.FEFEE068FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+Command=FEFE68E0.06.04.FD
+ReplyLength=13
+Validate=FEFE68E00608FD.FEFEE068FBFD
+
+[pmAM]
+Command=FEFE68E0.06.02.FD
+ReplyLength=13
+Validate=FEFE68E00602FD.FEFEE068FBFD
+
+[pmFM]
+Command=FEFE68E0.06.05.FD
+ReplyLength=13
+Validate=FEFE68E00605FD.FEFEE068FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE68E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE68E003FD.FEFEE068.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE68E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE68E004FD.FEFEE068.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM
\ No newline at end of file
diff --git a/CATCheck/Rigs/IC-706 MKII.ini b/CATCheck/Rigs/IC-706 MKII.ini
new file mode 100644
index 0000000..78c4434
--- /dev/null
+++ b/CATCheck/Rigs/IC-706 MKII.ini
@@ -0,0 +1,178 @@
+;-------------------------------------------------------------------------------
+; Icom IC-706 MKII command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;
+; Tested by: _________
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE4EE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE4EE0050000000000FD.FEFEE04EFBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE4EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE4EE00F01FD.FEFEE04EFBFD
+
+[pmSplitOff]
+Command=FEFE4EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE4EE00F00FD.FEFEE04EFBFD
+
+[pmVfoA]
+Command=FEFE4EE0.0700.FD
+ReplyLength=13
+Validate=FEFE4EE00700FD.FEFEE04EFBFD
+
+[pmVfoB]
+Command=FEFE4EE0.0701.FD
+ReplyLength=13
+Validate=FEFE4EE00701FD.FEFEE04EFBFD
+
+[pmVfoEqual]
+Command=FEFE4EE0.07A0.FD
+ReplyLength=13
+Validate=FEFE4EE007A0FD.FEFEE04EFBFD
+
+[pmVfoSwap]
+Command=FEFE4EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE4EE007B0FD.FEFEE04EFBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE4EE0.06.03.FD
+ReplyLength=13
+Validate=FEFE4EE00603FD.FEFEE04EFBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE4EE0.06.01.FD
+ReplyLength=13
+Validate=FEFE4EE00601FD.FEFEE04EFBFD
+
+[pmSSB_L]
+Command=FEFE4EE0.06.00.FD
+ReplyLength=13
+Validate=FEFE4EE00600FD.FEFEE04EFBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+Command=FEFE4EE0.06.04.FD
+ReplyLength=13
+Validate=FEFE4EE00608FD.FEFEE04EFBFD
+
+[pmAM]
+Command=FEFE4EE0.06.02.FD
+ReplyLength=13
+Validate=FEFE4EE00602FD.FEFEE04EFBFD
+
+[pmFM]
+Command=FEFE4EE0.06.05.FD
+ReplyLength=13
+Validate=FEFE4EE00605FD.FEFEE04EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE4EE0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE4EE003FD.FEFEE04E.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE4EE0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE4EE004FD.FEFEE04E.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM
diff --git a/CATCheck/Rigs/IC-706 MKIIG.ini b/CATCheck/Rigs/IC-706 MKIIG.ini
new file mode 100644
index 0000000..7877af5
--- /dev/null
+++ b/CATCheck/Rigs/IC-706 MKIIG.ini
@@ -0,0 +1,178 @@
+;-------------------------------------------------------------------------------
+; Icom IC-706 MKIIG command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;
+; Tested by: _________
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE58E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE58E0050000000000FD.FEFEE058FBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE58E0.0F01.FD
+ReplyLength=13
+Validate=FEFE58E00F01FD.FEFEE058FBFD
+
+[pmSplitOff]
+Command=FEFE58E0.0F00.FD
+ReplyLength=13
+Validate=FEFE58E00F00FD.FEFEE058FBFD
+
+[pmVfoA]
+Command=FEFE58E0.0700.FD
+ReplyLength=13
+Validate=FEFE58E00700FD.FEFEE058FBFD
+
+[pmVfoB]
+Command=FEFE58E0.0701.FD
+ReplyLength=13
+Validate=FEFE58E00701FD.FEFEE058FBFD
+
+[pmVfoEqual]
+Command=FEFE58E0.07A0.FD
+ReplyLength=13
+Validate=FEFE58E007A0FD.FEFEE058FBFD
+
+[pmVfoSwap]
+Command=FEFE58E0.07B0.FD
+ReplyLength=13
+Validate=FEFE58E007B0FD.FEFEE058FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE58E0.06.03.FD
+ReplyLength=13
+Validate=FEFE58E00603FD.FEFEE058FBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE58E0.06.01.FD
+ReplyLength=13
+Validate=FEFE58E00601FD.FEFEE058FBFD
+
+[pmSSB_L]
+Command=FEFE58E0.06.00.FD
+ReplyLength=13
+Validate=FEFE58E00600FD.FEFEE058FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+Command=FEFE58E0.06.04.FD
+ReplyLength=13
+Validate=FEFE58E00608FD.FEFEE058FBFD
+
+[pmAM]
+Command=FEFE58E0.06.02.FD
+ReplyLength=13
+Validate=FEFE58E00602FD.FEFEE058FBFD
+
+[pmFM]
+Command=FEFE58E0.06.05.FD
+ReplyLength=13
+Validate=FEFE58E00605FD.FEFEE058FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE58E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE58E003FD.FEFEE058.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE58E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE58E004FD.FEFEE058.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM
diff --git a/CATCheck/Rigs/IC-706.ini b/CATCheck/Rigs/IC-706.ini
new file mode 100644
index 0000000..4a0efa5
--- /dev/null
+++ b/CATCheck/Rigs/IC-706.ini
@@ -0,0 +1,178 @@
+;-------------------------------------------------------------------------------
+; Icom IC-706Mk I command set
+;
+; File created by
+;
+; Tested by: Marios 5B4WN
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE48E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE48E0050000000000FD.FEFEE048FBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE48E0.0F01.FD
+ReplyLength=13
+Validate=FEFE48E00F01FD.FEFEE048FBFD
+
+[pmSplitOff]
+Command=FEFE48E0.0F00.FD
+ReplyLength=13
+Validate=FEFE48E00F00FD.FEFEE048FBFD
+
+[pmVfoA]
+Command=FEFE48E0.0700.FD
+ReplyLength=13
+Validate=FEFE48E00700FD.FEFEE048FBFD
+
+[pmVfoB]
+Command=FEFE48E0.0701.FD
+ReplyLength=13
+Validate=FEFE48E00701FD.FEFEE048FBFD
+
+[pmVfoEqual]
+Command=FEFE48E0.07A0.FD
+ReplyLength=13
+Validate=FEFE48E007A0FD.FEFEE048FBFD
+
+[pmVfoSwap]
+Command=FEFE48E0.07B0.FD
+ReplyLength=13
+Validate=FEFE48E007B0FD.FEFEE048FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE48E0.06.03.FD
+ReplyLength=13
+Validate=FEFE48E00603FD.FEFEE048FBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE48E0.06.01.FD
+ReplyLength=13
+Validate=FEFE48E00601FD.FEFEE048FBFD
+
+[pmSSB_L]
+Command=FEFE48E0.06.00.FD
+ReplyLength=13
+Validate=FEFE48E00600FD.FEFEE048FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+Command=FEFE48E0.06.04.FD
+ReplyLength=13
+Validate=FEFE48E00608FD.FEFEE048FBFD
+
+[pmAM]
+Command=FEFE48E0.06.02.FD
+ReplyLength=13
+Validate=FEFE48E00602FD.FEFEE048FBFD
+
+[pmFM]
+Command=FEFE48E0.06.05.FD
+ReplyLength=13
+Validate=FEFE48E00605FD.FEFEE048FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE48E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE48E003FD.FEFEE048.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE48E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE48E004FD.FEFEE048.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM
diff --git a/CATCheck/Rigs/IC-7100.ini b/CATCheck/Rigs/IC-7100.ini
new file mode 100644
index 0000000..8a4a40c
--- /dev/null
+++ b/CATCheck/Rigs/IC-7100.ini
@@ -0,0 +1,212 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7100
+;
+; IC-7100 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: ____________
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE88E0.1A050095.00.FD
+ReplyLength=16
+Validate=FEFE88E01A05009500FD.FEFEE088FBFD
+
+[INIT2]
+;set CW normal to lower sideband
+Command=FEFE88E0.1A050032.00.FD
+ReplyLength=16
+Validate=FEFE88E01A05003200FD.FEFEE088FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE88E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE88E0050000000000FD.FEFEE088FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE88E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE88E014090000FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE88E0.0F01.FD
+ReplyLength=13
+Validate=FEFE88E00F01FD.FEFEE088FBFD
+
+[pmSplitOff]
+Command=FEFE88E0.0F00.FD
+ReplyLength=13
+Validate=FEFE88E00F00FD.FEFEE088FBFD
+
+[pmVfoA]
+Command=FEFE88E0.0700.FD
+ReplyLength=13
+Validate=FEFE88E00700FD.FEFEE088FBFD
+
+[pmVfoB]
+Command=FEFE88E0.0701.FD
+ReplyLength=13
+Validate=FEFE88E00701FD.FEFEE088FBFD
+
+[pmVfoEqual]
+Command=FEFE88E0.07A0.FD
+ReplyLength=13
+Validate=FEFE88E007A0FD.FEFEE088FBFD
+
+[pmVfoSwap]
+Command=FEFE88E0.07B0.FD
+ReplyLength=13
+Validate=FEFE88E007B0FD.FEFEE088FBFD
+
+[pmVfoAA]
+Command=FEFE88E0.0F00.FD
+ReplyLength=13
+Validate=FEFE88E00F00FD.FEFEE088FBFD
+
+[pmVfoAB]
+Command=FEFE88E0.0F01.FD
+ReplyLength=13
+Validate=FEFE88E00F01FD.FEFEE088FBFD
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+Command=FEFE88E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE88E01C0000FD.FEFEE088FBFD
+
+[pmTx]
+Command=FEFE88E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE88E01C0001FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE88E0.06.07.FD
+ReplyLength=13
+Validate=FEFE88E00607FD.FEFEE088FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE88E0.06.03.FD
+ReplyLength=13
+Validate=FEFE88E00603FD.FEFEE088FBFD
+
+[pmSSB_U]
+Command=FEFE88E0.06.01.FD
+ReplyLength=13
+Validate=FEFE88E00601FD.FEFEE088FBFD
+
+[pmSSB_L]
+Command=FEFE88E0.06.00.FD
+ReplyLength=13
+Validate=FEFE88E00600FD.FEFEE088FBFD
+
+[pmDIG_U]
+Command=FEFE88E0.06.08.FD
+ReplyLength=13
+Validate=FEFE88E00608FD.FEFEE088FBFD
+
+[pmDIG_L]
+Command=FEFE88E0.06.04.FD
+ReplyLength=13
+Validate=FEFE88E00604FD.FEFEE088FBFD
+
+[pmAM]
+Command=FEFE88E0.06.02.FD
+ReplyLength=13
+Validate=FEFE88E00602FD.FEFEE088FBFD
+
+[pmFM]
+Command=FEFE88E0.06.05.FD
+ReplyLength=13
+Validate=FEFE88E00605FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE88E0.03.FD
+ReplyLength=17
+Validate=FEFE88E003FD.FEFEE088.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE88E0.04.FD
+ReplyLength=14
+Validate=FEFE88E004FD.FEFEE088.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE88E0.1409.FD
+ReplyLength=16
+Validate=FEFE88E01409FD.FEFEE088.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE88E0.1C00.FD
+ReplyLength=15
+Validate=FEFE88E01C00FD.FEFEE088.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
diff --git a/CATCheck/Rigs/IC-7100e4-DATA.ini b/CATCheck/Rigs/IC-7100e4-DATA.ini
new file mode 100644
index 0000000..ba4bb4d
--- /dev/null
+++ b/CATCheck/Rigs/IC-7100e4-DATA.ini
@@ -0,0 +1,263 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7100e4-DATA
+;
+; IC-7100e4-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Requires firmware E4 (v1.10) or later.
+;
+; Same as IC-7100e4.ini, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R
+; and selects FIL1 insteads of the default for USB, LSB, USB-D and LSB-D.
+;
+; Written by N6TV for G8CYK, 28 September 2018 21:33 UTC
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE88E0.1A050095.00.FD
+ReplyLength=16
+Validate=FEFE88E01A05009500FD.FEFEE088FBFD
+
+[INIT2]
+;set CW normal to lower sideband
+Command=FEFE88E0.1A050032.00.FD
+ReplyLength=16
+Validate=FEFE88E01A05003200FD.FEFEE088FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE88E0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE88E025000000000000FD.FEFEE088FBFD
+
+[pmFreqB]
+Command=FEFE88E0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE88E025010000000000FD.FEFEE088FBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE88E0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE88E02100000000FD.FEFEE088FBFD
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE88E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE88E014090000FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE88E0.0F01.FD
+ReplyLength=13
+Validate=FEFE88E00F01FD.FEFEE088FBFD
+
+[pmSplitOff]
+Command=FEFE88E0.0F00.FD
+ReplyLength=13
+Validate=FEFE88E00F00FD.FEFEE088FBFD
+
+[pmVfoA]
+Command=FEFE88E0.0700.FD
+ReplyLength=13
+Validate=FEFE88E00700FD.FEFEE088FBFD
+
+[pmVfoB]
+Command=FEFE88E0.0701.FD
+ReplyLength=13
+Validate=FEFE88E00701FD.FEFEE088FBFD
+
+[pmVfoEqual]
+Command=FEFE88E0.07A0.FD
+ReplyLength=13
+Validate=FEFE88E007A0FD.FEFEE088FBFD
+
+[pmVfoSwap]
+Command=FEFE88E0.07B0.FD
+ReplyLength=13
+Validate=FEFE88E007B0FD.FEFEE088FBFD
+
+[pmVfoAA]
+Command=FEFE88E0.0700.FD.FEFE88E0.0F00.FD
+ReplyLength=20
+Validate=FEFE88E00700FD.FEFE88E00F00FD.FEFEE088FBFD
+
+[pmVfoAB]
+Command=FEFE88E0.0700.FD.FEFE88E0.0F01.FD
+ReplyLength=20
+Validate=FEFE88E00700FD.FEFE88E00F01FD.FEFEE088FBFD
+
+[pmVfoBA]
+Command=FEFE88E0.0701.FD.FEFE88E0.0F01.FD
+ReplyLength=20
+Validate=FEFE88E00701FD.FEFE88E00F01FD.FEFEE088FBFD
+
+[pmVfoBB]
+Command=FEFE88E0.0701.FD.FEFE88E0.0F00.FD
+ReplyLength=20
+Validate=FEFE88E00701FD.FEFE88E00F00FD.FEFEE088FBFD
+
+[pmRitOn]
+Command=FEFE88E0.21.0101.FD
+ReplyLength=14
+Validate=FEFE88E0210101FD.FEFEE088FBFD
+
+[pmRitOff]
+Command=FEFE88E0.21.0100.FD
+ReplyLength=14
+Validate=FEFE88E0210100FD.FEFEE088FBFD
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+Command=FEFE88E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE88E01C0000FD.FEFEE088FBFD
+
+[pmTx]
+Command=FEFE88E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE88E01C0001FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE88E0.2600.07.FD
+ReplyLength=14
+Validate=FEFE88E0260007FD.FEFEE088FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE88E0.2600.03.FD
+ReplyLength=14
+Validate=FEFE88E0260003FD.FEFEE088FBFD
+
+[pmSSB_U]
+; These lines select USB with FIL1
+Command=FEFE88E0.2600.01.00.01.FD
+ReplyLength=16
+Validate=FEFE88E02600010001FD.FEFEE088FBFD
+
+[pmSSB_L]
+; These lines select LSB with FIL1
+Command=FEFE88E0.2600.00.00.01.FD
+ReplyLength=16
+Validate=FEFE88E02600000001FD.FEFEE088FBFD
+
+[pmDIG_U]
+; These lines select USB-D for USB digital mode, FIL1
+Command=FEFE88E0.2600.01.01.01.FD
+ReplyLength=16
+Validate=FEFE88E02600010101FD.FEFEE088FBFD
+
+[pmDIG_L]
+; These lines select LSB-D for LSB digital mode, FIL1
+Command=FEFE88E0.2600.00.01.01.FD
+ReplyLength=16
+Validate=FEFE88E02600000101FD.FEFEE088FBFD
+
+[pmAM]
+Command=FEFE88E0.2600.02.FD
+ReplyLength=14
+Validate=FEFE88E0260002FD.FEFEE088FBFD
+
+[pmFM]
+Command=FEFE88E0.2600.05.FD
+ReplyLength=14
+Validate=FEFE88E0260005FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE88E0.2500.FD
+ReplyLength=19
+Validate=FEFE88E02500FD.FEFEE088.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE88E0.2501.FD
+ReplyLength=19
+Validate=FEFE88E02501FD.FEFEE088.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE88E0.2600.FD
+ReplyLength=17
+Validate=FEFE88E02600FD.FEFEE088.2600.000000.FD
+Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L
+Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U
+Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U
+Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L
+Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U
+Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L
+Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U
+Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L
+Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM
+Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM
+
+[STATUS4]
+Command=FEFE88E0.1409.FD
+ReplyLength=16
+Validate=FEFE88E01409FD.FEFEE088.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE88E0.1C00.FD
+ReplyLength=15
+Validate=FEFE88E01C00FD.FEFEE088.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE88E0.0F.FD
+ReplyLength=13
+Validate=FEFE88E00FFD.FEFEE088.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE88E0.0F.FD
+ReplyLength=13
+Validate=FEFE88E00FFD.FEFEE088.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmVfoAB
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmVfoAA
+
+[STATUS8]
+Command=FEFE88E0.2101.FD
+ReplyLength=15
+Validate=FEFE88E02101FD.FEFEE088.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
diff --git a/CATCheck/Rigs/IC-7100e4.ini b/CATCheck/Rigs/IC-7100e4.ini
new file mode 100644
index 0000000..3a7c62e
--- /dev/null
+++ b/CATCheck/Rigs/IC-7100e4.ini
@@ -0,0 +1,261 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7100 with firmware E4 (v1.10) command set
+;
+; IC-7100e4 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: N6TV @ HRO Sunnyvale, CA
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE88E0.1A050095.00.FD
+ReplyLength=16
+Validate=FEFE88E01A05009500FD.FEFEE088FBFD
+
+[INIT2]
+;set CW normal to lower sideband
+Command=FEFE88E0.1A050032.00.FD
+ReplyLength=16
+Validate=FEFE88E01A05003200FD.FEFEE088FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE88E0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE88E025000000000000FD.FEFEE088FBFD
+
+[pmFreqB]
+Command=FEFE88E0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE88E025010000000000FD.FEFEE088FBFD
+
+[pmFreq]
+Command=FEFE88E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE88E0050000000000FD.FEFEE088FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE88E0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE88E02100000000FD.FEFEE088FBFD
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE88E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE88E014090000FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE88E0.0F01.FD
+ReplyLength=13
+Validate=FEFE88E00F01FD.FEFEE088FBFD
+
+[pmSplitOff]
+Command=FEFE88E0.0F00.FD
+ReplyLength=13
+Validate=FEFE88E00F00FD.FEFEE088FBFD
+
+[pmVfoA]
+Command=FEFE88E0.0700.FD
+ReplyLength=13
+Validate=FEFE88E00700FD.FEFEE088FBFD
+
+[pmVfoB]
+Command=FEFE88E0.0701.FD
+ReplyLength=13
+Validate=FEFE88E00701FD.FEFEE088FBFD
+
+[pmVfoEqual]
+Command=FEFE88E0.07A0.FD
+ReplyLength=13
+Validate=FEFE88E007A0FD.FEFEE088FBFD
+
+[pmVfoSwap]
+Command=FEFE88E0.07B0.FD
+ReplyLength=13
+Validate=FEFE88E007B0FD.FEFEE088FBFD
+
+[pmVfoAA]
+Command=FEFE88E0.0700.FD.FEFE88E0.0F00.FD
+ReplyLength=20
+Validate=FEFE88E00700FD.FEFE88E00F00FD.FEFEE088FBFD
+
+[pmVfoAB]
+Command=FEFE88E0.0700.FD.FEFE88E0.0F01.FD
+ReplyLength=20
+Validate=FEFE88E00700FD.FEFE88E00F01FD.FEFEE088FBFD
+
+[pmVfoBA]
+Command=FEFE88E0.0701.FD.FEFE88E0.0F01.FD
+ReplyLength=20
+Validate=FEFE88E00701FD.FEFE88E00F01FD.FEFEE088FBFD
+
+[pmVfoBB]
+Command=FEFE88E0.0701.FD.FEFE88E0.0F00.FD
+ReplyLength=20
+Validate=FEFE88E00701FD.FEFE88E00F00FD.FEFEE088FBFD
+
+[pmRitOn]
+Command=FEFE88E0.21.0101.FD
+ReplyLength=14
+Validate=FEFE88E0210101FD.FEFEE088FBFD
+
+[pmRitOff]
+Command=FEFE88E0.21.0100.FD
+ReplyLength=14
+Validate=FEFE88E0210100FD.FEFEE088FBFD
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+Command=FEFE88E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE88E01C0000FD.FEFEE088FBFD
+
+[pmTx]
+Command=FEFE88E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE88E01C0001FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE88E0.06.07.FD
+ReplyLength=13
+Validate=FEFE88E00607FD.FEFEE088FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE88E0.06.03.FD
+ReplyLength=13
+Validate=FEFE88E00603FD.FEFEE088FBFD
+
+[pmSSB_U]
+Command=FEFE88E0.06.01.FD
+ReplyLength=13
+Validate=FEFE88E00601FD.FEFEE088FBFD
+
+[pmSSB_L]
+Command=FEFE88E0.06.00.FD
+ReplyLength=13
+Validate=FEFE88E00600FD.FEFEE088FBFD
+
+[pmDIG_U]
+Command=FEFE88E0.06.08.FD
+ReplyLength=13
+Validate=FEFE88E00608FD.FEFEE088FBFD
+
+[pmDIG_L]
+Command=FEFE88E0.06.04.FD
+ReplyLength=13
+Validate=FEFE88E00604FD.FEFEE088FBFD
+
+[pmAM]
+Command=FEFE88E0.06.02.FD
+ReplyLength=13
+Validate=FEFE88E00602FD.FEFEE088FBFD
+
+[pmFM]
+Command=FEFE88E0.06.05.FD
+ReplyLength=13
+Validate=FEFE88E00605FD.FEFEE088FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+;[STATUS1]
+;Command=FEFE88E0.03.FD
+;ReplyLength=17
+;Validate=FEFE88E003FD.FEFEE088.03.0000000000.FD
+;Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS1]
+; Read transmit freq.
+Command=FEFE88E0.1C03.FD
+ReplyLength=19
+Validate=FEFE88E01C03FD.FEFEE088.1C03.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE88E0.04.FD
+ReplyLength=14
+Validate=FEFE88E004FD.FEFEE088.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE88E0.1409.FD
+ReplyLength=16
+Validate=FEFE88E01409FD.FEFEE088.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE88E0.1C00.FD
+ReplyLength=15
+Validate=FEFE88E01C00FD.FEFEE088.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS5]
+Command=FEFE88E0.2500.FD
+ReplyLength=19
+Validate=FEFE88E02500FD.FEFEE088.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS6]
+Command=FEFE88E0.2501.FD
+ReplyLength=19
+Validate=FEFE88E02501FD.FEFEE088.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS7]
+Command=FEFE88E0.0F.FD
+ReplyLength=13
+Validate=FEFE88E00FFD.FEFEE088.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS8]
+Command=FEFE88E0.2101.FD
+ReplyLength=15
+Validate=FEFE88E02101FD.FEFEE088.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
diff --git a/CATCheck/Rigs/IC-718.ini b/CATCheck/Rigs/IC-718.ini
new file mode 100644
index 0000000..daf53b9
--- /dev/null
+++ b/CATCheck/Rigs/IC-718.ini
@@ -0,0 +1,217 @@
+;-------------------------------------------------------------------------------
+; Icom IC-718 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+;not sure if 5 or 2x5 bytes should be sent
+Command=FEFE5EE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE5EE0050000000000FD.FEFEE05EFBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+Command=FEFE5EE0.1409.0000.FD
+;300Hz=0 600Hz=128 900Hz=255
+Value=6|2|vfBcdLU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE5EE014090000FD.FEFEE05EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE5EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE5EE00F01FD.FEFEE05EFBFD
+
+[pmSplitOff]
+Command=FEFE5EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE5EE00F00FD.FEFEE05EFBFD
+
+[pmVfoA]
+Command=FEFE5EE0.0700.FD
+ReplyLength=13
+Validate=FEFE5EE00700FD.FEFEE05EFBFD
+
+[pmVfoB]
+Command=FEFE5EE0.0701.FD
+ReplyLength=13
+Validate=FEFE5EE00701FD.FEFEE05EFBFD
+
+[pmVfoEqual]
+Command=FEFE5EE0.07A0.FD
+ReplyLength=13
+Validate=FEFE5EE007A0FD.FEFEE05EFBFD
+
+[pmVfoSwap]
+Command=FEFE5EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE5EE007B0FD.FEFEE05EFBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE5EE0.06.03.FD
+ReplyLength=13
+Validate=FEFE5EE00603FD.FEFEE05EFBFD
+
+[pmCW_L]
+Command=FEFE5EE0.06.07.FD
+ReplyLength=13
+Validate=FEFE5EE00607FD.FEFEE05EFBFD
+
+[pmSSB_U]
+Command=FEFE5EE0.06.01.FD
+ReplyLength=13
+Validate=FEFE5EE00601FD.FEFEE05EFBFD
+
+[pmSSB_L]
+Command=FEFE5EE0.06.00.FD
+ReplyLength=13
+Validate=FEFE5EE00600FD.FEFEE05EFBFD
+
+[pmDIG_U]
+Command=FEFE5EE0.06.04.FD
+ReplyLength=13
+Validate=FEFE5EE00604FD.FEFEE05EFBFD
+
+[pmDIG_L]
+Command=FEFE5EE0.06.08.FD
+ReplyLength=13
+Validate=FEFE5EE00608FD.FEFEE05EFBFD
+
+[pmAM]
+Command=FEFE5EE0.06.02.FD
+ReplyLength=13
+Validate=FEFE5EE00602FD.FEFEE05EFBFD
+
+[pmFM]
+Command=FEFE5EE0.06.05.FD
+ReplyLength=13
+Validate=FEFE5EE00605FD.FEFEE05EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;The command name in the manual is Read Frequencies.
+;However, it returns just one frequency
+Command=FEFE5EE0.03.FD
+ReplyLength=17
+Validate=FEFE5EE003FD.FEFEE05E.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE5EE0.04.FD
+ReplyLength=14
+Validate=FEFE5EE004FD.FEFEE05E.04.0000.FD
+;filter byte is appended to the mode byte
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+
+[STATUS3]
+Command=FEFE5EE0.1409.FD
+ReplyLength=16
+Validate=FEFE5EE01409FD.FEFEE05E1409.0000.FD
+;Value1=13|2|vfBcdBU|2.352941|300|pmPitch
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+;Command=FEFE5EE0.07.FD
+;ReplyLength=13
+;Validate=FEFE5EE007FD.FEFE5EE007.00.FD
+;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmVfoA
+;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmVfoB
+
+[STATUS5]
+;Command=FEFE5EE0.1C00.FD
+;ReplyLength=15
+;Validate=FEFE5EE01C00FD.FEFEE05E1C00.00.FD
+;Flag1=00000000000000000000000000.FF.00|00000000000000000000000000.01.00|pmTx
+;Flag2=00000000000000000000000000.FF.00|00000000000000000000000000.00.00|pmRx
+
+[STATUS6]
+;Command=FEFE5EE0.0F.FD
+;ReplyLength=13
+;Validate=FEFE5EE00FFD.FEFE5EE00F.00.FD
+;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmSplitOn
+;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmSplitOff
+
+
diff --git a/CATCheck/Rigs/IC-7200.ini b/CATCheck/Rigs/IC-7200.ini
new file mode 100644
index 0000000..7608d5b
--- /dev/null
+++ b/CATCheck/Rigs/IC-7200.ini
@@ -0,0 +1,205 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7200 command set
+;
+; File created by Uwe Lauer, ulauer@pobox.com
+;
+; Tested (for Faros) by: ulauer
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+[INIT1]
+
+[INIT2]
+
+[INIT3]
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreqA]
+;VFO A frequency
+;not supported
+
+[pmFreqB]
+;VFO B frequency
+;not supported
+
+[pmFreq]
+;operating frequency
+Command=FEFE76E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE76E0050000000000FD.FEFEE076FBFD
+
+[pmRitOffset]
+;RIT offset frequency
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;CW pitch frequency
+Command=FEFE76E0.1409.0000.FD
+;300Hz=0 600Hz=128 900Hz=255
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE76E014090000FD.FEFEE076FBFD
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+
+[pmSplitOn]
+Command=FEFE76E0.0F01.FD
+ReplyLength=13
+Validate=FEFE76E00F01FD.FEFEE076FBFD
+
+[pmSplitOff]
+Command=FEFE76E0.0F00.FD
+ReplyLength=13
+Validate=FEFE76E00F00FD.FEFEE076FBFD
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=FEFE76E0.07A0.FD
+ReplyLength=13
+Validate=FEFE76E007A0FD.FEFEE076FBFD
+
+[pmVfoSwap]
+Command=FEFE76E0.07B0.FD
+ReplyLength=13
+Validate=FEFE76E007B0FD.FEFEE076FBFD
+
+[pmVfoAA]
+Command=FEFE76E0.0700.FD
+ReplyLength=13
+Validate=FEFE76E00700FD.FEFEE076FBFD
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+Command=FEFE76E0.0701.FD
+ReplyLength=13
+Validate=FEFE76E00701FD.FEFEE076FBFD
+
+[pmRitOn]
+Command=FEFE76E0.0F01.FD
+ReplyLength=13
+Validate=FEFE76E00F01FD.FEFEE076FBFD
+
+[pmRitOff]
+Command=FEFE76E0.0F00.FD
+ReplyLength=13
+Validate=FEFE76E00F00FD.FEFEE076FBFD
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE76E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE76E01C0000FD.FEFEE076FBFD
+
+[pmTx]
+Command=FEFE76E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE76E01C0001FD.FEFEE076FBFD
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+
+[pmCW_U]
+Command=FEFE76E0.0603.FD
+ReplyLength=13
+Validate=FEFE76E00603FD.FEFEE076FBFD
+
+[pmCW_L]
+Command=FEFE76E0.0607.FD
+ReplyLength=13
+Validate=FEFE76E00607FD.FEFEE076FBFD
+
+[pmSSB_U]
+Command=FEFE76E0.0601.FD
+ReplyLength=13
+Validate=FEFE76E00601FD.FEFEE076FBFD
+
+[pmSSB_L]
+Command=FEFE76E0.0600.FD
+ReplyLength=13
+Validate=FEFE76E00600FD.FEFEE076FBFD
+
+[pmDIG_U]
+Command=FEFE76E0.0608.FD
+ReplyLength=13
+Validate=FEFE76E00608FD.FEFEE076FBFD
+
+[pmDIG_L]
+Command=FEFE76E0.0604.FD
+ReplyLength=13
+Validate=FEFE76E00604FD.FEFEE076FBFD.
+
+[pmAM]
+Command=FEFE76E0.0602.FD
+ReplyLength=13
+Validate=FEFE76E00602FD.FEFEE076FBFD
+
+[pmFM]
+;not supported
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=FEFE76E0.03.FD
+ReplyLength=17
+Validate=FEFE76E003FD.FEFEE076.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE76E0.04.FD
+ReplyLength=14
+Validate=FEFE76E004FD.FEFEE076.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE76E0.1409.FD
+ReplyLength=16
+Validate=FEFE76E01409FD.FEFEE0761409.0000.FD
+Value1=13|2|vfBcdBU|25|300|pmPitch
+
+[STATUS4]
+Command=FEFE76E0.1C00.FD
+ReplyLength=15
+Validate=FEFE76E01C00FD.FEFEE076.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
diff --git a/CATCheck/Rigs/IC-7200v2.ini b/CATCheck/Rigs/IC-7200v2.ini
new file mode 100644
index 0000000..1977b69
--- /dev/null
+++ b/CATCheck/Rigs/IC-7200v2.ini
@@ -0,0 +1,200 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7200 version 2
+;
+; IC-7200v2 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: N6TV
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE76E0.1A0348.00.FD
+ReplyLength=15
+Validate=FEFE76E01A034800FD.FEFEE076FBFD
+
+[INIT2]
+;set CW normal to lower sideband
+Command=FEFE76E0.1A0337.00.FD
+ReplyLength=15
+Validate=FEFE76E01A033700FD.FEFEE076FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE76E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE76E0050000000000FD.FEFEE076FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE76E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE76E014090000FD.FEFEE076FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE76E0.0F01.FD
+ReplyLength=13
+Validate=FEFE76E00F01FD.FEFEE076FBFD
+
+[pmSplitOff]
+Command=FEFE76E0.0F00.FD
+ReplyLength=13
+Validate=FEFE76E00F00FD.FEFEE076FBFD
+
+[pmVfoA]
+Command=FEFE76E0.0700.FD
+ReplyLength=13
+Validate=FEFE76E00700FD.FEFEE076FBFD
+
+[pmVfoB]
+Command=FEFE76E0.0701.FD
+ReplyLength=13
+Validate=FEFE76E00701FD.FEFEE076FBFD
+
+[pmVfoEqual]
+Command=FEFE76E0.07A0.FD
+ReplyLength=13
+Validate=FEFE76E007A0FD.FEFEE076FBFD
+
+[pmVfoSwap]
+Command=FEFE76E0.07B0.FD
+ReplyLength=13
+Validate=FEFE76E007B0FD.FEFEE076FBFD
+
+[pmVfoAA]
+Command=FEFE76E0.0700.FD.FEFE76E0.0F00.FD
+ReplyLength=20
+Validate=FEFE76E00700FD.FEFE76E00F00FD.FEFEE076FBFD
+
+[pmVfoAB]
+Command=FEFE76E0.0700.FD.FEFE76E0.0F01.FD
+ReplyLength=20
+Validate=FEFE76E00700FD.FEFE76E00F01FD.FEFEE076FBFD
+
+[pmVfoBA]
+Command=FEFE76E0.0701.FD.FEFE76E0.0F01.FD
+ReplyLength=20
+Validate=FEFE76E00701FD.FEFE76E00F01FD.FEFEE076FBFD
+
+[pmVfoBB]
+Command=FEFE76E0.0701.FD.FEFE76E0.0F00.FD
+ReplyLength=20
+Validate=FEFE76E00701FD.FEFE76E00F00FD.FEFEE076FBFD
+
+[pmRx]
+Command=FEFE76E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE76E01C0000FD.FEFEE076FBFD
+
+[pmTx]
+Command=FEFE76E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE76E01C0001FD.FEFEE076FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE76E0.06.07.FD
+ReplyLength=13
+Validate=FEFE76E00607FD.FEFEE076FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE76E0.06.03.FD
+ReplyLength=13
+Validate=FEFE76E00603FD.FEFEE076FBFD
+
+[pmSSB_U]
+Command=FEFE76E0.06.01.FD
+ReplyLength=13
+Validate=FEFE76E00601FD.FEFEE076FBFD
+
+[pmSSB_L]
+Command=FEFE76E0.06.00.FD
+ReplyLength=13
+Validate=FEFE76E00600FD.FEFEE076FBFD
+
+[pmDIG_U]
+Command=FEFE76E0.06.08.FD
+ReplyLength=13
+Validate=FEFE76E00608FD.FEFEE076FBFD
+
+[pmDIG_L]
+Command=FEFE76E0.06.04.FD
+ReplyLength=13
+Validate=FEFE76E00604FD.FEFEE076FBFD
+
+[pmAM]
+Command=FEFE76E0.06.02.FD
+ReplyLength=13
+Validate=FEFE76E00602FD.FEFEE076FBFD
+
+[pmFM]
+;not supported
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE76E0.03.FD
+ReplyLength=17
+Validate=FEFE76E003FD.FEFEE076.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE76E0.04.FD
+ReplyLength=14
+Validate=FEFE76E004FD.FEFEE076.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+
+[STATUS3]
+Command=FEFE76E0.1409.FD
+ReplyLength=16
+Validate=FEFE76E01409FD.FEFEE076.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE76E0.1C00.FD
+ReplyLength=15
+Validate=FEFE76E01C00FD.FEFEE076.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
diff --git a/CATCheck/Rigs/IC-725.ini b/CATCheck/Rigs/IC-725.ini
new file mode 100644
index 0000000..a99c84d
--- /dev/null
+++ b/CATCheck/Rigs/IC-725.ini
@@ -0,0 +1,172 @@
+;-------------------------------------------------------------------------------
+; Icom IC-725 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE28E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE28E0050000000000FD.FEFEE028FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE28E0.0F01.FD
+ReplyLength=13
+Validate=FEFE28E00F01FD.FEFEE028FBFD
+
+[pmSplitOff]
+Command=FEFE28E0.0F00.FD
+ReplyLength=13
+Validate=FEFE28E00F00FD.FEFEE028FBFD
+
+[pmVfoA]
+Command=FEFE28E0.0700.FD
+ReplyLength=13
+Validate=FEFE28E00700FD.FEFEE028FBFD
+
+[pmVfoB]
+Command=FEFE28E0.0701.FD
+ReplyLength=13
+Validate=FEFE28E00701FD.FEFEE028FBFD
+
+[pmVfoEqual]
+Command=FEFE28E0.07A0.FD
+ReplyLength=13
+Validate=FEFE28E007A0FD.FEFEE028FBFD
+
+[pmVfoSwap]
+;not supported
+
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE28E0.06.03.FD
+ReplyLength=13
+Validate=FEFE28E00603FD.FEFEE028FBFD
+
+[pmCW_L]
+Command=FEFE28E0.06.07.FD
+ReplyLength=13
+Validate=FEFE28E00607FD.FEFEE028FBFD
+
+[pmSSB_U]
+Command=FEFE28E0.06.01.FD
+ReplyLength=13
+Validate=FEFE28E00601FD.FEFEE028FBFD
+
+[pmSSB_L]
+Command=FEFE28E0.06.00.FD
+ReplyLength=13
+Validate=FEFE28E00600FD.FEFEE028FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=FEFE28E0.06.02.FD
+ReplyLength=13
+Validate=FEFE28E00602FD.FEFEE028FBFD
+
+[pmFM]
+Command=FEFE28E0.06.05.FD
+ReplyLength=13
+Validate=FEFE28E00605FD.FEFEE028FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE28E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE28E003FD.FEFEE028.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE28E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE28E004FD.FEFEE028.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
diff --git a/CATCheck/Rigs/IC-725a.ini b/CATCheck/Rigs/IC-725a.ini
new file mode 100644
index 0000000..cd45acc
--- /dev/null
+++ b/CATCheck/Rigs/IC-725a.ini
@@ -0,0 +1,174 @@
+;-------------------------------------------------------------------------------
+; Icom IC-725a command set
+;
+; File created by Vitaly Chuchko, rz3tj vfc@inbox.ru
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE3EE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE3EE0050000000000FD.FEFEE03EFBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE3EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE3EE00F01FD.FEFEE03EFBFD
+
+[pmSplitOff]
+Command=FEFE3EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE3EE00F00FD.FEFEE03EFBFD
+
+[pmVfoA]
+Command=FEFE3EE0.0700.FD
+ReplyLength=13
+Validate=FEFE3EE00700FD.FEFEE03EFBFD
+
+[pmVfoB]
+Command=FEFE3EE0.0701.FD
+ReplyLength=13
+Validate=FEFE3EE00701FD.FEFEE03EFBFD
+
+[pmVfoEqual]
+Command=FEFE3EE0.07A0.FD
+ReplyLength=13
+Validate=FEFE3EE007A0FD.FEFEE03EFBFD
+
+[pmVfoSwap]
+;not supported
+
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE3EE0.06.03.FD
+ReplyLength=13
+Validate=FEFE3EE00603FD.FEFEE03EFBFD
+
+[pmCW_L]
+;Command=FEFE3EE0.06.07.FD
+;ReplyLength=13
+;Validate=FEFE3EE00607FD.FEFEE03EFBFD
+
+[pmSSB_U]
+Command=FEFE3EE0.06.01.FD
+ReplyLength=13
+Validate=FEFE3EE00601FD.FEFEE03EFBFD
+
+[pmSSB_L]
+Command=FEFE3EE0.06.00.FD
+ReplyLength=13
+Validate=FEFE3EE00600FD.FEFEE03EFBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=FEFE3EE0.06.02.FD
+ReplyLength=13
+Validate=FEFE3EE00602FD.FEFEE03EFBFD
+
+[pmFM]
+Command=FEFE3EE0.06.05.FD
+ReplyLength=13
+Validate=FEFE3EE00605FD.FEFEE03EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE3EE0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE3EE003FD.FEFEE03E.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE3EE0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE3EE004FD.FEFEE03E.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
diff --git a/CATCheck/Rigs/IC-726.ini b/CATCheck/Rigs/IC-726.ini
new file mode 100644
index 0000000..1c5d14a
--- /dev/null
+++ b/CATCheck/Rigs/IC-726.ini
@@ -0,0 +1,217 @@
+;-------------------------------------------------------------------------------
+; Icom IC-726 command set
+;
+; File created by UA3YPL
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+;not sure if 5 or 2x5 bytes should be sent
+Command=FEFE30E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE30E0050000000000FD.FEFEE030FBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+Command=FEFE30E0.1409.0000.FD
+;300Hz=0 600Hz=128 900Hz=255
+Value=6|2|vfBcdLU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE30E014090000FD.FEFEE030FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE30E0.0F01.FD
+ReplyLength=13
+Validate=FEFE30E00F01FD.FEFEE030FBFD
+
+[pmSplitOff]
+Command=FEFE30E0.0F00.FD
+ReplyLength=13
+Validate=FEFE30E00F00FD.FEFEE030FBFD
+
+[pmVfoA]
+Command=FEFE30E0.0700.FD
+ReplyLength=13
+Validate=FEFE30E00700FD.FEFEE030FBFD
+
+[pmVfoB]
+Command=FEFE30E0.0701.FD
+ReplyLength=13
+Validate=FEFE30E00701FD.FEFEE030FBFD
+
+[pmVfoEqual]
+Command=FEFE30E0.07A0.FD
+ReplyLength=13
+Validate=FEFE30E007A0FD.FEFEE030FBFD
+
+[pmVfoSwap]
+Command=FEFE30E0.07B0.FD
+ReplyLength=13
+Validate=FEFE30E007B0FD.FEFEE030FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE30E0.06.03.FD
+ReplyLength=13
+Validate=FEFE30E00603FD.FEFEE030FBFD
+
+[pmCW_L]
+Command=FEFE30E0.06.07.FD
+ReplyLength=13
+Validate=FEFE30E00607FD.FEFEE030FBFD
+
+[pmSSB_U]
+Command=FEFE30E0.06.01.FD
+ReplyLength=13
+Validate=FEFE30E00601FD.FEFEE030FBFD
+
+[pmSSB_L]
+Command=FEFE30E0.06.00.FD
+ReplyLength=13
+Validate=FEFE30E00600FD.FEFEE030FBFD
+
+[pmDIG_U]
+Command=FEFE30E0.06.04.FD
+ReplyLength=13
+Validate=FEFE30E00604FD.FEFEE030FBFD
+
+[pmDIG_L]
+Command=FEFE30E0.06.08.FD
+ReplyLength=13
+Validate=FEFE30E00608FD.FEFEE030FBFD
+
+[pmAM]
+Command=FEFE30E0.06.02.FD
+ReplyLength=13
+Validate=FEFE30E00602FD.FEFEE030FBFD
+
+[pmFM]
+Command=FEFE30E0.06.05.FD
+ReplyLength=13
+Validate=FEFE30E00605FD.FEFEE030FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;The command name in the manual is Read Frequencies.
+;However, it returns just one frequency
+Command=FEFE30E0.03.FD
+ReplyLength=17
+Validate=FEFE30E003FD.FEFEE030.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE30E0.04.FD
+ReplyLength=14
+Validate=FEFE30E004FD.FEFEE030.04.0000.FD
+;filter byte is appended to the mode byte
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+
+[STATUS3]
+Command=FEFE30E0.1409.FD
+ReplyLength=16
+Validate=FEFE30E01409FD.FEFEE0301409.0000.FD
+;Value1=13|2|vfBcdBU|2.352941|300|pmPitch
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+;Command=FEFE30E0.07.FD
+;ReplyLength=13
+;Validate=FEFE30E007FD.FEFE30E007.00.FD
+;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmVfoA
+;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmVfoB
+
+[STATUS5]
+;Command=FEFE30E0.1C00.FD
+;ReplyLength=15
+;Validate=FEFE30E01C00FD.FEFEE0301C00.00.FD
+;Flag1=00000000000000000000000000.FF.00|00000000000000000000000000.01.00|pmTx
+;Flag2=00000000000000000000000000.FF.00|00000000000000000000000000.00.00|pmRx
+
+[STATUS6]
+;Command=FEFE30E0.0F.FD
+;ReplyLength=13
+;Validate=FEFE30E00FFD.FEFE30E00F.00.FD
+;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmSplitOn
+;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmSplitOff
+
+
diff --git a/CATCheck/Rigs/IC-728.ini b/CATCheck/Rigs/IC-728.ini
new file mode 100644
index 0000000..2b2887f
--- /dev/null
+++ b/CATCheck/Rigs/IC-728.ini
@@ -0,0 +1,181 @@
+;-------------------------------------------------------------------------------
+; Icom IC-728 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; Edited by Don Hatlestad, AC7FA@arrl.net http://ac7fa.net for IC-728
+; Using documented CI-V commands at:
+; "The ICOM CI-V Information pages by DF4OR"
+; http://www.plicht.de/ekki/civ/civtoc.html
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE38E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE38E0050000000000FD.FEFEE038FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE38E0.0F01.FD
+ReplyLength=13
+Validate=FEFE38E00F01FD.FEFEE038FBFD
+
+[pmSplitOff]
+Command=FEFE38E0.0F00.FD
+ReplyLength=13
+Validate=FEFE38E00F00FD.FEFEE038FBFD
+
+[pmVfoA]
+Command=FEFE38E0.0700.FD
+ReplyLength=13
+Validate=FEFE38E00700FD.FEFEE038FBFD
+
+[pmVfoB]
+Command=FEFE38E0.0701.FD
+ReplyLength=13
+Validate=FEFE38E00701FD.FEFEE038FBFD
+
+[pmVfoEqual]
+Command=FEFE38E0.07A0.FD
+ReplyLength=13
+Validate=FEFE38E007A0FD.FEFEE038FBFD
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; this is the CW Wide Filter
+Command=FEFE38E0.06.03.FD
+; this command is the CW Narrow mode
+;Command=FEFE38E0.06.03O2.FD
+ReplyLength=13
+Validate=FEFE38E00603FD.FEFEE038FBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE38E0.06.01.FD
+ReplyLength=13
+Validate=FEFE38E00601FD.FEFEE038FBFD
+
+[pmSSB_L]
+Command=FEFE38E0.06.00.FD
+ReplyLength=13
+Validate=FEFE38E00600FD.FEFEE038FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=FEFE38E0.06.02.FD
+ReplyLength=13
+Validate=FEFE38E00602FD.FEFEE038FBFD
+
+[pmFM]
+Command=FEFE38E0.06.05.FD
+ReplyLength=13
+Validate=FEFE38E00605FD.FEFEE038FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;The command name in the manual is Read Frequencies.
+;However, it returns just one frequency
+Command=FEFE38E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE38E003FD.FEFEE038.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE38E0.04.FD
+ReplyLength=14
+Validate=FEFE38E004FD.FEFEE038.04.0000.FD
+;filter byte is appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
diff --git a/CATCheck/Rigs/IC-7300-DATA.ini b/CATCheck/Rigs/IC-7300-DATA.ini
new file mode 100644
index 0000000..75b7a76
--- /dev/null
+++ b/CATCheck/Rigs/IC-7300-DATA.ini
@@ -0,0 +1,278 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7300-DATA
+;
+; IC-7300-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: Peter Klein, KD7MW
+;
+; Same as IC-7300, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R
+;
+; Updated by N6TV 2018-04-16:
+; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE94E0.1A050075.01.FD
+ReplyLength=16
+Validate=FEFE94E01A05007501FD.FEFEE094FBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE94E0.1A050071.00.FD
+ReplyLength=16
+Validate=FEFE94E01A05007100FD.FEFEE094FBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE94E0.1A050053.00.FD
+ReplyLength=16
+Validate=FEFE94E01A05005300FD.FEFEE094FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE94E0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE94E025000000000000FD.FEFEE094FBFD
+
+[pmFreqB]
+Command=FEFE94E0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE94E025010000000000FD.FEFEE094FBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE94E0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE94E02100000000FD.FEFEE094FBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE94E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE94E014090000FD.FEFEE094FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE94E0.0F01.FD
+ReplyLength=13
+Validate=FEFE94E00F01FD.FEFEE094FBFD
+
+[pmSplitOff]
+Command=FEFE94E0.0F00.FD
+ReplyLength=13
+Validate=FEFE94E00F00FD.FEFEE094FBFD
+
+[pmVfoA]
+Command=FEFE94E0.0700.FD
+ReplyLength=13
+Validate=FEFE94E00700FD.FEFEE094FBFD
+
+[pmVfoB]
+Command=FEFE94E0.0701.FD
+ReplyLength=13
+Validate=FEFE94E00701FD.FEFEE094FBFD
+
+[pmVfoEqual]
+Command=FEFE94E0.07A0.FD
+ReplyLength=13
+Validate=FEFE94E007A0FD.FEFEE094FBFD
+
+[pmVfoSwap]
+Command=FEFE94E0.07B0.FD
+ReplyLength=13
+Validate=FEFE94E007B0FD.FEFEE094FBFD
+
+[pmVfoAA]
+Command=FEFE94E0.0700.FD.FEFE94E0.0F00.FD
+ReplyLength=20
+Validate=FEFE94E00700FD.FEFE94E00F00FD.FEFEE094FBFD
+
+[pmVfoAB]
+Command=FEFE94E0.0700.FD.FEFE94E0.0F01.FD
+ReplyLength=20
+Validate=FEFE94E00700FD.FEFE94E00F01FD.FEFEE094FBFD
+
+[pmVfoBA]
+Command=FEFE94E0.0701.FD.FEFE94E0.0F01.FD
+ReplyLength=20
+Validate=FEFE94E00701FD.FEFE94E00F01FD.FEFEE094FBFD
+
+[pmVfoBB]
+Command=FEFE94E0.0701.FD.FEFE94E0.0F00.FD
+ReplyLength=20
+Validate=FEFE94E00701FD.FEFE94E00F00FD.FEFEE094FBFD
+
+[pmRitOn]
+Command=FEFE94E0.21.0101.FD
+ReplyLength=14
+Validate=FEFE94E0210101FD.FEFEE094FBFD
+
+[pmRitOff]
+Command=FEFE94E0.21.0100.FD
+ReplyLength=14
+Validate=FEFE94E0210100FD.FEFEE094FBFD
+
+[pmXitOn]
+Command=FEFE94E0.21.0201.FD
+ReplyLength=14
+Validate=FEFE94E0210201FD.FEFEE094FBFD
+
+[pmXitOff]
+Command=FEFE94E0.21.0200.FD
+ReplyLength=14
+Validate=FEFE94E0210200FD.FEFEE094FBFD
+
+[pmRx]
+Command=FEFE94E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE94E01C0000FD.FEFEE094FBFD
+
+[pmTx]
+Command=FEFE94E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE94E01C0001FD.FEFEE094FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE94E0.2600.07.FD
+ReplyLength=14
+Validate=FEFE94E0260007FD.FEFEE094FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE94E0.2600.03.FD
+ReplyLength=14
+Validate=FEFE94E0260003FD.FEFEE094FBFD
+
+[pmSSB_U]
+Command=FEFE94E0.2600.01.00.FD
+ReplyLength=15
+Validate=FEFE94E026000100FD.FEFEE094FBFD
+
+[pmSSB_L]
+Command=FEFE94E0.2600.00.00.FD
+ReplyLength=15
+Validate=FEFE94E026000000FD.FEFEE094FBFD
+
+[pmDIG_U]
+; These lines select USB-D for USB digital mode
+Command=FEFE94E0.2600.01.01.FD
+ReplyLength=15
+Validate=FEFE94E026000101FD.FEFEE094FBFD
+
+[pmDIG_L]
+; These lines select LSB-D for LSB digital mode
+Command=FEFE94E0.2600.00.01.FD
+ReplyLength=15
+Validate=FEFE94E026000001FD.FEFEE094FBFD
+
+[pmAM]
+Command=FEFE94E0.2600.02.FD
+ReplyLength=14
+Validate=FEFE94E0260002FD.FEFEE094FBFD
+
+[pmFM]
+Command=FEFE94E0.2600.05.FD
+ReplyLength=14
+Validate=FEFE94E0260005FD.FEFEE094FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE94E0.2500.FD
+ReplyLength=19
+Validate=FEFE94E02500FD.FEFEE094.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE94E0.2501.FD
+ReplyLength=19
+Validate=FEFE94E02501FD.FEFEE094.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE94E0.2600.FD
+ReplyLength=17
+Validate=FEFE94E02600FD.FEFEE094.2600.000000.FD
+Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L
+Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U
+Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U
+Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L
+Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U
+Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L
+Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U
+Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L
+Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM
+Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM
+
+[STATUS4]
+Command=FEFE94E0.1409.FD
+ReplyLength=16
+Validate=FEFE94E01409FD.FEFEE094.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE94E0.1C00.FD
+ReplyLength=15
+Validate=FEFE94E01C00FD.FEFEE094.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE94E0.0F.FD
+ReplyLength=13
+Validate=FEFE94E00FFD.FEFEE094.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE94E0.0F.FD
+ReplyLength=13
+Validate=FEFE94E00FFD.FEFEE094.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmVfoAB
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmVfoAA
+
+[STATUS8]
+Command=FEFE94E0.2101.FD
+ReplyLength=15
+Validate=FEFE94E02101FD.FEFEE094.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS9]
+Command=FEFE94E0.2102.FD
+ReplyLength=15
+Validate=FEFE94E02102FD.FEFEE094.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
diff --git a/CATCheck/Rigs/IC-7300.ini b/CATCheck/Rigs/IC-7300.ini
new file mode 100644
index 0000000..477cd7f
--- /dev/null
+++ b/CATCheck/Rigs/IC-7300.ini
@@ -0,0 +1,275 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7300
+;
+; IC-7300 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: James Brooks, 9V1YC and K3UK
+;
+; Same as original IC-7300, but only returns pmVfoA and pmVfoB, not pmFreq
+; for use with CW Skimmer and Contest Loggers.
+;
+; Updated by N6TV 2018-04-16:
+; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE94E0.1A050075.01.FD
+ReplyLength=16
+Validate=FEFE94E01A05007501FD.FEFEE094FBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE94E0.1A050071.00.FD
+ReplyLength=16
+Validate=FEFE94E01A05007100FD.FEFEE094FBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE94E0.1A050053.00.FD
+ReplyLength=16
+Validate=FEFE94E01A05005300FD.FEFEE094FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE94E0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE94E025000000000000FD.FEFEE094FBFD
+
+[pmFreqB]
+Command=FEFE94E0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE94E025010000000000FD.FEFEE094FBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE94E0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE94E02100000000FD.FEFEE094FBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE94E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE94E014090000FD.FEFEE094FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE94E0.0F01.FD
+ReplyLength=13
+Validate=FEFE94E00F01FD.FEFEE094FBFD
+
+[pmSplitOff]
+Command=FEFE94E0.0F00.FD
+ReplyLength=13
+Validate=FEFE94E00F00FD.FEFEE094FBFD
+
+[pmVfoA]
+Command=FEFE94E0.0700.FD
+ReplyLength=13
+Validate=FEFE94E00700FD.FEFEE094FBFD
+
+[pmVfoB]
+Command=FEFE94E0.0701.FD
+ReplyLength=13
+Validate=FEFE94E00701FD.FEFEE094FBFD
+
+[pmVfoEqual]
+Command=FEFE94E0.07A0.FD
+ReplyLength=13
+Validate=FEFE94E007A0FD.FEFEE094FBFD
+
+[pmVfoSwap]
+Command=FEFE94E0.07B0.FD
+ReplyLength=13
+Validate=FEFE94E007B0FD.FEFEE094FBFD
+
+[pmVfoAA]
+Command=FEFE94E0.0700.FD.FEFE94E0.0F00.FD
+ReplyLength=20
+Validate=FEFE94E00700FD.FEFE94E00F00FD.FEFEE094FBFD
+
+[pmVfoAB]
+Command=FEFE94E0.0700.FD.FEFE94E0.0F01.FD
+ReplyLength=20
+Validate=FEFE94E00700FD.FEFE94E00F01FD.FEFEE094FBFD
+
+[pmVfoBA]
+Command=FEFE94E0.0701.FD.FEFE94E0.0F01.FD
+ReplyLength=20
+Validate=FEFE94E00701FD.FEFE94E00F01FD.FEFEE094FBFD
+
+[pmVfoBB]
+Command=FEFE94E0.0701.FD.FEFE94E0.0F00.FD
+ReplyLength=20
+Validate=FEFE94E00701FD.FEFE94E00F00FD.FEFEE094FBFD
+
+[pmRitOn]
+Command=FEFE94E0.21.0101.FD
+ReplyLength=14
+Validate=FEFE94E0210101FD.FEFEE094FBFD
+
+[pmRitOff]
+Command=FEFE94E0.21.0100.FD
+ReplyLength=14
+Validate=FEFE94E0210100FD.FEFEE094FBFD
+
+[pmXitOn]
+Command=FEFE94E0.21.0201.FD
+ReplyLength=14
+Validate=FEFE94E0210201FD.FEFEE094FBFD
+
+[pmXitOff]
+Command=FEFE94E0.21.0200.FD
+ReplyLength=14
+Validate=FEFE94E0210200FD.FEFEE094FBFD
+
+[pmRx]
+Command=FEFE94E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE94E01C0000FD.FEFEE094FBFD
+
+[pmTx]
+Command=FEFE94E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE94E01C0001FD.FEFEE094FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE94E0.06.07.FD
+ReplyLength=13
+Validate=FEFE94E00607FD.FEFEE094FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE94E0.06.03.FD
+ReplyLength=13
+Validate=FEFE94E00603FD.FEFEE094FBFD
+
+[pmSSB_U]
+Command=FEFE94E0.06.01.FD
+ReplyLength=13
+Validate=FEFE94E00601FD.FEFEE094FBFD
+
+[pmSSB_L]
+Command=FEFE94E0.06.00.FD
+ReplyLength=13
+Validate=FEFE94E00600FD.FEFEE094FBFD
+
+[pmDIG_U]
+Command=FEFE94E0.06.08.FD
+ReplyLength=13
+Validate=FEFE94E00608FD.FEFEE094FBFD
+
+[pmDIG_L]
+Command=FEFE94E0.06.04.FD
+ReplyLength=13
+Validate=FEFE94E00604FD.FEFEE094FBFD.
+
+[pmAM]
+Command=FEFE94E0.06.02.FD
+ReplyLength=13
+Validate=FEFE94E00602FD.FEFEE094FBFD
+
+[pmFM]
+Command=FEFE94E0.06.05.FD
+ReplyLength=13
+Validate=FEFE94E00605FD.FEFEE094FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE94E0.2500.FD
+ReplyLength=19
+Validate=FEFE94E02500FD.FEFEE094.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE94E0.2501.FD
+ReplyLength=19
+Validate=FEFE94E02501FD.FEFEE094.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE94E0.04.FD
+ReplyLength=14
+Validate=FEFE94E004FD.FEFEE094.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS4]
+Command=FEFE94E0.1409.FD
+ReplyLength=16
+Validate=FEFE94E01409FD.FEFEE094.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE94E0.1C00.FD
+ReplyLength=15
+Validate=FEFE94E01C00FD.FEFEE094.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE94E0.0F.FD
+ReplyLength=13
+Validate=FEFE94E00FFD.FEFEE094.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE94E0.0F.FD
+ReplyLength=13
+Validate=FEFE94E00FFD.FEFEE094.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmVfoAB
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmVfoAA
+
+[STATUS8]
+Command=FEFE94E0.2101.FD
+ReplyLength=15
+Validate=FEFE94E02101FD.FEFEE094.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS9]
+Command=FEFE94E0.2102.FD
+ReplyLength=15
+Validate=FEFE94E02102FD.FEFEE094.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
diff --git a/CATCheck/Rigs/IC-7315.ini b/CATCheck/Rigs/IC-7315.ini
new file mode 100644
index 0000000..9ff7f48
--- /dev/null
+++ b/CATCheck/Rigs/IC-7315.ini
@@ -0,0 +1,47 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7315 command set
+;
+; File created by RK0SK and UR5EQF
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreq]
+Command=FEFE04E0.05.00000000.FD
+Value=5|4|vfBcdLU|1|0
+ReplyLength=16
+Validate=FEFE04E00500000000FD.FEFEE004FBFD
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE04E0.06.03.FD
+ReplyLength=13
+Validate=FEFE04E00603FD.FEFEE004FBFD
+
+[pmSSB_U]
+Command=FEFE04E0.06.01.FD
+ReplyLength=13
+Validate=FEFE04E00601FD.FEFEE004FBFD
+
+[pmSSB_L]
+Command=FEFE04E0.06.00.FD
+ReplyLength=13
+Validate=FEFE04E00600FD.FEFEE004FBFD
+
+[pmAM]
+Command=FEFE04E0.06.02.FD
+ReplyLength=13
+Validate=FEFE04E00602FD.FEFEE004FBFD
+
+[pmFM]
+Command=FEFE04E0.06.05.FD
+ReplyLength=13
+Validate=FEFE04E00605FD.FEFEE004FBFD
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE04E0.03.FD
+ReplyLength=16
+Validate=FEFE04E003FD.FEFEE004.03.00000000.FD
+Value=11|4|vfBcdLU|1|0|pmFreq
\ No newline at end of file
diff --git a/CATCheck/Rigs/IC-735.ini b/CATCheck/Rigs/IC-735.ini
new file mode 100644
index 0000000..cd6d2ff
--- /dev/null
+++ b/CATCheck/Rigs/IC-735.ini
@@ -0,0 +1,93 @@
+;-------------------------------------------------------------------------------
+; Icom IC-735 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; Corrected by RK0SK and UR5EQF
+; and DL6JH dl6jh@t-online.de
+;-------------------------------------------------------------------------------
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreq]
+Command=FEFE04E0.05.00000000.FD
+Value=5|4|vfBcdLU|1|0
+ReplyLength=16
+Validate=FEFE04E00500000000FD.FEFEE004FBFD
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmVfoA]
+Command=FEFE04E0.0700.FD
+ReplyLength=13
+Validate=FEFE04E00700FD.FEFEE004FBFD
+
+[pmVfoB]
+Command=FEFE04E0.0701.FD
+ReplyLength=13
+Validate=FEFE04E00701FD.FEFEE004FBFD
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE04E0.06.03.FD
+ReplyLength=13
+Validate=FEFE04E00603FD.FEFEE004FBFD
+
+[pmSSB_U]
+Command=FEFE04E0.06.01.FD
+ReplyLength=13
+Validate=FEFE04E00601FD.FEFEE004FBFD
+
+[pmSSB_L]
+Command=FEFE04E0.06.00.FD
+ReplyLength=13
+Validate=FEFE04E00600FD.FEFEE004FBFD
+
+[pmDIG_U]
+Command=FEFE04E0.06.04.FD
+ReplyLength=13
+Validate=FEFE04E00608FD.FEFEE004FBFD
+
+[pmAM]
+Command=FEFE04E0.06.02.FD
+ReplyLength=13
+Validate=FEFE04E00602FD.FEFEE004FBFD
+
+[pmFM]
+Command=FEFE04E0.06.05.FD
+ReplyLength=13
+Validate=FEFE04E00605FD.FEFEE004FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE04E0.03.FD
+ReplyLength=16
+Validate=FEFE04E003FD.FEFEE004.03.00000000.FD
+Value1=11|4|vfBcdLU|1|0|pmFreq
+
+
+
+[STATUS2]
+Command=FEFE04E0.04.FD
+ReplyLength=13
+Validate=FEFE04E004FD.FEFEE00404.00.FD
+Flag1=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_U
+Flag2=000000000000.0000000000.FF.00|000000000000.0000000000.01.00|pmSSB_U
+Flag3=000000000000.0000000000.FF.00|000000000000.0000000000.00.00|pmSSB_L
+Flag4=000000000000.0000000000.FF.00|000000000000.0000000000.04.00|pmDIG_U
+Flag5=000000000000.0000000000.FF.00|000000000000.0000000000.02.00|pmAM
+Flag6=000000000000.0000000000.FF.00|000000000000.0000000000.05.00|pmFM
diff --git a/CATCheck/Rigs/IC-736 (untested).ini b/CATCheck/Rigs/IC-736 (untested).ini
new file mode 100644
index 0000000..dcc6e35
--- /dev/null
+++ b/CATCheck/Rigs/IC-736 (untested).ini
@@ -0,0 +1,177 @@
+;-------------------------------------------------------------------------------
+; Icom IC-738 command set
+;
+; File created for IC-737 by RZ4AG aia@dxsoft.com
+; Modified for IC-736 by YO3IPR / G4IPR but untested
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE40E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE40E0050000000000FD.FEFEE040FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+Command=FEFE40E0.0700.FD
+ReplyLength=13
+Validate=FEFE40E00700FD.FEFEE040FBFD
+
+[pmVfoB]
+Command=FEFE40E0.0701.FD
+ReplyLength=13
+Validate=FEFE40E00701FD.FEFEE040FBFD
+
+[pmVfoEqual]
+Command=FEFE40E0.07A0.FD
+ReplyLength=13
+Validate=FEFE40E007A0FD.FEFEE040FBFD
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE40E0.06.03.FD
+ReplyLength=13
+Validate=FEFE40E00603FD.FEFEE040FBFD
+
+[pmCW_L]
+Command=FEFE40E0.06.07.FD
+ReplyLength=13
+Validate=FEFE40E00607FD.FEFEE040FBFD
+
+[pmSSB_U]
+Command=FEFE40E0.06.01.FD
+ReplyLength=13
+Validate=FEFE40E00601FD.FEFEE040FBFD
+
+[pmSSB_L]
+Command=FEFE40E0.06.00.FD
+ReplyLength=13
+Validate=FEFE40E00600FD.FEFEE040FBFD
+
+[pmDIG_U]
+Command=FEFE40E0.06.04.FD
+ReplyLength=13
+Validate=FEFE40E00604FD.FEFEE040FBFD
+
+[pmDIG_L]
+Command=FEFE40E0.06.08.FD
+ReplyLength=13
+Validate=FEFE40E00608FD.FEFEE040FBFD
+
+[pmAM]
+Command=FEFE04E0.06.02.FD
+ReplyLength=13
+Validate=FEFE40E00602FD.FEFEE040FBFD
+
+[pmFM]
+Command=FEFE40E0.06.05.FD
+ReplyLength=13
+Validate=FEFE40E00605FD.FEFEE040FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;The command name in the manual is Read Frequencies.
+;However, it returns just one frequency
+Command=FEFE40E0.03.FD
+ReplyLength=17
+Validate=FEFE40E003FD.FEFEE040.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE40E0.04.FD
+ReplyLength=14
+Validate=FEFE40E004FD.FEFEE040.04.0000.FD
+;filter byte is appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
diff --git a/CATCheck/Rigs/IC-737.ini b/CATCheck/Rigs/IC-737.ini
new file mode 100644
index 0000000..47a98b7
--- /dev/null
+++ b/CATCheck/Rigs/IC-737.ini
@@ -0,0 +1,176 @@
+;-------------------------------------------------------------------------------
+; Icom IC-737 command set
+;
+; File created by RZ4AG aia@dxsoft.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE3CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE3CE0050000000000FD.FEFEE03CFBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+Command=FEFE3CE0.0700.FD
+ReplyLength=13
+Validate=FEFE3CE00700FD.FEFEE03CFBFD
+
+[pmVfoB]
+Command=FEFE3CE0.0701.FD
+ReplyLength=13
+Validate=FEFE3CE00701FD.FEFEE03CFBFD
+
+[pmVfoEqual]
+Command=FEFE3CE0.07A0.FD
+ReplyLength=13
+Validate=FEFE3CE007A0FD.FEFEE03CFBFD
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE3CE0.06.03.FD
+ReplyLength=13
+Validate=FEFE3CE00603FD.FEFEE03CFBFD
+
+[pmCW_L]
+Command=FEFE3CE0.06.07.FD
+ReplyLength=13
+Validate=FEFE3CE00607FD.FEFEE03CFBFD
+
+[pmSSB_U]
+Command=FEFE3CE0.06.01.FD
+ReplyLength=13
+Validate=FEFE3CE00601FD.FEFEE03CFBFD
+
+[pmSSB_L]
+Command=FEFE3CE0.06.00.FD
+ReplyLength=13
+Validate=FEFE3CE00600FD.FEFEE03CFBFD
+
+[pmDIG_U]
+Command=FEFE3CE0.06.04.FD
+ReplyLength=13
+Validate=FEFE3CE00604FD.FEFEE03CFBFD
+
+[pmDIG_L]
+Command=FEFE3CE0.06.08.FD
+ReplyLength=13
+Validate=FEFE3CE00608FD.FEFEE03CFBFD
+
+[pmAM]
+Command=FEFE04E0.06.02.FD
+ReplyLength=13
+Validate=FEFE3CE00602FD.FEFEE03CFBFD
+
+[pmFM]
+Command=FEFE3CE0.06.05.FD
+ReplyLength=13
+Validate=FEFE3CE00605FD.FEFEE03CFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;The command name in the manual is Read Frequencies.
+;However, it returns just one frequency
+Command=FEFE3CE0.03.FD
+ReplyLength=17
+Validate=FEFE3CE003FD.FEFEE03C.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE3CE0.04.FD
+ReplyLength=14
+Validate=FEFE3CE004FD.FEFEE03C.04.0000.FD
+;filter byte is appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
diff --git a/CATCheck/Rigs/IC-738.ini b/CATCheck/Rigs/IC-738.ini
new file mode 100644
index 0000000..765adba
--- /dev/null
+++ b/CATCheck/Rigs/IC-738.ini
@@ -0,0 +1,177 @@
+;-------------------------------------------------------------------------------
+; Icom IC-738 command set
+;
+; File created for IC-737 by RZ4AG aia@dxsoft.com
+; Modified & tested on IC-738 by YO3IPR / G4IPR
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE44E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE44E0050000000000FD.FEFEE044FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+Command=FEFE44E0.0700.FD
+ReplyLength=13
+Validate=FEFE44E00700FD.FEFEE044FBFD
+
+[pmVfoB]
+Command=FEFE44E0.0701.FD
+ReplyLength=13
+Validate=FEFE44E00701FD.FEFEE044FBFD
+
+[pmVfoEqual]
+Command=FEFE44E0.07A0.FD
+ReplyLength=13
+Validate=FEFE44E007A0FD.FEFEE044FBFD
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE44E0.06.03.FD
+ReplyLength=13
+Validate=FEFE44E00603FD.FEFEE044FBFD
+
+[pmCW_L]
+Command=FEFE44E0.06.07.FD
+ReplyLength=13
+Validate=FEFE44E00607FD.FEFEE044FBFD
+
+[pmSSB_U]
+Command=FEFE44E0.06.01.FD
+ReplyLength=13
+Validate=FEFE44E00601FD.FEFEE044FBFD
+
+[pmSSB_L]
+Command=FEFE44E0.06.00.FD
+ReplyLength=13
+Validate=FEFE44E00600FD.FEFEE044FBFD
+
+[pmDIG_U]
+Command=FEFE44E0.06.04.FD
+ReplyLength=13
+Validate=FEFE44E00604FD.FEFEE044FBFD
+
+[pmDIG_L]
+Command=FEFE44E0.06.08.FD
+ReplyLength=13
+Validate=FEFE44E00608FD.FEFEE044FBFD
+
+[pmAM]
+Command=FEFE04E0.06.02.FD
+ReplyLength=13
+Validate=FEFE44E00602FD.FEFEE044FBFD
+
+[pmFM]
+Command=FEFE44E0.06.05.FD
+ReplyLength=13
+Validate=FEFE44E00605FD.FEFEE044FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;The command name in the manual is Read Frequencies.
+;However, it returns just one frequency
+Command=FEFE44E0.03.FD
+ReplyLength=17
+Validate=FEFE44E003FD.FEFEE044.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE44E0.04.FD
+ReplyLength=14
+Validate=FEFE44E004FD.FEFEE044.04.0000.FD
+;filter byte is appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
diff --git a/CATCheck/Rigs/IC-7410 (1).ini b/CATCheck/Rigs/IC-7410 (1).ini
new file mode 100644
index 0000000..2cfa5b3
--- /dev/null
+++ b/CATCheck/Rigs/IC-7410 (1).ini
@@ -0,0 +1,162 @@
+;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+;
+; Icom IC-7410 Omni-Rig commands
+;
+; File created by: Elijah Figueroa, N0ZLD (nzerozld@gmail.com)
+;
+; Revision 1.0 - 2011-09-11
+;
+; NOTE: You MUST disable CI-V Transceive in your radio for Omni-Rig to work!
+;
+; Hold MENU, select item 44 (CI-V Transceive) and rotate the dial to select
+; 'OFF' then push MENU to save the change. This can also be found in page 89
+; in the IC-7410 PDF manual:
+;
+; http://www.icomamerica.com/en/downloads/DownloadDocument.aspx?Document=544
+;
+; If you have changed your default CI-V address from 80 to something else,
+; do a find and replace in this INI file. First, Find FEFE80E0 and replace with
+; FEFEXXE0 where XX is your numerical address.
+;
+;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+;--------------------------------------------------------------------------
+; Initialize the radio
+;--------------------------------------------------------------------------
+
+;
+;
+;
+[INIT1]
+Command=FEFE80E0.1A050092.00.FD
+ReplyLength=16
+Validate=FEFE80E01A05009200FD.FEFEE080FBFD
+
+
+;--------------------------------------------------------------------------
+; Set frequency
+;--------------------------------------------------------------------------
+
+; Set operating frequency
+[pmFreq]
+Command=FEFE80E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE80E0050000000000FD.FEFEE080FBFD
+
+
+;--------------------------------------------------------------------------
+; Set Split, Rx & Tx
+;--------------------------------------------------------------------------
+
+; Turn Split function on
+[pmSplitOn]
+Command=FEFE80E0.0F01.FD
+ReplyLength=13
+Validate=FEFE80E00F01FD.FEFEE080FBFD
+
+; Turn Split function off
+[pmSplitOff]
+Command=FEFE80E0.0F00.FD
+ReplyLength=13
+Validate=FEFE80E00F00FD.FEFEE080FBFD
+
+; Enable receive mode
+[pmRx]
+Command=FEFE80E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE80E01C0000FD.FEFEE080FBFD
+
+; Enable transmit mode
+[pmTx]
+Command=FEFE80E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE80E01C0001FD.FEFEE080FBFD
+
+
+;--------------------------------------------------------------------------
+; Set modes of the radio
+;--------------------------------------------------------------------------
+
+; Upper sideband CW
+[pmCW_U]
+Command=FEFE80E0.06.07.FD
+ReplyLength=13
+Validate=FEF704E00607FD.FEFEE080FBFD
+
+; Lower sideband CW
+[pmCW_L]
+Command=FEFE80E0.06.03.FD
+ReplyLength=13
+Validate=FEFE80E00603FD.FEFEE080FBFD
+
+; USB
+[pmSSB_U]
+Command=FEFE80E0.06.01.FD
+ReplyLength=13
+Validate=FEFE80E00601FD.FEFEE080FBFD
+
+; LSB
+[pmSSB_L]
+Command=FEFE80E0.06.00.FD
+ReplyLength=13
+Validate=FEFE80E00600FD.FEFEE080FBFD
+
+; Upper sideband digital modes
+[pmDIG_U]
+Command=FEFE80E0.06.08.FD
+ReplyLength=13
+Validate=FEFE80E00608FD.FEFEE080FBFD
+
+; Lower sideband digital modes
+[pmDIG_L]
+Command=FEFE80E0.06.04.FD
+ReplyLength=13
+Validate=FEFE80E00604FD.FEFEE080FBFD
+
+; AM
+[pmAM]
+Command=FEFE80E0.06.02.FD
+ReplyLength=13
+Validate=FEFE80E00602FD.FEFEE080FBFD
+
+; FM
+[pmFM]
+Command=FEFE80E0.06.05.FD
+ReplyLength=13
+Validate=FEFE80E00605FD.FEFEE080FBFD
+
+
+;------------------------------------------------------------------------
+; Read the status of the radio
+;------------------------------------------------------------------------
+
+; Read the current frequency
+[STATUS1]
+Command=FEFE80E0.03.FD
+ReplyLength=17
+Validate=FEFE80E003FD.FEFEE080.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+; Read the current operating mode
+[STATUS2]
+Command=FEFE80E0.04.FD
+ReplyLength=14
+Validate=FEFE80E004FD.FEFEE080.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+; Are we in Rx or Tx?
+[STATUS3]
+Command=FEFE80E0.1C00.FD
+ReplyLength=15
+Validate=FEFE80E01C00FD.FEFEE080.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
diff --git a/CATCheck/Rigs/IC-7410.ini b/CATCheck/Rigs/IC-7410.ini
new file mode 100644
index 0000000..e5be31f
--- /dev/null
+++ b/CATCheck/Rigs/IC-7410.ini
@@ -0,0 +1,151 @@
+;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+;
+; Icom IC-7410 Omni-Rig commands
+;
+; File for IC-7600 created by Makoto Kasahara / JN1GLB : jn1glb@jarl.com
+;
+; File modified for IC-7410 by Ian Stirling VK3MZ June 2011:
+; ianstirling@optusnet.com.au
+;
+;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+;--------------------------------------------------------------------------
+; Initialize the radio
+;--------------------------------------------------------------------------
+
+;
+;
+;
+[INIT1]
+Command=FEFE80E0.1A050089.02.FD
+ReplyLength=16
+Validate=FEFE80E01A05008902FD.FEFEE080FBFD
+
+
+;--------------------------------------------------------------------------
+; Set frequency
+;--------------------------------------------------------------------------
+
+; Set operating frequency
+[pmFreq]
+Command=FEFE80E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE80E0050000000000FD.FEFEE080FBFD
+
+
+;--------------------------------------------------------------------------
+; Set Split, Rx & Tx
+;--------------------------------------------------------------------------
+
+; Turn Split function on
+[pmSplitOn]
+Command=FEFE80E0.0F01.FD
+ReplyLength=13
+Validate=FEFE80E00F01FD.FEFEE080FBFD
+
+; Turn Split function off
+[pmSplitOff]
+Command=FEFE80E0.0F00.FD
+ReplyLength=13
+Validate=FEFE80E00F00FD.FEFEE080FBFD
+
+; Enable receive mode
+[pmRx]
+Command=FEFE80E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE80E01C0000FD.FEFEE080FBFD
+
+; Enable transmit mode
+[pmTx]
+Command=FEFE80E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE80E01C0001FD.FEFEE080FBFD
+
+
+;--------------------------------------------------------------------------
+; Set modes of the radio
+;--------------------------------------------------------------------------
+
+; Upper sideband CW
+[pmCW_U]
+Command=FEFE80E0.06.07.FD
+ReplyLength=13
+Validate=FEFE80E00607FD.FEFEE080FBFD
+
+; Lower sideband CW
+[pmCW_L]
+Command=FEFE80E0.06.03.FD
+ReplyLength=13
+Validate=FEFE80E00603FD.FEFEE080FBFD
+
+; USB
+[pmSSB_U]
+Command=FEFE80E0.06.01.FD
+ReplyLength=13
+Validate=FEFE80E00601FD.FEFEE080FBFD
+
+; LSB
+[pmSSB_L]
+Command=FEFE80E0.06.00.FD
+ReplyLength=13
+Validate=FEFE80E00600FD.FEFEE080FBFD
+
+; Upper sideband digital modes
+[pmDIG_U]
+Command=FEFE80E0.06.08.FD
+ReplyLength=13
+Validate=FEFE80E00608FD.FEFEE080FBFD
+
+; Lower sideband digital modes
+[pmDIG_L]
+Command=FEFE80E0.06.04.FD
+ReplyLength=13
+Validate=FEFE80E00604FD.FEFEE080FBFD
+
+; AM
+[pmAM]
+Command=FEFE80E0.06.02.FD
+ReplyLength=13
+Validate=FEFE80E00602FD.FEFEE080FBFD
+
+; FM
+[pmFM]
+Command=FEFE80E0.06.05.FD
+ReplyLength=13
+Validate=FEFE80E00605FD.FEFEE080FBFD
+
+
+;------------------------------------------------------------------------
+; Read the status of the radio
+;------------------------------------------------------------------------
+
+; Read the current frequency
+[STATUS1]
+Command=FEFE80E0.03.FD
+ReplyLength=17
+Validate=FEFE80E003FD.FEFEE080.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+; Read the current operating mode
+[STATUS2]
+Command=FEFE80E0.04.FD
+ReplyLength=14
+Validate=FEFE80E004FD.FEFEE080.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+; Are we in Rx or Tx?
+[STATUS3]
+Command=FEFE80E0.1C00.FD
+ReplyLength=15
+Validate=FEFE80E01C00FD.FEFEE080.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
diff --git a/CATCheck/Rigs/IC-7410v2.ini b/CATCheck/Rigs/IC-7410v2.ini
new file mode 100644
index 0000000..b19731c
--- /dev/null
+++ b/CATCheck/Rigs/IC-7410v2.ini
@@ -0,0 +1,223 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7410 with corrected command set
+;
+; IC-7410v2 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: N6TV @ HRO Sunnyvale, CA
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE80E0.1A050040.00.FD
+ReplyLength=16
+Validate=FEFE80E01A05004000FD.FEFEE080FBFD
+
+[INIT2]
+;set CW normal to lower sideband
+Command=FEFE80E0.1A050033.00.FD
+ReplyLength=16
+Validate=FEFE80E01A05003300FD.FEFEE080FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE80E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE80E0050000000000FD.FEFEE080FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE80E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE80E014090000FD.FEFEE080FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE80E0.0F01.FD
+ReplyLength=13
+Validate=FEFE80E00F01FD.FEFEE080FBFD
+
+[pmSplitOff]
+Command=FEFE80E0.0F00.FD
+ReplyLength=13
+Validate=FEFE80E00F00FD.FEFEE080FBFD
+
+[pmVfoA]
+Command=FEFE80E0.0700.FD
+ReplyLength=13
+Validate=FEFE80E00700FD.FEFEE080FBFD
+
+[pmVfoB]
+Command=FEFE80E0.0701.FD
+ReplyLength=13
+Validate=FEFE80E00701FD.FEFEE080FBFD
+
+[pmVfoEqual]
+Command=FEFE80E0.07A0.FD
+ReplyLength=13
+Validate=FEFE80E007A0FD.FEFEE080FBFD
+
+[pmVfoSwap]
+Command=FEFE80E0.07B0.FD
+ReplyLength=13
+Validate=FEFE80E007B0FD.FEFEE080FBFD
+
+[pmVfoAA]
+Command=FEFE80E0.0700.FD.FEFE80E0.0F00.FD
+ReplyLength=20
+Validate=FEFE80E00700FD.FEFE80E00F00FD.FEFEE080FBFD
+
+[pmVfoAB]
+Command=FEFE80E0.0700.FD.FEFE80E0.0F01.FD
+ReplyLength=20
+Validate=FEFE80E00700FD.FEFE80E00F01FD.FEFEE080FBFD
+
+[pmVfoBA]
+Command=FEFE80E0.0701.FD.FEFE80E0.0F01.FD
+ReplyLength=20
+Validate=FEFE80E00701FD.FEFE80E00F01FD.FEFEE080FBFD
+
+[pmVfoBB]
+Command=FEFE80E0.0701.FD.FEFE80E0.0F00.FD
+ReplyLength=20
+Validate=FEFE80E00701FD.FEFE80E00F00FD.FEFEE080FBFD
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+Command=FEFE80E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE80E01C0000FD.FEFEE080FBFD
+
+[pmTx]
+Command=FEFE80E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE80E01C0001FD.FEFEE080FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE80E0.06.07.FD
+ReplyLength=13
+Validate=FEFE80E00607FD.FEFEE080FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE80E0.06.03.FD
+ReplyLength=13
+Validate=FEFE80E00603FD.FEFEE080FBFD
+
+[pmSSB_U]
+Command=FEFE80E0.06.01.FD
+ReplyLength=13
+Validate=FEFE80E00601FD.FEFEE080FBFD
+
+[pmSSB_L]
+Command=FEFE80E0.06.00.FD
+ReplyLength=13
+Validate=FEFE80E00600FD.FEFEE080FBFD
+
+[pmDIG_U]
+Command=FEFE80E0.06.08.FD
+ReplyLength=13
+Validate=FEFE80E00608FD.FEFEE080FBFD
+
+[pmDIG_L]
+Command=FEFE80E0.06.04.FD
+ReplyLength=13
+Validate=FEFE80E00604FD.FEFEE080FBFD
+
+[pmAM]
+Command=FEFE80E0.06.02.FD
+ReplyLength=13
+Validate=FEFE80E00602FD.FEFEE080FBFD
+
+[pmFM]
+Command=FEFE80E0.06.05.FD
+ReplyLength=13
+Validate=FEFE80E00605FD.FEFEE080FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE80E0.03.FD
+ReplyLength=17
+Validate=FEFE80E003FD.FEFEE080.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE80E0.04.FD
+ReplyLength=14
+Validate=FEFE80E004FD.FEFEE080.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE80E0.1409.FD
+ReplyLength=16
+Validate=FEFE80E01409FD.FEFEE080.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE80E0.1C00.FD
+ReplyLength=15
+Validate=FEFE80E01C00FD.FEFEE080.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS5]
+Command=FEFE80E0.0F.FD
+ReplyLength=13
+Validate=FEFE80E00FFD.FEFEE080.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
diff --git a/CATCheck/Rigs/IC-746 Pro.ini b/CATCheck/Rigs/IC-746 Pro.ini
new file mode 100644
index 0000000..e821585
--- /dev/null
+++ b/CATCheck/Rigs/IC-746 Pro.ini
@@ -0,0 +1,213 @@
+;-------------------------------------------------------------------------------
+; Icom IC-746 Pro command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;disable transceive mode
+Command=FEFE66E0.1A0536.00.FD
+ReplyLength=15
+Validate=FEFE66E01A053600FD.FEFEE066FBFD
+
+[INIT2]
+;disable 731 mode
+Command=FEFE66E0.1A0537.00.FD
+ReplyLength=15
+Validate=FEFE66E01A053700FD.FEFEE066FBFD
+
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE66E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE66E0050000000000FD.FEFEE066FBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+Command=FEFE66E0.1409.0000.FD
+;300Hz=0 600Hz=128 900Hz=255
+Value=6|2|vfBcdLU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE66E014090000FD.FEFEE066FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE66E0.0F01.FD
+ReplyLength=13
+Validate=FEFE66E00F01FD.FEFEE066FBFD
+
+[pmSplitOff]
+Command=FEFE66E0.0F00.FD
+ReplyLength=13
+Validate=FEFE66E00F00FD.FEFEE066FBFD
+
+[pmVfoA]
+Command=FEFE66E0.0700.FD
+ReplyLength=13
+Validate=FEFE66E00700FD.FEFEE066FBFD
+
+[pmVfoB]
+Command=FEFE66E0.0701.FD
+ReplyLength=13
+Validate=FEFE66E00701FD.FEFEE066FBFD
+
+[pmVfoEqual]
+Command=FEFE66E0.07A0.FD
+ReplyLength=13
+Validate=FEFE66E007A0FD.FEFEE066FBFD
+
+[pmVfoSwap]
+Command=FEFE66E0.07B0.FD
+ReplyLength=13
+Validate=FEFE66E007B0FD.FEFEE066FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE66E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE66E01C0000FD.FEFEE066FBFD
+
+[pmTx]
+Command=FEFE66E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE66E01C0001FD.FEFEE066FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE66E0.06.03.FD
+ReplyLength=13
+Validate=FEFE66E00603FD.FEFEE066FBFD
+
+[pmCW_L]
+Command=FEFE66E0.06.07.FD
+ReplyLength=13
+Validate=FEFE66E00607FD.FEFEE066FBFD
+
+[pmSSB_U]
+Command=FEFE66E0.06.01.FD
+ReplyLength=13
+Validate=FEFE66E00601FD.FEFEE066FBFD
+
+[pmSSB_L]
+Command=FEFE66E0.06.00.FD
+ReplyLength=13
+Validate=FEFE66E00600FD.FEFEE066FBFD
+
+[pmDIG_U]
+Command=FEFE66E0.06.04.FD
+ReplyLength=13
+Validate=FEFE66E00604FD.FEFEE066FBFD
+
+[pmDIG_L]
+Command=FEFE66E0.06.08.FD
+ReplyLength=13
+Validate=FEFE66E00608FD.FEFEE066FBFD
+
+[pmAM]
+Command=FEFE66E0.06.02.FD
+ReplyLength=13
+Validate=FEFE66E00602FD.FEFEE066FBFD
+
+[pmFM]
+Command=FEFE66E0.06.05.FD
+ReplyLength=13
+Validate=FEFE66E00605FD.FEFEE066FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE66E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE66E003FD.FEFEE066.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE66E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE66E004FD.FEFEE066.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE66E0.1409.FD
+ReplyLength=16
+Validate=FFFFFFFFFFFFFF.FFFFFFFFFFFF.0000.FF|FEFE66E01409FD.FEFEE0661409.0000.FD
+Value1=13|2|vfBcdLU|2.352941|300|pmPitch
+
+[STATUS4]
+Command=FEFE66E0.1C00.FD
+ReplyLength=15
+Validate=FFFFFFFFFFFFFF.FFFFFFFF.FFFF.00.FF|FEFE66E01C00FD.FEFEE066.1C00.00.FD
+Flag1=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
diff --git a/CATCheck/Rigs/IC-746.ini b/CATCheck/Rigs/IC-746.ini
new file mode 100644
index 0000000..f1c260e
--- /dev/null
+++ b/CATCheck/Rigs/IC-746.ini
@@ -0,0 +1,203 @@
+;-------------------------------------------------------------------------------
+ ; Icom IC-746 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE56E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE56E0050000000000FD.FEFEE056FBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+Command=FEFE56E0.1409.0000.FD
+;300Hz=0 600Hz=128 900Hz=255
+Value=6|2|vfBcdLU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE56E014090000FD.FEFEE056FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE56E0.0F01.FD
+ReplyLength=13
+Validate=FEFE56E00F01FD.FEFEE056FBFD
+
+[pmSplitOff]
+Command=FEFE56E0.0F00.FD
+ReplyLength=13
+Validate=FEFE56E00F00FD.FEFEE056FBFD
+
+[pmVfoA]
+Command=FEFE56E0.0700.FD
+ReplyLength=13
+Validate=FEFE56E00700FD.FEFEE056FBFD
+
+[pmVfoB]
+Command=FEFE56E0.0701.FD
+ReplyLength=13
+Validate=FEFE56E00701FD.FEFEE056FBFD
+
+[pmVfoEqual]
+Command=FEFE56E0.07A0.FD
+ReplyLength=13
+Validate=FEFE56E007A0FD.FEFEE056FBFD
+
+[pmVfoSwap]
+Command=FEFE56E0.07B0.FD
+ReplyLength=13
+Validate=FEFE56E007B0FD.FEFEE056FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE56E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE56E01C0000FD.FEFEE056FBFD
+
+[pmTx]
+Command=FEFE56E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE56E01C0001FD.FEFEE056FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE56E0.06.03.FD
+ReplyLength=13
+Validate=FEFE56E00603FD.FEFEE056FBFD
+
+[pmCW_L]
+Command=FEFE56E0.06.07.FD
+ReplyLength=13
+Validate=FEFE56E00607FD.FEFEE056FBFD
+
+[pmSSB_U]
+Command=FEFE56E0.06.01.FD
+ReplyLength=13
+Validate=FEFE56E00601FD.FEFEE056FBFD
+
+[pmSSB_L]
+Command=FEFE56E0.06.00.FD
+ReplyLength=13
+Validate=FEFE56E00600FD.FEFEE056FBFD
+
+[pmDIG_U]
+Command=FEFE56E0.06.04.FD
+ReplyLength=13
+Validate=FEFE56E00604FD.FEFEE056FBFD
+
+[pmDIG_L]
+Command=FEFE56E0.06.08.FD
+ReplyLength=13
+Validate=FEFE56E00608FD.FEFEE056FBFD
+
+[pmAM]
+Command=FEFE56E0.06.02.FD
+ReplyLength=13
+Validate=FEFE56E00602FD.FEFEE056FBFD
+
+[pmFM]
+Command=FEFE56E0.06.05.FD
+ReplyLength=13
+Validate=FEFE56E00605FD.FEFEE056FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE56E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE56E003FD.FEFEE056.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE56E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE56E004FD.FEFEE056.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE56E0.1409.FD
+ReplyLength=16
+Validate=FFFFFFFFFFFFFF.FFFFFFFFFFFF.0000.FF|FEFE56E01409FD.FEFEE0561409.0000.FD
+Value1=13|2|vfBcdLU|2.352941|300|pmPitch
+
+[STATUS4]
+Command=FEFE56E0.1C00.FD
+ReplyLength=15
+Validate=FFFFFFFFFFFFFF.FFFFFFFF.FFFF.00.FF|FEFE56E01C00FD.FEFEE056.1C00.00.FD
+Flag1=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
diff --git a/CATCheck/Rigs/IC-751.ini b/CATCheck/Rigs/IC-751.ini
new file mode 100644
index 0000000..55871ae
--- /dev/null
+++ b/CATCheck/Rigs/IC-751.ini
@@ -0,0 +1,165 @@
+;-------------------------------------------------------------------------------
+; Icom IC-751 command set
+;
+; mod by sa2w
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE1CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE1CE0050000000000FD.FEFE001CFBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+Command=FEFE1CE0.0700.FD
+ReplyLength=13
+Validate=FEFE1CE00700FD.FEFE001CFBFD
+
+[pmVfoB]
+Command=FEFE1CE0.0701.FD
+ReplyLength=13
+Validate=FEFE1CE00701FD.FEFE001CFBFD
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE1CE0.06.03.FD
+ReplyLength=13
+Validate=FEFE1CE00603FD.FEFE001CFBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE1CE0.06.01.FD
+ReplyLength=13
+Validate=FEFE1CE00601FD.FEFE001CFBFD
+
+[pmSSB_L]
+Command=FEFE1CE0.06.00.FD
+ReplyLength=13
+Validate=FEFE1CE00600FD.FEFE001CFBFD
+
+[pmDIG_U]
+Command=FEFE1CE0.06.04.FD
+ReplyLength=13
+Validate=FEFE1CE00604FD.FEFE001CFBFD
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=FEFE1CE0.06.02.FD
+ReplyLength=13
+Validate=FEFE1CE00602FD.FEFE001CFBFD
+
+[pmFM]
+Command=FEFE1CE0.06.05.FD
+ReplyLength=13
+Validate=FEFE1CE00605FD.FEFE001CFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE1CE0.03.FD
+ReplyLength=17
+Validate=FEFE1CE003FD.FEFE001C.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE1CE0.04.FD
+ReplyLength=13
+Validate=FEFE1CE004FD.FEFE001C.04.00.00
+Flag1=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_U
+Flag3=000000000000.0000000000.FF.00|000000000000.0000000000.01.00|pmSSB_U
+Flag4=000000000000.0000000000.FF.00|000000000000.0000000000.00.00|pmSSB_L
+Flag5=000000000000.0000000000.FF.00|000000000000.0000000000.04.00|pmDIG_U
+Flag7=000000000000.0000000000.FF.00|000000000000.0000000000.02.00|pmAM
+Flag8=000000000000.0000000000.FF.00|000000000000.0000000000.05.00|pmFM
diff --git a/CATCheck/Rigs/IC-756 Pro II.ini b/CATCheck/Rigs/IC-756 Pro II.ini
new file mode 100644
index 0000000..b067b05
--- /dev/null
+++ b/CATCheck/Rigs/IC-756 Pro II.ini
@@ -0,0 +1,242 @@
+;-------------------------------------------------------------------------------
+; Icom IC-756 Pro II command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; Modified by Brendan EI6IZ ei6iz@oceanfree.net
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;disable transceive mode
+Command=FEFE64E0.1A0542.00.FD
+ReplyLength=15
+Validate=FEFE64E01A054200FD.FEFEE064FBFD
+
+[INIT2]
+;disable 731 mode
+Command=FEFE64E0.1A0543.00.FD
+ReplyLength=15
+Validate=FEFE64E01A054300FD.FEFEE064FBFD
+
+; Some of us don't like this option one bit!
+;[INIT3]
+;set CW normal to upper sideband
+;Command=FEFE64E0.1A0567.01.FD
+;ReplyLength=15
+;Validate=FEFE64E01A056701FD.FEFEE064FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE64E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE64E0050000000000FD.FEFEE064FBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+
+
+Command=FEFE64E0.14.09.0000.FD
+;300Hz=5 600Hz=128 900Hz=255
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+
+Value=6|2|vfBcdBU|1|1
+ReplyLength=15
+Validate=FEFE64E014090000FD.FEFEE064FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE64E0.0F01.FD
+ReplyLength=13
+Validate=FEFE64E00F01FD.FEFEE064FBFD
+
+[pmSplitOff]
+Command=FEFE64E0.0F00.FD
+ReplyLength=13
+Validate=FEFE64E00F00FD.FEFEE064FBFD
+
+[pmVfoA]
+;not supported
+;It's possible to select which VFO is active on the display & used for data entry,
+;this isn't usually the receive VFO, perhaps this is what you want however?
+
+Command=FEFE64E0.07D0.FD
+ReplyLength=13
+Validate=FEFE64E007D0FD.FEFEE064FBFD
+
+
+[pmVfoB]
+Command=FEFE64E0.07D1.FD
+ReplyLength=13
+Validate=FEFE64E007D1FD.FEFEE064FBFD
+
+
+[pmVfoEqual]
+Command=FEFE64E0.07B1.FD
+ReplyLength=13
+Validate=FEFE64E007B1FD.FEFEE064FBFD
+
+[pmVfoSwap]
+Command=FEFE64E0.07B0.FD
+ReplyLength=13
+Validate=FEFE64E007B0FD.FEFEE064FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE64E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE64E01C0000FD.FEFEE064FBFD
+
+[pmTx]
+;is 00 after 1C required or err in doc?
+; Yes we require the 00 following the 1C
+Command=FEFE64E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE64E01C0001FD.FEFEE064FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;swapped this around to correct for the removal of INIT3
+Command=FEFE64E0.06.07.FD
+ReplyLength=13
+Validate=FEFE64E00607FD.FEFEE064FBFD
+
+
+[pmCW_L]
+;swapped this around to correct for the removal of INIT3
+Command=FEFE64E0.06.03.FD
+ReplyLength=13
+Validate=FEFE64E00603FD.FEFEE064FBFD
+
+[pmSSB_U]
+Command=FEFE64E0.06.01.FD
+ReplyLength=13
+Validate=FEFE64E00601FD.FEFEE064FBFD
+
+[pmSSB_L]
+Command=FEFE64E0.06.00.FD
+ReplyLength=13
+Validate=FEFE64E00600FD.FEFEE064FBFD
+
+[pmDIG_U]
+; if we want to use SSB-D modes we need 2 commands, fist set appropriate Sideband then set D-mode
+; problem is that since the D mode status requires a different poll ( FEFE64E0.1A.06.FD)
+; it always looks to the software like we are in SSB modes not SSB-D modes
+Command=FEFE64E0.06.01.FD.FEFE64E0.1A.06.01.FD
+ReplyLength=27
+Validate=FEFE64E00601FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD
+
+
+[pmDIG_L]
+Command=FEFE64E0.06.00.FD.FEFE64E0.1A.06.01.FD
+ReplyLength=27
+Validate=FEFE64E00600FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD
+
+
+[pmAM]
+Command=FEFE64E0.06.02.FD
+ReplyLength=13
+Validate=FEFE64E00602FD.FEFEE064FBFD
+
+[pmFM]
+Command=FEFE64E0.06.05.FD
+ReplyLength=13
+Validate=FEFE64E00605FD.FEFEE064FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE64E0.03.FD
+ReplyLength=17
+Validate=FEFE64E003FD.FEFEE064.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE64E0.04.FD
+ReplyLength=14
+Validate=FEFE64E004FD.FEFEE064.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|pmSSB_L
+Flag5=000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.05.0000|pmFM
+
+;we need an extended command to read the SSB D modes and this still doesn't tell us which sideband,
+; you have to read the Sideband THEN check to see What the 1A06 command returns (0= normal SSB 1= D mode)
+; how do we code for this? Does it even matter that we can't read this?
+
+[STATUS3]
+;need to read pitch offset in cw mode
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+Command=FEFE64E0.1409.FD
+ReplyLength=16
+Validate=FEFE64E01409FD.FEFEE0641409.0000.FD
+Value1=13|2|vfBcdBU|1|1|pmPitch
+
+[STATUS4]
+Command=FEFE64E0.1C00.FD
+ReplyLength=15
+Validate=FEFE64E01C00FD.FEFEE064.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
diff --git a/CATCheck/Rigs/IC-756 Pro III.ini b/CATCheck/Rigs/IC-756 Pro III.ini
new file mode 100644
index 0000000..52a3a76
--- /dev/null
+++ b/CATCheck/Rigs/IC-756 Pro III.ini
@@ -0,0 +1,229 @@
+;-------------------------------------------------------------------------------------
+; ICOM IC-756 Pro III command set
+;
+; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II
+; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II
+; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro
+; -address changed from 5C to 6E (Pro III) by VE3NEA
+;-------------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------------
+
+[INIT]
+;None
+
+;-------------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------------
+
+[pmFreqA]
+;Not supported
+
+[pmFreqB]
+;Not supported
+
+[pmFreq]
+;Set operating frequency
+Command=FEFE6EE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE6EE0050000000000FD.FEFEE06EFBFD
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;Set CW pitch
+Command=FEFE6EE0.14.09.0000.FD
+;300Hz=5 600Hz=128 900Hz=255
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+;Note: This command function was borrowed in total from the IC-756 Pro II command set,
+; with changes to make it recognized by the IC-756 Pro. It works more or less,
+; but needs additional tweaking. It was included since both the IC-756 Pro rig
+; and the Omni-Rig Client testing program support this function. K6JJ
+Value=6|2|vfBcdBU|1|1
+ReplyLength=15
+Validate=FEFE6EE014090000FD.FEFEE06EFBFD
+
+;-------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------------
+
+[pmSplitOn]
+;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency)
+Command=FEFE6EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE6EE00F01FD.FEFEE06EFBFD
+
+[pmSplitOff]
+;Disable split operation, transmit and receive frequencies set to VFO A frequency
+Command=FEFE6EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE6EE00F00FD.FEFEE06EFBFD
+
+[pmVfoA]
+;Set receiver to VFO A frequency
+Command=FEFE6EE0.07D0.FD
+ReplyLength=13
+Validate=FEFE6EE007D0FD.FEFEE06EFBFD
+
+[pmVfoB]
+;Set receiver to VFO B frequency
+Command=FEFE6EE0.07D1.FD
+ReplyLength=13
+Validate=FEFE6EE007D1FD.FEFEE06EFBFD
+
+[pmVfoEqual]
+;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO)
+Command=FEFE6EE0.07B1.FD
+ReplyLength=13
+Validate=FEFE6EE007B1FD.FEFEE06EFBFD
+
+[pmVfoSwap]
+;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO)
+Command=FEFE6EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE6EE007B0FD.FEFEE06EFBFD
+
+[pmVfoAA]
+;Not supported
+
+[pmVfoAB]
+;Not supported
+
+[pmVfoBA]
+;Not supported
+
+[pmVfoBB]
+;Not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+;Enable the receive mode
+Command=FEFE6EE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE6EE01C0000FD.FEFEE06EFBFD
+
+[pmTx]
+;Enable the transmit mode
+Command=FEFE6EE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE6EE01C0001FD.FEFEE06EFBFD
+
+;-------------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------------
+
+[pmCW_U]
+;Set the CW mode
+Command=FEFE6EE0.06.03.FD
+ReplyLength=13
+Validate=FEFE6EE00603FD.FEFEE06EFBFD
+
+[pmCW_L]
+;Set the CW-R mode
+Command=FEFE6EE0.06.07.FD
+ReplyLength=13
+Validate=FEFE6EE00607FD.FEFEE06EFBFD
+
+[pmSSB_U]
+;Set the USB mode
+Command=FEFE6EE0.06.01.FD
+ReplyLength=13
+Validate=FEFE6EE00601FD.FEFEE06EFBFD
+
+[pmSSB_L]
+;Set the LSB mode
+Command=FEFE6EE0.06.00.FD
+ReplyLength=13
+Validate=FEFE6EE00600FD.FEFEE06EFBFD
+
+[pmDIG_U]
+;Set the Digital RTTY mode (microphone muted)
+Command=FEFE6EE0.06.04.FD.FEFE6EE0.1A.06.04.FD
+ReplyLength=13
+Validate=FEFE6EE00604FD.FEFEE06EFBFD
+
+[pmDIG_L]
+;Set the Digital RTTY-R mode (microphone muted)
+Command=FEFE6EE0.06.08.FD.FEFE6EE0.1A.06.08.FD
+ReplyLength=13
+Validate=FEFE6EE00608FD.FEFEE06EFBFD
+
+[pmAM]
+;Set the AM mode
+Command=FEFE6EE0.06.02.FD
+ReplyLength=13
+Validate=FEFE6EE00602FD.FEFEE06EFBFD
+
+[pmFM]
+;Set the FM mode
+Command=FEFE6EE0.06.05.FD
+ReplyLength=13
+Validate=FEFE6EE00605FD.FEFEE06EFBFD
+
+;-------------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------------
+
+[STATUS1]
+;Read the operating frequency
+Command=FEFE6EE0.03.FD
+ReplyLength=17
+Validate=FEFE6EE003FD.FEFEE06E.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;Read the operating mode
+Command=FEFE6EE0.04.FD
+ReplyLength=14
+Validate=FEFE6EE004FD.FEFEE06E.04.0000.FD
+Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag2=000000000000.0000000000.01.0000|pmSSB_U
+Flag3=000000000000.0000000000.02.0000|pmAM
+Flag4=000000000000.0000000000.03.0000|pmCW_U
+Flag5=000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.05.0000|pmFM
+Flag7=000000000000.0000000000.07.0000|pmCW_L
+Flag8=000000000000.0000000000.08.0000|pmDIG_L
+
+[STATUS3]
+;Read the CW pitch
+;need to read pitch offset in cw mode
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+;Note: Also see the comments included with: Set CW Pitch K6JJ
+Command=FEFE6EE0.1409.FD
+ReplyLength=16
+Validate=FEFE6EE01409FD.FEFEE06E1409.0000.FD
+Value1=13|2|vfBcdBU|1|1|pmPitch
+
+[STATUS4]
+;Read the transmit or receive mode
+Command=FEFE6EE0.1C00.FD
+ReplyLength=15
+Validate=FEFE6EE01C00FD.FEFEE06E.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
+
+
+
diff --git a/CATCheck/Rigs/IC-756 Pro II_LSB.ini b/CATCheck/Rigs/IC-756 Pro II_LSB.ini
new file mode 100644
index 0000000..8faab23
--- /dev/null
+++ b/CATCheck/Rigs/IC-756 Pro II_LSB.ini
@@ -0,0 +1,244 @@
+;-------------------------------------------------------------------------------
+; Icom IC-756 Pro II command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; Modified by Brendan EI6IZ ei6iz@oceanfree.net
+; Modified by Grant AA9LC 1-18-18
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;disable transceive mode
+Command=FEFE64E0.1A0542.00.FD
+ReplyLength=15
+Validate=FEFE64E01A054200FD.FEFEE064FBFD
+
+[INIT2]
+;disable 731 mode
+Command=FEFE64E0.1A0543.00.FD
+ReplyLength=15
+Validate=FEFE64E01A054300FD.FEFEE064FBFD
+
+; Original INIT3 set normal CW to USB. This version sets normal CW to LSB - AA9LC 11-18-18
+[INIT3]
+;set CW normal to upper sideband (back to LSB AA9LC 11-18-18 - 00.FD instead of 01.FD)
+Command=FEFE64E0.1A0567.00.FD
+ReplyLength=15
+Validate=FEFE64E01A056700FD.FEFEE064FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE64E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE64E0050000000000FD.FEFEE064FBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+
+
+Command=FEFE64E0.14.09.0000.FD
+;300Hz=5 600Hz=128 900Hz=255
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+
+Value=6|2|vfBcdBU|1|1
+ReplyLength=15
+Validate=FEFE64E014090000FD.FEFEE064FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE64E0.0F01.FD
+ReplyLength=13
+Validate=FEFE64E00F01FD.FEFEE064FBFD
+
+[pmSplitOff]
+Command=FEFE64E0.0F00.FD
+ReplyLength=13
+Validate=FEFE64E00F00FD.FEFEE064FBFD
+
+[pmVfoA]
+;not supported
+;It's possible to select which VFO is active on the display & used for data entry,
+;this isn't usually the receive VFO, perhaps this is what you want however?
+
+Command=FEFE64E0.07D0.FD
+ReplyLength=13
+Validate=FEFE64E007D0FD.FEFEE064FBFD
+
+
+[pmVfoB]
+Command=FEFE64E0.07D1.FD
+ReplyLength=13
+Validate=FEFE64E007D1FD.FEFEE064FBFD
+
+
+[pmVfoEqual]
+Command=FEFE64E0.07B1.FD
+ReplyLength=13
+Validate=FEFE64E007B1FD.FEFEE064FBFD
+
+[pmVfoSwap]
+Command=FEFE64E0.07B0.FD
+ReplyLength=13
+Validate=FEFE64E007B0FD.FEFEE064FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE64E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE64E01C0000FD.FEFEE064FBFD
+
+[pmTx]
+;is 00 after 1C required or err in doc?
+; Yes we require the 00 following the 1C
+Command=FEFE64E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE64E01C0001FD.FEFEE064FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;swapped this around to correct for the removal of INIT3
+Command=FEFE64E0.06.07.FD
+ReplyLength=13
+Validate=FEFE64E00607FD.FEFEE064FBFD
+
+
+[pmCW_L]
+;swapped this around to correct for the removal of INIT3
+Command=FEFE64E0.06.03.FD
+ReplyLength=13
+Validate=FEFE64E00603FD.FEFEE064FBFD
+
+[pmSSB_U]
+Command=FEFE64E0.06.01.FD
+ReplyLength=13
+Validate=FEFE64E00601FD.FEFEE064FBFD
+
+[pmSSB_L]
+Command=FEFE64E0.06.00.FD
+ReplyLength=13
+Validate=FEFE64E00600FD.FEFEE064FBFD
+
+[pmDIG_U]
+; if we want to use SSB-D modes we need 2 commands, fist set appropriate Sideband then set D-mode
+; problem is that since the D mode status requires a different poll ( FEFE64E0.1A.06.FD)
+; it always looks to the software like we are in SSB modes not SSB-D modes
+Command=FEFE64E0.06.01.FD.FEFE64E0.1A.06.01.FD
+ReplyLength=27
+Validate=FEFE64E00601FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD
+
+
+[pmDIG_L]
+Command=FEFE64E0.06.00.FD.FEFE64E0.1A.06.01.FD
+ReplyLength=27
+Validate=FEFE64E00600FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD
+
+
+[pmAM]
+Command=FEFE64E0.06.02.FD
+ReplyLength=13
+Validate=FEFE64E00602FD.FEFEE064FBFD
+
+[pmFM]
+Command=FEFE64E0.06.05.FD
+ReplyLength=13
+Validate=FEFE64E00605FD.FEFEE064FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE64E0.03.FD
+ReplyLength=17
+Validate=FEFE64E003FD.FEFEE064.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE64E0.04.FD
+ReplyLength=14
+Validate=FEFE64E004FD.FEFEE064.04.0000.FD
+;is filter byte appended to the mode byte?
+; (Flags 1 & 2 were wrong -- switched .03 and .07 values to get CW and CW-R back to normal -- AA9LC)
+Flag1=000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.01.0000|pmSSB_U
+; New Flag4 below is from 756-Pro.ini file by K6JJ -- AA9LC)
+Flag4=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L
+;Flag4=000000000000.0000000000.FF.0000|pmSSB_L (this is the original Flag4 code -- AA9LC)
+Flag5=000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.05.0000|pmFM
+
+; we need an extended command to read the SSB D modes and this still doesn't tell us which sideband,
+; you have to read the Sideband THEN check to see What the 1A06 command returns (0= normal SSB 1= D mode)
+; how do we code for this? Does it even matter that we can't read this?
+
+[STATUS3]
+;need to read pitch offset in cw mode
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+Command=FEFE64E0.1409.FD
+ReplyLength=16
+Validate=FEFE64E01409FD.FEFEE0641409.0000.FD
+Value1=13|2|vfBcdBU|1|1|pmPitch
+
+[STATUS4]
+Command=FEFE64E0.1C00.FD
+ReplyLength=15
+Validate=FEFE64E01C00FD.FEFEE064.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
\ No newline at end of file
diff --git a/CATCheck/Rigs/IC-756 Pro ini comments.txt b/CATCheck/Rigs/IC-756 Pro ini comments.txt
new file mode 100644
index 0000000..6af4e9e
--- /dev/null
+++ b/CATCheck/Rigs/IC-756 Pro ini comments.txt
@@ -0,0 +1,51 @@
+Comments from K6JJ for the ICOM IC-756 Pro.ini file, version 29 MAY 05:
+
+1. This rig does not support the function to turn the CI-V Transceive mode on and off, which apparently
+the IC-756 Pro II can do. I found no difference in the operation of Omni-Rig Client (the .ini testing
+program) or Band Master with the mode on or off. However, when using the IC-756 Pro with a rig control
+program such as TRX-Manager, I had to turn this mode on or changes made at the rig would not show
+up in the software program display. Depending upon your station configuration, you may find the need
+to manually adjust this function to on or off in the rig set/others menu.
+
+2. The IC-756 Pro has a smaller set of commands when compared to the IC-756 Pro II command set. Thus,
+certain commands that Omni-Rig supports are not supported by the IC-756 Pro.
+
+3. The commands for setting and reading the CW Pitch Frequency were copied from the IC-756 Pro II.ini file.
+They seem to work when changes were made to them so that the IC-756 Pro would recognize the control codes,
+but they seem to need some refinement, as mentioned in the .ini file remarks for both rigs.
+
+4. When using the Band Master program, the following mode conversions apply:
+
+Band Master Mode IC-756 Pro Mode
+CW-U CW
+CW-L CW-R
+USB USB
+LSB LSB
+DIG-U RTTY
+DIG-L RTTY-R
+AM AM
+FM FM
+
+Selecting the wanted Band Master mode will set-up the IC-756 Pro for the corresponding mode.
+
+5. When using the Band Master program, the following function buttons do not operate with the IC-756 Pro,
+and are grayed out:
+
+SPLIT (see #6 below)
+RIT
+XIT
+
+6. The Band Master program TX offset button, when clicked, sets the IC-756 Pro to the Split mode and
+sets the transmit VFO to the frequency of the receive VFO. No transmit frequency offset is added.
+Double clicking this button makes the same change. To disable the Split mode, click on the band in-use
+button.
+
+7. If you can improve on the IC-756 Pro.ini file and/or these comments, please do so. I knew nothing
+about the IC-756 Pro rig control functions, Omni-Rig and Band Master, when I started to develop the .ini
+file. I appreciated having the IC-756 Pro II.ini file already developed, which aided me greatly. I also
+appreciate the Omni-Rig concept.
+
+73,
+John
+K6JJ
+
diff --git a/CATCheck/Rigs/IC-756 Pro.ini b/CATCheck/Rigs/IC-756 Pro.ini
new file mode 100644
index 0000000..7cbdc99
--- /dev/null
+++ b/CATCheck/Rigs/IC-756 Pro.ini
@@ -0,0 +1,228 @@
+;-------------------------------------------------------------------------------------
+; ICOM IC-756 Pro command set, version 29 MAY 05
+;
+; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II
+; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II
+; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro
+;-------------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------------
+
+[INIT]
+;None
+
+;-------------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------------
+
+[pmFreqA]
+;Not supported
+
+[pmFreqB]
+;Not supported
+
+[pmFreq]
+;Set operating frequency
+Command=FEFE5CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE5CE0050000000000FD.FEFEE05CFBFD
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;Set CW pitch
+Command=FEFE5CE0.14.09.0000.FD
+;300Hz=5 600Hz=128 900Hz=255
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+;Note: This command function was borrowed in total from the IC-756 Pro II command set,
+; with changes to make it recognized by the IC-756 Pro. It works more or less,
+; but needs additional tweaking. It was included since both the IC-756 Pro rig
+; and the Omni-Rig Client testing program support this function. K6JJ
+Value=6|2|vfBcdBU|1|1
+ReplyLength=15
+Validate=FEFE5CE014090000FD.FEFEE05CFBFD
+
+;-------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------------
+
+[pmSplitOn]
+;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency)
+Command=FEFE5CE0.0F01.FD
+ReplyLength=13
+Validate=FEFE5CE00F01FD.FEFEE05CFBFD
+
+[pmSplitOff]
+;Disable split operation, transmit and receive frequencies set to VFO A frequency
+Command=FEFE5CE0.0F00.FD
+ReplyLength=13
+Validate=FEFE5CE00F00FD.FEFEE05CFBFD
+
+[pmVfoA]
+;Set receiver to VFO A frequency
+Command=FEFE5CE0.07D0.FD
+ReplyLength=13
+Validate=FEFE5CE007D0FD.FEFEE05CFBFD
+
+[pmVfoB]
+;Set receiver to VFO B frequency
+Command=FEFE5CE0.07D1.FD
+ReplyLength=13
+Validate=FEFE5CE007D1FD.FEFEE05CFBFD
+
+[pmVfoEqual]
+;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO)
+Command=FEFE5CE0.07B1.FD
+ReplyLength=13
+Validate=FEFE5CE007B1FD.FEFEE05CFBFD
+
+[pmVfoSwap]
+;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO)
+Command=FEFE5CE0.07B0.FD
+ReplyLength=13
+Validate=FEFE5CE007B0FD.FEFEE05CFBFD
+
+[pmVfoAA]
+;Not supported
+
+[pmVfoAB]
+;Not supported
+
+[pmVfoBA]
+;Not supported
+
+[pmVfoBB]
+;Not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+;Enable the receive mode
+Command=FEFE5CE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE5CE01C0000FD.FEFEE05CFBFD
+
+[pmTx]
+;Enable the transmit mode
+Command=FEFE5CE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE5CE01C0001FD.FEFEE05CFBFD
+
+;-------------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------------
+
+[pmCW_U]
+;Set the CW mode
+Command=FEFE5CE0.06.03.FD
+ReplyLength=13
+Validate=FEFE5CE00603FD.FEFEE05CFBFD
+
+[pmCW_L]
+;Set the CW-R mode
+Command=FEFE5CE0.06.07.FD
+ReplyLength=13
+Validate=FEFE5CE00607FD.FEFEE05CFBFD
+
+[pmSSB_U]
+;Set the USB mode
+Command=FEFE5CE0.06.01.FD
+ReplyLength=13
+Validate=FEFE5CE00601FD.FEFEE05CFBFD
+
+[pmSSB_L]
+;Set the LSB mode
+Command=FEFE5CE0.06.00.FD
+ReplyLength=13
+Validate=FEFE5CE00600FD.FEFEE05CFBFD
+
+[pmDIG_U]
+;Set the Digital RTTY mode (microphone muted)
+Command=FEFE5CE0.06.04.FD.FEFE5CE0.1A.06.04.FD
+ReplyLength=13
+Validate=FEFE5CE00604FD.FEFEE05CFBFD
+
+[pmDIG_L]
+;Set the Digital RTTY-R mode (microphone muted)
+Command=FEFE5CE0.06.08.FD.FEFE5CE0.1A.06.08.FD
+ReplyLength=13
+Validate=FEFE5CE00608FD.FEFEE05CFBFD
+
+[pmAM]
+;Set the AM mode
+Command=FEFE5CE0.06.02.FD
+ReplyLength=13
+Validate=FEFE5CE00602FD.FEFEE05CFBFD
+
+[pmFM]
+;Set the FM mode
+Command=FEFE5CE0.06.05.FD
+ReplyLength=13
+Validate=FEFE5CE00605FD.FEFEE05CFBFD
+
+;-------------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------------
+
+[STATUS1]
+;Read the operating frequency
+Command=FEFE5CE0.03.FD
+ReplyLength=17
+Validate=FEFE5CE003FD.FEFEE05C.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;Read the operating mode
+Command=FEFE5CE0.04.FD
+ReplyLength=14
+Validate=FEFE5CE004FD.FEFEE05C.04.0000.FD
+Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag2=000000000000.0000000000.01.0000|pmSSB_U
+Flag3=000000000000.0000000000.02.0000|pmAM
+Flag4=000000000000.0000000000.03.0000|pmCW_U
+Flag5=000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.05.0000|pmFM
+Flag7=000000000000.0000000000.07.0000|pmCW_L
+Flag8=000000000000.0000000000.08.0000|pmDIG_L
+
+[STATUS3]
+;Read the CW pitch
+;need to read pitch offset in cw mode
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+;Note: Also see the comments included with: Set CW Pitch K6JJ
+Command=FEFE5CE0.1409.FD
+ReplyLength=16
+Validate=FEFE5CE01409FD.FEFEE05C1409.0000.FD
+Value1=13|2|vfBcdBU|1|1|pmPitch
+
+[STATUS4]
+;Read the transmit or receive mode
+Command=FEFE5CE0.1C00.FD
+ReplyLength=15
+Validate=FEFE5CE01C00FD.FEFEE05C.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
+
+
+
diff --git a/CATCheck/Rigs/IC-756.ini b/CATCheck/Rigs/IC-756.ini
new file mode 100644
index 0000000..bdc209d
--- /dev/null
+++ b/CATCheck/Rigs/IC-756.ini
@@ -0,0 +1,214 @@
+;-------------------------------------------------------------------------------------
+; ICOM IC-756 command set, version 18 JUN 06
+;
+; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II
+; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II
+; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro
+; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756
+; -Modified by UT5TS, read status commands added
+;-------------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------------
+
+[INIT]
+;stop scan
+Command=FEFE50E0.0E.00.FD
+ReplyLength=13
+Validate=FEFE50E00E00FD.FEFEE050FBFD
+
+;-------------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------------
+
+[pmFreqA]
+;Not supported
+
+[pmFreqB]
+;Not supported
+
+[pmFreq]
+;Set operating frequency
+Command=FEFE50E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE50E0050000000000FD.FEFEE050FBFD
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;Set CW pitch
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------------
+
+[pmSplitOn]
+;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency)
+Command=FEFE50E0.0F01.FD
+ReplyLength=13
+Validate=FEFE50E00F01FD.FEFEE050FBFD
+
+[pmSplitOff]
+;Disable split operation, transmit and receive frequencies set to VFO A frequency
+Command=FEFE50E0.0F00.FD
+ReplyLength=13
+Validate=FEFE50E00F00FD.FEFEE050FBFD
+
+[pmVfoA]
+;Set receiver to VFO A frequency
+Command=FEFE50E0.07D0.FD
+ReplyLength=13
+Validate=FEFE50E007D0FD.FEFEE050FBFD
+
+[pmVfoB]
+;Set receiver to VFO B frequency
+Command=FEFE50E0.07D1.FD
+ReplyLength=13
+Validate=FEFE50E007D1FD.FEFEE050FBFD
+
+[pmVfoEqual]
+;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO)
+Command=FEFE50E0.07B1.FD
+ReplyLength=13
+Validate=FEFE50E007B1FD.FEFEE050FBFD
+
+[pmVfoSwap]
+;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO)
+Command=FEFE50E0.07B0.FD
+ReplyLength=13
+Validate=FEFE50E007B0FD.FEFEE050FBFD
+
+[pmVfoAA]
+;Not supported
+
+[pmVfoAB]
+;Not supported
+
+[pmVfoBA]
+;Not supported
+
+[pmVfoBB]
+;Not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+;Enable the receive mode
+;Not supported
+
+[pmTx]
+;Enable the transmit mode
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------------
+
+[pmCW_U]
+;Set the CW mode
+Command=FEFE50E0.06.03.FD
+ReplyLength=13
+Validate=FEFE50E00603FD.FEFEE050FBFD
+
+[pmCW_L]
+;Set the CW-R mode
+;Not supported
+
+[pmSSB_U]
+;Set the USB mode
+Command=FEFE50E0.06.01.FD
+ReplyLength=13
+Validate=FEFE50E00601FD.FEFEE050FBFD
+
+[pmSSB_L]
+;Set the LSB mode
+Command=FEFE50E0.06.00.FD
+ReplyLength=13
+Validate=FEFE50E00600FD.FEFEE050FBFD
+
+[pmDIG_U]
+;Set the Digital RTTY mode (microphone muted)
+Command=FEFE50E0.06.04.FD
+ReplyLength=13
+Validate=FEFE50E00604FD.FEFEE050FBFD
+
+[pmDIG_L]
+;Set the Digital RTTY-R mode (microphone muted)
+;Not supported
+
+[pmAM]
+;Set the AM mode
+Command=FEFE50E0.06.02.FD
+ReplyLength=13
+Validate=FEFE50E00602FD.FEFEE050FBFD
+
+[pmFM]
+;Set the FM mode
+Command=FEFE50E0.06.05.FD
+ReplyLength=13
+Validate=FEFE50E00605FD.FEFEE050FBFD
+
+;-------------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------------
+[STATUS1]
+;Read the operating frequency
+Command=FEFE50E0.03.FD
+ReplyLength=17
+Validate=FEFE50E003FD.FEFEE050.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;Read the operating mode
+Command=FEFE50E0.04.FD
+ReplyLength=14
+Validate=FEFE50E004FD.FEFEE050.04.0000.FD
+Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag2=000000000000.0000000000.01.0000|pmSSB_U
+Flag3=000000000000.0000000000.02.0000|pmAM
+Flag4=000000000000.0000000000.03.0000|pmCW_U
+Flag5=000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.05.0000|pmFM
+Flag7=000000000000.0000000000.07.0000|pmCW_L
+Flag8=000000000000.0000000000.08.0000|pmDIG_L
+
+[STATUS3]
+;Read the CW pitch
+;need to read pitch offset in cw mode
+;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
+;how do we scale for this?
+;Note: Also see the comments included with: Set CW Pitch K6JJ
+Command=FEFE50E0.1409.FD
+ReplyLength=16
+Validate=FEFE50E01409FD.FEFEE0501409.0000.FD
+Value1=13|2|vfBcdBU|1|1|pmPitch
+
+[STATUS4]
+;Read the transmit or receive mode
+Command=FEFE50E0.1C00.FD
+ReplyLength=15
+Validate=FEFE50E01C00FD.FEFEE050.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
+
+
+
diff --git a/CATCheck/Rigs/IC-7600.ini b/CATCheck/Rigs/IC-7600.ini
new file mode 100644
index 0000000..3543745
--- /dev/null
+++ b/CATCheck/Rigs/IC-7600.ini
@@ -0,0 +1,148 @@
+;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+;
+; Icom IC-7600 Omni-Rig commands
+;
+; File created by: Makoto Kasahara / JN1GLB : jn1glb@jarl.com
+;
+;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+;--------------------------------------------------------------------------
+; Initialize the radio
+;--------------------------------------------------------------------------
+
+;
+;
+;
+[INIT1]
+Command=FEFE7AE0.1A050092.00.FD
+ReplyLength=16
+Validate=FEFE7AE01A05009200FD.FEFEE07AFBFD
+
+
+;--------------------------------------------------------------------------
+; Set frequency
+;--------------------------------------------------------------------------
+
+; Set operating frequency
+[pmFreq]
+Command=FEFE7AE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE7AE0050000000000FD.FEFEE07AFBFD
+
+
+;--------------------------------------------------------------------------
+; Set Split, Rx & Tx
+;--------------------------------------------------------------------------
+
+; Turn Split function on
+[pmSplitOn]
+Command=FEFE7AE0.0F01.FD
+ReplyLength=13
+Validate=FEFE7AE00F01FD.FEFEE07AFBFD
+
+; Turn Split function off
+[pmSplitOff]
+Command=FEFE7AE0.0F00.FD
+ReplyLength=13
+Validate=FEFE7AE00F00FD.FEFEE07AFBFD
+
+; Enable receive mode
+[pmRx]
+Command=FEFE7AE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE7AE01C0000FD.FEFEE07AFBFD
+
+; Enable transmit mode
+[pmTx]
+Command=FEFE7AE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE7AE01C0001FD.FEFEE07AFBFD
+
+
+;--------------------------------------------------------------------------
+; Set modes of the radio
+;--------------------------------------------------------------------------
+
+; Upper sideband CW
+[pmCW_U]
+Command=FEFE7AE0.06.07.FD
+ReplyLength=13
+Validate=FEFE7AE00607FD.FEFEE07AFBFD
+
+; Lower sideband CW
+[pmCW_L]
+Command=FEFE7AE0.06.03.FD
+ReplyLength=13
+Validate=FEFE7AE00603FD.FEFEE07AFBFD
+
+; USB
+[pmSSB_U]
+Command=FEFE7AE0.06.01.FD
+ReplyLength=13
+Validate=FEFE7AE00601FD.FEFEE07AFBFD
+
+; LSB
+[pmSSB_L]
+Command=FEFE7AE0.06.00.FD
+ReplyLength=13
+Validate=FEFE7AE00600FD.FEFEE07AFBFD
+
+; Upper sideband digital modes
+[pmDIG_U]
+Command=FEFE7AE0.06.08.FD
+ReplyLength=13
+Validate=FEFE7AE00608FD.FEFEE07AFBFD
+
+; Lower sideband digital modes
+[pmDIG_L]
+Command=FEFE7AE0.06.04.FD
+ReplyLength=13
+Validate=FEFE7AE00604FD.FEFEE07AFBFD
+
+; AM
+[pmAM]
+Command=FEFE7AE0.06.02.FD
+ReplyLength=13
+Validate=FEFE7AE00602FD.FEFEE07AFBFD
+
+; FM
+[pmFM]
+Command=FEFE7AE0.06.05.FD
+ReplyLength=13
+Validate=FEFE7AE00605FD.FEFEE07AFBFD
+
+
+;------------------------------------------------------------------------
+; Read the status of the radio
+;------------------------------------------------------------------------
+
+; Read the current frequency
+[STATUS1]
+Command=FEFE7AE0.03.FD
+ReplyLength=17
+Validate=FEFE7AE003FD.FEFEE07A.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+; Read the current operating mode
+[STATUS2]
+Command=FEFE7AE0.04.FD
+ReplyLength=14
+Validate=FEFE7AE004FD.FEFEE07A.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+; Are we in Rx or Tx?
+[STATUS3]
+Command=FEFE7AE0.1C00.FD
+ReplyLength=15
+Validate=FEFE7AE01C00FD.FEFEE07A.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
diff --git a/CATCheck/Rigs/IC-7600v2.ini b/CATCheck/Rigs/IC-7600v2.ini
new file mode 100644
index 0000000..263de9a
--- /dev/null
+++ b/CATCheck/Rigs/IC-7600v2.ini
@@ -0,0 +1,279 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7600 ver. 2.00 firmware command set
+;
+; IC-7600v2 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: N6TV @ KE1B & HRO Sunnyvale, CA
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE7AE0.1A050097.00.FD
+ReplyLength=16
+Validate=FEFE7AE01A05009700FD.FEFEE07AFBFD
+
+[INIT2]
+;disable RS-232C decode, use CI-V
+Command=FEFE7AE0.1A050098.00.FD
+ReplyLength=16
+Validate=FEFE7AE01A05009800FD.FEFEE07AFBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE7AE0.1A050089.00.FD
+ReplyLength=16
+Validate=FEFE7AE01A05008900FD.FEFEE07AFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE7AE0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE7AE025000000000000FD.FEFEE07AFBFD
+
+[pmFreqB]
+Command=FEFE7AE0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE7AE025010000000000FD.FEFEE07AFBFD
+
+[pmFreq]
+Command=FEFE7AE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE7AE0050000000000FD.FEFEE07AFBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE7AE0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE7AE02100000000FD.FEFEE07AFBFD
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE7AE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE7AE014090000FD.FEFEE07AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE7AE0.0F01.FD
+ReplyLength=13
+Validate=FEFE7AE00F01FD.FEFEE07AFBFD
+
+[pmSplitOff]
+Command=FEFE7AE0.0F00.FD
+ReplyLength=13
+Validate=FEFE7AE00F00FD.FEFEE07AFBFD
+
+[pmVfoA]
+Command=FEFE7AE0.07D0.FD
+ReplyLength=13
+Validate=FEFE7AE007D0FD.FEFEE07AFBFD
+
+[pmVfoB]
+Command=FEFE7AE0.07D1.FD
+ReplyLength=13
+Validate=FEFE7AE007D1FD.FEFEE07AFBFD
+
+[pmVfoEqual]
+Command=FEFE7AE0.07B1.FD
+ReplyLength=13
+Validate=FEFE7AE007B1FD.FEFEE07AFBFD
+
+[pmVfoSwap]
+Command=FEFE7AE0.07B0.FD
+ReplyLength=13
+Validate=FEFE7AE007B0FD.FEFEE07AFBFD
+
+[pmVfoAA]
+Command=FEFE7AE0.07D0.FD.FEFE7AE0.0F00.FD
+ReplyLength=20
+Validate=FEFE7AE007D0FD.FEFE7AE00F00FD.FEFEE07AFBFD
+
+[pmVfoAB]
+Command=FEFE7AE0.07D0.FD.FEFE7AE0.0F01.FD
+ReplyLength=20
+Validate=FEFE7AE007D0FD.FEFE7AE00F01FD.FEFEE07AFBFD
+
+[pmVfoBA]
+Command=FEFE7AE0.07D1.FD.FEFE7AE0.0F01.FD
+ReplyLength=20
+Validate=FEFE7AE007D1FD.FEFE7AE00F01FD.FEFEE07AFBFD
+
+[pmVfoBB]
+Command=FEFE7AE0.07D1.FD.FEFE7AE0.0F00.FD
+ReplyLength=20
+Validate=FEFE7AE007D1FD.FEFE7AE00F00FD.FEFEE07AFBFD
+
+[pmRitOn]
+Command=FEFE7AE0.21.0101.FD
+ReplyLength=14
+Validate=FEFE7AE0210101FD.FEFEE07AFBFD
+
+[pmRitOff]
+Command=FEFE7AE0.21.0100.FD
+ReplyLength=14
+Validate=FEFE7AE0210100FD.FEFEE07AFBFD
+
+[pmXitOn]
+Command=FEFE7AE0.21.0201.FD
+ReplyLength=14
+Validate=FEFE7AE0210201FD.FEFEE07AFBFD
+
+[pmXitOff]
+Command=FEFE7AE0.21.0200.FD
+ReplyLength=14
+Validate=FEFE7AE0210200FD.FEFEE07AFBFD
+
+[pmRx]
+Command=FEFE7AE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE7AE01C0000FD.FEFEE07AFBFD
+
+[pmTx]
+Command=FEFE7AE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE7AE01C0001FD.FEFEE07AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE7AE0.06.07.FD
+ReplyLength=13
+Validate=FEFE7AE00607FD.FEFEE07AFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE7AE0.06.03.FD
+ReplyLength=13
+Validate=FEFE7AE00603FD.FEFEE07AFBFD
+
+[pmSSB_U]
+Command=FEFE7AE0.06.01.FD
+ReplyLength=13
+Validate=FEFE7AE00601FD.FEFEE07AFBFD
+
+[pmSSB_L]
+Command=FEFE7AE0.06.00.FD
+ReplyLength=13
+Validate=FEFE7AE00600FD.FEFEE07AFBFD
+
+[pmDIG_U]
+Command=FEFE7AE0.06.08.FD
+ReplyLength=13
+Validate=FEFE7AE00608FD.FEFEE07AFBFD
+
+[pmDIG_L]
+Command=FEFE7AE0.06.04.FD
+ReplyLength=13
+Validate=FEFE7AE00604FD.FEFEE07AFBFD
+
+[pmAM]
+Command=FEFE7AE0.06.02.FD
+ReplyLength=13
+Validate=FEFE7AE00602FD.FEFEE07AFBFD
+
+[pmFM]
+Command=FEFE7AE0.06.05.FD
+ReplyLength=13
+Validate=FEFE7AE00605FD.FEFEE07AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+; Read transmit freq.
+Command=FEFE7AE0.1C03.FD
+ReplyLength=19
+Validate=FEFE7AE01C03FD.FEFEE07A.1C03.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE7AE0.04.FD
+ReplyLength=14
+Validate=FEFE7AE004FD.FEFEE07A.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE7AE0.1409.FD
+ReplyLength=16
+Validate=FEFE7AE01409FD.FEFEE07A.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE7AE0.1C00.FD
+ReplyLength=15
+Validate=FEFE7AE01C00FD.FEFEE07A.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS5]
+Command=FEFE7AE0.2500.FD
+ReplyLength=19
+Validate=FEFE7AE02500FD.FEFEE07A.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS6]
+Command=FEFE7AE0.2501.FD
+ReplyLength=19
+Validate=FEFE7AE02501FD.FEFEE07A.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS7]
+Command=FEFE7AE0.0F.FD
+ReplyLength=13
+Validate=FEFE7AE00FFD.FEFEE07A.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS8]
+Command=FEFE7AE0.2101.FD
+ReplyLength=15
+Validate=FEFE7AE02101FD.FEFEE07A.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS9]
+Command=FEFE7AE0.2102.FD
+ReplyLength=15
+Validate=FEFE7AE02102FD.FEFEE07A.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS10]
+Command=FEFE7AE0.07D2.FD
+ReplyLength=15
+Validate=FEFE7AE007D2FD.FEFEE07A.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-761.ini b/CATCheck/Rigs/IC-761.ini
new file mode 100644
index 0000000..acbdc8a
--- /dev/null
+++ b/CATCheck/Rigs/IC-761.ini
@@ -0,0 +1,165 @@
+;-------------------------------------------------------------------------------
+; Icom IC-761 command set
+;
+; File created by Lou Sica, AC0X lsica@comcast.net
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE1EE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE1EE0050000000000FD.FEFE001EFBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+Command=FEFE1EE0.0700.FD
+ReplyLength=13
+Validate=FEFE1EE00700FD.FEFE001EFBFD
+
+[pmVfoB]
+Command=FEFE1EE0.0701.FD
+ReplyLength=13
+Validate=FEFE1EE00701FD.FEFE001EFBFD
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE1EE0.06.03.FD
+ReplyLength=13
+Validate=FEFE1EE00603FD.FEFE001EFBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE1EE0.06.01.FD
+ReplyLength=13
+Validate=FEFE1EE00601FD.FEFE001EFBFD
+
+[pmSSB_L]
+Command=FEFE1EE0.06.00.FD
+ReplyLength=13
+Validate=FEFE1EE00600FD.FEFE001EFBFD
+
+[pmDIG_U]
+Command=FEFE1EE0.06.04.FD
+ReplyLength=13
+Validate=FEFE1EE00604FD.FEFE001EFBFD
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=FEFE1EE0.06.02.FD
+ReplyLength=13
+Validate=FEFE1EE00602FD.FEFE001EFBFD
+
+[pmFM]
+Command=FEFE1EE0.06.05.FD
+ReplyLength=13
+Validate=FEFE1EE00605FD.FEFE001EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE1EE0.03.FD
+ReplyLength=17
+Validate=FEFE1EE003FD.FEFE001E.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE1EE0.04.FD
+ReplyLength=13
+Validate=FEFE1EE004FD.FEFE001E.04.00.00
+Flag1=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_U
+Flag3=000000000000.0000000000.FF.00|000000000000.0000000000.01.00|pmSSB_U
+Flag4=000000000000.0000000000.FF.00|000000000000.0000000000.00.00|pmSSB_L
+Flag5=000000000000.0000000000.FF.00|000000000000.0000000000.04.00|pmDIG_U
+Flag7=000000000000.0000000000.FF.00|000000000000.0000000000.02.00|pmAM
+Flag8=000000000000.0000000000.FF.00|000000000000.0000000000.05.00|pmFM
diff --git a/CATCheck/Rigs/IC-7610-DATA.ini b/CATCheck/Rigs/IC-7610-DATA.ini
new file mode 100644
index 0000000..b399f83
--- /dev/null
+++ b/CATCheck/Rigs/IC-7610-DATA.ini
@@ -0,0 +1,274 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7610-DATA
+;
+; IC-7600-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net, 2018-04-16
+;
+; Tested by: Andy O'Brien, K3UK
+;
+; Same as IC-7610, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R
+; Note: Uses DATA2 MOD (aka Data Mode 2 or D2) so Modulation Input defaults to USB
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE98E0.1A050116.01.FD
+ReplyLength=16
+Validate=FEFE98E01A05011601FD.FEFEE098FBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE98E0.1A050112.00.FD
+ReplyLength=16
+Validate=FEFE98E01A05011200FD.FEFEE098FBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE98E0.1A050062.00.FD
+ReplyLength=16
+Validate=FEFE98E01A05006200FD.FEFEE098FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE98E0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE98E025000000000000FD.FEFEE098FBFD
+
+[pmFreqB]
+Command=FEFE98E0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE98E025010000000000FD.FEFEE098FBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE98E0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE98E02100000000FD.FEFEE098FBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE98E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE98E014090000FD.FEFEE098FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE98E0.0F01.FD
+ReplyLength=13
+Validate=FEFE98E00F01FD.FEFEE098FBFD
+
+[pmSplitOff]
+Command=FEFE98E0.0F00.FD
+ReplyLength=13
+Validate=FEFE98E00F00FD.FEFEE098FBFD
+
+[pmVfoA]
+Command=FEFE98E0.07D0.FD
+ReplyLength=13
+Validate=FEFE98E007D0FD.FEFEE098FBFD
+
+[pmVfoB]
+Command=FEFE98E0.07D1.FD
+ReplyLength=13
+Validate=FEFE98E007D1FD.FEFEE098FBFD
+
+[pmVfoEqual]
+Command=FEFE98E0.07B1.FD
+ReplyLength=13
+Validate=FEFE98E007B1FD.FEFEE098FBFD
+
+[pmVfoSwap]
+Command=FEFE98E0.07B0.FD
+ReplyLength=13
+Validate=FEFE98E007B0FD.FEFEE098FBFD
+
+[pmVfoAA]
+; not supported
+
+[pmVfoAB]
+; not supported
+
+[pmVfoBA]
+; not supported
+
+[pmVfoBB]
+; not supported
+
+[pmRitOn]
+Command=FEFE98E0.21.0101.FD
+ReplyLength=14
+Validate=FEFE98E0210101FD.FEFEE098FBFD
+
+[pmRitOff]
+Command=FEFE98E0.21.0100.FD
+ReplyLength=14
+Validate=FEFE98E0210100FD.FEFEE098FBFD
+
+[pmXitOn]
+Command=FEFE98E0.21.0201.FD
+ReplyLength=14
+Validate=FEFE98E0210201FD.FEFEE098FBFD
+
+[pmXitOff]
+Command=FEFE98E0.21.0200.FD
+ReplyLength=14
+Validate=FEFE98E0210200FD.FEFEE098FBFD
+
+[pmRx]
+Command=FEFE98E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE98E01C0000FD.FEFEE098FBFD
+
+[pmTx]
+Command=FEFE98E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE98E01C0001FD.FEFEE098FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE98E0.2600.07.FD
+ReplyLength=14
+Validate=FEFE98E0260007FD.FEFEE098FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE98E0.2600.03.FD
+ReplyLength=14
+Validate=FEFE98E0260003FD.FEFEE098FBFD
+
+[pmSSB_U]
+Command=FEFE98E0.2600.01.00.FD
+ReplyLength=15
+Validate=FEFE98E026000100FD.FEFEE098FBFD
+
+[pmSSB_L]
+Command=FEFE98E0.2600.00.00.FD
+ReplyLength=15
+Validate=FEFE98E026000000FD.FEFEE098FBFD
+
+[pmDIG_U]
+; These lines select USB-D Data Mode 2 (DATA2 MOD) which defaults to USB sound card modulation,
+; FIL1
+Command=FEFE98E0.2600.01.02.01.FD
+ReplyLength=16
+Validate=FEFE98E02600010201FD.FEFEE098FBFD
+
+[pmDIG_L]
+; These lines select LSB-D Data Mode 2 (DATA2 MOD) which defaults to USB sound card modulation,
+; FIL1
+Command=FEFE98E0.2600.00.02.01.FD
+ReplyLength=16
+Validate=FEFE98E02600000201FD.FEFEE098FBFD
+
+[pmAM]
+Command=FEFE98E0.2600.02.FD
+ReplyLength=14
+Validate=FEFE98E0260002FD.FEFEE098FBFD
+
+[pmFM]
+Command=FEFE98E0.2600.05.FD
+ReplyLength=14
+Validate=FEFE98E0260005FD.FEFEE098FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE98E0.2500.FD
+ReplyLength=19
+Validate=FEFE98E02500FD.FEFEE098.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE98E0.2501.FD
+ReplyLength=19
+Validate=FEFE98E02501FD.FEFEE098.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE98E0.2600.FD
+ReplyLength=17
+Validate=FEFE98E02600FD.FEFEE098.2600.000000.FD
+Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L
+Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U
+Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U
+Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L
+Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U
+Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L
+Flag71=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U
+Flag72=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010200.00|pmDIG_U
+Flag73=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010300.00|pmDIG_U
+Flag81=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L
+Flag82=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000200.00|pmDIG_L
+Flag83=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000300.00|pmDIG_L
+Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM
+Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM
+
+[STATUS4]
+Command=FEFE98E0.1409.FD
+ReplyLength=16
+Validate=FEFE98E01409FD.FEFEE098.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE98E0.1C00.FD
+ReplyLength=15
+Validate=FEFE98E01C00FD.FEFEE098.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE98E0.0F.FD
+ReplyLength=13
+Validate=FEFE98E00FFD.FEFEE098.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE98E0.2101.FD
+ReplyLength=15
+Validate=FEFE98E02101FD.FEFEE098.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS8]
+Command=FEFE98E0.2102.FD
+ReplyLength=15
+Validate=FEFE98E02102FD.FEFEE098.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS9]
+Command=FEFE98E0.07D2.FD
+ReplyLength=15
+Validate=FEFE98E007D2FD.FEFEE098.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-7610.ini b/CATCheck/Rigs/IC-7610.ini
new file mode 100644
index 0000000..2a53bd1
--- /dev/null
+++ b/CATCheck/Rigs/IC-7610.ini
@@ -0,0 +1,279 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7610
+;
+; IC-7610 File created by Ronald Albrecht, KC5KE
+;
+; Tested by: Ronald Albrecht, KC5KE
+; Andy O'Brien, K3UK
+;
+; Updated by: Bob Wilson, N6TV, n6tv@arrl.net 2/6/2018:
+; - Fix INIT1 and INIT2 (different for every Icom rig).
+; - Return pmFreqA and pmFreqB individually instead of pmFreq
+; - Fix pmVfoEqual, pmVfoA, pmVfoB
+; Updated by N6TV 2018-04-16:
+; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below
+; - Corrected pmVfoAA, pmVfoAB, pmVfoBA, pmVfoBB commands
+; - Removed pmVfoAA and pmVfoAB from STATUS (use pmVfoA and pmVfoB instead)
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE98E0.1A050116.01.FD
+ReplyLength=16
+Validate=FEFE98E01A05011601FD.FEFEE098FBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE98E0.1A050112.00.FD
+ReplyLength=16
+Validate=FEFE98E01A05011200FD.FEFEE098FBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE98E0.1A050062.00.FD
+ReplyLength=16
+Validate=FEFE98E01A05006200FD.FEFEE098FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE98E0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE98E025000000000000FD.FEFEE098FBFD
+
+[pmFreqB]
+Command=FEFE98E0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE98E025010000000000FD.FEFEE098FBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE98E0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE98E02100000000FD.FEFEE098FBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE98E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE98E014090000FD.FEFEE098FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE98E0.0F01.FD
+ReplyLength=13
+Validate=FEFE98E00F01FD.FEFEE098FBFD
+
+[pmSplitOff]
+Command=FEFE98E0.0F00.FD
+ReplyLength=13
+Validate=FEFE98E00F00FD.FEFEE098FBFD
+
+[pmVfoA]
+Command=FEFE98E0.07D0.FD
+ReplyLength=13
+Validate=FEFE98E007D0FD.FEFEE098FBFD
+
+[pmVfoB]
+Command=FEFE98E0.07D1.FD
+ReplyLength=13
+Validate=FEFE98E007D1FD.FEFEE098FBFD
+
+[pmVfoEqual]
+Command=FEFE98E0.07B1.FD
+ReplyLength=13
+Validate=FEFE98E007B1FD.FEFEE098FBFD
+
+[pmVfoSwap]
+Command=FEFE98E0.07B0.FD
+ReplyLength=13
+Validate=FEFE98E007B0FD.FEFEE098FBFD
+
+[pmVfoAA]
+Command=FEFE98E0.07D0.FD.FEFE98E0.0F00.FD
+ReplyLength=20
+Validate=FEFE98E007D0FD.FEFE98E00F00FD.FEFEE098FBFD
+
+[pmVfoAB]
+Command=FEFE98E0.07D0.FD.FEFE98E0.0F01.FD
+ReplyLength=20
+Validate=FEFE98E007D0FD.FEFE98E00F01FD.FEFEE098FBFD
+
+[pmVfoBA]
+Command=FEFE98E0.07D1.FD.FEFE98E0.0F01.FD
+ReplyLength=20
+Validate=FEFE98E007D1FD.FEFE98E00F01FD.FEFEE098FBFD
+
+[pmVfoBB]
+Command=FEFE98E0.07D1.FD.FEFE98E0.0F00.FD
+ReplyLength=20
+Validate=FEFE98E007D1FD.FEFE98E00F00FD.FEFEE098FBFD
+
+[pmRitOn]
+Command=FEFE98E0.21.0101.FD
+ReplyLength=14
+Validate=FEFE98E0210101FD.FEFEE098FBFD
+
+[pmRitOff]
+Command=FEFE98E0.21.0100.FD
+ReplyLength=14
+Validate=FEFE98E0210100FD.FEFEE098FBFD
+
+[pmXitOn]
+Command=FEFE98E0.21.0201.FD
+ReplyLength=14
+Validate=FEFE98E0210201FD.FEFEE098FBFD
+
+[pmXitOff]
+Command=FEFE98E0.21.0200.FD
+ReplyLength=14
+Validate=FEFE98E0210200FD.FEFEE098FBFD
+
+[pmRx]
+Command=FEFE98E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE98E01C0000FD.FEFEE098FBFD
+
+[pmTx]
+Command=FEFE98E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE98E01C0001FD.FEFEE098FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE98E0.06.07.FD
+ReplyLength=13
+Validate=FEFE98E00607FD.FEFEE098FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE98E0.06.03.FD
+ReplyLength=13
+Validate=FEFE98E00603FD.FEFEE098FBFD
+
+[pmSSB_U]
+Command=FEFE98E0.06.01.FD
+ReplyLength=13
+Validate=FEFE98E00601FD.FEFEE098FBFD
+
+[pmSSB_L]
+Command=FEFE98E0.06.00.FD
+ReplyLength=13
+Validate=FEFE98E00600FD.FEFEE098FBFD
+
+[pmDIG_U]
+Command=FEFE98E0.06.08.FD
+ReplyLength=13
+Validate=FEFE98E00608FD.FEFEE098FBFD
+
+[pmDIG_L]
+Command=FEFE98E0.06.04.FD
+ReplyLength=13
+Validate=FEFE98E00604FD.FEFEE098FBFD.
+
+[pmAM]
+Command=FEFE98E0.06.02.FD
+ReplyLength=13
+Validate=FEFE98E00602FD.FEFEE098FBFD
+
+[pmFM]
+Command=FEFE98E0.06.05.FD
+ReplyLength=13
+Validate=FEFE98E00605FD.FEFEE098FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE98E0.2500.FD
+ReplyLength=19
+Validate=FEFE98E02500FD.FEFEE098.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE98E0.2501.FD
+ReplyLength=19
+Validate=FEFE98E02501FD.FEFEE098.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE98E0.04.FD
+ReplyLength=14
+Validate=FEFE98E004FD.FEFEE098.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS4]
+Command=FEFE98E0.1409.FD
+ReplyLength=16
+Validate=FEFE98E01409FD.FEFEE098.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE98E0.1C00.FD
+ReplyLength=15
+Validate=FEFE98E01C00FD.FEFEE098.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE98E0.0F.FD
+ReplyLength=13
+Validate=FEFE98E00FFD.FEFEE098.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE98E0.2101.FD
+ReplyLength=15
+Validate=FEFE98E02101FD.FEFEE098.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS8]
+Command=FEFE98E0.2102.FD
+ReplyLength=15
+Validate=FEFE98E02102FD.FEFEE098.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS9]
+Command=FEFE98E0.07D2.FD
+ReplyLength=15
+Validate=FEFE98E007D2FD.FEFEE098.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-765.ini b/CATCheck/Rigs/IC-765.ini
new file mode 100644
index 0000000..32321fd
--- /dev/null
+++ b/CATCheck/Rigs/IC-765.ini
@@ -0,0 +1,175 @@
+;-------------------------------------------------------------------------------
+; Icom IC-765 command set
+;
+; File created by RZ4AG aia@dxsoft.com
+; corrected by Rich Yost n2ry@yahoo.com
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE2CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE2CE0050000000000FD.FEFEE02CFBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+Command=FEFE2CE0.0700.FD
+ReplyLength=13
+Validate=FEFE2CE00700FD.FEFEE02CFBFD
+
+[pmVfoB]
+Command=FEFE2CE0.0701.FD
+ReplyLength=13
+Validate=FEFE2CE00701FD.FEFEE02CFBFD
+
+[pmVfoEqual]
+Command=FEFE2CE0.07A0.FD
+ReplyLength=13
+Validate=FEFE2CE007A0FD.FEFEE02CFBFD
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE2CE0.06.03.FD
+ReplyLength=13
+Validate=FEFE2CE00603FD.FEFEE02CFBFD
+
+[pmCW_L]
+Command=FEFE2CE0.06.07.FD
+ReplyLength=13
+Validate=FEFE2CE00607FD.FEFEE02CFBFD
+
+[pmSSB_U]
+Command=FEFE2CE0.06.01.FD
+ReplyLength=13
+Validate=FEFE2CE00601FD.FEFEE02CFBFD
+
+[pmSSB_L]
+Command=FEFE2CE0.06.00.FD
+ReplyLength=13
+Validate=FEFE2CE00600FD.FEFEE02CFBFD
+
+[pmDIG_U]
+Command=FEFE2CE0.06.04.FD
+ReplyLength=13
+Validate=FEFE2CE00604FD.FEFEE02CFBFD
+
+[pmDIG_L]
+Command=FEFE2CE0.06.08.FD
+ReplyLength=13
+Validate=FEFE2CE00608FD.FEFEE02CFBFD
+
+[pmAM]
+Command=FEFE2CE0.06.02.FD
+ReplyLength=13
+Validate=FEFE2CE00602FD.FEFEE02CFBFD
+
+[pmFM]
+Command=FEFE2CE0.06.05.FD
+ReplyLength=13
+Validate=FEFE2CE00605FD.FEFEE02CFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE2CE0.03.FD
+ReplyLength=17
+Validate=FEFE2CE003FD.FEFEE02C.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE2CE0.04.FD
+ReplyLength=14
+Validate=FEFE2CE004FD.FEFEE02C.04.0000.FD
+;filter byte is appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
diff --git a/CATCheck/Rigs/IC-7700.ini b/CATCheck/Rigs/IC-7700.ini
new file mode 100644
index 0000000..c3d4059
--- /dev/null
+++ b/CATCheck/Rigs/IC-7700.ini
@@ -0,0 +1,230 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7700 command set Firmware 1.20
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com and K4HW
+; Updated by N6TV 7 September 2015 01:32 UTC
+;
+; Tested by: _________
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE74E0.1A050095.00.FD
+ReplyLength=16
+Validate=FEFE74E01A05009500FD.FEFEE074FBFD
+
+[INIT2]
+;disable RS-232C decode, use CI-V
+Command=FEFE74E0.1A050096.00.FD
+ReplyLength=16
+Validate=FEFE74E01A05009600FD.FEFEE074FBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE74E0.1A050091.00.FD
+ReplyLength=16
+Validate=FEFE74E01A05009100FD.FEFEE074FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE74E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE74E0050000000000FD.FEFEE074FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE74E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE74E014090000FD.FEFEE074FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE74E0.0F01.FD
+ReplyLength=13
+Validate=FEFE74E00F01FD.FEFEE074FBFD
+
+[pmSplitOff]
+Command=FEFE74E0.0F00.FD
+ReplyLength=13
+Validate=FEFE74E00F00FD.FEFEE074FBFD
+
+[pmVfoA]
+Command=FEFE74E0.0700.FD
+ReplyLength=13
+Validate=FEFE74E00700FD.FEFEE074FBFD
+
+[pmVfoB]
+Command=FEFE74E0.0701.FD
+ReplyLength=13
+Validate=FEFE74E00701FD.FEFEE074FBFD
+
+[pmVfoEqual]
+Command=FEFE74E0.07A0.FD
+ReplyLength=13
+Validate=FEFE74E007A0FD.FEFEE074FBFD
+
+[pmVfoSwap]
+Command=FEFE74E0.07B0.FD
+ReplyLength=13
+Validate=FEFE74E007B0FD.FEFEE074FBFD
+
+[pmVfoAA]
+Command=FEFE74E0.0700.FD.FEFE74E0.0F00.FD
+ReplyLength=20
+Validate=FEFE74E00700FD.FEFE74E00F00FD.FEFEE074FBFD
+
+[pmVfoAB]
+Command=FEFE74E0.0700.FD.FEFE74E0.0F01.FD
+ReplyLength=20
+Validate=FEFE74E00700FD.FEFE74E00F01FD.FEFEE074FBFD
+
+[pmVfoBA]
+Command=FEFE74E0.0701.FD.FEFE74E0.0F01.FD
+ReplyLength=20
+Validate=FEFE74E00701FD.FEFE74E00F01FD.FEFEE074FBFD
+
+[pmVfoBB]
+Command=FEFE74E0.0701.FD.FEFE74E0.0F00.FD
+ReplyLength=20
+Validate=FEFE74E00701FD.FEFE74E00F00FD.FEFEE074FBFD
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE74E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE74E01C0000FD.FEFEE074FBFD
+
+[pmTx]
+Command=FEFE74E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE74E01C0001FD.FEFEE074FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE74E0.06.07.FD
+ReplyLength=13
+Validate=FEFE74E00607FD.FEFEE074FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE74E0.06.03.FD
+ReplyLength=13
+Validate=FEFE74E00603FD.FEFEE074FBFD
+
+[pmSSB_U]
+Command=FEFE74E0.06.01.FD
+ReplyLength=13
+Validate=FEFE74E00601FD.FEFEE074FBFD
+
+[pmSSB_L]
+Command=FEFE74E0.06.00.FD
+ReplyLength=13
+Validate=FEFE74E00600FD.FEFEE074FBFD
+
+[pmDIG_U]
+Command=FEFE74E0.06.08.FD
+ReplyLength=13
+Validate=FEFE74E00608FD.FEFEE074FBFD
+
+[pmDIG_L]
+Command=FEFE74E0.06.04.FD
+ReplyLength=13
+Validate=FEFE74E00604FD.FEFEE074FBFD
+
+[pmAM]
+Command=FEFE74E0.06.02.FD
+ReplyLength=13
+Validate=FEFE74E00602FD.FEFEE074FBFD
+
+[pmFM]
+Command=FEFE74E0.06.05.FD
+ReplyLength=13
+Validate=FEFE74E00605FD.FEFEE074FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE74E0.03.FD
+ReplyLength=17
+Validate=FEFE74E003FD.FEFEE074.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE74E0.04.FD
+ReplyLength=14
+Validate=FEFE74E004FD.FEFEE074.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE74E0.1409.FD
+ReplyLength=16
+Validate=FEFE74E01409FD.FEFEE074.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE74E0.1C00.FD
+ReplyLength=15
+Validate=FEFE74E01C00FD.FEFEE074.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS5]
+Command=FEFE74E0.0F.FD
+ReplyLength=13
+Validate=FEFE74E00FFD.FEFEE074.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
diff --git a/CATCheck/Rigs/IC-7700v2.ini b/CATCheck/Rigs/IC-7700v2.ini
new file mode 100644
index 0000000..0b8bf14
--- /dev/null
+++ b/CATCheck/Rigs/IC-7700v2.ini
@@ -0,0 +1,279 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7700 ver. 2.10 firmware command set
+;
+; IC-7700 File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; IC-7700v2 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: KL7RA
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE74E0.1A050095.00.FD
+ReplyLength=16
+Validate=FEFE74E01A05009500FD.FEFEE074FBFD
+
+[INIT2]
+;disable RS-232C decode, use CI-V
+Command=FEFE74E0.1A050096.00.FD
+ReplyLength=16
+Validate=FEFE74E01A05009600FD.FEFEE074FBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE74E0.1A050091.00.FD
+ReplyLength=16
+Validate=FEFE74E01A05009100FD.FEFEE074FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE74E0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE74E025000000000000FD.FEFEE074FBFD
+
+[pmFreqB]
+Command=FEFE74E0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE74E025010000000000FD.FEFEE074FBFD
+
+[pmFreq]
+Command=FEFE74E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE74E0050000000000FD.FEFEE074FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE74E0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE74E02100000000FD.FEFEE074FBFD
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE74E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE74E014090000FD.FEFEE074FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE74E0.0F01.FD
+ReplyLength=13
+Validate=FEFE74E00F01FD.FEFEE074FBFD
+
+[pmSplitOff]
+Command=FEFE74E0.0F00.FD
+ReplyLength=13
+Validate=FEFE74E00F00FD.FEFEE074FBFD
+
+[pmVfoA]
+Command=FEFE74E0.0700.FD
+ReplyLength=13
+Validate=FEFE74E00700FD.FEFEE074FBFD
+
+[pmVfoB]
+Command=FEFE74E0.0701.FD
+ReplyLength=13
+Validate=FEFE74E00701FD.FEFEE074FBFD
+
+[pmVfoEqual]
+Command=FEFE74E0.07A0.FD
+ReplyLength=13
+Validate=FEFE74E007A0FD.FEFEE074FBFD
+
+[pmVfoSwap]
+Command=FEFE74E0.07B0.FD
+ReplyLength=13
+Validate=FEFE74E007B0FD.FEFEE074FBFD
+
+[pmVfoAA]
+Command=FEFE74E0.0700.FD.FEFE74E0.0F00.FD
+ReplyLength=20
+Validate=FEFE74E00700FD.FEFE74E00F00FD.FEFEE074FBFD
+
+[pmVfoAB]
+Command=FEFE74E0.0700.FD.FEFE74E0.0F01.FD
+ReplyLength=20
+Validate=FEFE74E00700FD.FEFE74E00F01FD.FEFEE074FBFD
+
+[pmVfoBA]
+Command=FEFE74E0.0701.FD.FEFE74E0.0F01.FD
+ReplyLength=20
+Validate=FEFE74E00701FD.FEFE74E00F01FD.FEFEE074FBFD
+
+[pmVfoBB]
+Command=FEFE74E0.0701.FD.FEFE74E0.0F00.FD
+ReplyLength=20
+Validate=FEFE74E00701FD.FEFE74E00F00FD.FEFEE074FBFD
+
+[pmRitOn]
+Command=FEFE74E0.21.0101.FD
+ReplyLength=14
+Validate=FEFE74E0210101FD.FEFEE074FBFD
+
+[pmRitOff]
+Command=FEFE74E0.21.0100.FD
+ReplyLength=14
+Validate=FEFE74E0210100FD.FEFEE074FBFD
+
+[pmXitOn]
+Command=FEFE74E0.21.0201.FD
+ReplyLength=14
+Validate=FEFE74E0210201FD.FEFEE074FBFD
+
+[pmXitOff]
+Command=FEFE74E0.21.0200.FD
+ReplyLength=14
+Validate=FEFE74E0210200FD.FEFEE074FBFD
+
+[pmRx]
+Command=FEFE74E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE74E01C0000FD.FEFEE074FBFD
+
+[pmTx]
+Command=FEFE74E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE74E01C0001FD.FEFEE074FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE74E0.06.07.FD
+ReplyLength=13
+Validate=FEFE74E00607FD.FEFEE074FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE74E0.06.03.FD
+ReplyLength=13
+Validate=FEFE74E00603FD.FEFEE074FBFD
+
+[pmSSB_U]
+Command=FEFE74E0.06.01.FD
+ReplyLength=13
+Validate=FEFE74E00601FD.FEFEE074FBFD
+
+[pmSSB_L]
+Command=FEFE74E0.06.00.FD
+ReplyLength=13
+Validate=FEFE74E00600FD.FEFEE074FBFD
+
+[pmDIG_U]
+Command=FEFE74E0.06.08.FD
+ReplyLength=13
+Validate=FEFE74E00608FD.FEFEE074FBFD
+
+[pmDIG_L]
+Command=FEFE74E0.06.04.FD
+ReplyLength=13
+Validate=FEFE74E00604FD.FEFEE074FBFD
+
+[pmAM]
+Command=FEFE74E0.06.02.FD
+ReplyLength=13
+Validate=FEFE74E00602FD.FEFEE074FBFD
+
+[pmFM]
+Command=FEFE74E0.06.05.FD
+ReplyLength=13
+Validate=FEFE74E00605FD.FEFEE074FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+;[STATUS1]
+;Command=FEFE74E0.03.FD
+;ReplyLength=17
+;Validate=FEFE74E003FD.FEFEE074.03.0000000000.FD
+;Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS1]
+; Read transmit freq.
+Command=FEFE74E0.1C03.FD
+ReplyLength=19
+Validate=FEFE74E01C03FD.FEFEE074.1C03.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE74E0.04.FD
+ReplyLength=14
+Validate=FEFE74E004FD.FEFEE074.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE74E0.1409.FD
+ReplyLength=16
+Validate=FEFE74E01409FD.FEFEE074.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE74E0.1C00.FD
+ReplyLength=15
+Validate=FEFE74E01C00FD.FEFEE074.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS5]
+Command=FEFE74E0.2500.FD
+ReplyLength=19
+Validate=FEFE74E02500FD.FEFEE074.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS6]
+Command=FEFE74E0.2501.FD
+ReplyLength=19
+Validate=FEFE74E02501FD.FEFEE074.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS7]
+Command=FEFE74E0.0F.FD
+ReplyLength=13
+Validate=FEFE74E00FFD.FEFEE074.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS8]
+Command=FEFE74E0.2101.FD
+ReplyLength=15
+Validate=FEFE74E02101FD.FEFEE074.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS9]
+Command=FEFE74E0.2102.FD
+ReplyLength=15
+Validate=FEFE74E02102FD.FEFEE074.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
diff --git a/CATCheck/Rigs/IC-775.ini b/CATCheck/Rigs/IC-775.ini
new file mode 100644
index 0000000..9f62554
--- /dev/null
+++ b/CATCheck/Rigs/IC-775.ini
@@ -0,0 +1,158 @@
+;-------------------------------------------------------------------------------
+; Icom IC-775 command set
+;
+; File created by Serge Rodnikov, UA4FFF
+;-------------------------------------------------------------------------------
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+;none
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE46E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE46E0050000000000FD.FEFEE046FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE46E0.0F01.FD
+ReplyLength=13
+Validate=FEFE46E00F01FD.FEFEE046FBFD
+
+[pmSplitOff]
+Command=FEFE46E0.0F00.FD
+ReplyLength=13
+Validate=FEFE46E00F00FD.FEFEE046FBFD
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+Command=FEFE46E0.07B1.FD
+ReplyLength=13
+Validate=FEFE46E007B1FD.FEFEE046FBFD
+
+[pmVfoSwap]
+Command=FEFE46E0.07B0.FD
+ReplyLength=13
+Validate=FEFE46E007B0FD.FEFEE046FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE46E0.06.0302.FD
+ReplyLength=14
+Validate=FEFE46E0060302FD.FEFEE046FBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE46E0.06.0102.FD
+ReplyLength=14
+Validate=FEFE46E0060102FD.FEFEE046FBFD
+
+[pmSSB_L]
+Command=FEFE46E0.06.0002.FD
+ReplyLength=14
+Validate=FEFE46E0060002FD.FEFEE046FBFD
+
+[pmDIG_U]
+Command=FEFE46E0.06.04.FD
+ReplyLength=13
+Validate=FEFE46E00604FD.FEFEE046FBFD
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=FEFE46E0.06.02.FD
+ReplyLength=13
+Validate=FEFE46E00602FD.FEFEE046FBFD
+
+[pmFM]
+Command=FEFE46E0.06.05.FD
+ReplyLength=13
+Validate=FEFE46E00605FD.FEFEE046FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE46E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE46E003FD.FEFEE046.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE46E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE46E004FD.FEFEE046.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
diff --git a/CATCheck/Rigs/IC-78.ini b/CATCheck/Rigs/IC-78.ini
new file mode 100644
index 0000000..a2da9a3
--- /dev/null
+++ b/CATCheck/Rigs/IC-78.ini
@@ -0,0 +1,217 @@
+;-------------------------------------------------------------------------------
+; Icom IC-78 command set
+;
+; File created by Leonid, UA3YPL
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+;not sure if 5 or 2x5 bytes should be sent
+Command=FEFE62E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE62E0050000000000FD.FEFEE062FBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+Command=FEFE62E0.1409.0000.FD
+;300Hz=0 600Hz=128 900Hz=255
+Value=6|2|vfBcdLU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE62E014090000FD.FEFEE062FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE62E0.0F01.FD
+ReplyLength=13
+Validate=FEFE62E00F01FD.FEFEE062FBFD
+
+[pmSplitOff]
+Command=FEFE62E0.0F00.FD
+ReplyLength=13
+Validate=FEFE62E00F00FD.FEFEE062FBFD
+
+[pmVfoA]
+Command=FEFE62E0.0700.FD
+ReplyLength=13
+Validate=FEFE62E00700FD.FEFEE062FBFD
+
+[pmVfoB]
+Command=FEFE62E0.0701.FD
+ReplyLength=13
+Validate=FEFE62E00701FD.FEFEE062FBFD
+
+[pmVfoEqual]
+Command=FEFE62E0.07A0.FD
+ReplyLength=13
+Validate=FEFE62E007A0FD.FEFEE062FBFD
+
+[pmVfoSwap]
+Command=FEFE62E0.07B0.FD
+ReplyLength=13
+Validate=FEFE62E007B0FD.FEFEE062FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE62E0.06.03.FD
+ReplyLength=13
+Validate=FEFE62E00603FD.FEFEE062FBFD
+
+[pmCW_L]
+Command=FEFE62E0.06.07.FD
+ReplyLength=13
+Validate=FEFE62E00607FD.FEFEE062FBFD
+
+[pmSSB_U]
+Command=FEFE62E0.06.01.FD
+ReplyLength=13
+Validate=FEFE62E00601FD.FEFEE062FBFD
+
+[pmSSB_L]
+Command=FEFE62E0.06.00.FD
+ReplyLength=13
+Validate=FEFE62E00600FD.FEFEE062FBFD
+
+[pmDIG_U]
+Command=FEFE62E0.06.04.FD
+ReplyLength=13
+Validate=FEFE62E00604FD.FEFEE062FBFD
+
+[pmDIG_L]
+Command=FEFE62E0.06.08.FD
+ReplyLength=13
+Validate=FEFE62E00608FD.FEFEE062FBFD
+
+[pmAM]
+Command=FEFE62E0.06.02.FD
+ReplyLength=13
+Validate=FEFE62E00602FD.FEFEE062FBFD
+
+[pmFM]
+Command=FEFE62E0.06.05.FD
+ReplyLength=13
+Validate=FEFE62E00605FD.FEFEE062FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;The command name in the manual is Read Frequencies.
+;However, it returns just one frequency
+Command=FEFE62E0.03.FD
+ReplyLength=17
+Validate=FEFE62E003FD.FEFEE062.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE62E0.04.FD
+ReplyLength=14
+Validate=FEFE62E004FD.FEFEE062.04.0000.FD
+;filter byte is appended to the mode byte
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+
+[STATUS3]
+Command=FEFE62E0.1409.FD
+ReplyLength=16
+Validate=FEFE62E01409FD.FEFEE0621409.0000.FD
+;Value1=13|2|vfBcdBU|2.352941|300|pmPitch
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+;Command=FEFE62E0.07.FD
+;ReplyLength=13
+;Validate=FEFE62E007FD.FEFE62E007.00.FD
+;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmVfoA
+;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmVfoB
+
+[STATUS5]
+;Command=FEFE62E0.1C00.FD
+;ReplyLength=15
+;Validate=FEFE62E01C00FD.FEFEE0621C00.00.FD
+;Flag1=00000000000000000000000000.FF.00|00000000000000000000000000.01.00|pmTx
+;Flag2=00000000000000000000000000.FF.00|00000000000000000000000000.00.00|pmRx
+
+[STATUS6]
+;Command=FEFE62E0.0F.FD
+;ReplyLength=13
+;Validate=FEFE62E00FFD.FEFE62E00F.00.FD
+;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmSplitOn
+;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmSplitOff
+
+
diff --git a/CATCheck/Rigs/IC-7800.ini b/CATCheck/Rigs/IC-7800.ini
new file mode 100644
index 0000000..29814c9
--- /dev/null
+++ b/CATCheck/Rigs/IC-7800.ini
@@ -0,0 +1,211 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7800 command set
+;
+; File created by Joseph White ke4tv@adelphia.net
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;disable transceive mode
+Command=FEFE6AE0.1A050102.00.FD
+ReplyLength=16
+Validate=FEFE6AE01A05010200FD.FEFEE06AFBFD
+
+
+[INIT3]
+;set CW normal to upper sideband
+Command=FEFE6AE0.1A050097.01.FD
+ReplyLength=16
+Validate=FEFE6AE01A05009701FD.FEFEE06AFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE6AE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE6AE0050000000000FD.FEFEE06AFBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+; should 1 or 2 bytes be sent?
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE6AE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE6AE014090000FD.FEFEE06AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE6AE0.0F01.FD
+ReplyLength=13
+Validate=FEFE6AE00F01FD.FEFEE06AFBFD
+
+[pmSplitOff]
+Command=FEFE6AE0.0F00.FD
+ReplyLength=13
+Validate=FEFE6AE00F00FD.FEFEE06AFBFD
+
+[pmVfoA]
+Command=FEFE6AE0.07D0.FD
+ReplyLength=13
+Validate=FEFE6AE007D0FD.FEFEE06AFBFD
+
+
+[pmVfoB]
+Command=FEFE6AE0.07D1.FD
+ReplyLength=13
+Validate=FEFE6AE007D1FD.FEFEE06AFBFD
+
+
+[pmVfoEqual]
+Command=FEFE6AE0.07B1.FD
+ReplyLength=13
+Validate=FEFE6AE007B1FD.FEFEE06AFBFD
+
+[pmVfoSwap]
+Command=FEFE6AE0.07B0.FD
+ReplyLength=13
+Validate=FEFE6AE007B0FD.FEFEE06AFBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE6AE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE6AE01C0000FD.FEFEE06AFBFD
+
+[pmTx]
+Command=FEFE6AE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE6AE01C0001FD.FEFEE06AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE6AE0.06.03.FD
+ReplyLength=13
+Validate=FEFE6AE00603FD.FEFEE06AFBFD
+
+[pmCW_L]
+Command=FEFE6AE0.06.07.FD
+ReplyLength=13
+Validate=FEFE6AE00607FD.FEFEE06AFBFD
+
+[pmSSB_U]
+Command=FEFE6AE0.06.01.FD
+ReplyLength=13
+Validate=FEFE6AE00601FD.FEFEE06AFBFD
+
+[pmSSB_L]
+Command=FEFE6AE0.06.00.FD
+ReplyLength=13
+Validate=FEFE6AE00600FD.FEFEE06AFBFD
+
+[pmDIG_U]
+Command=FEFE6AE0.06.08.FD
+ReplyLength=13
+Validate=FEFE6AE00608FD.FEFEE06AFBFD
+
+
+[pmDIG_L]
+Command=FEFE6AE0.06.04.FD
+ReplyLength=13
+Validate=FEFE6AE00604FD.FEFEE06AFBFD.
+
+
+[pmAM]
+Command=FEFE6AE0.06.02.FD
+ReplyLength=13
+Validate=FEFE6AE00602FD.FEFEE06AFBFD
+
+[pmFM]
+Command=FEFE6AE0.06.05.FD
+ReplyLength=13
+Validate=FEFE6AE00605FD.FEFEE06AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE6AE0.03.FD
+ReplyLength=17
+Validate=FEFE6AE003FD.FEFEE06A.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE6AE0.04.FD
+ReplyLength=14
+Validate=FEFE6AE004FD.FEFEE06A.04.0000.FD
+;is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE6AE0.1409.FD
+ReplyLength=16
+Validate=FEFE6AE01409FD.FEFEE06A1409.0000.FD
+Value1=13|2|vfBcdBU|25|300|pmPitch
+
+[STATUS4]
+Command=FEFE6AE0.1C00.FD
+ReplyLength=15
+Validate=FEFE6AE01C00FD.FEFEE06A.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
diff --git a/CATCheck/Rigs/IC-7800v3.ini b/CATCheck/Rigs/IC-7800v3.ini
new file mode 100644
index 0000000..9092b1f
--- /dev/null
+++ b/CATCheck/Rigs/IC-7800v3.ini
@@ -0,0 +1,285 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7800 ver. 3.10 firmware command set
+;
+; IC-7800v3 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: Bob Wilson, N6TV @ K3LR
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE6AE0.1A050101.00.FD
+ReplyLength=16
+Validate=FEFE6AE01A05010100FD.FEFEE06AFBFD
+
+[INIT2]
+;disable RS-232C decode, use CI-V
+Command=FEFE6AE0.1A050102.00.FD
+ReplyLength=16
+Validate=FEFE6AE01A05010200FD.FEFEE06AFBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE6AE0.1A050097.00.FD
+ReplyLength=16
+Validate=FEFE6AE01A05009700FD.FEFEE06AFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE6AE0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE6AE025000000000000FD.FEFEE06AFBFD
+
+[pmFreqB]
+Command=FEFE6AE0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE6AE025010000000000FD.FEFEE06AFBFD
+
+[pmFreq]
+Command=FEFE6AE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE6AE0050000000000FD.FEFEE06AFBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE6AE0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE6AE02100000000FD.FEFEE06AFBFD
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE6AE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE6AE014090000FD.FEFEE06AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE6AE0.0F01.FD
+ReplyLength=13
+Validate=FEFE6AE00F01FD.FEFEE06AFBFD
+
+[pmSplitOff]
+Command=FEFE6AE0.0F00.FD
+ReplyLength=13
+Validate=FEFE6AE00F00FD.FEFEE06AFBFD
+
+[pmVfoA]
+Command=FEFE6AE0.07D0.FD
+ReplyLength=13
+Validate=FEFE6AE007D0FD.FEFEE06AFBFD
+
+[pmVfoB]
+Command=FEFE6AE0.07D1.FD
+ReplyLength=13
+Validate=FEFE6AE007D1FD.FEFEE06AFBFD
+
+[pmVfoEqual]
+Command=FEFE6AE0.07B1.FD
+ReplyLength=13
+Validate=FEFE6AE007B1FD.FEFEE06AFBFD
+
+[pmVfoSwap]
+Command=FEFE6AE0.07B0.FD
+ReplyLength=13
+Validate=FEFE6AE007B0FD.FEFEE06AFBFD
+
+[pmVfoAA]
+Command=FEFE6AE0.0700.FD.FEFE6AE0.0F00.FD
+ReplyLength=20
+Validate=FEFE6AE00700FD.FEFE6AE00F00FD.FEFEE06AFBFD
+
+[pmVfoAB]
+Command=FEFE6AE0.0700.FD.FEFE6AE0.0F01.FD
+ReplyLength=20
+Validate=FEFE6AE00700FD.FEFE6AE00F01FD.FEFEE06AFBFD
+
+[pmVfoBA]
+Command=FEFE6AE0.0701.FD.FEFE6AE0.0F01.FD
+ReplyLength=20
+Validate=FEFE6AE00701FD.FEFE6AE00F01FD.FEFEE06AFBFD
+
+[pmVfoBB]
+Command=FEFE6AE0.0701.FD.FEFE6AE0.0F00.FD
+ReplyLength=20
+Validate=FEFE6AE00701FD.FEFE6AE00F00FD.FEFEE06AFBFD
+
+[pmRitOn]
+Command=FEFE6AE0.21.0101.FD
+ReplyLength=14
+Validate=FEFE6AE0210101FD.FEFEE06AFBFD
+
+[pmRitOff]
+Command=FEFE6AE0.21.0100.FD
+ReplyLength=14
+Validate=FEFE6AE0210100FD.FEFEE06AFBFD
+
+[pmXitOn]
+Command=FEFE6AE0.21.0201.FD
+ReplyLength=14
+Validate=FEFE6AE0210201FD.FEFEE06AFBFD
+
+[pmXitOff]
+Command=FEFE6AE0.21.0200.FD
+ReplyLength=14
+Validate=FEFE6AE0210200FD.FEFEE06AFBFD
+
+[pmRx]
+Command=FEFE6AE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE6AE01C0000FD.FEFEE06AFBFD
+
+[pmTx]
+Command=FEFE6AE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE6AE01C0001FD.FEFEE06AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE6AE0.06.07.FD
+ReplyLength=13
+Validate=FEFE6AE00607FD.FEFEE06AFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE6AE0.06.03.FD
+ReplyLength=13
+Validate=FEFE6AE00603FD.FEFEE06AFBFD
+
+[pmSSB_U]
+Command=FEFE6AE0.06.01.FD
+ReplyLength=13
+Validate=FEFE6AE00601FD.FEFEE06AFBFD
+
+[pmSSB_L]
+Command=FEFE6AE0.06.00.FD
+ReplyLength=13
+Validate=FEFE6AE00600FD.FEFEE06AFBFD
+
+[pmDIG_U]
+Command=FEFE6AE0.06.08.FD
+ReplyLength=13
+Validate=FEFE6AE00608FD.FEFEE06AFBFD
+
+[pmDIG_L]
+Command=FEFE6AE0.06.04.FD
+ReplyLength=13
+Validate=FEFE6AE00604FD.FEFEE06AFBFD.
+
+[pmAM]
+Command=FEFE6AE0.06.02.FD
+ReplyLength=13
+Validate=FEFE6AE00602FD.FEFEE06AFBFD
+
+[pmFM]
+Command=FEFE6AE0.06.05.FD
+ReplyLength=13
+Validate=FEFE6AE00605FD.FEFEE06AFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+;[STATUS1]
+;Command=FEFE6AE0.03.FD
+;ReplyLength=17
+;Validate=FEFE6AE003FD.FEFEE06A.03.0000000000.FD
+;Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS1]
+; Read transmit freq.
+Command=FEFE6AE0.1C03.FD
+ReplyLength=19
+Validate=FEFE6AE01C03FD.FEFEE06A.1C03.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE6AE0.04.FD
+ReplyLength=14
+Validate=FEFE6AE004FD.FEFEE06A.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE6AE0.1409.FD
+ReplyLength=16
+Validate=FEFE6AE01409FD.FEFEE06A.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE6AE0.1C00.FD
+ReplyLength=15
+Validate=FEFE6AE01C00FD.FEFEE06A.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS5]
+Command=FEFE6AE0.2500.FD
+ReplyLength=19
+Validate=FEFE6AE02500FD.FEFEE06A.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS6]
+Command=FEFE6AE0.2501.FD
+ReplyLength=19
+Validate=FEFE6AE02501FD.FEFEE06A.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS7]
+Command=FEFE6AE0.0F.FD
+ReplyLength=13
+Validate=FEFE6AE00FFD.FEFEE06A.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS8]
+Command=FEFE6AE0.2101.FD
+ReplyLength=15
+Validate=FEFE6AE02101FD.FEFEE06A.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS9]
+Command=FEFE6AE0.2102.FD
+ReplyLength=15
+Validate=FEFE6AE02102FD.FEFEE06A.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS10]
+Command=FEFE6AE0.07D2.FD
+ReplyLength=15
+Validate=FEFE6AE007D2FD.FEFEE06A.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-781.ini b/CATCheck/Rigs/IC-781.ini
new file mode 100644
index 0000000..a64b1e3
--- /dev/null
+++ b/CATCheck/Rigs/IC-781.ini
@@ -0,0 +1,174 @@
+;-------------------------------------------------------------------------------
+; Icom IC-781 command set
+;
+; File created by Mel, VE2DC
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE26E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE26E0050000000000FD.FEFEE026FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE26E0.0F01.FD
+ReplyLength=13
+Validate=FEFE26E00F01FD.FEFEE026FBFD
+
+[pmSplitOff]
+Command=FEFE26E0.0F00.FD
+ReplyLength=13
+Validate=FEFE26E00F00FD.FEFEE026FBFD
+
+[pmVfoA]
+Command=FEFE26E0.0700.FD
+ReplyLength=13
+Validate=FEFE26E00700FD.FEFEE026FBFD
+
+[pmVfoB]
+Command=FEFE26E0.0701.FD
+ReplyLength=13
+Validate=FEFE26E00701FD.FEFEE026FBFD
+
+[pmVfoEqual]
+Command=FEFE26E0.07A0.FD
+ReplyLength=13
+Validate=FEFE26E007A0FD.FEFEE026FBFD
+
+[pmVfoSwap]
+;not supported
+
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE26E0.06.03.FD
+ReplyLength=13
+Validate=FEFE26E00603FD.FEFEE026FBFD
+
+[pmCW_L]
+Command=FEFE26E0.06.07.FD
+ReplyLength=13
+Validate=FEFE26E00607FD.FEFEE026FBFD
+
+[pmSSB_U]
+Command=FEFE26E0.06.01.FD
+ReplyLength=13
+Validate=FEFE26E00601FD.FEFEE026FBFD
+
+[pmSSB_L]
+Command=FEFE26E0.06.00.FD
+ReplyLength=13
+Validate=FEFE26E00600FD.FEFEE026FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=FEFE26E0.06.02.FD
+ReplyLength=13
+Validate=FEFE26E00602FD.FEFEE026FBFD
+
+[pmFM]
+Command=FEFE26E0.06.05.FD
+ReplyLength=13
+Validate=FEFE26E00605FD.FEFEE026FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE26E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE26E003FD.FEFEE026.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE26E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE26E004FD.FEFEE026.04.0000.FD
+;is filter byte appended to the mode byte?
+;Yes except for SSB Wide in which case it may be dropped (firmware issue)
+;CW_U not supported
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
diff --git a/CATCheck/Rigs/IC-781_2.ini b/CATCheck/Rigs/IC-781_2.ini
new file mode 100644
index 0000000..3a93dad
--- /dev/null
+++ b/CATCheck/Rigs/IC-781_2.ini
@@ -0,0 +1,185 @@
+;-------------------------------------------------------------------------------
+; Icom IC-781 command set
+;
+; File created by Mel, VE2DC
+; Modified by Alex VE3NEA for a different version of radio firmware
+; Modified by Bob N6TV to add some missing commands
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE26E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE26E0050000000000FD.FEFEE026FBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE26E0.0F01.FD
+ReplyLength=13
+Validate=FEFE26E00F01FD.FEFEE026FBFD
+
+[pmSplitOff]
+Command=FEFE26E0.0F00.FD
+ReplyLength=13
+Validate=FEFE26E00F00FD.FEFEE026FBFD
+
+[pmVfoA]
+Command=FEFE26E0.0700.FD
+ReplyLength=13
+Validate=FEFE26E00700FD.FEFEE026FBFD
+
+[pmVfoB]
+Command=FEFE26E0.0701.FD
+ReplyLength=13
+Validate=FEFE26E00701FD.FEFEE026FBFD
+
+[pmVfoEqual]
+Command=FEFE26E0.07A0.FD
+ReplyLength=13
+Validate=FEFE26E007A0FD.FEFEE026FBFD
+
+[pmVfoSwap]
+Command=FEFE26E0.07B0.FD
+ReplyLength=13
+Validate=FEFE26E007B0FD.FEFEE026FBFD
+
+[pmVfoAA]
+Command=FEFE26E0.0700.FD.FEFE26E0.0F00.FD
+ReplyLength=20
+Validate=FEFE26E00700FD.FEFE26E00F00FD.FEFEE026FBFD
+
+[pmVfoAB]
+Command=FEFE26E0.0700.FD.FEFE26E0.0F01.FD
+ReplyLength=20
+Validate=FEFE26E00700FD.FEFE26E00F01FD.FEFEE026FBFD
+
+[pmVfoBA]
+Command=FEFE26E0.0701.FD.FEFE26E0.0F01.FD
+ReplyLength=20
+Validate=FEFE26E00701FD.FEFE26E00F01FD.FEFEE026FBFD
+
+[pmVfoBB]
+Command=FEFE26E0.0701.FD.FEFE26E0.0F00.FD
+ReplyLength=20
+Validate=FEFE26E00701FD.FEFE26E00F00FD.FEFEE026FBFD
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE26E0.06.03.FD
+ReplyLength=13
+Validate=FEFE26E00603FD.FEFEE026FBFD
+
+[pmCW_L]
+Command=FEFE26E0.06.07.FD
+ReplyLength=13
+Validate=FEFE26E00607FD.FEFEE026FBFD
+
+[pmSSB_U]
+Command=FEFE26E0.06.01.FD
+ReplyLength=13
+Validate=FEFE26E00601FD.FEFEE026FBFD
+
+[pmSSB_L]
+Command=FEFE26E0.06.00.FD
+ReplyLength=13
+Validate=FEFE26E00600FD.FEFEE026FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+Command=FEFE26E0.06.02.FD
+ReplyLength=13
+Validate=FEFE26E00602FD.FEFEE026FBFD
+
+[pmFM]
+Command=FEFE26E0.06.05.FD
+ReplyLength=13
+Validate=FEFE26E00605FD.FEFEE026FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE26E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE26E003FD.FEFEE026.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE26E0.04.FD
+ReplyLength=13
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.00.FF|FEFE26E004FD.FEFEE026.04.00.FD
+;is filter byte appended to the mode byte?
+;Yes except for SSB Wide in which case it may be dropped (firmware issue)
+;CW_U not supported
+Flag1=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_U
+Flag2=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_L
+Flag3=000000000000.0000000000.FF.00|000000000000.0000000000.01.00|pmSSB_U
+Flag4=000000000000.0000000000.FF.00|000000000000.0000000000.00.00|pmSSB_L
+Flag5=000000000000.0000000000.FF.00|000000000000.0000000000.04.00|pmDIG_U
+Flag6=000000000000.0000000000.FF.00|000000000000.0000000000.08.00|pmDIG_L
+Flag7=000000000000.0000000000.FF.00|000000000000.0000000000.02.00|pmAM
+Flag8=000000000000.0000000000.FF.00|000000000000.0000000000.05.00|pmFM
+
diff --git a/CATCheck/Rigs/IC-7850-DATA-FIL1.ini b/CATCheck/Rigs/IC-7850-DATA-FIL1.ini
new file mode 100644
index 0000000..6f5b7c2
--- /dev/null
+++ b/CATCheck/Rigs/IC-7850-DATA-FIL1.ini
@@ -0,0 +1,286 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7850-DATA-FIL1
+;
+; IC-7850-DATA-FIL1 File created by Bob Wilson, N6TV, n6tv@arrl.net, 2019-02-18
+;
+; Tested by:
+;
+; Same as IC-7850-DATA, but for digital modes, sets and selects DATA2 MOD (aka Data
+; Mode 2 or D2) to the USB sound card input, and selects FIL1
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE8EE0.1A050158.01.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE8EE0.1A050155.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE8EE0.1A050140.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD
+
+[INIT4]
+;set MOD input connector for DATA2 mode to USB sound card only
+Command=FEFE8EE0.1A050064.08.FD
+ReplyLength=16
+Validate=FEFE8EE01A05006408FD.FEFEE08EFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE8EE0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD
+
+[pmFreqB]
+Command=FEFE8EE0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE8EE0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE8EE02100000000FD.FEFEE08EFBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE8EE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE8EE014090000FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE8EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmSplitOff]
+Command=FEFE8EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoA]
+Command=FEFE8EE0.07D0.FD
+ReplyLength=13
+Validate=FEFE8EE007D0FD.FEFEE08EFBFD
+
+[pmVfoB]
+Command=FEFE8EE0.07D1.FD
+ReplyLength=13
+Validate=FEFE8EE007D1FD.FEFEE08EFBFD
+
+[pmVfoEqual]
+Command=FEFE8EE0.07B1.FD
+ReplyLength=13
+Validate=FEFE8EE007B1FD.FEFEE08EFBFD
+
+[pmVfoSwap]
+Command=FEFE8EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE8EE007B0FD.FEFEE08EFBFD
+
+[pmVfoAA]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoAB]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBA]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBB]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmRitOn]
+Command=FEFE8EE0.21.0101.FD
+ReplyLength=14
+Validate=FEFE8EE0210101FD.FEFEE08EFBFD
+
+[pmRitOff]
+Command=FEFE8EE0.21.0100.FD
+ReplyLength=14
+Validate=FEFE8EE0210100FD.FEFEE08EFBFD
+
+[pmXitOn]
+Command=FEFE8EE0.21.0201.FD
+ReplyLength=14
+Validate=FEFE8EE0210201FD.FEFEE08EFBFD
+
+[pmXitOff]
+Command=FEFE8EE0.21.0200.FD
+ReplyLength=14
+Validate=FEFE8EE0210200FD.FEFEE08EFBFD
+
+[pmRx]
+Command=FEFE8EE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE8EE01C0000FD.FEFEE08EFBFD
+
+[pmTx]
+Command=FEFE8EE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE8EE01C0001FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE8EE0.2600.07.FD
+ReplyLength=14
+Validate=FEFE8EE0260007FD.FEFEE08EFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE8EE0.2600.03.FD
+ReplyLength=14
+Validate=FEFE8EE0260003FD.FEFEE08EFBFD
+
+[pmSSB_U]
+; These lines select USB with Data Mode OFF, FIL1
+Command=FEFE8EE0.2600.01.00.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600010001FD.FEFEE08EFBFD
+
+[pmSSB_L]
+; These lines select LSB with Data Mode OFF, FIL1
+Command=FEFE8EE0.2600.00.00.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600000001FD.FEFEE08EFBFD
+
+[pmDIG_U]
+; These lines select USB-D Data Mode 2 (DATA2 MOD) which is set for USB sound card modulation, plus FIL1
+Command=FEFE8EE0.2600.01.02.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600010201FD.FEFEE08EFBFD
+
+[pmDIG_L]
+; These lines select LSB-D Data Mode 2 (DATA2 MOD) which is set for USB sound card modulation, plus FIL1
+Command=FEFE8EE0.2600.00.02.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600000201FD.FEFEE08EFBFD
+
+[pmAM]
+; These lines select AM with Data Mode OFF, FIL1
+Command=FEFE8EE0.2600.02.00.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600020001FD.FEFEE08EFBFD
+
+[pmFM]
+; These lines select FM with Data Mode OFF, FIL1
+Command=FEFE8EE0.2600.05.00.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600050001FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE8EE0.2500.FD
+ReplyLength=19
+Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE8EE0.2501.FD
+ReplyLength=19
+Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE8EE0.2600.FD
+ReplyLength=17
+Validate=FEFE8EE02600FD.FEFEE08E.2600.000000.FD
+Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L
+Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U
+Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U
+Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L
+Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U
+Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L
+Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U
+Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L
+Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM
+Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM
+
+[STATUS4]
+Command=FEFE8EE0.1409.FD
+ReplyLength=16
+Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE8EE0.1C00.FD
+ReplyLength=15
+Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE8EE0.0F.FD
+ReplyLength=13
+Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE8EE0.2101.FD
+ReplyLength=15
+Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS8]
+Command=FEFE8EE0.2102.FD
+ReplyLength=15
+Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS9]
+Command=FEFE8EE0.07D2.FD
+ReplyLength=15
+Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-7850-DATA.ini b/CATCheck/Rigs/IC-7850-DATA.ini
new file mode 100644
index 0000000..d7031b8
--- /dev/null
+++ b/CATCheck/Rigs/IC-7850-DATA.ini
@@ -0,0 +1,276 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7850-DATA
+;
+; IC-7850-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net, 2018-04-16
+;
+; Tested by: Bob Wilson, N6TV @ K3LR
+;
+; Same as IC-7850, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R
+; Note: Uses DATA1 MOD (aka Data Mode 1 or D1). User must set DATA1 Modulation Input
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE8EE0.1A050158.01.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE8EE0.1A050155.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE8EE0.1A050140.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE8EE0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD
+
+[pmFreqB]
+Command=FEFE8EE0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE8EE0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE8EE02100000000FD.FEFEE08EFBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE8EE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE8EE014090000FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE8EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmSplitOff]
+Command=FEFE8EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoA]
+Command=FEFE8EE0.07D0.FD
+ReplyLength=13
+Validate=FEFE8EE007D0FD.FEFEE08EFBFD
+
+[pmVfoB]
+Command=FEFE8EE0.07D1.FD
+ReplyLength=13
+Validate=FEFE8EE007D1FD.FEFEE08EFBFD
+
+[pmVfoEqual]
+Command=FEFE8EE0.07B1.FD
+ReplyLength=13
+Validate=FEFE8EE007B1FD.FEFEE08EFBFD
+
+[pmVfoSwap]
+Command=FEFE8EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE8EE007B0FD.FEFEE08EFBFD
+
+[pmVfoAA]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoAB]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBA]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBB]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmRitOn]
+Command=FEFE8EE0.21.0101.FD
+ReplyLength=14
+Validate=FEFE8EE0210101FD.FEFEE08EFBFD
+
+[pmRitOff]
+Command=FEFE8EE0.21.0100.FD
+ReplyLength=14
+Validate=FEFE8EE0210100FD.FEFEE08EFBFD
+
+[pmXitOn]
+Command=FEFE8EE0.21.0201.FD
+ReplyLength=14
+Validate=FEFE8EE0210201FD.FEFEE08EFBFD
+
+[pmXitOff]
+Command=FEFE8EE0.21.0200.FD
+ReplyLength=14
+Validate=FEFE8EE0210200FD.FEFEE08EFBFD
+
+[pmRx]
+Command=FEFE8EE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE8EE01C0000FD.FEFEE08EFBFD
+
+[pmTx]
+Command=FEFE8EE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE8EE01C0001FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE8EE0.2600.07.FD
+ReplyLength=14
+Validate=FEFE8EE0260007FD.FEFEE08EFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE8EE0.2600.03.FD
+ReplyLength=14
+Validate=FEFE8EE0260003FD.FEFEE08EFBFD
+
+[pmSSB_U]
+Command=FEFE8EE0.2600.01.00.FD
+ReplyLength=15
+Validate=FEFE8EE026000100FD.FEFEE08EFBFD
+
+[pmSSB_L]
+Command=FEFE8EE0.2600.00.00.FD
+ReplyLength=15
+Validate=FEFE8EE026000000FD.FEFEE08EFBFD
+
+[pmDIG_U]
+; These lines select USB-D Data Mode 1 (DATA1 MOD) which defaults to ACC-A sound card modulation
+Command=FEFE8EE0.2600.01.01.FD
+ReplyLength=15
+Validate=FEFE8EE026000101FD.FEFEE08EFBFD
+
+[pmDIG_L]
+; These lines select LSB-D Data Mode 1 (DATA1 MOD) which defaults to ACC-A sound card modulation
+Command=FEFE8EE0.2600.00.01.FD
+ReplyLength=15
+Validate=FEFE8EE026000001FD.FEFEE08EFBFD
+
+[pmAM]
+Command=FEFE8EE0.2600.02.FD
+ReplyLength=14
+Validate=FEFE8EE0260002FD.FEFEE08EFBFD
+
+[pmFM]
+Command=FEFE8EE0.2600.05.FD
+ReplyLength=14
+Validate=FEFE8EE0260005FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE8EE0.2500.FD
+ReplyLength=19
+Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE8EE0.2501.FD
+ReplyLength=19
+Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE8EE0.2600.FD
+ReplyLength=17
+Validate=FEFE8EE02600FD.FEFEE08E.2600.000000.FD
+Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L
+Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U
+Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U
+Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L
+Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U
+Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L
+Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U
+Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L
+Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM
+Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM
+
+[STATUS4]
+Command=FEFE8EE0.1409.FD
+ReplyLength=16
+Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE8EE0.1C00.FD
+ReplyLength=15
+Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE8EE0.0F.FD
+ReplyLength=13
+Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE8EE0.2101.FD
+ReplyLength=15
+Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS8]
+Command=FEFE8EE0.2102.FD
+ReplyLength=15
+Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS9]
+Command=FEFE8EE0.07D2.FD
+ReplyLength=15
+Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-7850.ini b/CATCheck/Rigs/IC-7850.ini
new file mode 100644
index 0000000..9cc3841
--- /dev/null
+++ b/CATCheck/Rigs/IC-7850.ini
@@ -0,0 +1,273 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7850
+;
+; IC-7850 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: Bob Wilson, N6TV @ K3LR
+;
+; Updated by N6TV 2018-04-16:
+; - Only returns pmFreqA and pmFreqB, not pmFreq, for use with CW Skimmer and Contest Loggers
+; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE8EE0.1A050158.01.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE8EE0.1A050155.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE8EE0.1A050140.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE8EE0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD
+
+[pmFreqB]
+Command=FEFE8EE0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE8EE0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE8EE02100000000FD.FEFEE08EFBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE8EE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE8EE014090000FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE8EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmSplitOff]
+Command=FEFE8EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoA]
+Command=FEFE8EE0.07D0.FD
+ReplyLength=13
+Validate=FEFE8EE007D0FD.FEFEE08EFBFD
+
+[pmVfoB]
+Command=FEFE8EE0.07D1.FD
+ReplyLength=13
+Validate=FEFE8EE007D1FD.FEFEE08EFBFD
+
+[pmVfoEqual]
+Command=FEFE8EE0.07B1.FD
+ReplyLength=13
+Validate=FEFE8EE007B1FD.FEFEE08EFBFD
+
+[pmVfoSwap]
+Command=FEFE8EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE8EE007B0FD.FEFEE08EFBFD
+
+[pmVfoAA]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoAB]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBA]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBB]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmRitOn]
+Command=FEFE8EE0.21.0101.FD
+ReplyLength=14
+Validate=FEFE8EE0210101FD.FEFEE08EFBFD
+
+[pmRitOff]
+Command=FEFE8EE0.21.0100.FD
+ReplyLength=14
+Validate=FEFE8EE0210100FD.FEFEE08EFBFD
+
+[pmXitOn]
+Command=FEFE8EE0.21.0201.FD
+ReplyLength=14
+Validate=FEFE8EE0210201FD.FEFEE08EFBFD
+
+[pmXitOff]
+Command=FEFE8EE0.21.0200.FD
+ReplyLength=14
+Validate=FEFE8EE0210200FD.FEFEE08EFBFD
+
+[pmRx]
+Command=FEFE8EE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE8EE01C0000FD.FEFEE08EFBFD
+
+[pmTx]
+Command=FEFE8EE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE8EE01C0001FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE8EE0.06.07.FD
+ReplyLength=13
+Validate=FEFE8EE00607FD.FEFEE08EFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE8EE0.06.03.FD
+ReplyLength=13
+Validate=FEFE8EE00603FD.FEFEE08EFBFD
+
+[pmSSB_U]
+Command=FEFE8EE0.06.01.FD
+ReplyLength=13
+Validate=FEFE8EE00601FD.FEFEE08EFBFD
+
+[pmSSB_L]
+Command=FEFE8EE0.06.00.FD
+ReplyLength=13
+Validate=FEFE8EE00600FD.FEFEE08EFBFD
+
+[pmDIG_U]
+Command=FEFE8EE0.06.08.FD
+ReplyLength=13
+Validate=FEFE8EE00608FD.FEFEE08EFBFD
+
+[pmDIG_L]
+Command=FEFE8EE0.06.04.FD
+ReplyLength=13
+Validate=FEFE8EE00604FD.FEFEE08EFBFD.
+
+[pmAM]
+Command=FEFE8EE0.06.02.FD
+ReplyLength=13
+Validate=FEFE8EE00602FD.FEFEE08EFBFD
+
+[pmFM]
+Command=FEFE8EE0.06.05.FD
+ReplyLength=13
+Validate=FEFE8EE00605FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE8EE0.2500.FD
+ReplyLength=19
+Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE8EE0.2501.FD
+ReplyLength=19
+Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE8EE0.04.FD
+ReplyLength=14
+Validate=FEFE8EE004FD.FEFEE08E.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS4]
+Command=FEFE8EE0.1409.FD
+ReplyLength=16
+Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE8EE0.1C00.FD
+ReplyLength=15
+Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE8EE0.0F.FD
+ReplyLength=13
+Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE8EE0.2101.FD
+ReplyLength=15
+Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS8]
+Command=FEFE8EE0.2102.FD
+ReplyLength=15
+Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS9]
+Command=FEFE8EE0.07D2.FD
+ReplyLength=15
+Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-7851-DATA-FIL1.ini b/CATCheck/Rigs/IC-7851-DATA-FIL1.ini
new file mode 100644
index 0000000..4daff7c
--- /dev/null
+++ b/CATCheck/Rigs/IC-7851-DATA-FIL1.ini
@@ -0,0 +1,286 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7851-DATA-FIL1
+;
+; IC-7851-DATA-FIL1 File created by Bob Wilson, N6TV, n6tv@arrl.net, 2019-02-18
+;
+; Tested by:
+;
+; Same as IC-7851-DATA, but for digital modes, sets and selects DATA2 MOD (aka Data
+; Mode 2 or D2) to the USB sound card input, and selects FIL1
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE8EE0.1A050158.01.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE8EE0.1A050155.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE8EE0.1A050140.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD
+
+[INIT4]
+;set MOD input connector for DATA2 mode to USB sound card only
+Command=FEFE8EE0.1A050064.08.FD
+ReplyLength=16
+Validate=FEFE8EE01A05006408FD.FEFEE08EFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE8EE0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD
+
+[pmFreqB]
+Command=FEFE8EE0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE8EE0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE8EE02100000000FD.FEFEE08EFBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE8EE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE8EE014090000FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE8EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmSplitOff]
+Command=FEFE8EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoA]
+Command=FEFE8EE0.07D0.FD
+ReplyLength=13
+Validate=FEFE8EE007D0FD.FEFEE08EFBFD
+
+[pmVfoB]
+Command=FEFE8EE0.07D1.FD
+ReplyLength=13
+Validate=FEFE8EE007D1FD.FEFEE08EFBFD
+
+[pmVfoEqual]
+Command=FEFE8EE0.07B1.FD
+ReplyLength=13
+Validate=FEFE8EE007B1FD.FEFEE08EFBFD
+
+[pmVfoSwap]
+Command=FEFE8EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE8EE007B0FD.FEFEE08EFBFD
+
+[pmVfoAA]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoAB]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBA]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBB]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmRitOn]
+Command=FEFE8EE0.21.0101.FD
+ReplyLength=14
+Validate=FEFE8EE0210101FD.FEFEE08EFBFD
+
+[pmRitOff]
+Command=FEFE8EE0.21.0100.FD
+ReplyLength=14
+Validate=FEFE8EE0210100FD.FEFEE08EFBFD
+
+[pmXitOn]
+Command=FEFE8EE0.21.0201.FD
+ReplyLength=14
+Validate=FEFE8EE0210201FD.FEFEE08EFBFD
+
+[pmXitOff]
+Command=FEFE8EE0.21.0200.FD
+ReplyLength=14
+Validate=FEFE8EE0210200FD.FEFEE08EFBFD
+
+[pmRx]
+Command=FEFE8EE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE8EE01C0000FD.FEFEE08EFBFD
+
+[pmTx]
+Command=FEFE8EE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE8EE01C0001FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE8EE0.2600.07.FD
+ReplyLength=14
+Validate=FEFE8EE0260007FD.FEFEE08EFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE8EE0.2600.03.FD
+ReplyLength=14
+Validate=FEFE8EE0260003FD.FEFEE08EFBFD
+
+[pmSSB_U]
+; These lines select USB with Data Mode OFF, FIL1
+Command=FEFE8EE0.2600.01.00.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600010001FD.FEFEE08EFBFD
+
+[pmSSB_L]
+; These lines select LSB with Data Mode OFF, FIL1
+Command=FEFE8EE0.2600.00.00.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600000001FD.FEFEE08EFBFD
+
+[pmDIG_U]
+; These lines select USB-D Data Mode 2 (DATA2 MOD) which is set for USB sound card modulation, plus FIL1
+Command=FEFE8EE0.2600.01.02.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600010201FD.FEFEE08EFBFD
+
+[pmDIG_L]
+; These lines select LSB-D Data Mode 2 (DATA2 MOD) which is set for USB sound card modulation, plus FIL1
+Command=FEFE8EE0.2600.00.02.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600000201FD.FEFEE08EFBFD
+
+[pmAM]
+; These lines select AM with Data Mode OFF, FIL1
+Command=FEFE8EE0.2600.02.00.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600020001FD.FEFEE08EFBFD
+
+[pmFM]
+; These lines select FM with Data Mode OFF, FIL1
+Command=FEFE8EE0.2600.05.00.01.FD
+ReplyLength=16
+Validate=FEFE8EE02600050001FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE8EE0.2500.FD
+ReplyLength=19
+Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE8EE0.2501.FD
+ReplyLength=19
+Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE8EE0.2600.FD
+ReplyLength=17
+Validate=FEFE8EE02600FD.FEFEE08E.2600.000000.FD
+Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L
+Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U
+Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U
+Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L
+Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U
+Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L
+Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U
+Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L
+Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM
+Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM
+
+[STATUS4]
+Command=FEFE8EE0.1409.FD
+ReplyLength=16
+Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE8EE0.1C00.FD
+ReplyLength=15
+Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE8EE0.0F.FD
+ReplyLength=13
+Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE8EE0.2101.FD
+ReplyLength=15
+Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS8]
+Command=FEFE8EE0.2102.FD
+ReplyLength=15
+Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS9]
+Command=FEFE8EE0.07D2.FD
+ReplyLength=15
+Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-7851-DATA.ini b/CATCheck/Rigs/IC-7851-DATA.ini
new file mode 100644
index 0000000..e7b0e16
--- /dev/null
+++ b/CATCheck/Rigs/IC-7851-DATA.ini
@@ -0,0 +1,276 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7851-DATA
+;
+; IC-7851-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net, 2018-04-16
+;
+; Tested by: Bob Wilson, N6TV @ K3LR
+;
+; Same as IC-7851, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R
+; Note: Uses DATA1 MOD (aka Data Mode 1 or D1). User must set DATA1 Modulation Input
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE8EE0.1A050158.01.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE8EE0.1A050155.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE8EE0.1A050140.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE8EE0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD
+
+[pmFreqB]
+Command=FEFE8EE0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE8EE0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE8EE02100000000FD.FEFEE08EFBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE8EE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE8EE014090000FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE8EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmSplitOff]
+Command=FEFE8EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoA]
+Command=FEFE8EE0.07D0.FD
+ReplyLength=13
+Validate=FEFE8EE007D0FD.FEFEE08EFBFD
+
+[pmVfoB]
+Command=FEFE8EE0.07D1.FD
+ReplyLength=13
+Validate=FEFE8EE007D1FD.FEFEE08EFBFD
+
+[pmVfoEqual]
+Command=FEFE8EE0.07B1.FD
+ReplyLength=13
+Validate=FEFE8EE007B1FD.FEFEE08EFBFD
+
+[pmVfoSwap]
+Command=FEFE8EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE8EE007B0FD.FEFEE08EFBFD
+
+[pmVfoAA]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoAB]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBA]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBB]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmRitOn]
+Command=FEFE8EE0.21.0101.FD
+ReplyLength=14
+Validate=FEFE8EE0210101FD.FEFEE08EFBFD
+
+[pmRitOff]
+Command=FEFE8EE0.21.0100.FD
+ReplyLength=14
+Validate=FEFE8EE0210100FD.FEFEE08EFBFD
+
+[pmXitOn]
+Command=FEFE8EE0.21.0201.FD
+ReplyLength=14
+Validate=FEFE8EE0210201FD.FEFEE08EFBFD
+
+[pmXitOff]
+Command=FEFE8EE0.21.0200.FD
+ReplyLength=14
+Validate=FEFE8EE0210200FD.FEFEE08EFBFD
+
+[pmRx]
+Command=FEFE8EE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE8EE01C0000FD.FEFEE08EFBFD
+
+[pmTx]
+Command=FEFE8EE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE8EE01C0001FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE8EE0.2600.07.FD
+ReplyLength=14
+Validate=FEFE8EE0260007FD.FEFEE08EFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE8EE0.2600.03.FD
+ReplyLength=14
+Validate=FEFE8EE0260003FD.FEFEE08EFBFD
+
+[pmSSB_U]
+Command=FEFE8EE0.2600.01.00.FD
+ReplyLength=15
+Validate=FEFE8EE026000100FD.FEFEE08EFBFD
+
+[pmSSB_L]
+Command=FEFE8EE0.2600.00.00.FD
+ReplyLength=15
+Validate=FEFE8EE026000000FD.FEFEE08EFBFD
+
+[pmDIG_U]
+; These lines select USB-D Data Mode 1 (DATA1 MOD) which defaults to ACC-A sound card modulation
+Command=FEFE8EE0.2600.01.01.FD
+ReplyLength=15
+Validate=FEFE8EE026000101FD.FEFEE08EFBFD
+
+[pmDIG_L]
+; These lines select LSB-D Data Mode 1 (DATA1 MOD) which defaults to ACC-A sound card modulation
+Command=FEFE8EE0.2600.00.01.FD
+ReplyLength=15
+Validate=FEFE8EE026000001FD.FEFEE08EFBFD
+
+[pmAM]
+Command=FEFE8EE0.2600.02.FD
+ReplyLength=14
+Validate=FEFE8EE0260002FD.FEFEE08EFBFD
+
+[pmFM]
+Command=FEFE8EE0.2600.05.FD
+ReplyLength=14
+Validate=FEFE8EE0260005FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE8EE0.2500.FD
+ReplyLength=19
+Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE8EE0.2501.FD
+ReplyLength=19
+Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE8EE0.2600.FD
+ReplyLength=17
+Validate=FEFE8EE02600FD.FEFEE08E.2600.000000.FD
+Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L
+Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U
+Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U
+Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L
+Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U
+Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L
+Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U
+Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L
+Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM
+Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM
+
+[STATUS4]
+Command=FEFE8EE0.1409.FD
+ReplyLength=16
+Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE8EE0.1C00.FD
+ReplyLength=15
+Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE8EE0.0F.FD
+ReplyLength=13
+Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE8EE0.2101.FD
+ReplyLength=15
+Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS8]
+Command=FEFE8EE0.2102.FD
+ReplyLength=15
+Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS9]
+Command=FEFE8EE0.07D2.FD
+ReplyLength=15
+Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-7851.ini b/CATCheck/Rigs/IC-7851.ini
new file mode 100644
index 0000000..23371d4
--- /dev/null
+++ b/CATCheck/Rigs/IC-7851.ini
@@ -0,0 +1,273 @@
+;-------------------------------------------------------------------------------
+; Icom IC-7851
+;
+; IC-7851 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: Bob Wilson, N6TV @ K3LR
+;
+; Updated by N6TV 2018-04-16:
+; - Only returns pmFreqA and pmFreqB, not pmFreq, for use with CW Skimmer and Contest Loggers
+; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFE8EE0.1A050158.01.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFE8EE0.1A050155.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFE8EE0.1A050140.00.FD
+ReplyLength=16
+Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE8EE0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD
+
+[pmFreqB]
+Command=FEFE8EE0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFE8EE0.21.00000000.FD
+ReplyLength=16
+Validate=FEFE8EE02100000000FD.FEFEE08EFBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE8EE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE8EE014090000FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE8EE0.0F01.FD
+ReplyLength=13
+Validate=FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmSplitOff]
+Command=FEFE8EE0.0F00.FD
+ReplyLength=13
+Validate=FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoA]
+Command=FEFE8EE0.07D0.FD
+ReplyLength=13
+Validate=FEFE8EE007D0FD.FEFEE08EFBFD
+
+[pmVfoB]
+Command=FEFE8EE0.07D1.FD
+ReplyLength=13
+Validate=FEFE8EE007D1FD.FEFEE08EFBFD
+
+[pmVfoEqual]
+Command=FEFE8EE0.07B1.FD
+ReplyLength=13
+Validate=FEFE8EE007B1FD.FEFEE08EFBFD
+
+[pmVfoSwap]
+Command=FEFE8EE0.07B0.FD
+ReplyLength=13
+Validate=FEFE8EE007B0FD.FEFEE08EFBFD
+
+[pmVfoAA]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmVfoAB]
+Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBA]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD
+
+[pmVfoBB]
+Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD
+ReplyLength=20
+Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD
+
+[pmRitOn]
+Command=FEFE8EE0.21.0101.FD
+ReplyLength=14
+Validate=FEFE8EE0210101FD.FEFEE08EFBFD
+
+[pmRitOff]
+Command=FEFE8EE0.21.0100.FD
+ReplyLength=14
+Validate=FEFE8EE0210100FD.FEFEE08EFBFD
+
+[pmXitOn]
+Command=FEFE8EE0.21.0201.FD
+ReplyLength=14
+Validate=FEFE8EE0210201FD.FEFEE08EFBFD
+
+[pmXitOff]
+Command=FEFE8EE0.21.0200.FD
+ReplyLength=14
+Validate=FEFE8EE0210200FD.FEFEE08EFBFD
+
+[pmRx]
+Command=FEFE8EE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE8EE01C0000FD.FEFEE08EFBFD
+
+[pmTx]
+Command=FEFE8EE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE8EE01C0001FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE8EE0.06.07.FD
+ReplyLength=13
+Validate=FEFE8EE00607FD.FEFEE08EFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE8EE0.06.03.FD
+ReplyLength=13
+Validate=FEFE8EE00603FD.FEFEE08EFBFD
+
+[pmSSB_U]
+Command=FEFE8EE0.06.01.FD
+ReplyLength=13
+Validate=FEFE8EE00601FD.FEFEE08EFBFD
+
+[pmSSB_L]
+Command=FEFE8EE0.06.00.FD
+ReplyLength=13
+Validate=FEFE8EE00600FD.FEFEE08EFBFD
+
+[pmDIG_U]
+Command=FEFE8EE0.06.08.FD
+ReplyLength=13
+Validate=FEFE8EE00608FD.FEFEE08EFBFD
+
+[pmDIG_L]
+Command=FEFE8EE0.06.04.FD
+ReplyLength=13
+Validate=FEFE8EE00604FD.FEFEE08EFBFD.
+
+[pmAM]
+Command=FEFE8EE0.06.02.FD
+ReplyLength=13
+Validate=FEFE8EE00602FD.FEFEE08EFBFD
+
+[pmFM]
+Command=FEFE8EE0.06.05.FD
+ReplyLength=13
+Validate=FEFE8EE00605FD.FEFEE08EFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE8EE0.2500.FD
+ReplyLength=19
+Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFE8EE0.2501.FD
+ReplyLength=19
+Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFE8EE0.04.FD
+ReplyLength=14
+Validate=FEFE8EE004FD.FEFEE08E.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS4]
+Command=FEFE8EE0.1409.FD
+ReplyLength=16
+Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFE8EE0.1C00.FD
+ReplyLength=15
+Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFE8EE0.0F.FD
+ReplyLength=13
+Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFE8EE0.2101.FD
+ReplyLength=15
+Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS8]
+Command=FEFE8EE0.2102.FD
+ReplyLength=15
+Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
+
+[STATUS9]
+Command=FEFE8EE0.07D2.FD
+ReplyLength=15
+Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmVfoB
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA
diff --git a/CATCheck/Rigs/IC-821PST.ini b/CATCheck/Rigs/IC-821PST.ini
new file mode 100644
index 0000000..4d84566
--- /dev/null
+++ b/CATCheck/Rigs/IC-821PST.ini
@@ -0,0 +1,203 @@
+;-------------------------------------------------------------------------------
+ ; Icom IC-821PST command set
+;
+; File created for IC-970D by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+ Corrected by Vlad Tarasov , RA4HO, ra4ho@ncts.ru
+; Adapted and tested by MM0RBZ Specifically to use IC-821 with
+; PstRotator software for mode V/U and U/v satellites.
+; PstRotator has embedded code to use this .ini so please do not re-name it.
+; Use with other software may produce undesirable results.
+;
+;-------------------------------------------------------------------------------
+
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFE4CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE4CE0050000000000FD.FEFEE04CFBFD
+
+[pmFreqB]
+Command=FEFE4CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE4CE0050000000000FD.FEFEE04CFBFD
+
+[pmFreq]
+Command=FEFE4CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE4CE0050000000000FD.FEFEE04CFBFD
+
+[pmRitOffset]
+;not supported
+;+/- 1.2 KHz
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE4CE0.0F01.FD
+ReplyLength=13
+Validate=FEFE4CE00F01FD.FEFEE04CFBFD
+
+[pmSplitOff]
+Command=FEFE4CE0.0F00.FD
+ReplyLength=13
+Validate=FEFE4CE00F00FD.FEFEE04CFBFD
+
+[pmVfoA]
+;SELECT Sub BAND (RX)
+Command=FEFE4CE0.07D1.FD
+ReplyLength=13
+Validate=FEFE4CE007D1FD.FEFEE04CFBFD
+
+[pmVfoB]
+;SELECT Main BAND (TX)
+Command=FEFE4CE0.07D0.FD
+ReplyLength=13
+Validate=FEFE4CE007D0FD.FEFEE04CFBFD
+
+
+
+[pmVfoEqual]
+;SELECT Sub BAND (RX), this is not an error
+Command=FEFE4CE0.07D1.FD
+ReplyLength=13
+Validate=FEFE4CE007D1FD.FEFEE04CFBFD
+
+[pmVfoSwap]
+;SWAP MAIN AND SUB
+Command=FEFE4CE0.07B0.FD
+ReplyLength=13
+Validate=FEFE4CE007B0FD.FEFEE04CFBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE4CE0.06.03.FD
+ReplyLength=13
+Validate=FEFE4CE00603FD.FEFEE04CFBFD
+
+[pmCW_L]
+;NOT SUPPORTED
+
+[pmSSB_U]
+Command=FEFE4CE0.06.01.FD
+ReplyLength=13
+Validate=FEFE4CE00601FD.FEFEE04CFBFD
+
+[pmSSB_L]
+Command=FEFE4CE0.06.00.FD
+ReplyLength=13
+Validate=FEFE4CE00600FD.FEFEE04CFBFD
+
+[pmDIG_U]
+;not supported
+[pmDIG_L]
+;not supported
+
+[pmAM]
+;not supported
+
+[pmFM]
+Command=FEFE4CE0.06.05.FD
+ReplyLength=13
+Validate=FEFE4CE00605FD.FEFEE04CFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;READ CURRENT FREQUENCY DATA
+Command=FEFE4CE0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE4CE003FD.FEFEE04C.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;READ CURRENT MODE
+Command=FEFE4CE0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE4CE004FD.FEFEE04C.04.0000.FD
+is filter byte appended to the mode byte?
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+;not supported
+
+
+
+
diff --git a/CATCheck/Rigs/IC-910.ini b/CATCheck/Rigs/IC-910.ini
new file mode 100644
index 0000000..c0903e6
--- /dev/null
+++ b/CATCheck/Rigs/IC-910.ini
@@ -0,0 +1,174 @@
+;-------------------------------------------------------------------------------
+; Icom IC-910 command set
+;
+; Original IC-706MkII file created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+; Modified to work with IC-910 by Dave Hardy VK2JDH
+; Tested by: _________
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE60E0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE68E0050000000000FD.FEFEE060FBFD
+
+[pmRitOffset]
+;not supported
+
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE60E0.0F01.FD
+ReplyLength=13
+Validate=FEFE60E00F01FD.FEFEE060FBFD
+
+[pmSplitOff]
+Command=FEFE60E0.0F00.FD
+ReplyLength=13
+Validate=FEFE60E00F00FD.FEFEE060FBFD
+
+[pmVfoA]
+Command=FEFE60E0.0700.FD
+ReplyLength=13
+Validate=FEFE60E00700FD.FEFEE060FBFD
+
+[pmVfoB]
+Command=FEFE60E0.0701.FD
+ReplyLength=13
+Validate=FEFE60E00701FD.FEFEE060FBFD
+
+[pmVfoEqual]
+Command=FEFE60E0.07A0.FD
+ReplyLength=13
+Validate=FEFE60E007A0FD.FEFEE060FBFD
+
+[pmVfoSwap]
+Command=FEFE60E0.07B0.FD
+ReplyLength=13
+Validate=FEFE60E007B0FD.FEFEE060FBFD
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;not supported
+
+[pmTx]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE60E0.06.03.FD
+ReplyLength=13
+Validate=FEFE60E00603FD.FEFEE060FBFD
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+Command=FEFE60E0.06.01.FD
+ReplyLength=13
+Validate=FEFE60E00601FD.FEFEE060FBFD
+
+[pmSSB_L]
+Command=FEFE60E0.06.00.FD
+ReplyLength=13
+Validate=FEFE60E00600FD.FEFEE060FBFD
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+;not supported
+
+[pmFM]
+Command=FEFE60E0.06.04.FD
+ReplyLength=13
+Validate=FEFE60E00605FD.FEFEE060FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE60E0.03.FD
+ReplyLength=17
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE60E003FD.FEFEE060.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE60E0.04.FD
+ReplyLength=14
+Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE60E004FD.FEFEE060.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM
diff --git a/CATCheck/Rigs/IC-9100.ini b/CATCheck/Rigs/IC-9100.ini
new file mode 100644
index 0000000..a64bad2
Binary files /dev/null and b/CATCheck/Rigs/IC-9100.ini differ
diff --git a/CATCheck/Rigs/IC-9100v2.ini b/CATCheck/Rigs/IC-9100v2.ini
new file mode 100644
index 0000000..62a1dea
--- /dev/null
+++ b/CATCheck/Rigs/IC-9100v2.ini
@@ -0,0 +1,223 @@
+;-------------------------------------------------------------------------------
+; Icom IC-9100 with corrected command set
+;
+; IC-9100v2 File created by Bob Wilson, N6TV, n6tv@arrl.net
+;
+; Tested by: N6TV @ HRO Sunnyvale, CA
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn CI-V transceive OFF
+Command=FEFE7CE0.1A050058.00.FD
+ReplyLength=16
+Validate=FEFE7CE01A05005800FD.FEFEE07CFBFD
+
+[INIT2]
+;set CW normal to lower sideband
+Command=FEFE7CE0.1A050040.00.FD
+ReplyLength=16
+Validate=FEFE7CE01A05004000FD.FEFEE07CFBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmFreq]
+Command=FEFE7CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE7CE0050000000000FD.FEFEE07CFBFD
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFE7CE0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFE7CE014090000FD.FEFEE07CFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFE7CE0.0F01.FD
+ReplyLength=13
+Validate=FEFE7CE00F01FD.FEFEE07CFBFD
+
+[pmSplitOff]
+Command=FEFE7CE0.0F00.FD
+ReplyLength=13
+Validate=FEFE7CE00F00FD.FEFEE07CFBFD
+
+[pmVfoA]
+Command=FEFE7CE0.0700.FD
+ReplyLength=13
+Validate=FEFE7CE00700FD.FEFEE07CFBFD
+
+[pmVfoB]
+Command=FEFE7CE0.0701.FD
+ReplyLength=13
+Validate=FEFE7CE00701FD.FEFEE07CFBFD
+
+[pmVfoEqual]
+Command=FEFE7CE0.07A0.FD
+ReplyLength=13
+Validate=FEFE7CE007A0FD.FEFEE07CFBFD
+
+[pmVfoSwap]
+Command=FEFE7CE0.07B0.FD
+ReplyLength=13
+Validate=FEFE7CE007B0FD.FEFEE07CFBFD
+
+[pmVfoAA]
+Command=FEFE7CE0.0700.FD.FEFE7CE0.0F00.FD
+ReplyLength=20
+Validate=FEFE7CE00700FD.FEFE7CE00F00FD.FEFEE07CFBFD
+
+[pmVfoAB]
+Command=FEFE7CE0.0700.FD.FEFE7CE0.0F01.FD
+ReplyLength=20
+Validate=FEFE7CE00700FD.FEFE7CE00F01FD.FEFEE07CFBFD
+
+[pmVfoBA]
+Command=FEFE7CE0.0701.FD.FEFE7CE0.0F01.FD
+ReplyLength=20
+Validate=FEFE7CE00701FD.FEFE7CE00F01FD.FEFEE07CFBFD
+
+[pmVfoBB]
+Command=FEFE7CE0.0701.FD.FEFE7CE0.0F00.FD
+ReplyLength=20
+Validate=FEFE7CE00701FD.FEFE7CE00F00FD.FEFEE07CFBFD
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+Command=FEFE7CE0.1C00.00.FD
+ReplyLength=14
+Validate=FEFE7CE01C0000FD.FEFEE07CFBFD
+
+[pmTx]
+Command=FEFE7CE0.1C00.01.FD
+ReplyLength=14
+Validate=FEFE7CE01C0001FD.FEFEE07CFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFE7CE0.06.07.FD
+ReplyLength=13
+Validate=FEFE7CE00607FD.FEFEE07CFBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFE7CE0.06.03.FD
+ReplyLength=13
+Validate=FEFE7CE00603FD.FEFEE07CFBFD
+
+[pmSSB_U]
+Command=FEFE7CE0.06.01.FD
+ReplyLength=13
+Validate=FEFE7CE00601FD.FEFEE07CFBFD
+
+[pmSSB_L]
+Command=FEFE7CE0.06.00.FD
+ReplyLength=13
+Validate=FEFE7CE00600FD.FEFEE07CFBFD
+
+[pmDIG_U]
+Command=FEFE7CE0.06.08.FD
+ReplyLength=13
+Validate=FEFE7CE00608FD.FEFEE07CFBFD
+
+[pmDIG_L]
+Command=FEFE7CE0.06.04.FD
+ReplyLength=13
+Validate=FEFE7CE00604FD.FEFEE07CFBFD
+
+[pmAM]
+Command=FEFE7CE0.06.02.FD
+ReplyLength=13
+Validate=FEFE7CE00602FD.FEFEE07CFBFD
+
+[pmFM]
+Command=FEFE7CE0.06.05.FD
+ReplyLength=13
+Validate=FEFE7CE00605FD.FEFEE07CFBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE7CE0.03.FD
+ReplyLength=17
+Validate=FEFE7CE003FD.FEFEE07C.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE7CE0.04.FD
+ReplyLength=14
+Validate=FEFE7CE004FD.FEFEE07C.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE7CE0.1409.FD
+ReplyLength=16
+Validate=FEFE7CE01409FD.FEFEE07C.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS4]
+Command=FEFE7CE0.1C00.FD
+ReplyLength=15
+Validate=FEFE7CE01C00FD.FEFEE07C.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS5]
+Command=FEFE7CE0.0F.FD
+ReplyLength=13
+Validate=FEFE7CE00FFD.FEFEE07C.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.FF.00|000000000000.00000000.00.00.00|pmSplitOff
diff --git a/CATCheck/Rigs/IC-9700.ini b/CATCheck/Rigs/IC-9700.ini
new file mode 100644
index 0000000..718afb7
--- /dev/null
+++ b/CATCheck/Rigs/IC-9700.ini
@@ -0,0 +1,277 @@
+;-------------------------------------------------------------------------------
+; Icom IC-9700
+;
+; IC-7300 File created by Bob Wilson, N6TV, n6tv@arrl.net
+; modified by HB9RYZ [info@hb9ryz.ch] in order to use this ini-File with the new IC-9700.
+; the default CI-V address has been chnanged from 94h to A2
+;
+; Tested by: Wolfgang Sidler, HB9RYZ
+;
+; Same as original IC-7300, but only returns pmVfoA and pmVfoB, not pmFreq
+; for use with CW Skimmer and Contest Loggers.
+;
+; Updated by HB9RYZ 2019-05-10:
+; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;Turn USB CI-V Echo Back ON
+Command=FEFEA2E0.1A050075.01.FD
+ReplyLength=16
+Validate=FEFEA2E01A05007501FD.FEFEE0A2FBFD
+
+[INIT2]
+;Turn CI-V transceive OFF
+Command=FEFEA2E0.1A050071.00.FD
+ReplyLength=16
+Validate=FEFEA2E01A05007100FD.FEFEE0A2FBFD
+
+[INIT3]
+;set CW normal to lower sideband
+Command=FEFEA2E0.1A050053.00.FD
+ReplyLength=16
+Validate=FEFEA2E01A05005300FD.FEFEE0A2FBFD
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=FEFEA2E0.25.00.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFEA2E025000000000000FD.FEFEE0A2FBFD
+
+[pmFreqB]
+Command=FEFEA2E0.25.01.0000000000.FD
+Value=6|5|vfBcdLU|1|0
+ReplyLength=18
+Validate=FEFEA2E025010000000000FD.FEFEE0A2FBFD
+
+[pmFreq]
+; not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=FEFEA2E0.21.00000000.FD
+ReplyLength=16
+Validate=FEFEA2E02100000000FD.FEFEE0A2FBFD
+
+[pmPitch]
+;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255
+Command=FEFEA2E0.14.09.0000.FD
+Value=6|2|vfBcdBU|0.425|-127.5
+ReplyLength=15
+Validate=FEFEA2E014090000FD.FEFEE0A2FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=FEFEA2E0.0F01.FD
+ReplyLength=13
+Validate=FEFEA2E00F01FD.FEFEE0A2FBFD
+
+[pmSplitOff]
+Command=FEFEA2E0.0F00.FD
+ReplyLength=13
+Validate=FEFEA2E00F00FD.FEFEE0A2FBFD
+
+[pmVfoA]
+Command=FEFEA2E0.0700.FD
+ReplyLength=13
+Validate=FEFEA2E00700FD.FEFEE0A2FBFD
+
+[pmVfoB]
+Command=FEFEA2E0.0701.FD
+ReplyLength=13
+Validate=FEFEA2E00701FD.FEFEE0A2FBFD
+
+[pmVfoEqual]
+Command=FEFEA2E0.07A0.FD
+ReplyLength=13
+Validate=FEFEA2E007A0FD.FEFEE0A2FBFD
+
+[pmVfoSwap]
+Command=FEFEA2E0.07B0.FD
+ReplyLength=13
+Validate=FEFEA2E007B0FD.FEFEE0A2FBFD
+
+[pmVfoAA]
+Command=FEFEA2E0.0700.FD.FEFEA2E0.0F00.FD
+ReplyLength=20
+Validate=FEFEA2E00700FD.FEFEA2E00F00FD.FEFEE0A2FBFD
+
+[pmVfoAB]
+Command=FEFEA2E0.0700.FD.FEFEA2E0.0F01.FD
+ReplyLength=20
+Validate=FEFEA2E00700FD.FEFEA2E00F01FD.FEFEE0A2FBFD
+
+[pmVfoBA]
+Command=FEFEA2E0.0701.FD.FEFEA2E0.0F01.FD
+ReplyLength=20
+Validate=FEFEA2E00701FD.FEFEA2E00F01FD.FEFEE0A2FBFD
+
+[pmVfoBB]
+Command=FEFEA2E0.0701.FD.FEFEA2E0.0F00.FD
+ReplyLength=20
+Validate=FEFEA2E00701FD.FEFEA2E00F00FD.FEFEE0A2FBFD
+
+[pmRitOn]
+Command=FEFEA2E0.21.0101.FD
+ReplyLength=14
+Validate=FEFEA2E0210101FD.FEFEE0A2FBFD
+
+[pmRitOff]
+Command=FEFEA2E0.21.0100.FD
+ReplyLength=14
+Validate=FEFEA2E0210100FD.FEFEE0A2FBFD
+
+[pmXitOn]
+Command=FEFEA2E0.21.0201.FD
+ReplyLength=14
+Validate=FEFEA2E0210201FD.FEFEE0A2FBFD
+
+[pmXitOff]
+Command=FEFEA2E0.21.0200.FD
+ReplyLength=14
+Validate=FEFEA2E0210200FD.FEFEE0A2FBFD
+
+[pmRx]
+Command=FEFEA2E0.1C00.00.FD
+ReplyLength=14
+Validate=FEFEA2E01C0000FD.FEFEE0A2FBFD
+
+[pmTx]
+Command=FEFEA2E0.1C00.01.FD
+ReplyLength=14
+Validate=FEFEA2E01C0001FD.FEFEE0A2FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+; CW-R
+Command=FEFEA2E0.06.07.FD
+ReplyLength=13
+Validate=FEFEA2E00607FD.FEFEE0A2FBFD
+
+[pmCW_L]
+; CW Normal
+Command=FEFEA2E0.06.03.FD
+ReplyLength=13
+Validate=FEFEA2E00603FD.FEFEE0A2FBFD
+
+[pmSSB_U]
+Command=FEFEA2E0.06.01.FD
+ReplyLength=13
+Validate=FEFEA2E00601FD.FEFEE0A2FBFD
+
+[pmSSB_L]
+Command=FEFEA2E0.06.00.FD
+ReplyLength=13
+Validate=FEFEA2E00600FD.FEFEE0A2FBFD
+
+[pmDIG_U]
+Command=FEFEA2E0.06.08.FD
+ReplyLength=13
+Validate=FEFEA2E00608FD.FEFEE0A2FBFD
+
+[pmDIG_L]
+Command=FEFEA2E0.06.04.FD
+ReplyLength=13
+Validate=FEFEA2E00604FD.FEFEE0A2FBFD.
+
+[pmAM]
+Command=FEFEA2E0.06.02.FD
+ReplyLength=13
+Validate=FEFEA2E00602FD.FEFEE0A2FBFD
+
+[pmFM]
+Command=FEFEA2E0.06.05.FD
+ReplyLength=13
+Validate=FEFEA2E00605FD.FEFEE0A2FBFD
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFEA2E0.2500.FD
+ReplyLength=19
+Validate=FEFEA2E02500FD.FEFEE0A2.2500.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqA
+
+[STATUS2]
+Command=FEFEA2E0.2501.FD
+ReplyLength=19
+Validate=FEFEA2E02501FD.FEFEE0A2.2501.0000000000.FD
+Value1=13|5|vfBcdLU|1|0|pmFreqB
+
+[STATUS3]
+Command=FEFEA2E0.04.FD
+ReplyLength=14
+Validate=FEFEA2E004FD.FEFEE0A2.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS4]
+Command=FEFEA2E0.1409.FD
+ReplyLength=16
+Validate=FEFEA2E01409FD.FEFEE0A2.1409.0000.FD
+; 0=300 Hz, 255=900 Hz
+Value1=13|2|vfBcdBU|2.362205|300|pmPitch
+
+[STATUS5]
+Command=FEFEA2E0.1C00.FD
+ReplyLength=15
+Validate=FEFEA2E01C00FD.FEFEE0A2.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx
+
+[STATUS6]
+Command=FEFEA2E0.0F.FD
+ReplyLength=13
+Validate=FEFEA2E00FFD.FEFEE0A2.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmSplitOn
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff
+
+[STATUS7]
+Command=FEFEA2E0.0F.FD
+ReplyLength=13
+Validate=FEFEA2E00FFD.FEFEE0A2.0F.00.FD
+Flag1=000000000000.00000000.00.01.00|pmVfoAB
+Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmVfoAA
+
+[STATUS8]
+Command=FEFEA2E0.2101.FD
+ReplyLength=15
+Validate=FEFEA2E02101FD.FEFEE0A2.2101.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmRitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff
+
+[STATUS9]
+Command=FEFEA2E0.2102.FD
+ReplyLength=15
+Validate=FEFEA2E02102FD.FEFEE0A2.2102.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmXitOn
+Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff
diff --git a/CATCheck/Rigs/IC-M710.ini b/CATCheck/Rigs/IC-M710.ini
new file mode 100644
index 0000000..27441de
--- /dev/null
+++ b/CATCheck/Rigs/IC-M710.ini
@@ -0,0 +1,177 @@
+;-------------------------------------------------------------------------------
+; Icom IC-M710 command set
+;
+; File created by Alex Ushakov, RA6UAZ
+;
+; Tested by: _________
+;-------------------------------------------------------------------------------
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;Command=($PICOA,90,01,REMOTE,ON)
+;Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.45.4D.4F.54.45.2C.4F.4E.0D.0A
+;ReplyEnd=0A
+;Validate=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.45.4D.4F.54.45.2C.4F.4E.2A.35.39.0D.0A
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+;$PICOA,90,01,RXF,14.103600
+;Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.58.46.2C.31.34.2E.31.30.33.36.30.30.0D.0A
+;ReplyEnd=0A
+;Value=17|9|vfDPIcom|1|0
+
+[pmFreqB]
+;$PICOA,90,01,TXF,14.103600
+;ReplyEnd=0A
+;Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.54.58.46.2C.31.34.2E.31.30.33.36.30.30.0D.0A
+;Value=17|9|vfDPIcom|1|0
+
+[pmFreq]
+;$PICOA,90,01,RXF,14.103600
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.58.46.2C.31.34.2E.31.30.33.36.30.30.0D.0A
+ReplyEnd=0A
+Value=17|9|vfDPIcom|1|0
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+[pmPitch]
+;not supported
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+;$PICOA,90,01,TRX,RX
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.54.52.58.2C.52.58.0D.0A
+ReplyEnd=0A
+
+[pmTx]
+;$PICOA,90,01,TRX,TX
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.54.52.58.2C.54.58.0D.0A
+ReplyEnd=0A
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+;$PICOA,90,01,MODE,A1A
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.2C.41.31.41.0D.0A
+ReplyEnd=0A
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+;$PICOA,90,01,MODE,J3E
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.2C.4A.33.45.0D.0A
+ReplyEnd=0A
+
+[pmSSB_L]
+;$PICOA,90,01,MODE,LSB
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.2C.4C.53.42.0D.0A
+ReplyEnd=0A
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+;$PICOA,90,01,MODE,H3E
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.2C.48.33.45.0D.0A
+ReplyEnd=0A
+
+[pmFM]
+;not supported
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+;$PICOA,90,01,RXF
+;$PICOA,01,90,RXF,14.103600*3F
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.58.46.0D.0A
+ReplyEnd=0A
+Value1=17|9|vfDPIcom|1|0|pmFreq
+Value2=17|9|vfDPIcom|1|0|pmFreqA
+Value3=17|9|vfDPIcom|1|0|pmFreqB
+
+[STATUS2]
+;$PICOA,90,01,MODE
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.0D.0A
+ReplyEnd=0A
+Flag1=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.41.31.41.00.00.00.0D.0A|pmCW_U
+Flag2=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.4A.33.45.00.00.00.0D.0A|pmSSB_U
+Flag3=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.4C.53.42.00.00.00.0D.0A|pmSSB_L
+Flag4=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.48.33.45.00.00.00.0D.0A|pmAM
+
+[STATUS3]
+;$PICOA,90,01,TRX
+Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.54.52.58.0D.0A
+ReplyEnd=0A
+Flag1=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.52.58.00.00.00.0D.0A|pmRX
+Flag2=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.54.58.00.00.00.0D.0A|pmTX
+
diff --git a/CATCheck/Rigs/IC-R75-chromos.ini b/CATCheck/Rigs/IC-R75-chromos.ini
new file mode 100644
index 0000000..a92c764
--- /dev/null
+++ b/CATCheck/Rigs/IC-R75-chromos.ini
@@ -0,0 +1,201 @@
+;-------------------------------------------------------------------------------------
+; ICOM IC-R75 command set, version 9 May 2010
+;
+; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II
+; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II
+; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro
+; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756
+; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500
+; -Fifth modification by John, W0JFR: Conversion of the set for use with an IC-R75
+; -Sixth modification by Mirek, OK1-36292, chromos@chromos.cz: add CW-R, RTTY and RTTY-R modes, in LSB and USB wide filters to normal
+;-------------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------------
+
+[INIT]
+;stop scan
+Command=FEFE5AE0.0E.00.FD
+ReplyLength=13
+Validate=FEFE5AE00E00FD.FEFEE05AFBFD
+
+;-------------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------------
+
+[pmFreqA]
+;Not supported
+
+[pmFreqB]
+;Not supported
+
+[pmFreq]
+;Set operating frequency
+Command=FEFE5AE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE5AE0050000000000FD.FEFEE05AFBFD
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;Set CW pitch
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------------
+
+[pmSplitOn]
+;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency)
+;Not supported
+
+[pmSplitOff]
+;Disable split operation, transmit and receive frequencies set to VFO A frequency
+;Not supported on R75, so this is a dummy command expected to fail
+;Command=FEFE5AE0.0F00.FD
+;ReplyLength=13
+;Validate=FEFE5AE00F00FD.FEFEE05AFAFD
+
+[pmVfoA]
+;Set receiver to VFO A frequency
+;Not supported
+
+[pmVfoB]
+;Set receiver to VFO B frequency
+;Not supported
+
+[pmVfoEqual]
+;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO)
+;Not supported
+
+[pmVfoSwap]
+;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO)
+;Not supported
+
+[pmVfoAA]
+;Not supported
+
+[pmVfoAB]
+;Not supported
+
+[pmVfoBA]
+;Not supported
+
+[pmVfoBB]
+;Not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+;Enable the receive mode
+;Not supported
+
+[pmTx]
+;Enable the transmit mode
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------------
+
+[pmCW_U]
+;Set the CW mode
+Command=FEFE5AE0.06.0301.FD
+ReplyLength=14
+Validate=FEFE5AE0060301FD.FEFEE05AFBFD
+
+[pmCW_L]
+;Set the CW-R mode
+Command=FEFE5AE0.06.0701.FD
+ReplyLength=14
+Validate=FEFE5AE0060701FD.FEFEE05AFBFD
+
+[pmSSB_U]
+;Set the USB mode
+Command=FEFE5AE0.06.0102.FD
+ReplyLength=14
+Validate=FEFE5AE0060102FD.FEFEE05AFBFD
+
+[pmSSB_L]
+;Set the LSB mode
+Command=FEFE5AE0.06.0002.FD
+ReplyLength=14
+Validate=FEFE5AE0060002FD.FEFEE05AFBFD
+
+[pmDIG_U]
+;Set the Digital RTTY mode (microphone muted)
+Command=FEFE5AE0.06.0402.FD
+ReplyLength=14
+Validate=FEFE5AE0060402FD.FEFEE05AFBFD
+
+[pmDIG_L]
+;Set the Digital RTTY-R mode (microphone muted)
+Command=FEFE5AE0.06.0802.FD
+ReplyLength=14
+Validate=FEFE5AE0060802FD.FEFEE05AFBFD
+
+[pmAM]
+;Set the AM mode
+Command=FEFE5AE0.06.0202.FD
+ReplyLength=14
+Validate=FEFE5AE0060202FD.FEFEE05AFBFD
+
+[pmFM]
+;Set the FM mode
+Command=FEFE5AE0.06.0502.FD
+ReplyLength=14
+Validate=FEFE5AE0060502FD.FEFEE05AFBFD
+
+;-------------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------------
+
+[STATUS1]
+;Read the operating frequency
+Command=FEFE5AE0.03.FD
+ReplyLength=17
+Validate=FEFE5AE003FD.FEFEE05A.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;Read the operating mode
+Command=FEFE5AE0.04.FD
+ReplyLength=14
+Validate=FEFE5AE004FD.FEFEE05A.05.0000.FD
+Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag2=000000000000.0000000000.01.0000|pmSSB_U
+Flag3=000000000000.0000000000.02.0000|pmAM
+Flag4=000000000000.0000000000.03.0000|pmCW_U
+Flag5=000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.05.0000|pmFM
+Flag7=000000000000.0000000000.07.0000|pmCW_L
+Flag8=000000000000.0000000000.08.0000|pmDIG_L
+
+[STATUS3]
+;Read the CW pitch
+;Not supported
+
+[STATUS4]
+;Read the transmit or receive mode
+;Not supported
+
+
+
+
diff --git a/CATCheck/Rigs/IC-R75.ini b/CATCheck/Rigs/IC-R75.ini
new file mode 100644
index 0000000..84aef74
--- /dev/null
+++ b/CATCheck/Rigs/IC-R75.ini
@@ -0,0 +1,194 @@
+;-------------------------------------------------------------------------------------
+; ICOM IC-R75 command set, version 8 Jul 2006
+;
+; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II
+; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II
+; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro
+; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756
+; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500
+; -Fifth modification by John, W0JFR: Conversion of the set for use with an IC-R75
+;-------------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------------
+
+[INIT]
+;stop scan
+Command=FEFE5AE0.0E.00.FD
+ReplyLength=13
+Validate=FEFE5AE00E00FD.FEFEE05AFBFD
+
+;-------------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------------
+
+[pmFreqA]
+;Not supported
+
+[pmFreqB]
+;Not supported
+
+[pmFreq]
+;Set operating frequency
+Command=FEFE5AE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE5AE0050000000000FD.FEFEE05AFBFD
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;Set CW pitch
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------------
+
+[pmSplitOn]
+;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency)
+;Not supported
+
+[pmSplitOff]
+;Disable split operation, transmit and receive frequencies set to VFO A frequency
+;Not supported on R75, so this is a dummy command expected to fail
+Command=FEFE5AE0.0F00.FD
+ReplyLength=13
+Validate=FEFE5AE00F00FD.FEFEE05AFAFD
+
+[pmVfoA]
+;Set receiver to VFO A frequency
+;Not supported
+
+[pmVfoB]
+;Set receiver to VFO B frequency
+;Not supported
+
+[pmVfoEqual]
+;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO)
+;Not supported
+
+[pmVfoSwap]
+;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO)
+;Not supported
+
+[pmVfoAA]
+;Not supported
+
+[pmVfoAB]
+;Not supported
+
+[pmVfoBA]
+;Not supported
+
+[pmVfoBB]
+;Not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+;Enable the receive mode
+;Not supported
+
+[pmTx]
+;Enable the transmit mode
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------------
+
+[pmCW_U]
+;Set the CW mode
+Command=FEFE5AE0.06.0301.FD
+ReplyLength=14
+Validate=FEFE5AE0060301FD.FEFEE05AFBFD
+
+[pmCW_L]
+;Set the CW-R mode
+;Not supported
+
+[pmSSB_U]
+;Set the USB mode
+Command=FEFE5AE0.06.0101.FD
+ReplyLength=14
+Validate=FEFE5AE0060101FD.FEFEE05AFBFD
+
+[pmSSB_L]
+;Set the LSB mode
+Command=FEFE5AE0.06.0001.FD
+ReplyLength=14
+Validate=FEFE5AE0060001FD.FEFEE05AFBFD
+
+[pmDIG_U]
+;Set the Digital RTTY mode (microphone muted)
+;Not supported
+
+[pmDIG_L]
+;Set the Digital RTTY-R mode (microphone muted)
+;Not supported
+
+[pmAM]
+;Set the AM mode
+Command=FEFE5AE0.06.0202.FD
+ReplyLength=14
+Validate=FEFE5AE0060202FD.FEFEE05AFBFD
+
+[pmFM]
+;Set the FM mode
+Command=FEFE5AE0.06.0502.FD
+ReplyLength=14
+Validate=FEFE5AE0060502FD.FEFEE05AFBFD
+
+;-------------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------------
+
+[STATUS1]
+;Read the operating frequency
+Command=FEFE5AE0.03.FD
+ReplyLength=17
+Validate=FEFE5AE003FD.FEFEE05A.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;Read the operating mode
+Command=FEFE5AE0.04.FD
+ReplyLength=14
+Validate=FEFE5AE004FD.FEFEE05A.05.0000.FD
+Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag2=000000000000.0000000000.01.0000|pmSSB_U
+Flag3=000000000000.0000000000.02.0000|pmAM
+Flag4=000000000000.0000000000.03.0000|pmCW_U
+;Flag5=000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.05.0000|pmFM
+;Flag7=000000000000.0000000000.07.0000|pmCW_L
+;Flag8=000000000000.0000000000.08.0000|pmDIG_L
+
+[STATUS3]
+;Read the CW pitch
+;Not supported
+
+[STATUS4]
+;Read the transmit or receive mode
+;Not supported
+
+
+
+
diff --git a/CATCheck/Rigs/IC-R8500.ini b/CATCheck/Rigs/IC-R8500.ini
new file mode 100644
index 0000000..60115dd
--- /dev/null
+++ b/CATCheck/Rigs/IC-R8500.ini
@@ -0,0 +1,193 @@
+;-------------------------------------------------------------------------------------
+; ICOM IC-R8500 command set, version 19 JUN 06
+;
+; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II
+; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II
+; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro
+; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756
+; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500
+;-------------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------------
+
+[INIT]
+;stop scan
+Command=FEFE4AE0.0E.00.FD
+ReplyLength=13
+Validate=FEFE4AE00E00FD.FEFEE04AFBFD
+
+;-------------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------------
+
+[pmFreqA]
+;Not supported
+
+[pmFreqB]
+;Not supported
+
+[pmFreq]
+;Set operating frequency
+Command=FEFE4AE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE4AE0050000000000FD.FEFEE04AFBFD
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;Set CW pitch
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------------
+
+[pmSplitOn]
+;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency)
+;Not supported
+
+[pmSplitOff]
+;Disable split operation, transmit and receive frequencies set to VFO A frequency
+;Not supported on R8500, so this is a dummy command expected to fail
+Command=FEFE4AE0.0F00.FD
+ReplyLength=13
+Validate=FEFE4AE00F00FD.FEFEE04AFAFD
+
+[pmVfoA]
+;Set receiver to VFO A frequency
+;Not supported
+
+[pmVfoB]
+;Set receiver to VFO B frequency
+;Not supported
+
+[pmVfoEqual]
+;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO)
+;Not supported
+
+[pmVfoSwap]
+;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO)
+;Not supported
+
+[pmVfoAA]
+;Not supported
+
+[pmVfoAB]
+;Not supported
+
+[pmVfoBA]
+;Not supported
+
+[pmVfoBB]
+;Not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+;Enable the receive mode
+;Not supported
+
+[pmTx]
+;Enable the transmit mode
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------------
+
+[pmCW_U]
+;Set the CW mode
+Command=FEFE4AE0.06.0301.FD
+ReplyLength=14
+Validate=FEFE4AE0060301FD.FEFEE04AFBFD
+
+[pmCW_L]
+;Set the CW-R mode
+;Not supported
+
+[pmSSB_U]
+;Set the USB mode
+Command=FEFE4AE0.06.0101.FD
+ReplyLength=14
+Validate=FEFE4AE0060101FD.FEFEE04AFBFD
+
+[pmSSB_L]
+;Set the LSB mode
+Command=FEFE4AE0.06.0001.FD
+ReplyLength=14
+Validate=FEFE4AE0060001FD.FEFEE04AFBFD
+
+[pmDIG_U]
+;Set the Digital RTTY mode (microphone muted)
+;Not supported
+
+[pmDIG_L]
+;Set the Digital RTTY-R mode (microphone muted)
+;Not supported
+
+[pmAM]
+;Set the AM mode
+Command=FEFE4AE0.06.0202.FD
+ReplyLength=14
+Validate=FEFE4AE0060202FD.FEFEE04AFBFD
+
+[pmFM]
+;Set the FM mode
+Command=FEFE4AE0.06.0502.FD
+ReplyLength=14
+Validate=FEFE4AE0060502FD.FEFEE04AFBFD
+
+;-------------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------------
+
+[STATUS1]
+;Read the operating frequency
+Command=FEFE4AE0.03.FD
+ReplyLength=17
+Validate=FEFE4AE003FD.FEFEE04A.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;Read the operating mode
+Command=FEFE4AE0.04.FD
+ReplyLength=14
+Validate=FEFE4AE004FD.FEFEE04A.04.0000.FD
+Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag2=000000000000.0000000000.01.0000|pmSSB_U
+Flag3=000000000000.0000000000.02.0000|pmAM
+Flag4=000000000000.0000000000.03.0000|pmCW_U
+;Flag5=000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.05.0000|pmFM
+;Flag7=000000000000.0000000000.07.0000|pmCW_L
+;Flag8=000000000000.0000000000.08.0000|pmDIG_L
+
+[STATUS3]
+;Read the CW pitch
+;Not supported
+
+[STATUS4]
+;Read the transmit or receive mode
+;Not supported
+
+
+
+
diff --git a/CATCheck/Rigs/IC-R9000.ini b/CATCheck/Rigs/IC-R9000.ini
new file mode 100644
index 0000000..219b054
--- /dev/null
+++ b/CATCheck/Rigs/IC-R9000.ini
@@ -0,0 +1,194 @@
+;-------------------------------------------------------------------------------------
+; ICOM IC-R9000 command set, version 17 AUG 08
+;
+; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II
+; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II
+; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro
+; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756
+; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500
+; -Fifth modification by Ernst, DK1VI: Conversion of the set for use with an IC-R9000
+;-------------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------------
+
+[INIT]
+;stop scan
+Command=FEFE2AE0.0E.00.FD
+ReplyLength=13
+Validate=FEFE2AE00E00FD.FEFEE04AFBFD
+
+;-------------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------------
+
+[pmFreqA]
+;Not supported
+
+[pmFreqB]
+;Not supported
+
+[pmFreq]
+;Set operating frequency
+Command=FEFE2AE0.00.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE2AE0000000000000FD.FEFEE02AFBFD
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;Set CW pitch
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------------
+
+[pmSplitOn]
+;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency)
+;Not supported
+
+[pmSplitOff]
+;Disable split operation, transmit and receive frequencies set to VFO A frequency
+;Not supported
+
+[pmVfoA]
+;Set receiver to VFO A frequency
+;Not supported
+
+[pmVfoB]
+;Set receiver to VFO B frequency
+;Not supported
+
+[pmVfoEqual]
+;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO)
+;Not supported
+
+[pmVfoSwap]
+;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO)
+;Not supported
+
+[pmVfoAA]
+;Not supported
+
+[pmVfoAB]
+;Not supported
+
+[pmVfoBA]
+;Not supported
+
+[pmVfoBB]
+;Not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+;Enable the receive mode
+;Not supported
+
+[pmTx]
+;Enable the transmit mode
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------------
+
+[pmCW_U]
+;Set the CW mode wide
+Command=FEFE2AE0.06.0301.FD
+ReplyLength=14
+Validate=FEFE2AE0060301FD.FEFEE02AFBFD
+
+[pmCW_L]
+;Set the CW-R mode
+;Not supported
+
+[pmSSB_U]
+;Set the USB mode
+Command=FEFE2AE0.06.0101.FD
+ReplyLength=14
+Validate=FEFE2AE0060101FD.FEFEE02AFBFD
+
+[pmSSB_L]
+;Set the LSB mode
+Command=FEFE2AE0.06.0001.FD
+ReplyLength=14
+Validate=FEFE2AE0060001FD.FEFEE02AFBFD
+
+[pmDIG_U]
+;Set the Digital RTTY mode, middle bandwith
+Command=FEFE2AE0.06.0402.FD
+ReplyLength=14
+Validate=FEFE2AE0060402FD.FEFEE02AFBFD
+
+[pmDIG_L]
+;Set the Digital RTTY-R mode (microphone muted)
+;Not supported
+
+[pmAM]
+;Set the AM mode
+Command=FEFE2AE0.06.0202.FD
+ReplyLength=14
+Validate=FEFE2AE0060202FD.FEFEE02AFBFD
+
+[pmFM]
+;Set the FM mode
+Command=FEFE2AE0.06.0502.FD
+ReplyLength=14
+Validate=FEFE2AE0060502FD.FEFEE02AFBFD
+
+;-------------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------------
+
+[STATUS1]
+;Read the operating frequency
+Command=FEFE2AE0.03.FD
+ReplyLength=17
+Validate=FEFE2AE003FD.FEFEE02A.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;Read the operating mode
+Command=FEFE2AE0.04.FD
+ReplyLength=14
+Validate=FEFE2AE004FD.FEFEE02A.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+;Flag7=000000000000.0000000000.07.0000|pmCW_L
+;Flag8=000000000000.0000000000.08.0000|pmDIG_L
+
+
+[STATUS3]
+;Read the CW pitch
+;Not supported
+
+[STATUS4]
+;Read the transmit or receive mode
+;Not supported
+
+
+
+
diff --git a/CATCheck/Rigs/IC-R9500.ini b/CATCheck/Rigs/IC-R9500.ini
new file mode 100644
index 0000000..c830da0
--- /dev/null
+++ b/CATCheck/Rigs/IC-R9500.ini
@@ -0,0 +1,201 @@
+;-------------------------------------------------------------------------------------
+; ICOM IC-R9500 command set, version 12 SEP 16
+;
+; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II
+; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II
+; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro
+; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756
+; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500
+; -Fifth modification by Ernst, DK1VI: Conversion of the set for use with an IC-R9000
+; -Sixth modification by Frank, PA589: Conversion of the set for use with an IC-R9500
+;-------------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------------
+
+[INIT]
+;stop scan
+Command=FEFE72E0.0E.00.FD
+ReplyLength=13
+Validate=FEFE72E00E00FD.FEFEE072FBFD
+
+;-------------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------------
+
+[pmFreqA]
+;Not supported
+
+[pmFreqB]
+;Not supported
+
+[pmFreq]
+;Set operating frequency
+Command=FEFE72E0.00.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE72E0000000000000FD.FEFEE072FBFD
+
+[pmRitOffset]
+;Not supported
+
+[pmRit0]
+;Not supported
+
+[pmPitch]
+;Set CW pitch
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------------
+
+[pmSplitOn]
+;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency)
+;Not supported
+
+[pmSplitOff]
+;Disable split operation, transmit and receive frequencies set to VFO A frequency
+;Not supported
+
+[pmVfoA]
+;Set receiver to VFO A frequency
+;Not supported
+
+[pmVfoB]
+;Set receiver to VFO B frequency
+;Not supported
+
+[pmVfoEqual]
+;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO)
+;Not supported
+
+[pmVfoSwap]
+;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO)
+;Not supported
+
+[pmVfoAA]
+;Not supported
+
+[pmVfoAB]
+;Not supported
+
+[pmVfoBA]
+;Not supported
+
+[pmVfoBB]
+;Not supported
+
+[pmRitOn]
+;Not supported
+
+[pmRitOff]
+;Not supported
+
+[pmXitOn]
+;Not supported
+
+[pmXitOff]
+;Not supported
+
+[pmRx]
+;Enable the receive mode
+;Not supported
+
+[pmTx]
+;Enable the transmit mode
+;Not supported
+
+;-------------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------------
+
+[pmCW_U]
+;Set the CW mode wide
+Command=FEFE72E0.06.0301.FD
+ReplyLength=14
+Validate=FEFE72E0060301FD.FEFEE072FBFD
+
+[pmCW_L]
+;Set the CW-R mode
+Command=FEFE72E0.06.0701.FD
+ReplyLength=14
+Validate=FEFE72E0060701FD.FEFEE072FBFD
+
+
+[pmSSB_U]
+;Set the USB mode
+Command=FEFE72E0.06.0101.FD
+ReplyLength=14
+Validate=FEFE72E0060101FD.FEFEE072FBFD
+
+[pmSSB_L]
+;Set the LSB mode
+Command=FEFE72E0.06.0001.FD
+ReplyLength=14
+Validate=FEFE72E0060001FD.FEFEE072FBFD
+
+[pmDIG_U]
+;Set the Digital RTTY mode, middle bandwith
+Command=FEFE72E0.06.0402.FD
+ReplyLength=14
+Validate=FEFE72E0060402FD.FEFEE072FBFD
+
+[pmDIG_L]
+;Set the Digital RTTY-R mode (microphone muted)
+Command=FEFE72E0.06.0802.FD
+ReplyLength=14
+Validate=FEFE72E0060802FD.FEFEE072FBFD
+
+
+[pmAM]
+;Set the AM mode
+Command=FEFE72E0.06.0202.FD
+ReplyLength=14
+Validate=FEFE72E0060202FD.FEFEE072FBFD
+
+[pmFM]
+;Set the FM mode
+Command=FEFE72E0.06.0502.FD
+ReplyLength=14
+Validate=FEFE72E0060502FD.FEFEE072FBFD
+
+;-------------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------------
+
+[STATUS1]
+;Read the operating frequency
+Command=FEFE72E0.03.FD
+ReplyLength=17
+Validate=FEFE72E003FD.FEFEE072.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+;Read the operating mode
+Command=FEFE72E0.04.FD
+ReplyLength=14
+Validate=FEFE72E004FD.FEFEE072.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U
+Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U
+Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U
+Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmCW_L
+Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmDIG_L
+
+
+[STATUS3]
+;Read the CW pitch
+;Not supported
+
+[STATUS4]
+;Read the transmit or receive mode
+;Not supported
+
+
+
+
diff --git a/CATCheck/Rigs/ID-5100A.ini b/CATCheck/Rigs/ID-5100A.ini
new file mode 100644
index 0000000..55c66c8
--- /dev/null
+++ b/CATCheck/Rigs/ID-5100A.ini
@@ -0,0 +1,170 @@
+;-------------------------------------------------------------------------------
+; Icom ID-5100A command set
+;
+; Created by Michael Wheatley, KM6LHD, KM6LHD@gmail.com
+; Tested by: _________
+;
+; Feel free to correct and expand, but please email Michael Wheatley
+; KM6LhD@gmail.com with changes. Thanks
+;
+;-------------------------------------------------------------------------------
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+
+;none
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+
+[pmFreq]
+Command=FEFE8CE0.05.0000000000.FD
+Value=5|5|vfBcdLU|1|0
+ReplyLength=17
+Validate=FEFE8CE0050000000000FD.FEFEE08CFBFD
+
+[pmFreqA]
+;not supported
+
+[pmFreqB]
+;not supported
+
+[pmPitch]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+;not supported
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+Command=FEFE8CE0.07D0.FD
+ReplyLength=13
+Validate=FEFE8CE007D0FD.FEFEE08CFBFD
+
+[pmVfoB]
+Command=FEFE8CE0.07D1.FD
+ReplyLength=13
+Validate=FEFE8CE007D1FD.FEFEE08CFBFD
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+;not supported
+
+[pmVfoAB]
+;not supported
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+;not supported
+
+[pmRitOff]
+;not supported
+
+[pmXitOn]
+;not supported
+
+[pmXitOff]
+;not supported
+
+[pmRx]
+Command=FEFE8CE0.1C00.00FD
+ReplyLength=14
+Validate=FEFE8CE01C0000FD.FEFEE08CFBFD
+
+[pmTx]
+Command=FEFE8CE0.1C00.01FD
+ReplyLength=14
+Validate=FEFE8CE01C0001FD.FEFEE08CFBFD
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+
+[pmCW_U]
+;not supported
+
+[pmCW_L]
+;not supported
+
+[pmSSB_U]
+;not supported
+
+[pmSSB_L]
+;not supported
+
+[pmDIG_U]
+;not supported
+
+[pmDIG_L]
+;not supported
+
+[pmAM]
+;not supported
+
+[pmFM]
+Command=FEFE8CE0.06.05.FD
+ReplyLength=13
+Validate=FEFE8CE00605FD.FEFEE08CFBFD
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+
+[STATUS1]
+Command=FEFE8CE0.03.FD
+ReplyLength=17
+Validate=FEFE8CE003FD.FEFEE08C.03.0000000000.FD
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE8CE0.04.FD
+ReplyLength=14
+Validate=FEFE8CE004FD.FEFEE08C.04.0000.FD
+Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM
+Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM
+
+[STATUS3]
+Command=FEFE8CE0.1C00.FD
+ReplyLength=15
+Validate=FEFE8CE01C00FD.FEFEE08C.1C00.00.FD
+Flag1=00000000000000.00000000.0000.01.00|pmTx
+Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx
+
+;--------------------------------------------------------------------------------
+; Allow SDR Rx mute using SDR Console V3 when rig transmits
+;--------------------------------------------------------------------------------
+
+[STATUS6]
+Command=(TX;)
+ReplyEnd=(;)
+Validate=(TX.;)
+Flag1=(..0.)|pmRX
+Flag2=(..1.)|pmTX
+Flag3=(..2.)|pmTX
diff --git a/CATCheck/Rigs/JST-245.ini b/CATCheck/Rigs/JST-245.ini
new file mode 100644
index 0000000..dc548bb
--- /dev/null
+++ b/CATCheck/Rigs/JST-245.ini
@@ -0,0 +1,97 @@
+;-------------------------------------------------------------------------------
+; Japan Radio JST-245 command set
+;
+; File created by Stan Huntting, KW7KW, dxatlas@huntting.com
+;-------------------------------------------------------------------------------
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|]|
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+;none required
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+; I1F........AI0
+Command=48.31.0D.46.00.00.00.00.00.00.00.00.41.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+Value=5|8|vfText|1|0
+
+[pmFreqB]
+; I1F........BI0
+Command=48.31.0D.46.00.00.00.00.00.00.00.00.42.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+Value=5|8|vfText|1|0
+
+;-------------------------------------------------------------------------------
+; set vfo
+
+;-------------------------------------------------------------------------------
+[pmVfoAA]
+; I1FAI0
+Command=48.31.0D.46.41.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+
+[pmVfoBB]
+; I1FBI0
+Command=48.31.0D.46.42.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmDIG_L]
+; I1D0I0
+Command=48.31.0D.44.30.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+
+[pmCW_U]
+; I1D1I0
+Command=48.31.0D.44.31.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+
+[pmSSB_U]
+; I1D2I0
+Command=48.31.0D.44.32.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+
+[pmSSB_L]
+; I1D3I0
+Command=48.31.0D.44.33.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+
+[pmAM]
+; I1D4I0
+Command=48.31.0D.44.34.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+
+[pmFM]
+; I1D5I0
+Command=48.31.0D.44.35.0D.48.30.0D.4F.0D
+ReplyEnd=0D
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+; L
+Command=4C.0D
+ReplyEnd=0D
+; Lvabdffffffffg
+Validate=4C000000000000000000000000000D
+Value1=5|8|vfText|1|0|pmFreq
+Flag1=(.A.............)|pmVfoAA
+Flag2=(.B.............)|pmVfoBB
+Flag3=(....0..........)|pmDIG_L
+Flag4=(....1..........)|pmCW_U
+Flag5=(....2..........)|pmSSB_U
+Flag6=(....3..........)|pmSSB_L
+Flag7=(....4..........)|pmAM
+Flag8=(....5..........)|pmFM
diff --git a/CATCheck/Rigs/Kenwood.ini b/CATCheck/Rigs/Kenwood.ini
new file mode 100644
index 0000000..6733a87
--- /dev/null
+++ b/CATCheck/Rigs/Kenwood.ini
@@ -0,0 +1,211 @@
+;-------------------------------------------------------------------------------
+; Kenwood TS-570 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|]|
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(PT..;)
+Value=2|2|vfText|0.02|-8
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+;not supported
+
+[pmSplitOff]
+;not supported
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+Command=(FR0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(FR0;FT1;)
+ReplyLength=0
+
+[pmVfoBA]
+Command=(FR1;FT0;)
+
+[pmVfoBB]
+Command=(FR1;)
+ReplyLength=0
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(RX;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD3;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD7;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD9;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD6;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD5;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD4;)
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value1=18|5|vfText|1|0|pmRitOffset
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(.......................0..............)|pmRitOff
+Flag2 =(.......................1..............)|pmRitOn
+Flag3 =(........................0.............)|pmXitOff
+Flag4 =(........................1.............)|pmXitOn
+Flag5 =(............................0.........)|pmRx
+Flag6 =(............................1.........)|pmTx
+Flag7 =(.............................1........)|pmSSB_L
+Flag8 =(.............................2........)|pmSSB_U
+Flag9 =(.............................3........)|pmCW_U
+Flag10=(.............................4........)|pmFM
+Flag11=(.............................5........)|pmAM
+Flag12=(.............................6........)|pmDIG_L
+Flag13=(.............................7........)|pmCW_L
+Flag14=(.............................9........)|pmDIG_U
+Flag15=(..............................0.0.....)|pmVfoAA
+Flag16=(..............................1.0.....)|pmVfoBB
+Flag17=(............................0.0.1.....)|pmVfoAB
+Flag18=(............................0.1.1.....)|pmVfoBA
+Flag19=(............................1.0.1.....)|pmVfoBA
+Flag20=(............................1.1.1.....)|pmVfoAB
+Flag21=(................................1.....)|pmSplitOn
+Flag22=(................................0.....)|pmSplitOff
+
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(PT;)
+ReplyEnd=(;)
+Validate=(PT..;)
+Value1=2|2|vfText|50|400|pmPitch
+
diff --git a/CATCheck/Rigs/NRD-535DG.ini b/CATCheck/Rigs/NRD-535DG.ini
new file mode 100644
index 0000000..7292077
--- /dev/null
+++ b/CATCheck/Rigs/NRD-535DG.ini
@@ -0,0 +1,107 @@
+;-------------------------------------------------------------------------------
+; Japan Radio NRD-535DG command set
+;
+; File created by Eckhard Roth / 26.01.08
+;-------------------------------------------------------------------------------
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|]|
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT1]
+;H1
+Command=48310D
+ReplyLength=0
+
+[INIT2]
+;I1
+Command=49310D
+ReplyEnd=0D
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreq]
+; E........
+Command=46.00.00.00.00.00.00.00.00.0D
+Value=1|8|vfText|1|0
+ReplyEnd=0D
+
+[pmFreqA]
+; E........
+Command=46.00.00.00.00.00.00.00.00.0D
+Value=1|8|vfText|1|0
+ReplyEnd=0D
+
+[pmFreqB]
+; E........
+Command=46.00.00.00.00.00.00.00.00.0D
+Value=1|8|vfText|1|0
+ReplyEnd=0D
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+
+[pmDIG_U]
+; D0
+Command=44.30.0D
+ReplyEnd=0D
+
+[pmCW_U]
+; D1
+Command=44.31.0D
+ReplyEnd=0D
+
+[pmSSB_U]
+; D2
+Command=44.32.0D
+ReplyEnd=0D
+
+[pmSSB_L]
+; D3
+Command=44.33.0D
+ReplyEnd=0D
+
+[pmAM]
+; D4
+Command=44.34.0D
+ReplyEnd=0D
+
+[pmFM]
+; D5
+Command=44.35.0D
+ReplyEnd=0D
+
+[pmDIG_L]
+; D0
+Command=44.36.0D
+ReplyEnd=0D
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+; I1
+Command=49.31.0D
+ReplyLength=14
+Validate=49.00.00.00.00.00.00.00.00.00.00.00.00.0D
+
+Value1=4|8|vfText|1|0|pmFreq
+Value2=4|8|vfText|1|0|pmFreqA
+Value3=4|8|vfText|1|0|pmFreqB
+
+
+Flag1=(...0..........)|pmDIG_U
+Flag2=(...1..........)|pmCW_U
+Flag3=(...2..........)|pmSSB_U
+Flag4=(...3..........)|pmSSB_L
+Flag5=(...4..........)|pmAM
+Flag6=(...5..........)|pmFM
+Flag7=(...6..........)|pmDIG_L
+
diff --git a/CATCheck/Rigs/Perseus.ini b/CATCheck/Rigs/Perseus.ini
new file mode 100644
index 0000000..824c019
--- /dev/null
+++ b/CATCheck/Rigs/Perseus.ini
@@ -0,0 +1,91 @@
+;-------------------------------------------------------------------------------
+; Perseus SDR command set
+;
+; File created by Eckhard Roth, eckrot@yahoo.de
+; 25/03/03
+; V2 adapted to changed CIV-Protocol of PERSEUS
+;-------------------------------------------------------------------------------
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreq]
+Command=FEFE04E0.05.00000000.FD
+Value=5|4|vfBcdLU|1|0
+ReplyLength=16
+Validate=FEFE04E0.05.00000000.FD.FEFEE004FBFD
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=FEFE04E0.06.03.FD
+ReplyLength=13
+Validate=FEFE04E0.06.03.FD.FEFEE004FBFD
+
+[pmCW_L]
+Command=FEFE04E0.06.03.FD
+ReplyLength=13
+Validate=FEFE04E0.06.03.FD.FEFEE004FBFD
+
+
+[pmSSB_U]
+Command=FEFE04E0.06.01.FD
+ReplyLength=13
+Validate=FEFE04E0.06.01.FD.FEFEE004FBFD
+
+[pmSSB_L]
+Command=FEFE04E0.06.00.FD
+ReplyLength=13
+Validate=FEFE04E0.06.00.FD.FEFEE004FBFD
+
+[pmDIG_U]
+Command=FEFE04E0.06.04.FD
+ReplyLength=13
+Validate=FEFE04E0.06.04.FD.FEFEE004FBFD
+
+
+[pmDIG_L]
+Command=FEFE04E0.06.04.FD
+ReplyLength=13
+Validate=FEFE04E0.06.04.FD.FEFEE004FBFD
+
+[pmAM]
+Command=FEFE04E0.06.06.FD
+ReplyLength=13
+Validate=FEFE04E0.06.06.FD.FEFEE004FBFD
+
+[pmFM]
+Command=FEFE04E0.06.05.FD
+ReplyLength=13
+Validate=FEFE04E0.06.05.FD.FEFEE004FBFD
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=FEFE04E0.03.FD
+ReplyLength=17
+Validate=FEFE04E003FD.FEFEE004.03.0000000000.FD
+
+Value1=11|5|vfBcdLU|1|0|pmFreq
+
+[STATUS2]
+Command=FEFE04E0.04.FD
+ReplyLength=14
+Validate=FEFE04E0.04.FD.FEFEE004.04.0000.FD
+
+Flag1=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0300.00|pmCW_U
+Flag2=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0300.00|pmCW_L
+Flag3=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0100.00|pmSSB_U
+Flag4=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0000.00|pmSSB_L
+Flag5=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0400.00|pmDIG_U
+Flag6=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0400.00|pmDIG_L
+Flag7=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0200.00|pmAM
+Flag8=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0500.00|pmFM
+Flag9=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0600.00|pmAM
+
diff --git a/CATCheck/Rigs/PowerRX2.ini b/CATCheck/Rigs/PowerRX2.ini
new file mode 100644
index 0000000..ca95c78
--- /dev/null
+++ b/CATCheck/Rigs/PowerRX2.ini
@@ -0,0 +1,216 @@
+;-------------------------------------------------------------------------------
+; PowerRX2 command set
+;
+; modified 8Jun08 by W2RF from
+;
+; Kenwood TS-570 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|]|
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(PT..;)
+Value=2|2|vfText|0.02|-8
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(ZZSP1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(ZZSP0;)
+ReplyLength=0
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+Command=(ZZSP0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(ZZSP1;)
+ReplyLength=0
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(RX;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD3;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD7;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD9;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD6;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD5;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD4;)
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value1=18|5|vfText|1|0|pmRitOffset
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(.......................0..............)|pmRitOff
+Flag2 =(.......................1..............)|pmRitOn
+Flag3 =(........................0.............)|pmXitOff
+Flag4 =(........................1.............)|pmXitOn
+Flag5 =(............................0.........)|pmRx
+Flag6 =(............................1.........)|pmTx
+Flag7 =(.............................1........)|pmSSB_L
+Flag8 =(.............................2........)|pmSSB_U
+Flag9 =(.............................3........)|pmCW_U
+Flag10=(.............................4........)|pmFM
+Flag11=(.............................5........)|pmAM
+Flag12=(.............................6........)|pmDIG_L
+Flag13=(.............................7........)|pmCW_L
+Flag14=(.............................9........)|pmDIG_U
+Flag15=(..............................0.0.....)|pmVfoAA
+Flag16=(..............................1.0.....)|pmVfoBB
+Flag17=(............................0.0.1.....)|pmVfoAB
+Flag18=(............................0.1.1.....)|pmVfoBA
+Flag19=(............................1.0.1.....)|pmVfoBA
+Flag20=(............................1.1.1.....)|pmVfoAB
+Flag21=(................................1.....)|pmSplitOn
+Flag22=(................................0.....)|pmSplitOff
+
+
+[STATUS2]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(PT;)
+ReplyEnd=(;)
+Validate=(PT..;)
+Value1=2|2|vfText|50|400|pmPitch
+
diff --git a/CATCheck/Rigs/PowerSDR.ini b/CATCheck/Rigs/PowerSDR.ini
new file mode 100644
index 0000000..a4e790f
--- /dev/null
+++ b/CATCheck/Rigs/PowerSDR.ini
@@ -0,0 +1,216 @@
+;-------------------------------------------------------------------------------
+; PowerSDR command set
+;
+; modified 26Apr08 by W2RF from
+;
+; Kenwood TS-570 command set
+;
+; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
+;-------------------------------------------------------------------------------
+
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|]|
+
+
+
+
+;-------------------------------------------------------------------------------
+; initialize
+;-------------------------------------------------------------------------------
+[INIT]
+Command=(AI0;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set frequency
+;-------------------------------------------------------------------------------
+[pmFreqA]
+Command=(FA...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreqB]
+Command=(FB...........;)
+Value=2|11|vfText|1|0
+ReplyLength=0
+
+[pmFreq]
+;not supported
+
+[pmRitOffset]
+;not supported
+
+[pmRit0]
+Command=(RC;)
+ReplyLength=0
+
+[pmPitch]
+Command=(PT..;)
+Value=2|2|vfText|0.02|-8
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set rit/xit/split/rx/tx
+;-------------------------------------------------------------------------------
+[pmSplitOn]
+Command=(ZZSP1;)
+ReplyLength=0
+
+[pmSplitOff]
+Command=(ZZSP0;)
+ReplyLength=0
+
+[pmVfoA]
+;not supported
+
+[pmVfoB]
+;not supported
+
+[pmVfoEqual]
+;not supported
+
+[pmVfoSwap]
+;not supported
+
+[pmVfoAA]
+Command=(ZZSP0;)
+ReplyLength=0
+
+[pmVfoAB]
+Command=(ZZSP1;)
+ReplyLength=0
+
+[pmVfoBA]
+;not supported
+
+[pmVfoBB]
+;not supported
+
+[pmRitOn]
+Command=(RT1;)
+ReplyLength=0
+
+[pmRitOff]
+Command=(RT0;)
+ReplyLength=0
+
+[pmXitOn]
+Command=(XT1;)
+ReplyLength=0
+
+[pmXitOff]
+Command=(XT0;)
+ReplyLength=0
+
+[pmRx]
+Command=(RX;)
+ReplyLength=0
+
+[pmTx]
+Command=(TX;)
+ReplyLength=0
+
+
+
+
+
+;-------------------------------------------------------------------------------
+; set mode
+;-------------------------------------------------------------------------------
+[pmCW_U]
+Command=(MD3;)
+ReplyLength=0
+
+[pmCW_L]
+Command=(MD7;)
+ReplyLength=0
+
+[pmSSB_U]
+Command=(MD2;)
+ReplyLength=0
+
+[pmSSB_L]
+Command=(MD1;)
+ReplyLength=0
+
+[pmDIG_U]
+Command=(MD9;)
+ReplyLength=0
+
+[pmDIG_L]
+Command=(MD6;)
+ReplyLength=0
+
+[pmAM]
+Command=(MD5;)
+ReplyLength=0
+
+[pmFM]
+Command=(MD4;)
+ReplyLength=0
+
+
+
+
+;-------------------------------------------------------------------------------
+; read status
+;-------------------------------------------------------------------------------
+[STATUS1]
+Command=(IF;)
+ReplyEnd=(;)
+Validate=(IF...................................;)
+Value1=18|5|vfText|1|0|pmRitOffset
+Value2=2|11|vfText|1|0|pmFreq
+Flag1 =(.......................0..............)|pmRitOff
+Flag2 =(.......................1..............)|pmRitOn
+Flag3 =(........................0.............)|pmXitOff
+Flag4 =(........................1.............)|pmXitOn
+Flag5 =(............................0.........)|pmRx
+Flag6 =(............................1.........)|pmTx
+Flag7 =(.............................1........)|pmSSB_L
+Flag8 =(.............................2........)|pmSSB_U
+Flag9 =(.............................3........)|pmCW_U
+Flag10=(.............................4........)|pmFM
+Flag11=(.............................5........)|pmAM
+Flag12=(.............................6........)|pmDIG_L
+Flag13=(.............................7........)|pmCW_L
+Flag14=(.............................9........)|pmDIG_U
+Flag15=(..............................0.0.....)|pmVfoAA
+Flag16=(..............................1.0.....)|pmVfoBB
+Flag17=(............................0.0.1.....)|pmVfoAB
+Flag18=(............................0.1.1.....)|pmVfoBA
+Flag19=(............................1.0.1.....)|pmVfoBA
+Flag20=(............................1.1.1.....)|pmVfoAB
+Flag21=(................................1.....)|pmSplitOn
+Flag22=(................................0.....)|pmSplitOff
+
+
+[STATUS2]
+Command=(FA;)
+ReplyEnd=(;)
+Validate=(FA...........;)
+Value1=2|11|vfText|1|0|pmFreqA
+
+[STATUS3]
+Command=(FB;)
+ReplyEnd=(;)
+Validate=(FB...........;)
+Value1=2|11|vfText|1|0|pmFreqB
+
+[STATUS4]
+Command=(PT;)
+ReplyEnd=(;)
+Validate=(PT..;)
+Value1=2|2|vfText|50|400|pmPitch
+
diff --git a/CATCheck/Rigs/SmartSDR.ini b/CATCheck/Rigs/SmartSDR.ini
new file mode 100644
index 0000000..7168e5c
--- /dev/null
+++ b/CATCheck/Rigs/SmartSDR.ini
@@ -0,0 +1,210 @@
+;-------------------------------------------------------------------------------
+; SmartSDR command set for OmniRig
+;
+; File created by Tim Ellison, W4TME (tim@flexradio.com)
+; modified 11-Jan-16 by W4TME
+; File Version 1.2 (for use with SmartSDR CAT 1.6 and greater)
+;
+;-------------------------------------------------------------------------------
+
+;Command=
+;ReplyLength=
+;ReplyEnd=
+;Value=||||[|]
+;Flag=[|