Changeset - f7749bd9aa12
[Not reviewed]
default
0 3 0
mkanning@CL-ENS241-10.cedarville.edu - 13 years ago 2013-04-15 15:15:19
mkanning@CL-ENS241-10.cedarville.edu
added dynamic callsign
3 files changed with 587 insertions and 370 deletions:
0 comments (0 inline, 0 general)
Demo.WindowsForms/Forms/MainForm.Designer.cs
Show inline comments
 
namespace Demo.WindowsForms
 
{
 
   partial class MainForm
 
   {
 
      /// <summary>
 
      /// Required designer variable.
 
      /// </summary>
 
      private System.ComponentModel.IContainer components = null;
 
 
      /// <summary>
 
      /// Clean up any resources being used.
 
      /// </summary>
 
      /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
 
      protected override void Dispose(bool disposing)
 
      {
 
         if(disposing && (components != null))
 
         {
 
            components.Dispose();
 
         }
 
         base.Dispose(disposing);
 
      }
 
 
      #region Windows Form Designer generated code
 
 
      /// <summary>
 
      /// Required method for Designer support - do not modify
 
      /// the contents of this method with the code editor.
 
      /// </summary>
 
      private void InitializeComponent()
 
      {
 
            this.tabMap = new System.Windows.Forms.TabPage();
 
            this.panel4 = new System.Windows.Forms.Panel();
 
            this.panel2 = new System.Windows.Forms.Panel();
 
            this.btnTest = new System.Windows.Forms.Button();
 
            this.MainMap = new Demo.WindowsForms.Map();
 
            this.splitter1 = new BSE.Windows.Forms.Splitter();
 
            this.panelMenu = new BSE.Windows.Forms.Panel();
 
            this.xPanderPanelList1 = new BSE.Windows.Forms.XPanderPanelList();
 
            this.xPanderPanelMain = new BSE.Windows.Forms.XPanderPanel();
 
            this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
 
            this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel();
 
            this.gboxRemove = new System.Windows.Forms.GroupBox();
 
            this.btnClearAll = new System.Windows.Forms.Button();
 
            this.btnClearMarkers = new System.Windows.Forms.Button();
 
            this.btnClearRoutes = new System.Windows.Forms.Button();
 
            this.gboxMapItems = new System.Windows.Forms.GroupBox();
 
            this.btnAddMarker = new System.Windows.Forms.Button();
 
            this.btnSetEnd = new System.Windows.Forms.Button();
 
            this.btnSetStart = new System.Windows.Forms.Button();
 
            this.btnAddRoute = new System.Windows.Forms.Button();
 
            this.gboxGmap = new System.Windows.Forms.GroupBox();
 
            this.btnGetStatic = new System.Windows.Forms.Button();
 
            this.xboxGrid = new System.Windows.Forms.CheckBox();
 
            this.btnSaveView = new System.Windows.Forms.Button();
 
            this.lblMode = new System.Windows.Forms.Label();
 
            this.comboBoxMode = new System.Windows.Forms.ComboBox();
 
            this.xboxCanDrag = new System.Windows.Forms.CheckBox();
 
            this.xboxCurrentMarker = new System.Windows.Forms.CheckBox();
 
            this.lblMapType = new System.Windows.Forms.Label();
 
            this.comboBoxMapType = new System.Windows.Forms.ComboBox();
 
            this.gboxCoordinates = new System.Windows.Forms.GroupBox();
 
            this.tboxCOMPort = new System.Windows.Forms.TextBox();
 
            this.label33 = new System.Windows.Forms.Label();
 
            this.tboxAPRSCallsign = new System.Windows.Forms.TextBox();
 
            this.label32 = new System.Windows.Forms.Label();
 
            this.btnZoomCenter = new System.Windows.Forms.Button();
 
            this.btnReload = new System.Windows.Forms.Button();
 
            this.btnGoToCoords = new System.Windows.Forms.Button();
 
            this.lblLng = new System.Windows.Forms.Label();
 
            this.cboxCollectData = new System.Windows.Forms.CheckBox();
 
            this.lblLat = new System.Windows.Forms.Label();
 
            this.textBoxLng = new System.Windows.Forms.TextBox();
 
            this.textBoxLat = new System.Windows.Forms.TextBox();
 
            this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel();
 
            this.btnZoomIn = new System.Windows.Forms.Button();
 
            this.trackBarZoomLevel = new System.Windows.Forms.TrackBar();
 
            this.btnZoomOut = new System.Windows.Forms.Button();
 
            this.xPanderPanelInfo = new BSE.Windows.Forms.XPanderPanel();
 
            this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
 
            this.textBoxZoomCurrent = new System.Windows.Forms.TextBox();
 
            this.textBoxrouteCount = new System.Windows.Forms.TextBox();
 
            this.label12 = new System.Windows.Forms.Label();
 
            this.label9 = new System.Windows.Forms.Label();
 
            this.textBoxLngCurrent = new System.Windows.Forms.TextBox();
 
            this.textBoxMarkerCount = new System.Windows.Forms.TextBox();
 
            this.label11 = new System.Windows.Forms.Label();
 
            this.label4 = new System.Windows.Forms.Label();
 
            this.textBoxLatCurrent = new System.Windows.Forms.TextBox();
 
            this.label5 = new System.Windows.Forms.Label();
 
            this.xPanderPanelCache = new BSE.Windows.Forms.XPanderPanel();
 
            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
 
            this.textBoxCacheSize = new System.Windows.Forms.TextBox();
 
            this.textBoxCacheStatus = new System.Windows.Forms.TextBox();
 
            this.btnCacheImport = new System.Windows.Forms.Button();
 
            this.textBoxMemory = new System.Windows.Forms.TextBox();
 
            this.checkBoxUseRouteCache = new System.Windows.Forms.CheckBox();
 
            this.btnCacheExport = new System.Windows.Forms.Button();
 
            this.btnCachePrefetch = new System.Windows.Forms.Button();
 
            this.label10 = new System.Windows.Forms.Label();
 
            this.btnCacheClear = new System.Windows.Forms.Button();
 
            this.label13 = new System.Windows.Forms.Label();
 
            this.label14 = new System.Windows.Forms.Label();
 
            this.btnCacheLocationOpen = new System.Windows.Forms.Button();
 
            this.tabControl = new System.Windows.Forms.TabControl();
 
            this.tabGraphs = new System.Windows.Forms.TabPage();
 
            this.pnlDataListDisplay = new System.Windows.Forms.Panel();
 
            this.tboxChartData = new System.Windows.Forms.TextBox();
 
            this.lblChartData = new System.Windows.Forms.Label();
 
            this.tboxCurrent = new System.Windows.Forms.TextBox();
 
            this.lblCurrent = new System.Windows.Forms.Label();
 
            this.tboxMin = new System.Windows.Forms.TextBox();
 
            this.lblAverage = new System.Windows.Forms.Label();
 
            this.tboxMax = new System.Windows.Forms.TextBox();
 
            this.lblMax = new System.Windows.Forms.Label();
 
            this.tboxAverage = new System.Windows.Forms.TextBox();
 
            this.lblMin = new System.Windows.Forms.Label();
 
            this.ctnParentChartHolder = new System.Windows.Forms.SplitContainer();
 
            this.ctnTopChartHolder = new System.Windows.Forms.SplitContainer();
 
            this.lblTopLeftChartTitle = new System.Windows.Forms.Label();
 
            this.chrtTopLeft = new System.Windows.Forms.DataVisualization.Charting.Chart();
 
            this.lblTopRightChartTitle = new System.Windows.Forms.Label();
 
            this.chrtTopRight = new System.Windows.Forms.DataVisualization.Charting.Chart();
 
            this.ctnBottomChartHolder = new System.Windows.Forms.SplitContainer();
 
            this.lblBottomLeftChartTitle = new System.Windows.Forms.Label();
 
            this.chrtBottomLeft = new System.Windows.Forms.DataVisualization.Charting.Chart();
 
            this.lblBottomRightChartTitle = new System.Windows.Forms.Label();
 
            this.chrtBottomRight = new System.Windows.Forms.DataVisualization.Charting.Chart();
 
            this.tabData = new System.Windows.Forms.TabPage();
 
            this.gboxSlaveData = new System.Windows.Forms.GroupBox();
 
            this.tboxAtmoLight = new System.Windows.Forms.TextBox();
 
            this.label31 = new System.Windows.Forms.Label();
 
            this.tboxCameraBatteryLevel = new System.Windows.Forms.TextBox();
 
            this.label26 = new System.Windows.Forms.Label();
 
            this.tboxCameraBoardTemp = new System.Windows.Forms.TextBox();
 
            this.label27 = new System.Windows.Forms.Label();
 
            this.label28 = new System.Windows.Forms.Label();
 
            this.tboxGeigerRads = new System.Windows.Forms.TextBox();
 
            this.label25 = new System.Windows.Forms.Label();
 
            this.tboxGeigerBatteryLevel = new System.Windows.Forms.TextBox();
 
            this.label24 = new System.Windows.Forms.Label();
 
            this.tboxGeigerBoardTemp = new System.Windows.Forms.TextBox();
 
            this.label23 = new System.Windows.Forms.Label();
 
            this.label22 = new System.Windows.Forms.Label();
 
            this.tboxAtmoAltitude = new System.Windows.Forms.TextBox();
 
            this.label21 = new System.Windows.Forms.Label();
 
            this.tboxAtmoAirTemp = new System.Windows.Forms.TextBox();
 
            this.label19 = new System.Windows.Forms.Label();
 
            this.tboxAtmoHumidity = new System.Windows.Forms.TextBox();
 
            this.label18 = new System.Windows.Forms.Label();
 
            this.tboxAtmoPressure = new System.Windows.Forms.TextBox();
 
            this.label17 = new System.Windows.Forms.Label();
 
            this.tboxAtmoBatteryLevel = new System.Windows.Forms.TextBox();
 
            this.label15 = new System.Windows.Forms.Label();
 
            this.tboxAtmoBoardTemp = new System.Windows.Forms.TextBox();
 
            this.label8 = new System.Windows.Forms.Label();
 
            this.label20 = new System.Windows.Forms.Label();
 
            this.gboxMasterData = new System.Windows.Forms.GroupBox();
 
            this.tboxMasterHDOP = new System.Windows.Forms.TextBox();
 
            this.label30 = new System.Windows.Forms.Label();
 
            this.tboxMasterSatellites = new System.Windows.Forms.TextBox();
 
            this.label29 = new System.Windows.Forms.Label();
 
            this.textBox6 = new System.Windows.Forms.TextBox();
 
            this.label7 = new System.Windows.Forms.Label();
 
            this.label6 = new System.Windows.Forms.Label();
 
            this.tboxMasterVelocity = new System.Windows.Forms.TextBox();
 
            this.label3 = new System.Windows.Forms.Label();
 
            this.tboxMasterLongitude = new System.Windows.Forms.TextBox();
 
            this.label2 = new System.Windows.Forms.Label();
 
            this.tboxMasterLatitude = new System.Windows.Forms.TextBox();
 
            this.label16 = new System.Windows.Forms.Label();
 
            this.tboxMasterBatteryLevel = new System.Windows.Forms.TextBox();
 
            this.tboxMasterBoardTemp = new System.Windows.Forms.TextBox();
 
            this.label1 = new System.Windows.Forms.Label();
 
            this.tboxMessageBox = new System.Windows.Forms.TextBox();
 
            this.splitContainer1 = new System.Windows.Forms.SplitContainer();
 
            this.tabMap.SuspendLayout();
 
            this.panel4.SuspendLayout();
 
            this.panel2.SuspendLayout();
 
            this.panelMenu.SuspendLayout();
 
            this.xPanderPanelList1.SuspendLayout();
 
            this.xPanderPanelMain.SuspendLayout();
 
            this.tableLayoutPanel4.SuspendLayout();
 
            this.tableLayoutPanel5.SuspendLayout();
 
            this.gboxRemove.SuspendLayout();
 
            this.gboxMapItems.SuspendLayout();
 
            this.gboxGmap.SuspendLayout();
 
            this.gboxCoordinates.SuspendLayout();
 
            this.tableLayoutPanel6.SuspendLayout();
 
            ((System.ComponentModel.ISupportInitialize)(this.trackBarZoomLevel)).BeginInit();
 
            this.xPanderPanelInfo.SuspendLayout();
 
            this.tableLayoutPanel2.SuspendLayout();
 
            this.xPanderPanelCache.SuspendLayout();
 
            this.tableLayoutPanel1.SuspendLayout();
 
            this.tabControl.SuspendLayout();
 
            this.tabGraphs.SuspendLayout();
 
            this.pnlDataListDisplay.SuspendLayout();
 
            this.ctnParentChartHolder.Panel1.SuspendLayout();
 
            this.ctnParentChartHolder.Panel2.SuspendLayout();
 
            this.ctnParentChartHolder.SuspendLayout();
 
            this.ctnTopChartHolder.Panel1.SuspendLayout();
 
            this.ctnTopChartHolder.Panel2.SuspendLayout();
 
            this.ctnTopChartHolder.SuspendLayout();
 
            ((System.ComponentModel.ISupportInitialize)(this.chrtTopLeft)).BeginInit();
 
            ((System.ComponentModel.ISupportInitialize)(this.chrtTopRight)).BeginInit();
 
            this.ctnBottomChartHolder.Panel1.SuspendLayout();
 
            this.ctnBottomChartHolder.Panel2.SuspendLayout();
 
            this.ctnBottomChartHolder.SuspendLayout();
 
            ((System.ComponentModel.ISupportInitialize)(this.chrtBottomLeft)).BeginInit();
 
            ((System.ComponentModel.ISupportInitialize)(this.chrtBottomRight)).BeginInit();
 
            this.tabData.SuspendLayout();
 
            this.gboxSlaveData.SuspendLayout();
 
            this.gboxMasterData.SuspendLayout();
 
            this.splitContainer1.Panel1.SuspendLayout();
 
            this.splitContainer1.Panel2.SuspendLayout();
 
            this.splitContainer1.SuspendLayout();
 
            this.SuspendLayout();
 
            // 
 
            // tabMap
 
            // 
 
            this.tabMap.Controls.Add(this.panel4);
 
            this.tabMap.Location = new System.Drawing.Point(4, 22);
 
            this.tabMap.Name = "tabMap";
 
            this.tabMap.Padding = new System.Windows.Forms.Padding(3);
 
            this.tabMap.Size = new System.Drawing.Size(863, 690);
 
            this.tabMap.TabIndex = 0;
 
            this.tabMap.Text = "Map";
 
            this.tabMap.UseVisualStyleBackColor = true;
 
            // 
 
            // panel4
 
            // 
 
            this.panel4.Controls.Add(this.panel2);
 
            this.panel4.Controls.Add(this.splitter1);
 
            this.panel4.Controls.Add(this.panelMenu);
 
            this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.panel4.Location = new System.Drawing.Point(3, 3);
 
            this.panel4.Margin = new System.Windows.Forms.Padding(2);
 
            this.panel4.Name = "panel4";
 
            this.panel4.Size = new System.Drawing.Size(857, 684);
 
            this.panel4.TabIndex = 44;
 
            // 
 
            // panel2
 
            // 
 
            this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
 
            | System.Windows.Forms.AnchorStyles.Left) 
 
            | System.Windows.Forms.AnchorStyles.Right)));
 
            this.panel2.Controls.Add(this.btnTest);
 
            this.panel2.Controls.Add(this.MainMap);
 
            this.panel2.Location = new System.Drawing.Point(0, 0);
 
            this.panel2.Name = "panel2";
 
            this.panel2.Size = new System.Drawing.Size(599, 684);
 
            this.panel2.TabIndex = 41;
 
            // 
 
            // btnTest
 
            // 
 
            this.btnTest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
 
            this.btnTest.Location = new System.Drawing.Point(555, 658);
 
            this.btnTest.Name = "btnTest";
 
            this.btnTest.Size = new System.Drawing.Size(41, 26);
 
            this.btnTest.TabIndex = 32;
 
            this.btnTest.Text = "Test";
 
            this.btnTest.UseVisualStyleBackColor = true;
 
            this.btnTest.Click += new System.EventHandler(this.btnTest_Click);
 
            // 
 
            // MainMap
 
            // 
 
            this.MainMap.Bearing = 0F;
 
            this.MainMap.CanDragMap = true;
 
            this.MainMap.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.MainMap.EmptyTileColor = System.Drawing.Color.Navy;
 
            this.MainMap.GrayScaleMode = false;
 
            this.MainMap.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
 
            this.MainMap.LevelsKeepInMemmory = 5;
 
            this.MainMap.Location = new System.Drawing.Point(0, 0);
 
            this.MainMap.MarkersEnabled = true;
 
            this.MainMap.MaxZoom = 17;
 
            this.MainMap.MinZoom = 2;
 
            this.MainMap.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
 
            this.MainMap.Name = "MainMap";
 
            this.MainMap.NegativeMode = false;
 
            this.MainMap.PolygonsEnabled = true;
 
            this.MainMap.RetryLoadTile = 0;
 
            this.MainMap.RoutesEnabled = true;
 
            this.MainMap.ScaleMode = GMap.NET.WindowsForms.ScaleModes.Integer;
 
            this.MainMap.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
 
            this.MainMap.ShowTileGridLines = false;
 
            this.MainMap.Size = new System.Drawing.Size(599, 684);
 
            this.MainMap.TabIndex = 0;
 
            this.MainMap.Zoom = 0D;
 
            // 
 
            // splitter1
 
            // 
 
            this.splitter1.BackColor = System.Drawing.Color.Transparent;
 
            this.splitter1.Dock = System.Windows.Forms.DockStyle.Right;
 
            this.splitter1.Enabled = false;
 
            this.splitter1.Location = new System.Drawing.Point(597, 0);
 
            this.splitter1.Margin = new System.Windows.Forms.Padding(2);
 
            this.splitter1.MinExtra = 390;
 
            this.splitter1.MinSize = 390;
 
            this.splitter1.Name = "splitter1";
 
            this.splitter1.Size = new System.Drawing.Size(2, 684);
 
            this.splitter1.TabIndex = 42;
 
            this.splitter1.TabStop = false;
 
            // 
 
            // panelMenu
 
            // 
 
            this.panelMenu.AssociatedSplitter = this.splitter1;
 
            this.panelMenu.BackColor = System.Drawing.Color.Transparent;
 
            this.panelMenu.CaptionFont = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.panelMenu.CaptionHeight = 27;
 
            this.panelMenu.Controls.Add(this.xPanderPanelList1);
 
            this.panelMenu.CustomColors.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(184)))), ((int)(((byte)(184)))));
 
            this.panelMenu.CustomColors.CaptionCloseIcon = System.Drawing.SystemColors.ControlText;
 
            this.panelMenu.CustomColors.CaptionExpandIcon = System.Drawing.SystemColors.ControlText;
 
            this.panelMenu.CustomColors.CaptionGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(252)))), ((int)(((byte)(252)))));
 
            this.panelMenu.CustomColors.CaptionGradientEnd = System.Drawing.SystemColors.ButtonFace;
 
            this.panelMenu.CustomColors.CaptionGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(248)))));
 
            this.panelMenu.CustomColors.CaptionSelectedGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.panelMenu.CustomColors.CaptionSelectedGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.panelMenu.CustomColors.CaptionText = System.Drawing.SystemColors.ControlText;
 
            this.panelMenu.CustomColors.CollapsedCaptionText = System.Drawing.SystemColors.ControlText;
 
            this.panelMenu.CustomColors.ContentGradientBegin = System.Drawing.SystemColors.ButtonFace;
 
            this.panelMenu.CustomColors.ContentGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(252)))), ((int)(((byte)(252)))));
 
            this.panelMenu.CustomColors.InnerBorderColor = System.Drawing.SystemColors.Window;
 
            this.panelMenu.Dock = System.Windows.Forms.DockStyle.Right;
 
            this.panelMenu.ForeColor = System.Drawing.SystemColors.ControlText;
 
            this.panelMenu.Image = null;
 
            this.panelMenu.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
 
            this.panelMenu.Location = new System.Drawing.Point(599, 0);
 
            this.panelMenu.Margin = new System.Windows.Forms.Padding(2);
 
            this.panelMenu.MinimumSize = new System.Drawing.Size(27, 27);
 
            this.panelMenu.Name = "panelMenu";
 
            this.panelMenu.PanelStyle = BSE.Windows.Forms.PanelStyle.Office2007;
 
            this.panelMenu.ShowExpandIcon = true;
 
            this.panelMenu.Size = new System.Drawing.Size(258, 684);
 
            this.panelMenu.TabIndex = 40;
 
            this.panelMenu.Text = "Menu";
 
            this.panelMenu.ToolTipTextCloseIcon = null;
 
            this.panelMenu.ToolTipTextExpandIconPanelCollapsed = "maximize";
 
            this.panelMenu.ToolTipTextExpandIconPanelExpanded = "minimize";
 
            // 
 
            // xPanderPanelList1
 
            // 
 
            this.xPanderPanelList1.CaptionStyle = BSE.Windows.Forms.CaptionStyle.Flat;
 
            this.xPanderPanelList1.Controls.Add(this.xPanderPanelMain);
 
            this.xPanderPanelList1.Controls.Add(this.xPanderPanelInfo);
 
            this.xPanderPanelList1.Controls.Add(this.xPanderPanelCache);
 
            this.xPanderPanelList1.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.xPanderPanelList1.GradientBackground = System.Drawing.Color.Empty;
 
            this.xPanderPanelList1.Location = new System.Drawing.Point(0, 28);
 
            this.xPanderPanelList1.Margin = new System.Windows.Forms.Padding(2);
 
            this.xPanderPanelList1.Name = "xPanderPanelList1";
 
            this.xPanderPanelList1.PanelColors = null;
 
            this.xPanderPanelList1.PanelStyle = BSE.Windows.Forms.PanelStyle.Office2007;
 
            this.xPanderPanelList1.ShowExpandIcon = true;
 
            this.xPanderPanelList1.Size = new System.Drawing.Size(258, 655);
 
            this.xPanderPanelList1.TabIndex = 0;
 
            this.xPanderPanelList1.Text = "xPanderPanelList1";
 
            // 
 
            // xPanderPanelMain
 
            // 
 
            this.xPanderPanelMain.CaptionFont = new System.Drawing.Font("Segoe UI", 8F, System.Drawing.FontStyle.Bold);
 
            this.xPanderPanelMain.Controls.Add(this.tableLayoutPanel4);
 
            this.xPanderPanelMain.CustomColors.BackColor = System.Drawing.SystemColors.Control;
 
            this.xPanderPanelMain.CustomColors.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(184)))), ((int)(((byte)(184)))));
 
            this.xPanderPanelMain.CustomColors.CaptionCheckedGradientBegin = System.Drawing.Color.Empty;
 
            this.xPanderPanelMain.CustomColors.CaptionCheckedGradientEnd = System.Drawing.Color.Empty;
 
            this.xPanderPanelMain.CustomColors.CaptionCheckedGradientMiddle = System.Drawing.Color.Empty;
 
            this.xPanderPanelMain.CustomColors.CaptionCloseIcon = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelMain.CustomColors.CaptionExpandIcon = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelMain.CustomColors.CaptionGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(252)))), ((int)(((byte)(252)))));
 
            this.xPanderPanelMain.CustomColors.CaptionGradientEnd = System.Drawing.SystemColors.ButtonFace;
 
            this.xPanderPanelMain.CustomColors.CaptionGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(248)))));
 
            this.xPanderPanelMain.CustomColors.CaptionPressedGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelMain.CustomColors.CaptionPressedGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelMain.CustomColors.CaptionPressedGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelMain.CustomColors.CaptionSelectedGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelMain.CustomColors.CaptionSelectedGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelMain.CustomColors.CaptionSelectedGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelMain.CustomColors.CaptionSelectedText = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelMain.CustomColors.CaptionText = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelMain.CustomColors.FlatCaptionGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(248)))));
 
            this.xPanderPanelMain.CustomColors.FlatCaptionGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(252)))), ((int)(((byte)(252)))));
 
            this.xPanderPanelMain.CustomColors.InnerBorderColor = System.Drawing.SystemColors.Window;
 
            this.xPanderPanelMain.Expand = true;
 
            this.xPanderPanelMain.ForeColor = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelMain.Image = null;
 
            this.xPanderPanelMain.IsClosable = false;
 
            this.xPanderPanelMain.Margin = new System.Windows.Forms.Padding(2);
 
            this.xPanderPanelMain.Name = "xPanderPanelMain";
 
            this.xPanderPanelMain.PanelStyle = BSE.Windows.Forms.PanelStyle.Office2007;
 
            this.xPanderPanelMain.Size = new System.Drawing.Size(258, 25);
 
            this.xPanderPanelMain.Size = new System.Drawing.Size(258, 605);
 
            this.xPanderPanelMain.TabIndex = 0;
 
            this.xPanderPanelMain.Text = "map";
 
            this.xPanderPanelMain.ToolTipTextCloseIcon = null;
 
            this.xPanderPanelMain.ToolTipTextExpandIconPanelCollapsed = null;
 
            this.xPanderPanelMain.ToolTipTextExpandIconPanelExpanded = null;
 
            this.xPanderPanelMain.Click += new System.EventHandler(this.xPanderPanel1_Click);
 
            // 
 
            // tableLayoutPanel4
 
            // 
 
            this.tableLayoutPanel4.ColumnCount = 2;
 
            this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 48F));
 
            this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 49.27536F));
 
            this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel5, 1, 0);
 
            this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel6, 0, 0);
 
            this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.tableLayoutPanel4.Location = new System.Drawing.Point(1, 25);
 
            this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(2);
 
            this.tableLayoutPanel4.Name = "tableLayoutPanel4";
 
            this.tableLayoutPanel4.RowCount = 1;
 
            this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
 
            this.tableLayoutPanel4.Size = new System.Drawing.Size(256, 0);
 
            this.tableLayoutPanel4.Size = new System.Drawing.Size(256, 580);
 
            this.tableLayoutPanel4.TabIndex = 38;
 
            // 
 
            // tableLayoutPanel5
 
            // 
 
            this.tableLayoutPanel5.ColumnCount = 1;
 
            this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
 
            this.tableLayoutPanel5.Controls.Add(this.gboxRemove, 0, 3);
 
            this.tableLayoutPanel5.Controls.Add(this.gboxMapItems, 0, 2);
 
            this.tableLayoutPanel5.Controls.Add(this.gboxGmap, 0, 1);
 
            this.tableLayoutPanel5.Controls.Add(this.gboxCoordinates, 0, 0);
 
            this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.tableLayoutPanel5.Location = new System.Drawing.Point(48, 0);
 
            this.tableLayoutPanel5.Margin = new System.Windows.Forms.Padding(0, 0, 2, 2);
 
            this.tableLayoutPanel5.Name = "tableLayoutPanel5";
 
            this.tableLayoutPanel5.RowCount = 5;
 
            this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 6F));
 
            this.tableLayoutPanel5.Size = new System.Drawing.Size(206, 1);
 
            this.tableLayoutPanel5.Size = new System.Drawing.Size(206, 578);
 
            this.tableLayoutPanel5.TabIndex = 30;
 
            // 
 
            // gboxRemove
 
            // 
 
            this.gboxRemove.AutoSize = true;
 
            this.gboxRemove.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
 
            this.gboxRemove.Controls.Add(this.btnClearAll);
 
            this.gboxRemove.Controls.Add(this.btnClearMarkers);
 
            this.gboxRemove.Controls.Add(this.btnClearRoutes);
 
            this.gboxRemove.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.gboxRemove.Location = new System.Drawing.Point(3, 450);
 
            this.gboxRemove.Location = new System.Drawing.Point(3, 497);
 
            this.gboxRemove.Name = "gboxRemove";
 
            this.gboxRemove.Size = new System.Drawing.Size(200, 91);
 
            this.gboxRemove.TabIndex = 37;
 
            this.gboxRemove.TabStop = false;
 
            this.gboxRemove.Text = "Remove Map Item";
 
            // 
 
            // btnClearAll
 
            // 
 
            this.btnClearAll.Location = new System.Drawing.Point(9, 49);
 
            this.btnClearAll.Name = "btnClearAll";
 
            this.btnClearAll.Size = new System.Drawing.Size(75, 23);
 
            this.btnClearAll.TabIndex = 46;
 
            this.btnClearAll.Text = "Clear All";
 
            this.btnClearAll.UseVisualStyleBackColor = true;
 
            this.btnClearAll.Click += new System.EventHandler(this.btnClearAll_Click);
 
            // 
 
            // btnClearMarkers
 
            // 
 
            this.btnClearMarkers.AutoSize = true;
 
            this.btnClearMarkers.Location = new System.Drawing.Point(68, 19);
 
            this.btnClearMarkers.Name = "btnClearMarkers";
 
            this.btnClearMarkers.Size = new System.Drawing.Size(63, 24);
 
            this.btnClearMarkers.TabIndex = 13;
 
            this.btnClearMarkers.Text = "Markers";
 
            this.btnClearMarkers.UseVisualStyleBackColor = true;
 
            this.btnClearMarkers.Click += new System.EventHandler(this.btnClearMarkers_Click);
 
            // 
 
            // btnClearRoutes
 
            // 
 
            this.btnClearRoutes.AutoSize = true;
 
            this.btnClearRoutes.Location = new System.Drawing.Point(9, 19);
 
            this.btnClearRoutes.Name = "btnClearRoutes";
 
            this.btnClearRoutes.Size = new System.Drawing.Size(55, 24);
 
            this.btnClearRoutes.TabIndex = 34;
 
            this.btnClearRoutes.Text = "Routes";
 
            this.btnClearRoutes.UseVisualStyleBackColor = true;
 
            this.btnClearRoutes.Click += new System.EventHandler(this.btnClearRoutes_Click);
 
            // 
 
            // gboxMapItems
 
            // 
 
            this.gboxMapItems.AutoSize = true;
 
            this.gboxMapItems.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
 
            this.gboxMapItems.Controls.Add(this.btnAddMarker);
 
            this.gboxMapItems.Controls.Add(this.btnSetEnd);
 
            this.gboxMapItems.Controls.Add(this.btnSetStart);
 
            this.gboxMapItems.Controls.Add(this.btnAddRoute);
 
            this.gboxMapItems.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.gboxMapItems.Location = new System.Drawing.Point(3, 322);
 
            this.gboxMapItems.Location = new System.Drawing.Point(3, 369);
 
            this.gboxMapItems.Name = "gboxMapItems";
 
            this.gboxMapItems.Size = new System.Drawing.Size(200, 122);
 
            this.gboxMapItems.TabIndex = 35;
 
            this.gboxMapItems.TabStop = false;
 
            this.gboxMapItems.Text = "Add Map Item";
 
            // 
 
            // btnAddMarker
 
            // 
 
            this.btnAddMarker.Location = new System.Drawing.Point(9, 79);
 
            this.btnAddMarker.Name = "btnAddMarker";
 
            this.btnAddMarker.Size = new System.Drawing.Size(82, 24);
 
            this.btnAddMarker.TabIndex = 12;
 
            this.btnAddMarker.Text = "Add Marker";
 
            this.btnAddMarker.UseVisualStyleBackColor = true;
 
            this.btnAddMarker.Click += new System.EventHandler(this.addUserMarker);
 
            // 
 
            // btnSetEnd
 
            // 
 
            this.btnSetEnd.Location = new System.Drawing.Point(97, 19);
 
            this.btnSetEnd.Name = "btnSetEnd";
 
            this.btnSetEnd.Size = new System.Drawing.Size(73, 24);
 
            this.btnSetEnd.TabIndex = 42;
 
            this.btnSetEnd.Text = "set End";
 
            this.btnSetEnd.UseVisualStyleBackColor = true;
 
            this.btnSetEnd.Click += new System.EventHandler(this.buttonSetEnd_Click);
 
            // 
 
            // btnSetStart
 
            // 
 
            this.btnSetStart.Location = new System.Drawing.Point(9, 19);
 
            this.btnSetStart.Name = "btnSetStart";
 
            this.btnSetStart.Size = new System.Drawing.Size(82, 24);
 
            this.btnSetStart.TabIndex = 41;
 
            this.btnSetStart.Text = "set Start";
 
            this.btnSetStart.UseVisualStyleBackColor = true;
 
            this.btnSetStart.Click += new System.EventHandler(this.buttonSetStart_Click);
 
            // 
 
            // btnAddRoute
 
            // 
 
            this.btnAddRoute.Location = new System.Drawing.Point(97, 49);
 
            this.btnAddRoute.Name = "btnAddRoute";
 
            this.btnAddRoute.Size = new System.Drawing.Size(73, 24);
 
            this.btnAddRoute.TabIndex = 33;
 
            this.btnAddRoute.Text = "Add Route";
 
            this.btnAddRoute.UseVisualStyleBackColor = true;
 
            this.btnAddRoute.Click += new System.EventHandler(this.btnAddRoute_Click);
 
            // 
 
            // gboxGmap
 
            // 
 
            this.gboxGmap.AutoSize = true;
 
            this.gboxGmap.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
 
            this.gboxGmap.Controls.Add(this.btnGetStatic);
 
            this.gboxGmap.Controls.Add(this.xboxGrid);
 
            this.gboxGmap.Controls.Add(this.btnSaveView);
 
            this.gboxGmap.Controls.Add(this.lblMode);
 
            this.gboxGmap.Controls.Add(this.comboBoxMode);
 
            this.gboxGmap.Controls.Add(this.xboxCanDrag);
 
            this.gboxGmap.Controls.Add(this.xboxCurrentMarker);
 
            this.gboxGmap.Controls.Add(this.lblMapType);
 
            this.gboxGmap.Controls.Add(this.comboBoxMapType);
 
            this.gboxGmap.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.gboxGmap.Location = new System.Drawing.Point(3, 153);
 
            this.gboxGmap.Location = new System.Drawing.Point(3, 200);
 
            this.gboxGmap.Name = "gboxGmap";
 
            this.gboxGmap.Size = new System.Drawing.Size(200, 163);
 
            this.gboxGmap.TabIndex = 31;
 
            this.gboxGmap.TabStop = false;
 
            this.gboxGmap.Text = "gmap";
 
            // 
 
            // btnGetStatic
 
            // 
 
            this.btnGetStatic.AutoSize = true;
 
            this.btnGetStatic.Location = new System.Drawing.Point(9, 121);
 
            this.btnGetStatic.Margin = new System.Windows.Forms.Padding(2);
 
            this.btnGetStatic.Name = "btnGetStatic";
 
            this.btnGetStatic.Size = new System.Drawing.Size(73, 24);
 
            this.btnGetStatic.TabIndex = 41;
 
            this.btnGetStatic.Text = "Area Image";
 
            this.btnGetStatic.UseVisualStyleBackColor = true;
 
            this.btnGetStatic.Click += new System.EventHandler(this.btnGetStatic_Click);
 
            // 
 
            // xboxGrid
 
            // 
 
            this.xboxGrid.AutoSize = true;
 
            this.xboxGrid.Location = new System.Drawing.Point(104, 74);
 
            this.xboxGrid.Margin = new System.Windows.Forms.Padding(2);
 
            this.xboxGrid.Name = "xboxGrid";
 
            this.xboxGrid.Size = new System.Drawing.Size(45, 17);
 
            this.xboxGrid.TabIndex = 40;
 
            this.xboxGrid.Text = "Grid";
 
            this.xboxGrid.UseVisualStyleBackColor = true;
 
            this.xboxGrid.CheckedChanged += new System.EventHandler(this.showGridlines);
 
            // 
 
            // btnSaveView
 
            // 
 
            this.btnSaveView.AutoSize = true;
 
            this.btnSaveView.Location = new System.Drawing.Point(92, 121);
 
            this.btnSaveView.Margin = new System.Windows.Forms.Padding(2);
 
            this.btnSaveView.Name = "btnSaveView";
 
            this.btnSaveView.Size = new System.Drawing.Size(74, 24);
 
            this.btnSaveView.TabIndex = 39;
 
            this.btnSaveView.Text = "Create PNG";
 
            this.btnSaveView.UseVisualStyleBackColor = true;
 
            this.btnSaveView.Click += new System.EventHandler(this.btnSaveView_Click);
 
            // 
 
            // lblMode
 
            // 
 
            this.lblMode.AutoSize = true;
 
            this.lblMode.Location = new System.Drawing.Point(132, 49);
 
            this.lblMode.Name = "lblMode";
 
            this.lblMode.Size = new System.Drawing.Size(34, 13);
 
            this.lblMode.TabIndex = 38;
 
            this.lblMode.Text = "Mode";
 
            // 
 
            // comboBoxMode
 
            // 
 
            this.comboBoxMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
 
            this.comboBoxMode.FormattingEnabled = true;
 
            this.comboBoxMode.Location = new System.Drawing.Point(8, 46);
 
            this.comboBoxMode.Name = "comboBoxMode";
 
            this.comboBoxMode.Size = new System.Drawing.Size(123, 21);
 
            this.comboBoxMode.TabIndex = 37;
 
            this.comboBoxMode.DropDownClosed += new System.EventHandler(this.comboBoxMode_DropDownClosed);
 
            // 
 
            // xboxCanDrag
 
            // 
 
            this.xboxCanDrag.AutoSize = true;
 
            this.xboxCanDrag.Checked = true;
 
            this.xboxCanDrag.CheckState = System.Windows.Forms.CheckState.Checked;
 
            this.xboxCanDrag.Location = new System.Drawing.Point(9, 95);
 
            this.xboxCanDrag.Name = "xboxCanDrag";
 
            this.xboxCanDrag.Size = new System.Drawing.Size(73, 17);
 
            this.xboxCanDrag.TabIndex = 36;
 
            this.xboxCanDrag.Text = "Drag Map";
 
            this.xboxCanDrag.UseVisualStyleBackColor = true;
 
            this.xboxCanDrag.CheckedChanged += new System.EventHandler(this.checkBoxCanDrag_CheckedChanged);
 
            // 
 
            // xboxCurrentMarker
 
            // 
 
            this.xboxCurrentMarker.AutoSize = true;
 
            this.xboxCurrentMarker.Checked = true;
 
            this.xboxCurrentMarker.CheckState = System.Windows.Forms.CheckState.Checked;
 
            this.xboxCurrentMarker.Location = new System.Drawing.Point(9, 73);
 
            this.xboxCurrentMarker.Name = "xboxCurrentMarker";
 
            this.xboxCurrentMarker.Size = new System.Drawing.Size(96, 17);
 
            this.xboxCurrentMarker.TabIndex = 35;
 
            this.xboxCurrentMarker.Text = "Current Marker";
 
            this.xboxCurrentMarker.UseVisualStyleBackColor = true;
 
            this.xboxCurrentMarker.CheckedChanged += new System.EventHandler(this.checkBoxCurrentMarker_CheckedChanged);
 
            // 
 
            // lblMapType
 
            // 
 
            this.lblMapType.AutoSize = true;
 
            this.lblMapType.Location = new System.Drawing.Point(132, 22);
 
            this.lblMapType.Name = "lblMapType";
 
            this.lblMapType.Size = new System.Drawing.Size(55, 13);
 
            this.lblMapType.TabIndex = 31;
 
            this.lblMapType.Text = "Map Type";
 
            // 
 
            // comboBoxMapType
 
            // 
 
            this.comboBoxMapType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
 
            this.comboBoxMapType.FormattingEnabled = true;
 
            this.comboBoxMapType.Location = new System.Drawing.Point(8, 19);
 
            this.comboBoxMapType.Name = "comboBoxMapType";
 
            this.comboBoxMapType.Size = new System.Drawing.Size(123, 21);
 
            this.comboBoxMapType.TabIndex = 9;
 
            this.comboBoxMapType.DropDownClosed += new System.EventHandler(this.comboBoxMapType_DropDownClosed);
 
            // 
 
            // gboxCoordinates
 
            // 
 
            this.gboxCoordinates.AutoSize = true;
 
            this.gboxCoordinates.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
 
            this.gboxCoordinates.Controls.Add(this.tboxCOMPort);
 
            this.gboxCoordinates.Controls.Add(this.label33);
 
            this.gboxCoordinates.Controls.Add(this.tboxAPRSCallsign);
 
            this.gboxCoordinates.Controls.Add(this.label32);
 
            this.gboxCoordinates.Controls.Add(this.btnZoomCenter);
 
            this.gboxCoordinates.Controls.Add(this.btnReload);
 
            this.gboxCoordinates.Controls.Add(this.btnGoToCoords);
 
            this.gboxCoordinates.Controls.Add(this.lblLng);
 
            this.gboxCoordinates.Controls.Add(this.cboxCollectData);
 
            this.gboxCoordinates.Controls.Add(this.lblLat);
 
            this.gboxCoordinates.Controls.Add(this.textBoxLng);
 
            this.gboxCoordinates.Controls.Add(this.textBoxLat);
 
            this.gboxCoordinates.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.gboxCoordinates.Location = new System.Drawing.Point(3, 3);
 
            this.gboxCoordinates.Name = "gboxCoordinates";
 
            this.gboxCoordinates.Size = new System.Drawing.Size(200, 144);
 
            this.gboxCoordinates.Size = new System.Drawing.Size(200, 191);
 
            this.gboxCoordinates.TabIndex = 28;
 
            this.gboxCoordinates.TabStop = false;
 
            this.gboxCoordinates.Text = "coordinates";
 
            // 
 
            // tboxCOMPort
 
            // 
 
            this.tboxCOMPort.Location = new System.Drawing.Point(87, 127);
 
            this.tboxCOMPort.Name = "tboxCOMPort";
 
            this.tboxCOMPort.Size = new System.Drawing.Size(100, 20);
 
            this.tboxCOMPort.TabIndex = 42;
 
            this.tboxCOMPort.Text = "1";
 
            // 
 
            // label33
 
            // 
 
            this.label33.AutoSize = true;
 
            this.label33.Location = new System.Drawing.Point(25, 130);
 
            this.label33.Name = "label33";
 
            this.label33.Size = new System.Drawing.Size(53, 13);
 
            this.label33.TabIndex = 41;
 
            this.label33.Text = "COM Port";
 
            // 
 
            // tboxAPRSCallsign
 
            // 
 
            this.tboxAPRSCallsign.Location = new System.Drawing.Point(87, 101);
 
            this.tboxAPRSCallsign.Name = "tboxAPRSCallsign";
 
            this.tboxAPRSCallsign.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAPRSCallsign.TabIndex = 40;
 
            this.tboxAPRSCallsign.Text = "KD8TDF-11";
 
            // 
 
            // label32
 
            // 
 
            this.label32.AutoSize = true;
 
            this.label32.Location = new System.Drawing.Point(6, 104);
 
            this.label32.Name = "label32";
 
            this.label32.Size = new System.Drawing.Size(75, 13);
 
            this.label32.TabIndex = 39;
 
            this.label32.Text = "APRS Callsign";
 
            // 
 
            // btnZoomCenter
 
            // 
 
            this.btnZoomCenter.Location = new System.Drawing.Point(84, 71);
 
            this.btnZoomCenter.Name = "btnZoomCenter";
 
            this.btnZoomCenter.Size = new System.Drawing.Size(82, 24);
 
            this.btnZoomCenter.TabIndex = 15;
 
            this.btnZoomCenter.Text = "Zoom Center";
 
            this.btnZoomCenter.UseVisualStyleBackColor = true;
 
            this.btnZoomCenter.Click += new System.EventHandler(this.button7_Click);
 
            // 
 
            // btnReload
 
            // 
 
            this.btnReload.Location = new System.Drawing.Point(6, 101);
 
            this.btnReload.Location = new System.Drawing.Point(6, 148);
 
            this.btnReload.Name = "btnReload";
 
            this.btnReload.Size = new System.Drawing.Size(74, 24);
 
            this.btnReload.TabIndex = 9;
 
            this.btnReload.Text = "Reload";
 
            this.btnReload.UseVisualStyleBackColor = true;
 
            this.btnReload.Click += new System.EventHandler(this.btnReload_Click);
 
            // 
 
            // btnGoToCoords
 
            // 
 
            this.btnGoToCoords.Location = new System.Drawing.Point(6, 71);
 
            this.btnGoToCoords.Name = "btnGoToCoords";
 
            this.btnGoToCoords.Size = new System.Drawing.Size(72, 24);
 
            this.btnGoToCoords.TabIndex = 8;
 
            this.btnGoToCoords.Text = "GoTo !";
 
            this.btnGoToCoords.UseVisualStyleBackColor = true;
 
            this.btnGoToCoords.Click += new System.EventHandler(this.btnGoToCoords_Click);
 
            // 
 
            // lblLng
 
            // 
 
            this.lblLng.AutoSize = true;
 
            this.lblLng.Location = new System.Drawing.Point(135, 48);
 
            this.lblLng.Name = "lblLng";
 
            this.lblLng.Size = new System.Drawing.Size(54, 13);
 
            this.lblLng.TabIndex = 3;
 
            this.lblLng.Text = "Longitude";
 
            // 
 
            // cboxCollectData
 
            // 
 
            this.cboxCollectData.AutoSize = true;
 
            this.cboxCollectData.Location = new System.Drawing.Point(86, 106);
 
            this.cboxCollectData.Location = new System.Drawing.Point(86, 153);
 
            this.cboxCollectData.Name = "cboxCollectData";
 
            this.cboxCollectData.Size = new System.Drawing.Size(84, 17);
 
            this.cboxCollectData.TabIndex = 38;
 
            this.cboxCollectData.Text = "Collect Data";
 
            this.cboxCollectData.UseVisualStyleBackColor = true;
 
            this.cboxCollectData.Click += new System.EventHandler(this.cboxCollectData_Click);
 
            // 
 
            // lblLat
 
            // 
 
            this.lblLat.AutoSize = true;
 
            this.lblLat.Location = new System.Drawing.Point(135, 22);
 
            this.lblLat.Name = "lblLat";
 
            this.lblLat.Size = new System.Drawing.Size(45, 13);
 
            this.lblLat.TabIndex = 2;
 
            this.lblLat.Text = "Latitude";
 
            // 
 
            // textBoxLng
 
            // 
 
            this.textBoxLng.Location = new System.Drawing.Point(9, 45);
 
            this.textBoxLng.Name = "textBoxLng";
 
            this.textBoxLng.Size = new System.Drawing.Size(122, 20);
 
            this.textBoxLng.TabIndex = 1;
 
            this.textBoxLng.Text = "-83.809848";
 
            // 
 
            // textBoxLat
 
            // 
 
            this.textBoxLat.Location = new System.Drawing.Point(9, 19);
 
            this.textBoxLat.Name = "textBoxLat";
 
            this.textBoxLat.Size = new System.Drawing.Size(122, 20);
 
            this.textBoxLat.TabIndex = 0;
 
            this.textBoxLat.Text = "39.751248";
 
            // 
 
            // tableLayoutPanel6
 
            // 
 
            this.tableLayoutPanel6.ColumnCount = 1;
 
            this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
 
            this.tableLayoutPanel6.Controls.Add(this.btnZoomIn, 0, 0);
 
            this.tableLayoutPanel6.Controls.Add(this.trackBarZoomLevel, 0, 1);
 
            this.tableLayoutPanel6.Controls.Add(this.btnZoomOut, 0, 2);
 
            this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.tableLayoutPanel6.Location = new System.Drawing.Point(2, 2);
 
            this.tableLayoutPanel6.Margin = new System.Windows.Forms.Padding(2);
 
            this.tableLayoutPanel6.Name = "tableLayoutPanel6";
 
            this.tableLayoutPanel6.RowCount = 3;
 
            this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
 
            this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel6.Size = new System.Drawing.Size(44, 1);
 
            this.tableLayoutPanel6.Size = new System.Drawing.Size(44, 576);
 
            this.tableLayoutPanel6.TabIndex = 31;
 
            // 
 
            // btnZoomIn
 
            // 
 
            this.btnZoomIn.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.btnZoomIn.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.btnZoomIn.Location = new System.Drawing.Point(0, 0);
 
            this.btnZoomIn.Margin = new System.Windows.Forms.Padding(0);
 
            this.btnZoomIn.Name = "btnZoomIn";
 
            this.btnZoomIn.Size = new System.Drawing.Size(45, 27);
 
            this.btnZoomIn.TabIndex = 0;
 
            this.btnZoomIn.Text = "+";
 
            this.btnZoomIn.UseVisualStyleBackColor = true;
 
            this.btnZoomIn.Click += new System.EventHandler(this.buttonZoomUp_Click);
 
            // 
 
            // trackBarZoomLevel
 
            // 
 
            this.trackBarZoomLevel.BackColor = System.Drawing.Color.AliceBlue;
 
            this.trackBarZoomLevel.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.trackBarZoomLevel.LargeChange = 1;
 
            this.trackBarZoomLevel.Location = new System.Drawing.Point(0, 27);
 
            this.trackBarZoomLevel.Margin = new System.Windows.Forms.Padding(0);
 
            this.trackBarZoomLevel.Maximum = 1700;
 
            this.trackBarZoomLevel.Minimum = 1;
 
            this.trackBarZoomLevel.Name = "trackBarZoomLevel";
 
            this.trackBarZoomLevel.Orientation = System.Windows.Forms.Orientation.Vertical;
 
            this.trackBarZoomLevel.Size = new System.Drawing.Size(45, 1);
 
            this.trackBarZoomLevel.Size = new System.Drawing.Size(45, 522);
 
            this.trackBarZoomLevel.TabIndex = 29;
 
            this.trackBarZoomLevel.TickFrequency = 100;
 
            this.trackBarZoomLevel.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
 
            this.trackBarZoomLevel.Value = 15;
 
            this.trackBarZoomLevel.ValueChanged += new System.EventHandler(this.trackBar1_ValueChanged);
 
            // 
 
            // btnZoomOut
 
            // 
 
            this.btnZoomOut.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.btnZoomOut.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.btnZoomOut.Location = new System.Drawing.Point(0, -26);
 
            this.btnZoomOut.Location = new System.Drawing.Point(0, 549);
 
            this.btnZoomOut.Margin = new System.Windows.Forms.Padding(0);
 
            this.btnZoomOut.Name = "btnZoomOut";
 
            this.btnZoomOut.Size = new System.Drawing.Size(45, 27);
 
            this.btnZoomOut.TabIndex = 1;
 
            this.btnZoomOut.Text = "-";
 
            this.btnZoomOut.UseVisualStyleBackColor = true;
 
            this.btnZoomOut.Click += new System.EventHandler(this.buttonZoomDown_Click);
 
            // 
 
            // xPanderPanelInfo
 
            // 
 
            this.xPanderPanelInfo.CaptionFont = new System.Drawing.Font("Segoe UI", 8F, System.Drawing.FontStyle.Bold);
 
            this.xPanderPanelInfo.Controls.Add(this.tableLayoutPanel2);
 
            this.xPanderPanelInfo.CustomColors.BackColor = System.Drawing.SystemColors.Control;
 
            this.xPanderPanelInfo.CustomColors.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(184)))), ((int)(((byte)(184)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionCheckedGradientBegin = System.Drawing.Color.Empty;
 
            this.xPanderPanelInfo.CustomColors.CaptionCheckedGradientEnd = System.Drawing.Color.Empty;
 
            this.xPanderPanelInfo.CustomColors.CaptionCheckedGradientMiddle = System.Drawing.Color.Empty;
 
            this.xPanderPanelInfo.CustomColors.CaptionCloseIcon = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelInfo.CustomColors.CaptionExpandIcon = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelInfo.CustomColors.CaptionGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(252)))), ((int)(((byte)(252)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionGradientEnd = System.Drawing.SystemColors.ButtonFace;
 
            this.xPanderPanelInfo.CustomColors.CaptionGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(248)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionPressedGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionPressedGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionPressedGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionSelectedGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionSelectedGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionSelectedGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelInfo.CustomColors.CaptionSelectedText = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelInfo.CustomColors.CaptionText = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelInfo.CustomColors.FlatCaptionGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(248)))));
 
            this.xPanderPanelInfo.CustomColors.FlatCaptionGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(252)))), ((int)(((byte)(252)))));
 
            this.xPanderPanelInfo.CustomColors.InnerBorderColor = System.Drawing.SystemColors.Window;
 
            this.xPanderPanelInfo.ForeColor = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelInfo.Image = null;
 
            this.xPanderPanelInfo.Margin = new System.Windows.Forms.Padding(2);
 
            this.xPanderPanelInfo.Name = "xPanderPanelInfo";
 
            this.xPanderPanelInfo.PanelStyle = BSE.Windows.Forms.PanelStyle.Office2007;
 
            this.xPanderPanelInfo.Size = new System.Drawing.Size(258, 25);
 
            this.xPanderPanelInfo.TabIndex = 3;
 
            this.xPanderPanelInfo.Text = "info";
 
            this.xPanderPanelInfo.ToolTipTextCloseIcon = null;
 
            this.xPanderPanelInfo.ToolTipTextExpandIconPanelCollapsed = null;
 
            this.xPanderPanelInfo.ToolTipTextExpandIconPanelExpanded = null;
 
            this.xPanderPanelInfo.Click += new System.EventHandler(this.xPanderPanelInfo_Click);
 
            // 
 
            // tableLayoutPanel2
 
            // 
 
            this.tableLayoutPanel2.ColumnCount = 3;
 
            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F));
 
            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
 
            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F));
 
            this.tableLayoutPanel2.Controls.Add(this.textBoxZoomCurrent, 1, 7);
 
            this.tableLayoutPanel2.Controls.Add(this.textBoxrouteCount, 1, 11);
 
            this.tableLayoutPanel2.Controls.Add(this.label12, 1, 10);
 
            this.tableLayoutPanel2.Controls.Add(this.label9, 1, 6);
 
            this.tableLayoutPanel2.Controls.Add(this.textBoxLngCurrent, 1, 4);
 
            this.tableLayoutPanel2.Controls.Add(this.textBoxMarkerCount, 1, 9);
 
            this.tableLayoutPanel2.Controls.Add(this.label11, 1, 8);
 
            this.tableLayoutPanel2.Controls.Add(this.label4, 1, 3);
 
            this.tableLayoutPanel2.Controls.Add(this.textBoxLatCurrent, 1, 2);
 
            this.tableLayoutPanel2.Controls.Add(this.label5, 1, 1);
 
            this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.tableLayoutPanel2.Location = new System.Drawing.Point(1, 25);
 
            this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(2);
 
            this.tableLayoutPanel2.Name = "tableLayoutPanel2";
 
            this.tableLayoutPanel2.RowCount = 13;
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F));
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F));
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F));
 
            this.tableLayoutPanel2.Size = new System.Drawing.Size(256, 0);
 
            this.tableLayoutPanel2.TabIndex = 14;
 
            // 
 
            // textBoxZoomCurrent
 
            // 
 
            this.textBoxZoomCurrent.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.textBoxZoomCurrent.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.textBoxZoomCurrent.Location = new System.Drawing.Point(18, 142);
 
            this.textBoxZoomCurrent.Name = "textBoxZoomCurrent";
 
            this.textBoxZoomCurrent.ReadOnly = true;
 
            this.textBoxZoomCurrent.Size = new System.Drawing.Size(220, 28);
 
            this.textBoxZoomCurrent.TabIndex = 8;
 
            this.textBoxZoomCurrent.Text = "15";
 
            // 
 
            // textBoxrouteCount
 
            // 
 
            this.textBoxrouteCount.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.textBoxrouteCount.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.textBoxrouteCount.Location = new System.Drawing.Point(18, 236);
 
            this.textBoxrouteCount.Name = "textBoxrouteCount";
 
            this.textBoxrouteCount.ReadOnly = true;
 
            this.textBoxrouteCount.Size = new System.Drawing.Size(220, 28);
 
            this.textBoxrouteCount.TabIndex = 12;
 
            this.textBoxrouteCount.Text = "...";
 
            // 
 
            // label12
 
            // 
 
            this.label12.AutoSize = true;
 
            this.label12.Location = new System.Drawing.Point(18, 220);
 
            this.label12.Name = "label12";
 
            this.label12.Size = new System.Drawing.Size(39, 13);
 
            this.label12.TabIndex = 13;
 
            this.label12.Text = "routes:";
 
            // 
 
            // label9
 
            // 
 
            this.label9.AutoSize = true;
 
            this.label9.Location = new System.Drawing.Point(18, 126);
 
            this.label9.Name = "label9";
 
            this.label9.Size = new System.Drawing.Size(35, 13);
 
            this.label9.TabIndex = 9;
 
            this.label9.Text = "zoom:";
 
            // 
 
            // textBoxLngCurrent
 
            // 
 
            this.textBoxLngCurrent.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.textBoxLngCurrent.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.textBoxLngCurrent.Location = new System.Drawing.Point(18, 79);
 
            this.textBoxLngCurrent.Name = "textBoxLngCurrent";
 
            this.textBoxLngCurrent.ReadOnly = true;
 
            this.textBoxLngCurrent.Size = new System.Drawing.Size(220, 28);
 
            this.textBoxLngCurrent.TabIndex = 5;
 
            this.textBoxLngCurrent.Text = "...";
 
            // 
 
            // textBoxMarkerCount
 
            // 
 
            this.textBoxMarkerCount.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.textBoxMarkerCount.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.textBoxMarkerCount.Location = new System.Drawing.Point(18, 189);
 
            this.textBoxMarkerCount.Name = "textBoxMarkerCount";
 
            this.textBoxMarkerCount.ReadOnly = true;
 
            this.textBoxMarkerCount.Size = new System.Drawing.Size(220, 28);
 
            this.textBoxMarkerCount.TabIndex = 10;
 
            this.textBoxMarkerCount.Text = "...";
 
            // 
 
            // label11
 
            // 
 
            this.label11.AutoSize = true;
 
            this.label11.Location = new System.Drawing.Point(18, 173);
 
            this.label11.Name = "label11";
 
            this.label11.Size = new System.Drawing.Size(47, 13);
 
            this.label11.TabIndex = 11;
 
            this.label11.Text = "markers:";
 
            // 
 
            // label4
 
            // 
 
            this.label4.AutoSize = true;
 
            this.label4.Location = new System.Drawing.Point(18, 63);
 
            this.label4.Name = "label4";
 
            this.label4.Size = new System.Drawing.Size(24, 13);
 
            this.label4.TabIndex = 7;
 
            this.label4.Text = "lng:";
 
            // 
 
            // textBoxLatCurrent
 
            // 
 
            this.textBoxLatCurrent.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.textBoxLatCurrent.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.textBoxLatCurrent.Location = new System.Drawing.Point(18, 32);
 
            this.textBoxLatCurrent.Name = "textBoxLatCurrent";
 
            this.textBoxLatCurrent.ReadOnly = true;
 
            this.textBoxLatCurrent.Size = new System.Drawing.Size(220, 28);
 
            this.textBoxLatCurrent.TabIndex = 4;
 
            this.textBoxLatCurrent.Text = "...";
 
            // 
 
            // label5
 
            // 
 
            this.label5.AutoSize = true;
 
            this.label5.Location = new System.Drawing.Point(18, 16);
 
            this.label5.Name = "label5";
 
            this.label5.Size = new System.Drawing.Size(21, 13);
 
            this.label5.TabIndex = 6;
 
            this.label5.Text = "lat:";
 
            // 
 
            // xPanderPanelCache
 
            // 
 
            this.xPanderPanelCache.CaptionFont = new System.Drawing.Font("Segoe UI", 8F, System.Drawing.FontStyle.Bold);
 
            this.xPanderPanelCache.Controls.Add(this.tableLayoutPanel1);
 
            this.xPanderPanelCache.CustomColors.BackColor = System.Drawing.SystemColors.Control;
 
            this.xPanderPanelCache.CustomColors.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(184)))), ((int)(((byte)(184)))));
 
            this.xPanderPanelCache.CustomColors.CaptionCheckedGradientBegin = System.Drawing.Color.Empty;
 
            this.xPanderPanelCache.CustomColors.CaptionCheckedGradientEnd = System.Drawing.Color.Empty;
 
            this.xPanderPanelCache.CustomColors.CaptionCheckedGradientMiddle = System.Drawing.Color.Empty;
 
            this.xPanderPanelCache.CustomColors.CaptionCloseIcon = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelCache.CustomColors.CaptionExpandIcon = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelCache.CustomColors.CaptionGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(252)))), ((int)(((byte)(252)))));
 
            this.xPanderPanelCache.CustomColors.CaptionGradientEnd = System.Drawing.SystemColors.ButtonFace;
 
            this.xPanderPanelCache.CustomColors.CaptionGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(248)))));
 
            this.xPanderPanelCache.CustomColors.CaptionPressedGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelCache.CustomColors.CaptionPressedGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelCache.CustomColors.CaptionPressedGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelCache.CustomColors.CaptionSelectedGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelCache.CustomColors.CaptionSelectedGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelCache.CustomColors.CaptionSelectedGradientMiddle = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 
            this.xPanderPanelCache.CustomColors.CaptionSelectedText = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelCache.CustomColors.CaptionText = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelCache.CustomColors.FlatCaptionGradientBegin = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(248)))));
 
            this.xPanderPanelCache.CustomColors.FlatCaptionGradientEnd = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(252)))), ((int)(((byte)(252)))));
 
            this.xPanderPanelCache.CustomColors.InnerBorderColor = System.Drawing.SystemColors.Window;
 
            this.xPanderPanelCache.Expand = true;
 
            this.xPanderPanelCache.ForeColor = System.Drawing.SystemColors.ControlText;
 
            this.xPanderPanelCache.Image = null;
 
            this.xPanderPanelCache.IsClosable = false;
 
            this.xPanderPanelCache.Margin = new System.Windows.Forms.Padding(2);
 
            this.xPanderPanelCache.Name = "xPanderPanelCache";
 
            this.xPanderPanelCache.PanelStyle = BSE.Windows.Forms.PanelStyle.Office2007;
 
            this.xPanderPanelCache.Size = new System.Drawing.Size(258, 605);
 
            this.xPanderPanelCache.Size = new System.Drawing.Size(258, 25);
 
            this.xPanderPanelCache.TabIndex = 4;
 
            this.xPanderPanelCache.Text = "cache";
 
            this.xPanderPanelCache.ToolTipTextCloseIcon = null;
 
            this.xPanderPanelCache.ToolTipTextExpandIconPanelCollapsed = null;
 
            this.xPanderPanelCache.ToolTipTextExpandIconPanelExpanded = null;
 
            // 
 
            // tableLayoutPanel1
 
            // 
 
            this.tableLayoutPanel1.ColumnCount = 3;
 
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F));
 
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
 
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F));
 
            this.tableLayoutPanel1.Controls.Add(this.textBoxCacheSize, 1, 12);
 
            this.tableLayoutPanel1.Controls.Add(this.textBoxCacheStatus, 1, 15);
 
            this.tableLayoutPanel1.Controls.Add(this.btnCacheImport, 1, 1);
 
            this.tableLayoutPanel1.Controls.Add(this.textBoxMemory, 1, 9);
 
            this.tableLayoutPanel1.Controls.Add(this.checkBoxUseRouteCache, 1, 17);
 
            this.tableLayoutPanel1.Controls.Add(this.btnCacheExport, 1, 2);
 
            this.tableLayoutPanel1.Controls.Add(this.btnCachePrefetch, 1, 3);
 
            this.tableLayoutPanel1.Controls.Add(this.label10, 1, 8);
 
            this.tableLayoutPanel1.Controls.Add(this.btnCacheClear, 1, 5);
 
            this.tableLayoutPanel1.Controls.Add(this.label13, 1, 14);
 
            this.tableLayoutPanel1.Controls.Add(this.label14, 1, 11);
 
            this.tableLayoutPanel1.Controls.Add(this.btnCacheLocationOpen, 1, 6);
 
            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.tableLayoutPanel1.Location = new System.Drawing.Point(1, 25);
 
            this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2);
 
            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
 
            this.tableLayoutPanel1.RowCount = 19;
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F));
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F));
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F));
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F));
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 16F));
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
 
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
 
            this.tableLayoutPanel1.Size = new System.Drawing.Size(256, 580);
 
            this.tableLayoutPanel1.Size = new System.Drawing.Size(256, 0);
 
            this.tableLayoutPanel1.TabIndex = 41;
 
            // 
 
            // textBoxCacheSize
 
            // 
 
            this.textBoxCacheSize.Dock = System.Windows.Forms.DockStyle.Top;
 
            this.textBoxCacheSize.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.textBoxCacheSize.Location = new System.Drawing.Point(18, 238);
 
            this.textBoxCacheSize.Name = "textBoxCacheSize";
 
            this.textBoxCacheSize.ReadOnly = true;
 
            this.textBoxCacheSize.Size = new System.Drawing.Size(220, 28);
 
            this.textBoxCacheSize.TabIndex = 49;
 
            this.textBoxCacheSize.Text = "...";
 
            // 
 
            // textBoxCacheStatus
 
            // 
 
            this.textBoxCacheStatus.Dock = System.Windows.Forms.DockStyle.Top;
 
            this.textBoxCacheStatus.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.textBoxCacheStatus.Location = new System.Drawing.Point(18, 301);
 
            this.textBoxCacheStatus.Name = "textBoxCacheStatus";
 
            this.textBoxCacheStatus.ReadOnly = true;
 
            this.textBoxCacheStatus.Size = new System.Drawing.Size(220, 28);
 
            this.textBoxCacheStatus.TabIndex = 46;
 
            this.textBoxCacheStatus.Text = "...";
 
            // 
 
            // btnCacheImport
 
            // 
 
            this.btnCacheImport.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.btnCacheImport.Location = new System.Drawing.Point(18, 19);
 
            this.btnCacheImport.Name = "btnCacheImport";
 
            this.btnCacheImport.Size = new System.Drawing.Size(220, 20);
 
            this.btnCacheImport.TabIndex = 5;
 
            this.btnCacheImport.Text = "Import";
 
            this.btnCacheImport.UseVisualStyleBackColor = true;
 
            this.btnCacheImport.Click += new System.EventHandler(this.btnCacheImport_Click);
 
            // 
 
            // textBoxMemory
 
            // 
 
            this.textBoxMemory.Dock = System.Windows.Forms.DockStyle.Top;
 
            this.textBoxMemory.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 
            this.textBoxMemory.Location = new System.Drawing.Point(18, 175);
 
            this.textBoxMemory.Name = "textBoxMemory";
 
            this.textBoxMemory.ReadOnly = true;
 
            this.textBoxMemory.Size = new System.Drawing.Size(220, 28);
 
            this.textBoxMemory.TabIndex = 39;
 
            this.textBoxMemory.Text = "...";
 
            // 
 
            // checkBoxUseRouteCache
 
            // 
 
            this.checkBoxUseRouteCache.AutoSize = true;
 
            this.checkBoxUseRouteCache.Checked = true;
 
            this.checkBoxUseRouteCache.CheckState = System.Windows.Forms.CheckState.Checked;
 
            this.checkBoxUseRouteCache.Location = new System.Drawing.Point(18, 351);
 
            this.checkBoxUseRouteCache.Name = "checkBoxUseRouteCache";
 
            this.checkBoxUseRouteCache.Size = new System.Drawing.Size(160, 17);
 
            this.checkBoxUseRouteCache.TabIndex = 2;
 
            this.checkBoxUseRouteCache.Text = "cache routing/geocodig/etc";
 
            this.checkBoxUseRouteCache.UseVisualStyleBackColor = true;
 
            // 
 
            // btnCacheExport
 
            // 
 
            this.btnCacheExport.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.btnCacheExport.Location = new System.Drawing.Point(18, 45);
 
            this.btnCacheExport.Name = "btnCacheExport";
 
            this.btnCacheExport.Size = new System.Drawing.Size(220, 20);
 
            this.btnCacheExport.TabIndex = 4;
 
            this.btnCacheExport.Text = "Export";
 
            this.btnCacheExport.UseVisualStyleBackColor = true;
 
            this.btnCacheExport.Click += new System.EventHandler(this.btnCacheExport_Click);
 
            // 
 
            // btnCachePrefetch
 
            // 
 
            this.btnCachePrefetch.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.btnCachePrefetch.Location = new System.Drawing.Point(18, 71);
 
            this.btnCachePrefetch.Name = "btnCachePrefetch";
 
            this.btnCachePrefetch.Size = new System.Drawing.Size(220, 20);
 
            this.btnCachePrefetch.TabIndex = 38;
 
            this.btnCachePrefetch.Text = "Prefetch selected area";
 
            this.btnCachePrefetch.UseVisualStyleBackColor = true;
 
            this.btnCachePrefetch.Click += new System.EventHandler(this.btnCachePrefetch_Click);
 
            // 
 
            // label10
 
            // 
 
            this.label10.AutoSize = true;
 
            this.label10.Location = new System.Drawing.Point(18, 159);
 
            this.label10.Name = "label10";
 
            this.label10.Size = new System.Drawing.Size(111, 13);
 
            this.label10.TabIndex = 40;
 
            this.label10.Text = "memory cache usage:";
 
            // 
 
            // btnCacheClear
 
            // 
 
            this.btnCacheClear.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.btnCacheClear.Location = new System.Drawing.Point(18, 97);
 
            this.btnCacheClear.Name = "btnCacheClear";
 
            this.btnCacheClear.Size = new System.Drawing.Size(220, 20);
 
            this.btnCacheClear.TabIndex = 43;
 
            this.btnCacheClear.Text = "Clear tiles in disk cache";
 
            this.btnCacheClear.UseVisualStyleBackColor = true;
 
            this.btnCacheClear.Click += new System.EventHandler(this.btnCacheClear_Click);
 
            // 
 
            // label13
 
            // 
 
            this.label13.AutoSize = true;
 
            this.label13.Location = new System.Drawing.Point(18, 285);
 
            this.label13.Name = "label13";
 
            this.label13.Size = new System.Drawing.Size(93, 13);
 
            this.label13.TabIndex = 44;
 
            this.label13.Text = "disk cache status:";
 
            // 
 
            // label14
 
            // 
 
            this.label14.AutoSize = true;
 
            this.label14.Location = new System.Drawing.Point(18, 222);
 
            this.label14.Name = "label14";
 
            this.label14.Size = new System.Drawing.Size(83, 13);
 
            this.label14.TabIndex = 47;
 
            this.label14.Text = "disk cache size:";
 
            // 
 
            // btnCacheLocationOpen
 
            // 
 
            this.btnCacheLocationOpen.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.btnCacheLocationOpen.Location = new System.Drawing.Point(17, 122);
 
            this.btnCacheLocationOpen.Margin = new System.Windows.Forms.Padding(2);
 
            this.btnCacheLocationOpen.Name = "btnCacheLocationOpen";
 
            this.btnCacheLocationOpen.Size = new System.Drawing.Size(222, 19);
 
            this.btnCacheLocationOpen.TabIndex = 50;
 
            this.btnCacheLocationOpen.Text = "Open cache location";
 
            this.btnCacheLocationOpen.UseVisualStyleBackColor = true;
 
            this.btnCacheLocationOpen.Click += new System.EventHandler(this.btnCacheLocationOpen_Click);
 
            // 
 
            // tabControl
 
            // 
 
            this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
 
            | System.Windows.Forms.AnchorStyles.Left) 
 
            | System.Windows.Forms.AnchorStyles.Right)));
 
            this.tabControl.Controls.Add(this.tabMap);
 
            this.tabControl.Controls.Add(this.tabGraphs);
 
            this.tabControl.Controls.Add(this.tabData);
 
            this.tabControl.Location = new System.Drawing.Point(0, 0);
 
            this.tabControl.Name = "tabControl";
 
            this.tabControl.SelectedIndex = 0;
 
            this.tabControl.Size = new System.Drawing.Size(871, 716);
 
            this.tabControl.TabIndex = 45;
 
            // 
 
            // tabGraphs
 
            // 
 
            this.tabGraphs.Controls.Add(this.pnlDataListDisplay);
 
            this.tabGraphs.Controls.Add(this.ctnParentChartHolder);
 
            this.tabGraphs.Location = new System.Drawing.Point(4, 22);
 
            this.tabGraphs.Name = "tabGraphs";
 
            this.tabGraphs.Padding = new System.Windows.Forms.Padding(3);
 
            this.tabGraphs.Size = new System.Drawing.Size(863, 690);
 
            this.tabGraphs.TabIndex = 2;
 
            this.tabGraphs.Text = "Graphs";
 
            this.tabGraphs.UseVisualStyleBackColor = true;
 
            // 
 
            // pnlDataListDisplay
 
            // 
 
            this.pnlDataListDisplay.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
 
            | System.Windows.Forms.AnchorStyles.Right)));
 
            this.pnlDataListDisplay.Controls.Add(this.tboxChartData);
 
            this.pnlDataListDisplay.Controls.Add(this.lblChartData);
 
            this.pnlDataListDisplay.Controls.Add(this.tboxCurrent);
 
            this.pnlDataListDisplay.Controls.Add(this.lblCurrent);
 
            this.pnlDataListDisplay.Controls.Add(this.tboxMin);
 
            this.pnlDataListDisplay.Controls.Add(this.lblAverage);
 
            this.pnlDataListDisplay.Controls.Add(this.tboxMax);
 
            this.pnlDataListDisplay.Controls.Add(this.lblMax);
 
            this.pnlDataListDisplay.Controls.Add(this.tboxAverage);
 
            this.pnlDataListDisplay.Controls.Add(this.lblMin);
 
            this.pnlDataListDisplay.Location = new System.Drawing.Point(6, 6);
 
            this.pnlDataListDisplay.Name = "pnlDataListDisplay";
 
            this.pnlDataListDisplay.Size = new System.Drawing.Size(851, 26);
 
            this.pnlDataListDisplay.TabIndex = 29;
 
            // 
 
            // tboxChartData
 
            // 
 
            this.tboxChartData.Enabled = false;
 
            this.tboxChartData.Location = new System.Drawing.Point(85, 3);
 
            this.tboxChartData.Name = "tboxChartData";
 
            this.tboxChartData.Size = new System.Drawing.Size(100, 20);
 
            this.tboxChartData.TabIndex = 29;
 
            // 
 
            // lblChartData
 
            // 
 
            this.lblChartData.AutoSize = true;
 
            this.lblChartData.Location = new System.Drawing.Point(3, 6);
 
            this.lblChartData.Name = "lblChartData";
 
            this.lblChartData.Size = new System.Drawing.Size(76, 13);
 
            this.lblChartData.TabIndex = 28;
 
            this.lblChartData.Text = "Data for Chart:";
 
            // 
 
            // tboxCurrent
 
            // 
 
            this.tboxCurrent.Enabled = false;
 
            this.tboxCurrent.Location = new System.Drawing.Point(241, 3);
 
            this.tboxCurrent.Name = "tboxCurrent";
 
            this.tboxCurrent.Size = new System.Drawing.Size(100, 20);
 
            this.tboxCurrent.TabIndex = 24;
 
            // 
 
            // lblCurrent
 
            // 
 
            this.lblCurrent.AutoSize = true;
 
            this.lblCurrent.Location = new System.Drawing.Point(191, 6);
 
            this.lblCurrent.Name = "lblCurrent";
 
            this.lblCurrent.Size = new System.Drawing.Size(44, 13);
 
            this.lblCurrent.TabIndex = 20;
 
            this.lblCurrent.Text = "Current:";
 
            // 
 
            // tboxMin
 
            // 
 
            this.tboxMin.BackColor = System.Drawing.SystemColors.Window;
 
            this.tboxMin.Enabled = false;
 
            this.tboxMin.ForeColor = System.Drawing.SystemColors.WindowText;
 
            this.tboxMin.Location = new System.Drawing.Point(684, 3);
 
            this.tboxMin.Name = "tboxMin";
 
            this.tboxMin.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMin.TabIndex = 27;
 
            // 
 
            // lblAverage
 
            // 
 
            this.lblAverage.AutoSize = true;
 
            this.lblAverage.Location = new System.Drawing.Point(347, 6);
 
            this.lblAverage.Name = "lblAverage";
 
            this.lblAverage.Size = new System.Drawing.Size(50, 13);
 
            this.lblAverage.TabIndex = 21;
 
            this.lblAverage.Text = "Average:";
 
            // 
 
            // tboxMax
 
            // 
 
            this.tboxMax.Enabled = false;
 
            this.tboxMax.Location = new System.Drawing.Point(545, 3);
 
            this.tboxMax.Name = "tboxMax";
 
            this.tboxMax.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMax.TabIndex = 26;
 
            // 
 
            // lblMax
 
            // 
 
            this.lblMax.AutoSize = true;
 
            this.lblMax.Location = new System.Drawing.Point(509, 6);
 
            this.lblMax.Name = "lblMax";
 
            this.lblMax.Size = new System.Drawing.Size(30, 13);
 
            this.lblMax.TabIndex = 22;
 
            this.lblMax.Text = "Max:";
 
            // 
 
            // tboxAverage
 
            // 
 
            this.tboxAverage.Enabled = false;
 
            this.tboxAverage.Location = new System.Drawing.Point(403, 3);
 
            this.tboxAverage.Name = "tboxAverage";
 
            this.tboxAverage.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAverage.TabIndex = 25;
 
            // 
 
            // lblMin
 
            // 
 
            this.lblMin.AutoSize = true;
 
            this.lblMin.Location = new System.Drawing.Point(651, 6);
 
            this.lblMin.Name = "lblMin";
 
            this.lblMin.Size = new System.Drawing.Size(27, 13);
 
            this.lblMin.TabIndex = 23;
 
            this.lblMin.Text = "Min:";
 
            // 
 
            // ctnParentChartHolder
 
            // 
 
            this.ctnParentChartHolder.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
 
            | System.Windows.Forms.AnchorStyles.Left) 
 
            | System.Windows.Forms.AnchorStyles.Right)));
 
            this.ctnParentChartHolder.Location = new System.Drawing.Point(6, 38);
 
            this.ctnParentChartHolder.Name = "ctnParentChartHolder";
 
            this.ctnParentChartHolder.Orientation = System.Windows.Forms.Orientation.Horizontal;
 
            // 
 
            // ctnParentChartHolder.Panel1
 
            // 
 
            this.ctnParentChartHolder.Panel1.Controls.Add(this.ctnTopChartHolder);
 
            // 
 
            // ctnParentChartHolder.Panel2
 
            // 
 
            this.ctnParentChartHolder.Panel2.Controls.Add(this.ctnBottomChartHolder);
 
            this.ctnParentChartHolder.Size = new System.Drawing.Size(851, 646);
 
            this.ctnParentChartHolder.SplitterDistance = 288;
 
            this.ctnParentChartHolder.TabIndex = 28;
 
            // 
 
            // ctnTopChartHolder
 
            // 
 
            this.ctnTopChartHolder.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
 
            this.ctnTopChartHolder.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.ctnTopChartHolder.Location = new System.Drawing.Point(0, 0);
 
            this.ctnTopChartHolder.Name = "ctnTopChartHolder";
 
            // 
 
            // ctnTopChartHolder.Panel1
 
            // 
 
            this.ctnTopChartHolder.Panel1.Controls.Add(this.lblTopLeftChartTitle);
 
            this.ctnTopChartHolder.Panel1.Controls.Add(this.chrtTopLeft);
 
            // 
 
            // ctnTopChartHolder.Panel2
 
            // 
 
            this.ctnTopChartHolder.Panel2.Controls.Add(this.lblTopRightChartTitle);
 
            this.ctnTopChartHolder.Panel2.Controls.Add(this.chrtTopRight);
 
            this.ctnTopChartHolder.Size = new System.Drawing.Size(851, 288);
 
            this.ctnTopChartHolder.SplitterDistance = 408;
 
            this.ctnTopChartHolder.TabIndex = 0;
 
            // 
 
            // lblTopLeftChartTitle
 
            // 
 
            this.lblTopLeftChartTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
 
            this.lblTopLeftChartTitle.AutoSize = true;
 
            this.lblTopLeftChartTitle.Location = new System.Drawing.Point(0, 273);
 
            this.lblTopLeftChartTitle.Name = "lblTopLeftChartTitle";
 
            this.lblTopLeftChartTitle.Size = new System.Drawing.Size(42, 13);
 
            this.lblTopLeftChartTitle.TabIndex = 2;
 
            this.lblTopLeftChartTitle.Text = "Altitude";
 
            // 
 
            // chrtTopLeft
 
            // 
 
            this.chrtTopLeft.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.chrtTopLeft.Location = new System.Drawing.Point(0, 0);
 
            this.chrtTopLeft.Name = "chrtTopLeft";
 
            this.chrtTopLeft.Size = new System.Drawing.Size(406, 286);
 
            this.chrtTopLeft.TabIndex = 1;
 
            this.chrtTopLeft.Text = "chart4";
 
            this.chrtTopLeft.Click += new System.EventHandler(this.chrtTopLeft_Click);
 
            // 
 
            // lblTopRightChartTitle
 
            // 
 
            this.lblTopRightChartTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
 
            this.lblTopRightChartTitle.AutoSize = true;
 
            this.lblTopRightChartTitle.Location = new System.Drawing.Point(0, 273);
 
            this.lblTopRightChartTitle.Name = "lblTopRightChartTitle";
 
            this.lblTopRightChartTitle.Size = new System.Drawing.Size(47, 13);
 
            this.lblTopRightChartTitle.TabIndex = 1;
 
            this.lblTopRightChartTitle.Text = "Humidity";
 
            // 
 
            // chrtTopRight
 
            // 
 
            this.chrtTopRight.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.chrtTopRight.Location = new System.Drawing.Point(0, 0);
 
            this.chrtTopRight.Name = "chrtTopRight";
 
            this.chrtTopRight.Size = new System.Drawing.Size(437, 286);
 
            this.chrtTopRight.TabIndex = 0;
 
            this.chrtTopRight.Text = "chart4";
 
            this.chrtTopRight.Click += new System.EventHandler(this.chrtTopRight_Click);
 
            // 
 
            // ctnBottomChartHolder
 
            // 
 
            this.ctnBottomChartHolder.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
 
            | System.Windows.Forms.AnchorStyles.Left) 
 
            | System.Windows.Forms.AnchorStyles.Right)));
 
            this.ctnBottomChartHolder.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
 
            this.ctnBottomChartHolder.Location = new System.Drawing.Point(3, 3);
 
            this.ctnBottomChartHolder.Name = "ctnBottomChartHolder";
 
            // 
 
            // ctnBottomChartHolder.Panel1
 
            // 
 
            this.ctnBottomChartHolder.Panel1.Controls.Add(this.lblBottomLeftChartTitle);
 
            this.ctnBottomChartHolder.Panel1.Controls.Add(this.chrtBottomLeft);
 
            // 
 
            // ctnBottomChartHolder.Panel2
 
            // 
 
            this.ctnBottomChartHolder.Panel2.Controls.Add(this.lblBottomRightChartTitle);
 
            this.ctnBottomChartHolder.Panel2.Controls.Add(this.chrtBottomRight);
 
            this.ctnBottomChartHolder.Size = new System.Drawing.Size(845, 348);
 
            this.ctnBottomChartHolder.SplitterDistance = 407;
 
            this.ctnBottomChartHolder.TabIndex = 0;
 
            // 
 
            // lblBottomLeftChartTitle
 
            // 
 
            this.lblBottomLeftChartTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
 
            this.lblBottomLeftChartTitle.AutoSize = true;
 
            this.lblBottomLeftChartTitle.Location = new System.Drawing.Point(0, 333);
 
            this.lblBottomLeftChartTitle.Name = "lblBottomLeftChartTitle";
 
            this.lblBottomLeftChartTitle.Size = new System.Drawing.Size(48, 13);
 
            this.lblBottomLeftChartTitle.TabIndex = 1;
 
            this.lblBottomLeftChartTitle.Text = "Pressure";
 
            // 
 
            // chrtBottomLeft
 
            // 
 
            this.chrtBottomLeft.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.chrtBottomLeft.Location = new System.Drawing.Point(0, 0);
 
            this.chrtBottomLeft.Name = "chrtBottomLeft";
 
            this.chrtBottomLeft.Size = new System.Drawing.Size(405, 346);
 
            this.chrtBottomLeft.TabIndex = 0;
 
            this.chrtBottomLeft.Text = "chart2";
 
            this.chrtBottomLeft.Click += new System.EventHandler(this.chrtBottomLeft_Click);
 
            // 
 
            // lblBottomRightChartTitle
 
            // 
 
            this.lblBottomRightChartTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
 
            this.lblBottomRightChartTitle.AutoSize = true;
 
            this.lblBottomRightChartTitle.Location = new System.Drawing.Point(0, 333);
 
            this.lblBottomRightChartTitle.Name = "lblBottomRightChartTitle";
 
            this.lblBottomRightChartTitle.Size = new System.Drawing.Size(44, 13);
 
            this.lblBottomRightChartTitle.TabIndex = 2;
 
            this.lblBottomRightChartTitle.Text = "Velocity";
 
            // 
 
            // chrtBottomRight
 
            // 
 
            this.chrtBottomRight.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.chrtBottomRight.Location = new System.Drawing.Point(0, 0);
 
            this.chrtBottomRight.Name = "chrtBottomRight";
 
            this.chrtBottomRight.Size = new System.Drawing.Size(432, 346);
 
            this.chrtBottomRight.TabIndex = 1;
 
            this.chrtBottomRight.Text = "chart2";
 
            this.chrtBottomRight.Click += new System.EventHandler(this.chrtBottomRight_Click);
 
            // 
 
            // tabData
 
            // 
 
            this.tabData.Controls.Add(this.gboxSlaveData);
 
            this.tabData.Controls.Add(this.gboxMasterData);
 
            this.tabData.Location = new System.Drawing.Point(4, 22);
 
            this.tabData.Name = "tabData";
 
            this.tabData.Padding = new System.Windows.Forms.Padding(10);
 
            this.tabData.Size = new System.Drawing.Size(863, 690);
 
            this.tabData.TabIndex = 3;
 
            this.tabData.Text = "Data";
 
            this.tabData.UseVisualStyleBackColor = true;
 
            // 
 
            // gboxSlaveData
 
            // 
 
            this.gboxSlaveData.Controls.Add(this.tboxAtmoLight);
 
            this.gboxSlaveData.Controls.Add(this.label31);
 
            this.gboxSlaveData.Controls.Add(this.tboxCameraBatteryLevel);
 
            this.gboxSlaveData.Controls.Add(this.label26);
 
            this.gboxSlaveData.Controls.Add(this.tboxCameraBoardTemp);
 
            this.gboxSlaveData.Controls.Add(this.label27);
 
            this.gboxSlaveData.Controls.Add(this.label28);
 
            this.gboxSlaveData.Controls.Add(this.tboxGeigerRads);
 
            this.gboxSlaveData.Controls.Add(this.label25);
 
            this.gboxSlaveData.Controls.Add(this.tboxGeigerBatteryLevel);
 
            this.gboxSlaveData.Controls.Add(this.label24);
 
            this.gboxSlaveData.Controls.Add(this.tboxGeigerBoardTemp);
 
            this.gboxSlaveData.Controls.Add(this.label23);
 
            this.gboxSlaveData.Controls.Add(this.label22);
 
            this.gboxSlaveData.Controls.Add(this.tboxAtmoAltitude);
 
            this.gboxSlaveData.Controls.Add(this.label21);
 
            this.gboxSlaveData.Controls.Add(this.tboxAtmoAirTemp);
 
            this.gboxSlaveData.Controls.Add(this.label19);
 
            this.gboxSlaveData.Controls.Add(this.tboxAtmoHumidity);
 
            this.gboxSlaveData.Controls.Add(this.label18);
 
            this.gboxSlaveData.Controls.Add(this.tboxAtmoPressure);
 
            this.gboxSlaveData.Controls.Add(this.label17);
 
            this.gboxSlaveData.Controls.Add(this.tboxAtmoBatteryLevel);
 
            this.gboxSlaveData.Controls.Add(this.label15);
 
            this.gboxSlaveData.Controls.Add(this.tboxAtmoBoardTemp);
 
            this.gboxSlaveData.Controls.Add(this.label8);
 
            this.gboxSlaveData.Controls.Add(this.label20);
 
            this.gboxSlaveData.Location = new System.Drawing.Point(259, 13);
 
            this.gboxSlaveData.Name = "gboxSlaveData";
 
            this.gboxSlaveData.Padding = new System.Windows.Forms.Padding(10);
 
            this.gboxSlaveData.Size = new System.Drawing.Size(297, 438);
 
            this.gboxSlaveData.TabIndex = 1;
 
            this.gboxSlaveData.TabStop = false;
 
            this.gboxSlaveData.Text = "Slave Modules";
 
            // 
 
            // tboxAtmoLight
 
            // 
 
            this.tboxAtmoLight.BackColor = System.Drawing.SystemColors.Control;
 
            this.tboxAtmoLight.Location = new System.Drawing.Point(146, 134);
 
            this.tboxAtmoLight.Name = "tboxAtmoLight";
 
            this.tboxAtmoLight.ReadOnly = true;
 
            this.tboxAtmoLight.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAtmoLight.TabIndex = 43;
 
            // 
 
            // label31
 
            // 
 
            this.label31.AutoSize = true;
 
            this.label31.Location = new System.Drawing.Point(40, 137);
 
            this.label31.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label31.Name = "label31";
 
            this.label31.Size = new System.Drawing.Size(71, 13);
 
            this.label31.TabIndex = 42;
 
            this.label31.Text = "Ambient Light";
 
            // 
 
            // tboxCameraBatteryLevel
 
            // 
 
            this.tboxCameraBatteryLevel.Location = new System.Drawing.Point(146, 403);
 
            this.tboxCameraBatteryLevel.Name = "tboxCameraBatteryLevel";
 
            this.tboxCameraBatteryLevel.ReadOnly = true;
 
            this.tboxCameraBatteryLevel.Size = new System.Drawing.Size(100, 20);
 
            this.tboxCameraBatteryLevel.TabIndex = 41;
 
            // 
 
            // label26
 
            // 
 
            this.label26.AutoSize = true;
 
            this.label26.Location = new System.Drawing.Point(40, 406);
 
            this.label26.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label26.Name = "label26";
 
            this.label26.Size = new System.Drawing.Size(69, 13);
 
            this.label26.TabIndex = 40;
 
            this.label26.Text = "Battery Level";
 
            // 
 
            // tboxCameraBoardTemp
 
            // 
 
            this.tboxCameraBoardTemp.Location = new System.Drawing.Point(146, 376);
 
            this.tboxCameraBoardTemp.Name = "tboxCameraBoardTemp";
 
            this.tboxCameraBoardTemp.ReadOnly = true;
 
            this.tboxCameraBoardTemp.Size = new System.Drawing.Size(100, 20);
 
            this.tboxCameraBoardTemp.TabIndex = 39;
 
            // 
 
            // label27
 
            // 
 
            this.label27.AutoSize = true;
 
            this.label27.Location = new System.Drawing.Point(40, 379);
 
            this.label27.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label27.Name = "label27";
 
            this.label27.Size = new System.Drawing.Size(98, 13);
 
            this.label27.TabIndex = 38;
 
            this.label27.Text = "Board Temperature";
 
            // 
 
            // label28
 
            // 
 
            this.label28.AutoSize = true;
 
            this.label28.Location = new System.Drawing.Point(15, 352);
 
            this.label28.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label28.Name = "label28";
 
            this.label28.Size = new System.Drawing.Size(81, 13);
 
            this.label28.TabIndex = 37;
 
            this.label28.Text = "Camera Module";
 
            // 
 
            // tboxGeigerRads
 
            // 
 
            this.tboxGeigerRads.Location = new System.Drawing.Point(146, 322);
 
            this.tboxGeigerRads.Name = "tboxGeigerRads";
 
            this.tboxGeigerRads.ReadOnly = true;
 
            this.tboxGeigerRads.Size = new System.Drawing.Size(100, 20);
 
            this.tboxGeigerRads.TabIndex = 36;
 
            // 
 
            // label25
 
            // 
 
            this.label25.AutoSize = true;
 
            this.label25.Location = new System.Drawing.Point(40, 325);
 
            this.label25.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label25.Name = "label25";
 
            this.label25.Size = new System.Drawing.Size(52, 13);
 
            this.label25.TabIndex = 35;
 
            this.label25.Text = "Radiation";
 
            // 
 
            // tboxGeigerBatteryLevel
 
            // 
 
            this.tboxGeigerBatteryLevel.Location = new System.Drawing.Point(146, 295);
 
            this.tboxGeigerBatteryLevel.Name = "tboxGeigerBatteryLevel";
 
            this.tboxGeigerBatteryLevel.ReadOnly = true;
 
            this.tboxGeigerBatteryLevel.Size = new System.Drawing.Size(100, 20);
 
            this.tboxGeigerBatteryLevel.TabIndex = 34;
 
            // 
 
            // label24
 
            // 
 
            this.label24.AutoSize = true;
 
            this.label24.Location = new System.Drawing.Point(40, 298);
 
            this.label24.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label24.Name = "label24";
 
            this.label24.Size = new System.Drawing.Size(69, 13);
 
            this.label24.TabIndex = 33;
 
            this.label24.Text = "Battery Level";
 
            // 
 
            // tboxGeigerBoardTemp
 
            // 
 
            this.tboxGeigerBoardTemp.Location = new System.Drawing.Point(146, 268);
 
            this.tboxGeigerBoardTemp.Name = "tboxGeigerBoardTemp";
 
            this.tboxGeigerBoardTemp.ReadOnly = true;
 
            this.tboxGeigerBoardTemp.Size = new System.Drawing.Size(100, 20);
 
            this.tboxGeigerBoardTemp.TabIndex = 32;
 
            // 
 
            // label23
 
            // 
 
            this.label23.AutoSize = true;
 
            this.label23.Location = new System.Drawing.Point(40, 271);
 
            this.label23.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label23.Name = "label23";
 
            this.label23.Size = new System.Drawing.Size(98, 13);
 
            this.label23.TabIndex = 31;
 
            this.label23.Text = "Board Temperature";
 
            // 
 
            // label22
 
            // 
 
            this.label22.AutoSize = true;
 
            this.label22.Location = new System.Drawing.Point(15, 244);
 
            this.label22.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label22.Name = "label22";
 
            this.label22.Size = new System.Drawing.Size(76, 13);
 
            this.label22.TabIndex = 30;
 
            this.label22.Text = "Geiger Module";
 
            // 
 
            // tboxAtmoAltitude
 
            // 
 
            this.tboxAtmoAltitude.Location = new System.Drawing.Point(146, 214);
 
            this.tboxAtmoAltitude.Name = "tboxAtmoAltitude";
 
            this.tboxAtmoAltitude.ReadOnly = true;
 
            this.tboxAtmoAltitude.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAtmoAltitude.TabIndex = 29;
 
            // 
 
            // label21
 
            // 
 
            this.label21.AutoSize = true;
 
            this.label21.Location = new System.Drawing.Point(40, 217);
 
            this.label21.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label21.Name = "label21";
 
            this.label21.Size = new System.Drawing.Size(42, 13);
 
            this.label21.TabIndex = 28;
 
            this.label21.Text = "Altitude";
 
            // 
 
            // tboxAtmoAirTemp
 
            // 
 
            this.tboxAtmoAirTemp.Location = new System.Drawing.Point(146, 108);
 
            this.tboxAtmoAirTemp.Name = "tboxAtmoAirTemp";
 
            this.tboxAtmoAirTemp.ReadOnly = true;
 
            this.tboxAtmoAirTemp.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAtmoAirTemp.TabIndex = 27;
 
            // 
 
            // label19
 
            // 
 
            this.label19.AutoSize = true;
 
            this.label19.Location = new System.Drawing.Point(40, 111);
 
            this.label19.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label19.Name = "label19";
 
            this.label19.Size = new System.Drawing.Size(82, 13);
 
            this.label19.TabIndex = 26;
 
            this.label19.Text = "Air Temperature";
 
            // 
 
            // tboxAtmoHumidity
 
            // 
 
            this.tboxAtmoHumidity.BackColor = System.Drawing.SystemColors.Control;
 
            this.tboxAtmoHumidity.Location = new System.Drawing.Point(146, 160);
 
            this.tboxAtmoHumidity.Name = "tboxAtmoHumidity";
 
            this.tboxAtmoHumidity.ReadOnly = true;
 
            this.tboxAtmoHumidity.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAtmoHumidity.TabIndex = 25;
 
            // 
 
            // label18
 
            // 
 
            this.label18.AutoSize = true;
 
            this.label18.Location = new System.Drawing.Point(40, 163);
 
            this.label18.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label18.Name = "label18";
 
            this.label18.Size = new System.Drawing.Size(47, 13);
 
            this.label18.TabIndex = 24;
 
            this.label18.Text = "Humidity";
 
            // 
 
            // tboxAtmoPressure
 
            // 
 
            this.tboxAtmoPressure.Location = new System.Drawing.Point(146, 187);
 
            this.tboxAtmoPressure.Name = "tboxAtmoPressure";
 
            this.tboxAtmoPressure.ReadOnly = true;
 
            this.tboxAtmoPressure.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAtmoPressure.TabIndex = 23;
 
            // 
 
            // label17
 
            // 
 
            this.label17.AutoSize = true;
 
            this.label17.Location = new System.Drawing.Point(40, 190);
 
            this.label17.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label17.Name = "label17";
 
            this.label17.Size = new System.Drawing.Size(48, 13);
 
            this.label17.TabIndex = 22;
 
            this.label17.Text = "Pressure";
 
            // 
 
            // tboxAtmoBatteryLevel
 
            // 
 
            this.tboxAtmoBatteryLevel.Location = new System.Drawing.Point(146, 81);
 
            this.tboxAtmoBatteryLevel.Name = "tboxAtmoBatteryLevel";
 
            this.tboxAtmoBatteryLevel.ReadOnly = true;
 
            this.tboxAtmoBatteryLevel.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAtmoBatteryLevel.TabIndex = 21;
 
            // 
 
            // label15
 
            // 
 
            this.label15.AutoSize = true;
 
            this.label15.Location = new System.Drawing.Point(40, 84);
 
            this.label15.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label15.Name = "label15";
 
            this.label15.Size = new System.Drawing.Size(69, 13);
 
            this.label15.TabIndex = 20;
 
            this.label15.Text = "Battery Level";
 
            // 
 
            // tboxAtmoBoardTemp
 
            // 
 
            this.tboxAtmoBoardTemp.Location = new System.Drawing.Point(146, 54);
 
            this.tboxAtmoBoardTemp.Name = "tboxAtmoBoardTemp";
 
            this.tboxAtmoBoardTemp.ReadOnly = true;
 
            this.tboxAtmoBoardTemp.Size = new System.Drawing.Size(100, 20);
 
            this.tboxAtmoBoardTemp.TabIndex = 19;
 
            // 
 
            // label8
 
            // 
 
            this.label8.AutoSize = true;
 
            this.label8.Location = new System.Drawing.Point(40, 57);
 
            this.label8.Margin = new System.Windows.Forms.Padding(30, 7, 5, 7);
 
            this.label8.Name = "label8";
 
            this.label8.Size = new System.Drawing.Size(98, 13);
 
            this.label8.TabIndex = 18;
 
            this.label8.Text = "Board Temperature";
 
            // 
 
            // label20
 
            // 
 
            this.label20.AutoSize = true;
 
            this.label20.Location = new System.Drawing.Point(15, 30);
 
            this.label20.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label20.Name = "label20";
 
            this.label20.Size = new System.Drawing.Size(101, 13);
 
            this.label20.TabIndex = 18;
 
            this.label20.Text = "Atmosphere Module";
 
            // 
 
            // gboxMasterData
 
            // 
 
            this.gboxMasterData.Controls.Add(this.tboxMasterHDOP);
 
            this.gboxMasterData.Controls.Add(this.label30);
 
            this.gboxMasterData.Controls.Add(this.tboxMasterSatellites);
 
            this.gboxMasterData.Controls.Add(this.label29);
 
            this.gboxMasterData.Controls.Add(this.textBox6);
 
            this.gboxMasterData.Controls.Add(this.label7);
 
            this.gboxMasterData.Controls.Add(this.label6);
 
            this.gboxMasterData.Controls.Add(this.tboxMasterVelocity);
 
            this.gboxMasterData.Controls.Add(this.label3);
 
            this.gboxMasterData.Controls.Add(this.tboxMasterLongitude);
 
            this.gboxMasterData.Controls.Add(this.label2);
 
            this.gboxMasterData.Controls.Add(this.tboxMasterLatitude);
 
            this.gboxMasterData.Controls.Add(this.label16);
 
            this.gboxMasterData.Controls.Add(this.tboxMasterBatteryLevel);
 
            this.gboxMasterData.Controls.Add(this.tboxMasterBoardTemp);
 
            this.gboxMasterData.Controls.Add(this.label1);
 
            this.gboxMasterData.Location = new System.Drawing.Point(13, 13);
 
            this.gboxMasterData.Name = "gboxMasterData";
 
            this.gboxMasterData.Padding = new System.Windows.Forms.Padding(10);
 
            this.gboxMasterData.Size = new System.Drawing.Size(240, 329);
 
            this.gboxMasterData.TabIndex = 0;
 
            this.gboxMasterData.TabStop = false;
 
            this.gboxMasterData.Text = "Master Module";
 
            // 
 
            // tboxMasterHDOP
 
            // 
 
            this.tboxMasterHDOP.Location = new System.Drawing.Point(120, 214);
 
            this.tboxMasterHDOP.Name = "tboxMasterHDOP";
 
            this.tboxMasterHDOP.ReadOnly = true;
 
            this.tboxMasterHDOP.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMasterHDOP.TabIndex = 21;
 
            // 
 
            // label30
 
            // 
 
            this.label30.AutoSize = true;
 
            this.label30.Location = new System.Drawing.Point(14, 217);
 
            this.label30.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label30.Name = "label30";
 
            this.label30.Size = new System.Drawing.Size(38, 13);
 
            this.label30.TabIndex = 20;
 
            this.label30.Text = "HDOP";
 
            // 
 
            // tboxMasterSatellites
 
            // 
 
            this.tboxMasterSatellites.Location = new System.Drawing.Point(121, 188);
 
            this.tboxMasterSatellites.Name = "tboxMasterSatellites";
 
            this.tboxMasterSatellites.ReadOnly = true;
 
            this.tboxMasterSatellites.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMasterSatellites.TabIndex = 19;
 
            // 
 
            // label29
 
            // 
 
            this.label29.AutoSize = true;
 
            this.label29.Location = new System.Drawing.Point(15, 191);
 
            this.label29.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label29.Name = "label29";
 
            this.label29.Size = new System.Drawing.Size(86, 13);
 
            this.label29.TabIndex = 18;
 
            this.label29.Text = "Satellites in View";
 
            // 
 
            // textBox6
 
            // 
 
            this.textBox6.Location = new System.Drawing.Point(120, 162);
 
            this.textBox6.Name = "textBox6";
 
            this.textBox6.ReadOnly = true;
 
            this.textBox6.Size = new System.Drawing.Size(100, 20);
 
            this.textBox6.TabIndex = 17;
 
            // 
 
            // label7
 
            // 
 
            this.label7.AutoSize = true;
 
            this.label7.Location = new System.Drawing.Point(14, 165);
 
            this.label7.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label7.Name = "label7";
 
            this.label7.Size = new System.Drawing.Size(67, 13);
 
            this.label7.TabIndex = 16;
 
            this.label7.Text = "GPS Altitude";
 
            // 
 
            // label6
 
            // 
 
            this.label6.AutoSize = true;
 
            this.label6.Location = new System.Drawing.Point(15, 138);
 
            this.label6.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label6.Name = "label6";
 
            this.label6.Size = new System.Drawing.Size(44, 13);
 
            this.label6.TabIndex = 15;
 
            this.label6.Text = "Velocity";
 
            // 
 
            // tboxMasterVelocity
 
            // 
 
            this.tboxMasterVelocity.BackColor = System.Drawing.SystemColors.Control;
 
            this.tboxMasterVelocity.Location = new System.Drawing.Point(121, 135);
 
            this.tboxMasterVelocity.Name = "tboxMasterVelocity";
 
            this.tboxMasterVelocity.ReadOnly = true;
 
            this.tboxMasterVelocity.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMasterVelocity.TabIndex = 14;
 
            // 
 
            // label3
 
            // 
 
            this.label3.AutoSize = true;
 
            this.label3.Location = new System.Drawing.Point(14, 111);
 
            this.label3.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label3.Name = "label3";
 
            this.label3.Size = new System.Drawing.Size(54, 13);
 
            this.label3.TabIndex = 13;
 
            this.label3.Text = "Longitude";
 
            // 
 
            // tboxMasterLongitude
 
            // 
 
            this.tboxMasterLongitude.Location = new System.Drawing.Point(120, 108);
 
            this.tboxMasterLongitude.Name = "tboxMasterLongitude";
 
            this.tboxMasterLongitude.ReadOnly = true;
 
            this.tboxMasterLongitude.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMasterLongitude.TabIndex = 12;
 
            // 
 
            // label2
 
            // 
 
            this.label2.AutoSize = true;
 
            this.label2.Location = new System.Drawing.Point(15, 84);
 
            this.label2.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label2.Name = "label2";
 
            this.label2.Size = new System.Drawing.Size(45, 13);
 
            this.label2.TabIndex = 11;
 
            this.label2.Text = "Latitude";
 
            // 
 
            // tboxMasterLatitude
 
            // 
 
            this.tboxMasterLatitude.Location = new System.Drawing.Point(121, 81);
 
            this.tboxMasterLatitude.Name = "tboxMasterLatitude";
 
            this.tboxMasterLatitude.ReadOnly = true;
 
            this.tboxMasterLatitude.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMasterLatitude.TabIndex = 10;
 
            // 
 
            // label16
 
            // 
 
            this.label16.AutoSize = true;
 
            this.label16.Location = new System.Drawing.Point(14, 57);
 
            this.label16.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label16.Name = "label16";
 
            this.label16.Size = new System.Drawing.Size(69, 13);
 
            this.label16.TabIndex = 9;
 
            this.label16.Text = "Battery Level";
 
            // 
 
            // tboxMasterBatteryLevel
 
            // 
 
            this.tboxMasterBatteryLevel.Location = new System.Drawing.Point(120, 54);
 
            this.tboxMasterBatteryLevel.Name = "tboxMasterBatteryLevel";
 
            this.tboxMasterBatteryLevel.ReadOnly = true;
 
            this.tboxMasterBatteryLevel.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMasterBatteryLevel.TabIndex = 8;
 
            // 
 
            // tboxMasterBoardTemp
 
            // 
 
            this.tboxMasterBoardTemp.Location = new System.Drawing.Point(120, 24);
 
            this.tboxMasterBoardTemp.Name = "tboxMasterBoardTemp";
 
            this.tboxMasterBoardTemp.ReadOnly = true;
 
            this.tboxMasterBoardTemp.Size = new System.Drawing.Size(100, 20);
 
            this.tboxMasterBoardTemp.TabIndex = 1;
 
            // 
 
            // label1
 
            // 
 
            this.label1.AutoSize = true;
 
            this.label1.Location = new System.Drawing.Point(15, 30);
 
            this.label1.Margin = new System.Windows.Forms.Padding(5, 7, 5, 7);
 
            this.label1.Name = "label1";
 
            this.label1.Size = new System.Drawing.Size(98, 13);
 
            this.label1.TabIndex = 0;
 
            this.label1.Text = "Board Temperature";
 
            // 
 
            // tboxMessageBox
 
            // 
 
            this.tboxMessageBox.AcceptsReturn = true;
 
            this.tboxMessageBox.BackColor = System.Drawing.SystemColors.ScrollBar;
 
            this.tboxMessageBox.Dock = System.Windows.Forms.DockStyle.Fill;
 
            this.tboxMessageBox.Location = new System.Drawing.Point(0, 0);
 
            this.tboxMessageBox.Multiline = true;
 
            this.tboxMessageBox.Name = "tboxMessageBox";
 
            this.tboxMessageBox.ReadOnly = true;
 
            this.tboxMessageBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
 
            this.tboxMessageBox.Size = new System.Drawing.Size(871, 120);
 
            this.tboxMessageBox.TabIndex = 30;
 
            // 
 
            // splitContainer1
 
            // 
 
            this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
 
            | System.Windows.Forms.AnchorStyles.Left) 
 
            | System.Windows.Forms.AnchorStyles.Right)));
 
            this.splitContainer1.Location = new System.Drawing.Point(12, 12);
 
            this.splitContainer1.Name = "splitContainer1";
 
            this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
 
            // 
 
            // splitContainer1.Panel1
 
            // 
 
            this.splitContainer1.Panel1.Controls.Add(this.tabControl);
 
            // 
 
            // splitContainer1.Panel2
 
            // 
 
            this.splitContainer1.Panel2.Controls.Add(this.tboxMessageBox);
 
            this.splitContainer1.Size = new System.Drawing.Size(871, 839);
 
            this.splitContainer1.SplitterDistance = 715;
 
            this.splitContainer1.TabIndex = 46;
 
            // 
 
            // MainForm
 
            // 
 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
 
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 
            this.BackColor = System.Drawing.Color.AliceBlue;
 
            this.ClientSize = new System.Drawing.Size(895, 863);
 
            this.Controls.Add(this.splitContainer1);
 
            this.KeyPreview = true;
 
            this.MinimumSize = new System.Drawing.Size(554, 105);
 
            this.Name = "MainForm";
 
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
 
            this.Text = "GMap.NET - Great Maps for Windows Forms";
 
            this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
 
            this.Load += new System.EventHandler(this.MainForm_Load);
 
            this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.MainForm_KeyPress);
 
            this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyUp);
 
            this.tabMap.ResumeLayout(false);
 
            this.panel4.ResumeLayout(false);
 
            this.panel2.ResumeLayout(false);
 
            this.panelMenu.ResumeLayout(false);
 
            this.xPanderPanelList1.ResumeLayout(false);
 
            this.xPanderPanelMain.ResumeLayout(false);
 
            this.tableLayoutPanel4.ResumeLayout(false);
 
            this.tableLayoutPanel5.ResumeLayout(false);
 
            this.tableLayoutPanel5.PerformLayout();
 
            this.gboxRemove.ResumeLayout(false);
 
            this.gboxRemove.PerformLayout();
 
            this.gboxMapItems.ResumeLayout(false);
 
            this.gboxGmap.ResumeLayout(false);
 
            this.gboxGmap.PerformLayout();
 
            this.gboxCoordinates.ResumeLayout(false);
 
            this.gboxCoordinates.PerformLayout();
 
            this.tableLayoutPanel6.ResumeLayout(false);
 
            this.tableLayoutPanel6.PerformLayout();
 
            ((System.ComponentModel.ISupportInitialize)(this.trackBarZoomLevel)).EndInit();
 
            this.xPanderPanelInfo.ResumeLayout(false);
 
            this.tableLayoutPanel2.ResumeLayout(false);
 
            this.tableLayoutPanel2.PerformLayout();
 
            this.xPanderPanelCache.ResumeLayout(false);
 
            this.tableLayoutPanel1.ResumeLayout(false);
 
            this.tableLayoutPanel1.PerformLayout();
 
            this.tabControl.ResumeLayout(false);
 
            this.tabGraphs.ResumeLayout(false);
 
            this.pnlDataListDisplay.ResumeLayout(false);
 
            this.pnlDataListDisplay.PerformLayout();
 
            this.ctnParentChartHolder.Panel1.ResumeLayout(false);
 
            this.ctnParentChartHolder.Panel2.ResumeLayout(false);
 
            this.ctnParentChartHolder.ResumeLayout(false);
 
            this.ctnTopChartHolder.Panel1.ResumeLayout(false);
 
            this.ctnTopChartHolder.Panel1.PerformLayout();
 
            this.ctnTopChartHolder.Panel2.ResumeLayout(false);
 
            this.ctnTopChartHolder.Panel2.PerformLayout();
 
            this.ctnTopChartHolder.ResumeLayout(false);
 
            ((System.ComponentModel.ISupportInitialize)(this.chrtTopLeft)).EndInit();
 
            ((System.ComponentModel.ISupportInitialize)(this.chrtTopRight)).EndInit();
 
            this.ctnBottomChartHolder.Panel1.ResumeLayout(false);
 
            this.ctnBottomChartHolder.Panel1.PerformLayout();
 
            this.ctnBottomChartHolder.Panel2.ResumeLayout(false);
 
            this.ctnBottomChartHolder.Panel2.PerformLayout();
 
            this.ctnBottomChartHolder.ResumeLayout(false);
 
            ((System.ComponentModel.ISupportInitialize)(this.chrtBottomLeft)).EndInit();
 
            ((System.ComponentModel.ISupportInitialize)(this.chrtBottomRight)).EndInit();
 
            this.tabData.ResumeLayout(false);
 
            this.gboxSlaveData.ResumeLayout(false);
 
            this.gboxSlaveData.PerformLayout();
 
            this.gboxMasterData.ResumeLayout(false);
 
            this.gboxMasterData.PerformLayout();
 
            this.splitContainer1.Panel1.ResumeLayout(false);
 
            this.splitContainer1.Panel2.ResumeLayout(false);
 
            this.splitContainer1.Panel2.PerformLayout();
 
            this.splitContainer1.ResumeLayout(false);
 
            this.ResumeLayout(false);
 
 
      }
 
 
      #endregion
 
 
      private System.Windows.Forms.TabPage tabMap;
 
      private System.Windows.Forms.Panel panel4;
 
      private System.Windows.Forms.Panel panel2;
 
      internal Map MainMap;
 
      private BSE.Windows.Forms.Splitter splitter1;
 
      private BSE.Windows.Forms.Panel panelMenu;
 
      private BSE.Windows.Forms.XPanderPanelList xPanderPanelList1;
 
      private BSE.Windows.Forms.XPanderPanel xPanderPanelMain;
 
      private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4;
 
      private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5;
 
      private System.Windows.Forms.GroupBox gboxRemove;
 
      private System.Windows.Forms.Button btnZoomCenter;
 
      private System.Windows.Forms.Button btnClearMarkers;
 
      private System.Windows.Forms.Button btnAddMarker;
 
      private System.Windows.Forms.GroupBox gboxMapItems;
 
      private System.Windows.Forms.Button btnSetEnd;
 
      private System.Windows.Forms.Button btnSetStart;
 
      private System.Windows.Forms.Button btnClearRoutes;
 
      private System.Windows.Forms.Button btnAddRoute;
 
      private System.Windows.Forms.GroupBox gboxGmap;
 
      private System.Windows.Forms.Button btnGetStatic;
 
      private System.Windows.Forms.CheckBox xboxGrid;
 
      private System.Windows.Forms.Button btnSaveView;
 
      private System.Windows.Forms.Label lblMode;
 
      private System.Windows.Forms.ComboBox comboBoxMode;
 
      private System.Windows.Forms.CheckBox xboxCanDrag;
 
      private System.Windows.Forms.CheckBox xboxCurrentMarker;
 
      private System.Windows.Forms.Label lblMapType;
 
      private System.Windows.Forms.ComboBox comboBoxMapType;
 
      private System.Windows.Forms.GroupBox gboxCoordinates;
 
      private System.Windows.Forms.Button btnReload;
 
      private System.Windows.Forms.Button btnGoToCoords;
 
      private System.Windows.Forms.Label lblLng;
 
      private System.Windows.Forms.Label lblLat;
 
      private System.Windows.Forms.TextBox textBoxLng;
 
      private System.Windows.Forms.TextBox textBoxLat;
 
      private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6;
 
      private System.Windows.Forms.Button btnZoomIn;
 
      private System.Windows.Forms.TrackBar trackBarZoomLevel;
 
      private System.Windows.Forms.Button btnZoomOut;
 
      private BSE.Windows.Forms.XPanderPanel xPanderPanelInfo;
 
      private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
 
      private System.Windows.Forms.TextBox textBoxZoomCurrent;
 
      private System.Windows.Forms.TextBox textBoxrouteCount;
 
      private System.Windows.Forms.Label label12;
 
      private System.Windows.Forms.Label label9;
 
      private System.Windows.Forms.TextBox textBoxLngCurrent;
 
      private System.Windows.Forms.TextBox textBoxMarkerCount;
 
      private System.Windows.Forms.Label label11;
 
      private System.Windows.Forms.Label label4;
 
      private System.Windows.Forms.TextBox textBoxLatCurrent;
 
      private System.Windows.Forms.Label label5;
 
      private BSE.Windows.Forms.XPanderPanel xPanderPanelCache;
 
      private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
 
      private System.Windows.Forms.TextBox textBoxCacheSize;
 
      private System.Windows.Forms.TextBox textBoxCacheStatus;
 
      private System.Windows.Forms.Button btnCacheImport;
 
      private System.Windows.Forms.TextBox textBoxMemory;
 
      private System.Windows.Forms.CheckBox checkBoxUseRouteCache;
 
      private System.Windows.Forms.Button btnCacheExport;
 
      private System.Windows.Forms.Button btnCachePrefetch;
 
      private System.Windows.Forms.Label label10;
 
      private System.Windows.Forms.Button btnCacheClear;
 
      private System.Windows.Forms.Label label13;
 
      private System.Windows.Forms.Label label14;
 
      private System.Windows.Forms.Button btnCacheLocationOpen;
 
      private System.Windows.Forms.TabControl tabControl;
 
      private System.Windows.Forms.TabPage tabGraphs;
 
      private System.Windows.Forms.Panel pnlDataListDisplay;
 
      private System.Windows.Forms.Button btnTest;
 
      internal System.Windows.Forms.TextBox tboxChartData;
 
      internal System.Windows.Forms.Label lblChartData;
 
      internal System.Windows.Forms.TextBox tboxCurrent;
 
      internal System.Windows.Forms.Label lblCurrent;
 
      internal System.Windows.Forms.TextBox tboxMin;
 
      internal System.Windows.Forms.Label lblAverage;
 
      internal System.Windows.Forms.TextBox tboxMax;
 
      internal System.Windows.Forms.Label lblMax;
 
      internal System.Windows.Forms.TextBox tboxAverage;
 
      internal System.Windows.Forms.Label lblMin;
 
      private System.Windows.Forms.SplitContainer ctnParentChartHolder;
 
      private System.Windows.Forms.SplitContainer ctnTopChartHolder;
 
      private System.Windows.Forms.Label lblTopLeftChartTitle;
 
      private System.Windows.Forms.DataVisualization.Charting.Chart chrtTopLeft;
 
      private System.Windows.Forms.Label lblTopRightChartTitle;
 
      private System.Windows.Forms.DataVisualization.Charting.Chart chrtTopRight;
 
      private System.Windows.Forms.SplitContainer ctnBottomChartHolder;
 
      private System.Windows.Forms.Label lblBottomLeftChartTitle;
 
      private System.Windows.Forms.DataVisualization.Charting.Chart chrtBottomLeft;
 
      private System.Windows.Forms.Label lblBottomRightChartTitle;
 
      private System.Windows.Forms.DataVisualization.Charting.Chart chrtBottomRight;
 
      private System.Windows.Forms.TextBox tboxMessageBox;
 
      private System.Windows.Forms.TabPage tabData;
 
      private System.Windows.Forms.GroupBox gboxSlaveData;
 
      private System.Windows.Forms.GroupBox gboxMasterData;
 
      private System.Windows.Forms.TextBox textBox6;
 
      private System.Windows.Forms.Label label7;
 
      private System.Windows.Forms.Label label6;
 
      private System.Windows.Forms.TextBox tboxMasterVelocity;
 
      private System.Windows.Forms.Label label3;
 
      private System.Windows.Forms.TextBox tboxMasterLongitude;
 
      private System.Windows.Forms.Label label2;
 
      private System.Windows.Forms.TextBox tboxMasterLatitude;
 
      private System.Windows.Forms.Label label16;
 
      private System.Windows.Forms.TextBox tboxMasterBatteryLevel;
 
      private System.Windows.Forms.TextBox tboxMasterBoardTemp;
 
      private System.Windows.Forms.Label label1;
 
      private System.Windows.Forms.TextBox tboxCameraBatteryLevel;
 
      private System.Windows.Forms.Label label26;
 
      private System.Windows.Forms.TextBox tboxCameraBoardTemp;
 
      private System.Windows.Forms.Label label27;
 
      private System.Windows.Forms.Label label28;
 
      private System.Windows.Forms.TextBox tboxGeigerRads;
 
      private System.Windows.Forms.Label label25;
 
      private System.Windows.Forms.TextBox tboxGeigerBatteryLevel;
 
      private System.Windows.Forms.Label label24;
 
      private System.Windows.Forms.TextBox tboxGeigerBoardTemp;
 
      private System.Windows.Forms.Label label23;
 
      private System.Windows.Forms.Label label22;
 
      private System.Windows.Forms.TextBox tboxAtmoAltitude;
 
      private System.Windows.Forms.Label label21;
 
      private System.Windows.Forms.TextBox tboxAtmoAirTemp;
 
      private System.Windows.Forms.Label label19;
 
      private System.Windows.Forms.TextBox tboxAtmoHumidity;
 
      private System.Windows.Forms.Label label18;
 
      private System.Windows.Forms.TextBox tboxAtmoPressure;
 
      private System.Windows.Forms.Label label17;
 
      private System.Windows.Forms.TextBox tboxAtmoBatteryLevel;
 
      private System.Windows.Forms.Label label15;
 
      private System.Windows.Forms.TextBox tboxAtmoBoardTemp;
 
      private System.Windows.Forms.Label label8;
 
      private System.Windows.Forms.Label label20;
 
      private System.Windows.Forms.CheckBox cboxCollectData;
 
      private System.Windows.Forms.SplitContainer splitContainer1;
 
      private System.Windows.Forms.TextBox tboxMasterSatellites;
 
      private System.Windows.Forms.Label label29;
 
      private System.Windows.Forms.TextBox tboxMasterHDOP;
 
      private System.Windows.Forms.Label label30;
 
      private System.Windows.Forms.TextBox tboxAtmoLight;
 
      private System.Windows.Forms.Label label31;
 
      private System.Windows.Forms.Button btnClearAll;
 
      private System.Windows.Forms.TextBox tboxAPRSCallsign;
 
      private System.Windows.Forms.Label label32;
 
      private System.Windows.Forms.TextBox tboxCOMPort;
 
      private System.Windows.Forms.Label label33;
 
 
 
   }
 
}
 
Demo.WindowsForms/Forms/MainForm.cs
Show inline comments
 
using System;
 
using System.Collections.Generic;
 
using System.ComponentModel;
 
using System.Diagnostics;
 
using System.Drawing;
 
using System.Drawing.Drawing2D;
 
using System.Globalization;
 
using System.IO;
 
using System.Net;
 
using System.Net.NetworkInformation;
 
using System.Threading;
 
using System.Windows.Forms;
 
using System.Xml;
 
using Demo.WindowsForms.CustomMarkers;
 
using GMap.NET;
 
using GMap.NET.MapProviders;
 
using GMap.NET.WindowsForms;
 
using GMap.NET.WindowsForms.Markers;
 
using GMap.NET.WindowsForms.ToolTips;
 
using System.IO.Ports;
 
using System.Data;
 
using System.Text;
 
 
namespace Demo.WindowsForms
 
{
 
    public partial class MainForm : Form
 
    {
 
        // layers
 
        readonly GMapOverlay top = new GMapOverlay();
 
        internal readonly GMapOverlay objects = new GMapOverlay("objects");
 
        internal readonly GMapOverlay routes = new GMapOverlay("routes");
 
 
        // current marker
 
        GMarkerGoogle currentMarker;
 
 
        // etc
 
        readonly Random rnd = new Random();
 
        readonly DescendingComparer ComparerIpStatus = new DescendingComparer();
 
        GMapMarkerRect CurentRectMarker = null;
 
        string mobileGpsLog = string.Empty;
 
        bool isMouseDown = false;
 
        PointLatLng start;
 
        PointLatLng end;
 
        TimeSpan unixTime;
 
        GMapRoute currentRoute = null;
 
        bool UserAcceptedLicenseOnce = false;
 
 
        public MainForm()
 
        {
 
            InitializeComponent();
 
            unixTime = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0));
 
 
            if (!DesignMode)
 
            {
 
                // add your custom map db provider
 
                //GMap.NET.CacheProviders.MySQLPureImageCache ch = new GMap.NET.CacheProviders.MySQLPureImageCache();
 
                //ch.ConnectionString = @"server=sql2008;User Id=trolis;Persist Security Info=True;database=gmapnetcache;password=trolis;";
 
                //MainMap.Manager.SecondaryCache = ch;
 
 
                // set your proxy here if need
 
                //GMapProvider.WebProxy = new WebProxy("10.2.0.100", 8080);
 
                //GMapProvider.WebProxy.Credentials = new NetworkCredential("ogrenci@bilgeadam.com", "bilgeada");
 
 
                // set cache mode only if no internet avaible
 
                if (!Stuff.PingNetwork("pingtest.net"))
 
                {
 
                    MainMap.Manager.Mode = AccessMode.CacheOnly;
 
                    MessageBox.Show("No internet connection available, going to CacheOnly mode.", "GMap.NET - Demo.WindowsForms", MessageBoxButtons.OK, MessageBoxIcon.Warning);
 
                }
 
 
                // config map - MDKEdit - init values ??
 
                MainMap.MapProvider = GMapProviders.OpenStreetMap;
 
                MainMap.Position = new PointLatLng(39.751248, -83.809848);
 
                MainMap.MinZoom = 0;
 
                MainMap.MaxZoom = 24;
 
                MainMap.Zoom = 15;
 
 
                //MainMap.ScaleMode = ScaleModes.Fractional;
 
 
                /// map events
 
                MainMap.OnTileLoadStart += new TileLoadStart(MainMap_OnTileLoadStart);
 
                MainMap.OnTileLoadComplete += new TileLoadComplete(MainMap_OnTileLoadComplete);
 
 
                MainMap.OnMapZoomChanged += new MapZoomChanged(MainMap_OnMapZoomChanged);
 
                MainMap.OnMapTypeChanged += new MapTypeChanged(MainMap_OnMapTypeChanged);
 
 
                MainMap.OnMarkerClick += new MarkerClick(MainMap_OnMarkerClick);
 
                MainMap.OnMarkerEnter += new MarkerEnter(MainMap_OnMarkerEnter);
 
                MainMap.OnMarkerLeave += new MarkerLeave(MainMap_OnMarkerLeave);
 
 
                MainMap.OnRouteEnter += new RouteEnter(MainMap_OnRouteEnter);
 
                MainMap.OnRouteLeave += new RouteLeave(MainMap_OnRouteLeave);
 
 
                MainMap.Manager.OnTileCacheComplete += new TileCacheComplete(OnTileCacheComplete);
 
                MainMap.Manager.OnTileCacheStart += new TileCacheStart(OnTileCacheStart);
 
                MainMap.Manager.OnTileCacheProgress += new TileCacheProgress(OnTileCacheProgress);
 
                
 
 
                MainMap.MouseMove += new MouseEventHandler(MainMap_MouseMove);
 
                MainMap.MouseDown += new MouseEventHandler(MainMap_MouseDown);
 
                MainMap.MouseUp += new MouseEventHandler(MainMap_MouseUp);
 
 
                // get map types
 
#if !MONO   // mono doesn't handle it, so we 'lost' provider list ;]
 
                comboBoxMapType.ValueMember = "Name";
 
                comboBoxMapType.DataSource = GMapProviders.List;
 
                comboBoxMapType.SelectedItem = MainMap.MapProvider;
 
#endif
 
                // acccess mode
 
                comboBoxMode.DataSource = Enum.GetValues(typeof(AccessMode));
 
                comboBoxMode.SelectedItem = MainMap.Manager.Mode;
 
 
                // get position
 
                textBoxLat.Text = MainMap.Position.Lat.ToString(CultureInfo.InvariantCulture);
 
                textBoxLng.Text = MainMap.Position.Lng.ToString(CultureInfo.InvariantCulture);
 
 
                // get cache modes
 
                checkBoxUseRouteCache.Checked = MainMap.Manager.UseRouteCache;
 
 
                // get zoom  
 
                trackBarZoomLevel.Minimum = MainMap.MinZoom * 100;
 
                trackBarZoomLevel.Maximum = MainMap.MaxZoom * 100;
 
                trackBarZoomLevel.TickFrequency = 100;
 
 
#if DEBUG
 
                xboxGrid.Checked = true;
 
#endif
 
 
                ToolStripManager.Renderer = new BSE.Windows.Forms.Office2007Renderer();
 
 
                /// add custom layers  
 
                MainMap.Overlays.Add(routes);
 
                MainMap.Overlays.Add(objects);
 
                MainMap.Overlays.Add(top);
 
 
                routes.Routes.CollectionChanged += new GMap.NET.ObjectModel.NotifyCollectionChangedEventHandler(Routes_CollectionChanged);
 
                objects.Markers.CollectionChanged += new GMap.NET.ObjectModel.NotifyCollectionChangedEventHandler(Markers_CollectionChanged);
 
 
 
                // set current marker
 
                currentMarker = new GMarkerGoogle(MainMap.Position, GMarkerGoogleType.arrow);
 
                currentMarker.IsHitTestVisible = false;
 
                currentMarker.ToolTipText = "Current Marker";
 
                top.Markers.Add(currentMarker);
 
 
                if (objects.Markers.Count > 0)
 
                {
 
                    MainMap.ZoomAndCenterMarkers(null);
 
                }
 
 
                try
 
                {
 
                    GMapOverlay overlay = DeepClone<GMapOverlay>(objects);
 
                    Debug.WriteLine("ISerializable status for markers: OK");
 
 
                    GMapOverlay overlay3 = DeepClone<GMapOverlay>(routes);
 
                    Debug.WriteLine("ISerializable status for routes: OK");
 
                }
 
                catch (Exception ex)
 
                {
 
                    Debug.WriteLine("ISerializable failure: " + ex.Message);
 
 
#if DEBUG
 
                    if (Debugger.IsAttached)
 
                    {
 
                        Debugger.Break();
 
                    }
 
#endif
 
                }
 
            }
 
        }
 
 
        //runs during init - MDKfunctional
 
        public T DeepClone<T>(T obj)
 
        {
 
            using (var ms = new System.IO.MemoryStream())
 
            {
 
                var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
 
 
                formatter.Serialize(ms, obj);
 
 
                ms.Position = 0;
 
 
                return (T)formatter.Deserialize(ms);
 
            }
 
        }
 
 
        // runs on form load  - MDKfunctional
 
        private void MainForm_Load(object sender, EventArgs e)
 
        {
 
            trackBarZoomLevel.Value = (int)MainMap.Zoom * 100;
 
            Activate();
 
            TopMost = true;
 
            TopMost = false;
 
 
            PrepareGraphs();
 
        }
 
 
        //updates the count of markers - MDKfunctional
 
        void Markers_CollectionChanged(object sender, GMap.NET.ObjectModel.NotifyCollectionChangedEventArgs e)
 
        {
 
            //textBoxMarkerCount.Text = objects.Markers.Count.ToString();
 
        }
 
 
        //updates the count of routes - MDKfunctional
 
        void Routes_CollectionChanged(object sender, GMap.NET.ObjectModel.NotifyCollectionChangedEventArgs e)
 
        {
 
            textBoxrouteCount.Text = routes.Routes.Count.ToString();
 
        }
 
 
        #region -- map events --
 
 
        // details unknown- MDKfunctional
 
        void OnTileCacheComplete()
 
        {
 
            Debug.WriteLine("OnTileCacheComplete");
 
            long size = 0;
 
            int db = 0;
 
            try
 
            {
 
                DirectoryInfo di = new DirectoryInfo(MainMap.CacheLocation);
 
                var dbs = di.GetFiles("*.gmdb", SearchOption.AllDirectories);
 
                foreach (var d in dbs)
 
                {
 
                    size += d.Length;
 
                    db++;
 
                }
 
            }
 
            catch
 
            {
 
            }
 
 
            if (!IsDisposed)
 
            {
 
                MethodInvoker m = delegate
 
                {
 
                    textBoxCacheSize.Text = string.Format(CultureInfo.InvariantCulture, "{0} db in {1:00} MB", db, size / (1024.0 * 1024.0));
 
                    textBoxCacheStatus.Text = "all tiles saved!";
 
                };
 
                Invoke(m);
 
            }
 
        }
 
 
        //details unknown - MDKfunctional
 
        void OnTileCacheStart()
 
        {
 
            Debug.WriteLine("OnTileCacheStart");
 
 
            if (!IsDisposed)
 
            {
 
                MethodInvoker m = delegate
 
                {
 
                    textBoxCacheStatus.Text = "saving tiles...";
 
                };
 
                // MDKEdit
 
                //Invoke(m);
 
            }
 
        }
 
 
        //details unknown - MDKfunctional
 
        void OnTileCacheProgress(int left)
 
        {
 
            if (!IsDisposed)
 
            {
 
                MethodInvoker m = delegate
 
                {
 
                    textBoxCacheStatus.Text = left + " tile to save...";
 
                };
 
                Invoke(m);
 
            }
 
        }
 
 
        //runs when cursor leaves a marker - MDKfunctional
 
        void MainMap_OnMarkerLeave(GMapMarker item)
 
        {
 
            if (item is GMapMarkerRect)
 
            {
 
                CurentRectMarker = null;
 
 
                GMapMarkerRect rc = item as GMapMarkerRect;
 
                rc.Pen.Color = Color.Blue;
 
 
                Debug.WriteLine("OnMarkerLeave: " + item.Position);
 
            }
 
        }
 
 
        //runs when cursor enters a marker - MDKfunctional
 
        void MainMap_OnMarkerEnter(GMapMarker item)
 
        {
 
            if (item is GMapMarkerRect)
 
            {
 
                GMapMarkerRect rc = item as GMapMarkerRect;
 
                rc.Pen.Color = Color.Red;
 
 
                CurentRectMarker = rc;
 
 
                Debug.WriteLine("OnMarkerEnter: " + item.Position);
 
            }
 
        }
 
 
        //runs when cursor leaves a route - MDKfunctional
 
        void MainMap_OnRouteLeave(GMapRoute item)
 
        {
 
            currentRoute = null;
 
            item.Stroke.Color = Color.MidnightBlue;
 
            Debug.WriteLine("OnRouteLeave: " + item.Name);
 
        }
 
 
        //runs when cursor enters a route - MDKfunctional
 
        void MainMap_OnRouteEnter(GMapRoute item)
 
        {
 
            currentRoute = item;
 
            item.Stroke.Color = Color.Red;
 
            Debug.WriteLine("OnRouteEnter: " + item.Name);
 
        }
 
 
        // - MDKfunctional
 
        void MainMap_OnMapTypeChanged(GMapProvider type)
 
        {
 
            comboBoxMapType.SelectedItem = type;
 
 
            trackBarZoomLevel.Minimum = MainMap.MinZoom * 100;
 
            trackBarZoomLevel.Maximum = MainMap.MaxZoom * 100;
 
        }
 
 
        //updates current marker coordinate dislpay - MDKfunctional
 
        void MainMap_MouseUp(object sender, MouseEventArgs e)
 
        {
 
            // MDKAdd
 
            textBoxLatCurrent.Text = currentMarker.Position.Lat.ToString();
 
            textBoxLngCurrent.Text = currentMarker.Position.Lng.ToString();
 
            if (e.Button == MouseButtons.Left)
 
            {
 
                isMouseDown = false;
 
            }
 
        }
 
 
        // - MDKfunctional
 
        void MainMap_MouseDown(object sender, MouseEventArgs e)
 
        {
 
            if (e.Button == MouseButtons.Left)
 
            {
 
                isMouseDown = true;
 
 
                if (currentMarker.IsVisible)
 
                {
 
                    currentMarker.Position = MainMap.FromLocalToLatLng(e.X, e.Y);
 
                    // MDKAdd
 
                    textBoxLatCurrent.Text = currentMarker.Position.Lat.ToString();
 
                    textBoxLngCurrent.Text = currentMarker.Position.Lng.ToString();
 
 
                    var px = MainMap.MapProvider.Projection.FromLatLngToPixel(currentMarker.Position.Lat, currentMarker.Position.Lng, (int)MainMap.Zoom);
 
                    var tile = MainMap.MapProvider.Projection.FromPixelToTileXY(px);
 
 
                    Debug.WriteLine("MouseDown: geo: " + currentMarker.Position + " | px: " + px + " | tile: " + tile);
 
                }
 
            }
 
        }
 
 
        // move current marker with left holding - MDKfunctional
 
        void MainMap_MouseMove(object sender, MouseEventArgs e)
 
        {
 
            if (e.Button == MouseButtons.Left && isMouseDown)
 
            {
 
                if (CurentRectMarker == null)
 
                {
 
                    if (currentMarker.IsVisible)
 
                    {
 
                        // MDKAdd
 
                        textBoxLatCurrent.Text = currentMarker.Position.Lat.ToString();
 
                        textBoxLngCurrent.Text = currentMarker.Position.Lng.ToString();
 
 
                        currentMarker.Position = MainMap.FromLocalToLatLng(e.X, e.Y);
 
                    }
 
                }
 
                else // move rect marker
 
                {
 
                    PointLatLng pnew = MainMap.FromLocalToLatLng(e.X, e.Y);
 
 
                    int? pIndex = (int?)CurentRectMarker.Tag;
 
                    if (pIndex.HasValue)
 
                    {
 
                        //if (pIndex < polygon.Points.Count)
 
                        //{
 
                        //    polygon.Points[pIndex.Value] = pnew;
 
                        //    MainMap.UpdatePolygonLocalPosition(polygon);
 
                        //}
 
                    }
 
 
                    if (currentMarker.IsVisible)
 
                    {
 
                        currentMarker.Position = pnew;
 
                        // MDKAdd
 
                        textBoxLatCurrent.Text = currentMarker.Position.Lat.ToString();
 
                        textBoxLngCurrent.Text = currentMarker.Position.Lng.ToString();
 
                    }
 
                    CurentRectMarker.Position = pnew;
 
 
                    if (CurentRectMarker.InnerMarker != null)
 
                    {
 
                        CurentRectMarker.InnerMarker.Position = pnew;
 
                    }
 
                }
 
 
                MainMap.Refresh(); // force instant invalidation
 
                // MDKAdd
 
                textBoxLatCurrent.Refresh();
 
                textBoxLngCurrent.Refresh();
 
            }
 
        }
 
 
        // MapZoomChanged - MDKfunctional
 
        void MainMap_OnMapZoomChanged()
 
        {
 
            trackBarZoomLevel.Value = (int)(MainMap.Zoom * 100.0);
 
            textBoxZoomCurrent.Text = MainMap.Zoom.ToString();
 
        }
 
 
        // click on a marker - MDKfunctional
 
        void MainMap_OnMarkerClick(GMapMarker item, MouseEventArgs e)
 
        {
 
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
 
            {
 
                if (item is GMapMarkerRect)
 
                {
 
                    GeoCoderStatusCode status;
 
                    var pos = GMapProviders.GoogleMap.GetPlacemark(item.Position, out status);
 
                    if (status == GeoCoderStatusCode.G_GEO_SUCCESS && pos != null)
 
                    {
 
                        GMapMarkerRect v = item as GMapMarkerRect;
 
                        {
 
                            v.ToolTipText = pos.Value.Address;
 
                        }
 
                        MainMap.Invalidate(false);
 
                    }
 
                }
 
                else
 
                {
 
                    //if (item.Tag != null)
 
                    //{
 
                    //    if (currentTransport != null)
 
                    //    {
 
                    //        currentTransport.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
                    //        currentTransport = null;
 
                    //    }
 
                    //    currentTransport = item;
 
                    //    currentTransport.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
                    //}
 
                }
 
            }
 
        }
 
 
        // loader start loading tiles - MDKfunctional
 
        void MainMap_OnTileLoadStart()
 
        {
 
            MethodInvoker m = delegate()
 
            {
 
                panelMenu.Text = "Menu: loading tiles...";
 
            };
 
            try
 
            {
 
                BeginInvoke(m);
 
            }
 
            catch
 
            {
 
            }
 
        }
 
 
        // loader end loading tiles  - MDKfunctional
 
        void MainMap_OnTileLoadComplete(long ElapsedMilliseconds)
 
        {
 
            MainMap.ElapsedMilliseconds = ElapsedMilliseconds;
 
 
            MethodInvoker m = delegate()
 
            {
 
                panelMenu.Text = "Menu, last load in " + MainMap.ElapsedMilliseconds + "ms";
 
 
                textBoxMemory.Text = string.Format(CultureInfo.InvariantCulture, "{0:0.00} MB of {1:0.00} MB", MainMap.Manager.MemoryCache.Size, MainMap.Manager.MemoryCache.Capacity);
 
            };
 
            try
 
            {
 
                BeginInvoke(m);
 
            }
 
            catch
 
            {
 
            }
 
        }
 
 
        #endregion
 
 
        #region -- menu panels expanders --
 
        // - MDKfunctional
 
        private void xPanderPanel1_Click(object sender, EventArgs e)
 
        {
 
            xPanderPanelList1.Expand(xPanderPanelMain);
 
        }
 
 
        // - MDKfunctional
 
        private void xPanderPanelCache_Click(object sender, EventArgs e)
 
        {
 
            xPanderPanelList1.Expand(xPanderPanelCache);
 
        }
 
 
        // - MDKfunctional
 
        private void xPanderPanelInfo_Click(object sender, EventArgs e)
 
        {
 
            xPanderPanelList1.Expand(xPanderPanelInfo);
 
        }
 
        #endregion
 
 
        #region -- ui events --
 
 
        // change map type - MDKfunctional
 
        private void comboBoxMapType_DropDownClosed(object sender, EventArgs e)
 
        {
 
            if (!UserAcceptedLicenseOnce)
 
            {
 
                if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + Path.DirectorySeparatorChar + "License.txt"))
 
                {
 
                    string ctn = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + Path.DirectorySeparatorChar + "License.txt");
 
                    int li = ctn.IndexOf("License");
 
                    string txt = ctn.Substring(li);
 
 
                    var d = new Demo.WindowsForms.Forms.Message();
 
                    d.richTextBox1.Text = txt;
 
 
                    if (DialogResult.Yes == d.ShowDialog())
 
                    {
 
                        UserAcceptedLicenseOnce = true;
 
                        this.Text += " - license accepted by " + Environment.UserName + " at " + DateTime.Now;
 
                    }
 
                }
 
                else
 
                {
 
                    // user deleted License.txt ;}
 
                    UserAcceptedLicenseOnce = true;
 
                }
 
            }
 
 
            if (UserAcceptedLicenseOnce)
 
            {
 
                MainMap.MapProvider = comboBoxMapType.SelectedItem as GMapProvider;
 
            }
 
            else
 
            {
 
                MainMap.MapProvider = GMapProviders.OpenStreetMap;
 
                comboBoxMapType.SelectedItem = MainMap.MapProvider;
 
            }
 
        }
 
 
        // change mdoe - MDKfunctional
 
        private void comboBoxMode_DropDownClosed(object sender, EventArgs e)
 
        {
 
            MainMap.Manager.Mode = (AccessMode)comboBoxMode.SelectedValue;
 
            MainMap.ReloadMap();
 
        }
 
 
        // zoom - MDKfunctional
 
        private void trackBar1_ValueChanged(object sender, EventArgs e)
 
        {
 
            MainMap.Zoom = trackBarZoomLevel.Value / 100.0;
 
        }
 
 
        // go to coordinates- MDKfunctional
 
        private void btnGoToCoords_Click(object sender, EventArgs e)
 
        {
 
            try
 
            {
 
                double lat = double.Parse(textBoxLat.Text, CultureInfo.InvariantCulture);
 
                double lng = double.Parse(textBoxLng.Text, CultureInfo.InvariantCulture);
 
 
                MainMap.Position = new PointLatLng(lat, lng);
 
            }
 
            catch (Exception ex)
 
            {
 
                MessageBox.Show("incorrect coordinate format: " + ex.Message);
 
            }
 
        }
 
 
        // reload map - MDKfunctional
 
        private void btnReload_Click(object sender, EventArgs e)
 
        {
 
            MainMap.ReloadMap();
 
        }
 
 
        // cache config - MDKfunctional
 
        private void checkBoxUseCache_CheckedChanged(object sender, EventArgs e)
 
        {
 
            MainMap.Manager.UseRouteCache = checkBoxUseRouteCache.Checked;
 
            MainMap.Manager.UseGeocoderCache = checkBoxUseRouteCache.Checked;
 
            MainMap.Manager.UsePlacemarkCache = checkBoxUseRouteCache.Checked;
 
            MainMap.Manager.UseDirectionsCache = checkBoxUseRouteCache.Checked;
 
        }
 
 
        // set route start  - MDKfunctional
 
        bool hasStartMarker = false;
 
        private void buttonSetStart_Click(object sender, EventArgs e)
 
        {
 
            start = currentMarker.Position;
 
            // - MDKAdd
 
            GMarkerGoogle m = new GMarkerGoogle(currentMarker.Position, GMarkerGoogleType.green_small);
 
            
 
            //prevent multiple start markers from existing
 
            if(hasStartMarker){
 
                objects.Markers.RemoveAt(0);
 
            }
 
 
            //add the marker
 
            m.ToolTipText = "Start";
 
            m.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
            objects.Markers.Insert(0, m);
 
 
            hasStartMarker = true;
 
        }
 
 
        // set route end - MDKfunctional
 
        bool hasEndMarker = false;
 
        private void buttonSetEnd_Click(object sender, EventArgs e)
 
        {
 
            end = currentMarker.Position;
 
            // - MDKAdd
 
            GMarkerGoogle m = new GMarkerGoogle(currentMarker.Position, GMarkerGoogleType.red_small);
 
 
            //prevent multiple start markers from existing
 
            if (hasEndMarker)
 
            {
 
                objects.Markers.RemoveAt(1);
 
            }
 
            m.ToolTipText = "End";
 
            m.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
 
            //add the marker
 
            if (hasStartMarker)
 
            {
 
                objects.Markers.Insert(1, m);
 
            }
 
            else
 
            {
 
                objects.Markers.Insert(0, m);
 
            }
 
            hasEndMarker = true;
 
        }
 
 
        // add route - MDKfunctional
 
        private void btnAddRoute_Click(object sender, EventArgs e)
 
        {
 
            RoutingProvider rp = MainMap.MapProvider as RoutingProvider;
 
            if (rp == null)
 
            {
 
                rp = GMapProviders.GoogleMap; // use google if provider does not implement routing
 
            }
 
 
            MapRoute route = rp.GetRoute(start, end, false, false, (int)MainMap.Zoom);
 
            if (route != null)
 
            {
 
                // add route
 
                GMapRoute r = new GMapRoute(route.Points, route.Name);
 
                r.IsHitTestVisible = true;
 
                routes.Routes.Add(r);
 
 
                // add route start/end marks
 
                GMapMarker m1 = new GMarkerGoogle(start, GMarkerGoogleType.green_big_go);
 
                m1.ToolTipText = "Start: " + route.Name;
 
                m1.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
 
                GMapMarker m2 = new GMarkerGoogle(end, GMarkerGoogleType.red_big_stop);
 
                m2.ToolTipText = "End: " + end.ToString();
 
                m2.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
 
                objects.Markers.Add(m1);
 
                objects.Markers.Add(m2);
 
            }
 
        }
 
 
        // add marker on current position - MDKfunctional
 
        private void addUserMarker(object sender, EventArgs e)
 
        {
 
            GMarkerGoogle m = new GMarkerGoogle(currentMarker.Position, GMarkerGoogleType.blue_small);
 
 
            m.ToolTipText = "User";
 
            m.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
            objects.Markers.Add(m);
 
        }
 
 
        // add marker from APRS transmission - MDKEdit - TODO: Function not needed; addUserMarker() replaces it ??
 
        private void addMarkerFromButton(object sender, EventArgs e)
 
        {
 
            GMarkerGoogle m = new GMarkerGoogle(currentMarker.Position, GMarkerGoogleType.blue_small);
 
 
            m.ToolTipText = "Tracker";
 
            m.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
            objects.Markers.Add(m);
 
        }
 
 
        // clear routes - MDKfunctional
 
        private void btnClearRoutes_Click(object sender, EventArgs e)
 
        {
 
            routes.Routes.Clear();
 
 
            //remove start/end markes of this route
 
            string markerText = "";
 
            int count = objects.Markers.Count;
 
            for (int i = count-1; i >= 0; i--)
 
            {
 
                markerText = objects.Markers[i].ToolTipText.ToString();
 
                if (markerText.StartsWith("Start"))
 
                {
 
                    objects.Markers.RemoveAt(i);
 
                }
 
                else if (markerText.StartsWith("End"))
 
                {
 
                    objects.Markers.RemoveAt(i); 
 
                    //objects.Markers[i].Dispose();
 
                }                
 
            }
 
            hasEndMarker = false;
 
            hasStartMarker = false;
 
        }
 
 
        // clear markers - MDKfunctional
 
        private void btnClearMarkers_Click(object sender, EventArgs e)
 
        {
 
            //preserve stert/end markes of this route
 
            string markerText = ""; 
 
            int count = objects.Markers.Count;
 
            for (int i = (count - 1); i >= 0; i--)
 
            {
 
                markerText = objects.Markers[i].ToolTipText.ToString();
 
                if (markerText.StartsWith("User"))
 
                {
 
                    objects.Markers.RemoveAt(i); 
 
                }
 
            }
 
        }
 
 
        //clears all markers and routes - MDKfunctional
 
        private void btnClearAll_Click(object sender, EventArgs e)
 
        {
 
            objects.Markers.Clear();
 
            routes.Routes.Clear();
 
            hasEndMarker = false;
 
            hasStartMarker = false;
 
        }
 
 
        // show current marker - MDKfunctional
 
        private void checkBoxCurrentMarker_CheckedChanged(object sender, EventArgs e)
 
        {
 
            currentMarker.IsVisible = xboxCurrentMarker.Checked;
 
        }
 
 
        // can drag - MDKfunctional
 
        private void checkBoxCanDrag_CheckedChanged(object sender, EventArgs e)
 
        {
 
            MainMap.CanDragMap = xboxCanDrag.Checked;
 
        }
 
 
        // zoom to max for markers - MDKfunctional
 
        private void button7_Click(object sender, EventArgs e)
 
        {
 
            MainMap.ZoomAndCenterMarkers("objects");
 
        }
 
 
        // saves current map view - MDKfunctional
 
        private void btnSaveView_Click(object sender, EventArgs e)
 
        {
 
            try
 
            {
 
                using (SaveFileDialog sfd = new SaveFileDialog())
 
                {
 
                    sfd.Filter = "PNG (*.png)|*.png";
 
                    sfd.FileName = "GMap.NET image";
 
 
                    Image tmpImage = MainMap.ToImage();
 
                    if (tmpImage != null)
 
                    {
 
                        using (tmpImage)
 
                        {
 
                            if (sfd.ShowDialog() == DialogResult.OK)
 
                            {
 
                                tmpImage.Save(sfd.FileName);
 
 
                                MessageBox.Show("Image saved: " + sfd.FileName, "GMap.NET", MessageBoxButtons.OK, MessageBoxIcon.Information);
 
                            }
 
                        }
 
                    }
 
                }
 
            }
 
            catch (Exception ex)
 
            {
 
                MessageBox.Show("Image failed to save: " + ex.Message, "GMap.NET", MessageBoxButtons.OK, MessageBoxIcon.Error);
 
            }
 
        }
 
 
        // debug tile grid - MDKfunctional
 
        private void showGridlines(object sender, EventArgs e)
 
        {
 
            MainMap.ShowTileGridLines = xboxGrid.Checked;
 
        }
 
 
        // saves image of selected area - MDKfunctional
 
        private void btnGetStatic_Click(object sender, EventArgs e)
 
        {
 
            StaticImage st = new StaticImage(this);
 
            st.Owner = this;
 
            st.Show();
 
        }
 
 
        // key-up events - MDKfunctional
 
        private void MainForm_KeyUp(object sender, KeyEventArgs e)
 
        {
 
            int offset = -22;
 
 
            if (e.KeyCode == Keys.Left)
 
            {
 
                MainMap.Offset(-offset, 0);
 
            }
 
            else if (e.KeyCode == Keys.Right)
 
            {
 
                MainMap.Offset(offset, 0);
 
            }
 
            else if (e.KeyCode == Keys.Up)
 
            {
 
                MainMap.Offset(0, -offset);
 
            }
 
            else if (e.KeyCode == Keys.Down)
 
            {
 
                MainMap.Offset(0, offset);
 
            }
 
            else if (e.KeyCode == Keys.Delete)
 
            {
 
 
                if (currentRoute != null)
 
                {
 
                    routes.Routes.Remove(currentRoute);
 
                    currentRoute = null;
 
                }
 
 
                if (CurentRectMarker != null)
 
                {
 
                    objects.Markers.Remove(CurentRectMarker);
 
 
                    if (CurentRectMarker.InnerMarker != null)
 
                    {
 
                        objects.Markers.Remove(CurentRectMarker.InnerMarker);
 
                    }
 
                    CurentRectMarker = null;
 
 
                    //RegeneratePolygon();
 
                }
 
            }
 
            else if (e.KeyCode == Keys.Escape)
 
            {
 
                MainMap.Bearing = 0;
 
 
                //if (currentTransport != null && !MainMap.IsMouseOverMarker)
 
                //{
 
                //    currentTransport.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
                //    currentTransport = null;
 
                //}
 
            }
 
        }
 
 
        // key-press events - MDKfunctional
 
        private void MainForm_KeyPress(object sender, KeyPressEventArgs e)
 
        {
 
            if (MainMap.Focused)
 
            {
 
                if (e.KeyChar == '+')
 
                {
 
                    MainMap.Zoom = ((int)MainMap.Zoom) + 1;
 
                }
 
                else if (e.KeyChar == '-')
 
                {
 
                    MainMap.Zoom = ((int)(MainMap.Zoom + 0.99)) - 1;
 
                }
 
                else if (e.KeyChar == 'a')
 
                {
 
                    MainMap.Bearing--;
 
                }
 
                else if (e.KeyChar == 'z')
 
                {
 
                    MainMap.Bearing++;
 
                }
 
            }
 
        }
 
 
        //changes zoom - MDKfunctional
 
        private void buttonZoomUp_Click(object sender, EventArgs e)
 
        {
 
            MainMap.Zoom = ((int)MainMap.Zoom) + 1;
 
        }
 
 
        //changes zoom - MDKfunctional
 
        private void buttonZoomDown_Click(object sender, EventArgs e)
 
        {
 
            MainMap.Zoom = ((int)(MainMap.Zoom + 0.99)) - 1;
 
        }
 
 
 
 
        #endregion
 
 
        #region -- caching --
 
 
        // import map data - MDKfunctional
 
        private void btnCacheImport_Click(object sender, EventArgs e)
 
        {
 
            MainMap.ShowImportDialog();
 
        }
 
 
        // export map data - MDKfunctional
 
        private void btnCacheExport_Click(object sender, EventArgs e)
 
        {
 
            MainMap.ShowExportDialog();
 
        }
 
 
        // prefetch - MDKfunctional
 
        private void btnCachePrefetch_Click(object sender, EventArgs e)
 
        {
 
            RectLatLng area = MainMap.SelectedArea;
 
            if (!area.IsEmpty)
 
            {
 
                int zoom = (int)MainMap.Zoom;
 
                DialogResult res = MessageBox.Show("Ready ripp at Zoom = " + zoom + " and greater?", "GMap.NET Cache", MessageBoxButtons.YesNoCancel);
 
                if (res == DialogResult.Yes)
 
                {
 
                    for (int i = zoom; i <= 17; i++)
 
                    {
 
                        using (TilePrefetcher obj = new TilePrefetcher())
 
                        {
 
                            obj.Owner = this;
 
                            obj.ShowCompleteMessage = false;
 
                            obj.Start(area, i, MainMap.MapProvider, 100);
 
                        }
 
                    }
 
                }
 
            }
 
            else
 
            {
 
                MessageBox.Show("Select map area holding ALT", "GMap.NET", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
 
            }
 
        }
 
 
        // clear cache - MDKfunctional
 
        private void btnCacheClear_Click(object sender, EventArgs e)
 
        {
 
            if (MessageBox.Show("Are You sure?", "Clear GMap.NET cache?", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
 
            {
 
                try
 
                {
 
                    MainMap.Manager.PrimaryCache.DeleteOlderThan(DateTime.Now, null);
 
                    MessageBox.Show("Done. Cache is clear.");
 
                }
 
                catch (Exception ex)
 
                {
 
                    MessageBox.Show(ex.Message);
 
                }
 
            }
 
        }
 
 
        // open disk cache location - MDKfunctional
 
        private void btnCacheLocationOpen_Click(object sender, EventArgs e)
 
        {
 
            try
 
            {
 
                string argument = "/select, \"" + MainMap.CacheLocation + "TileDBv5\"";
 
                System.Diagnostics.Process.Start("explorer.exe", argument);
 
            }
 
            catch (Exception ex)
 
            {
 
                MessageBox.Show("Failed to open: " + ex.Message, "GMap.NET", MessageBoxButtons.OK, MessageBoxIcon.Error);
 
            }
 
        }
 
 
        #endregion
 
 
        #region chart click events
 
 
        //this method clears the background of all charts
 
        private void ResetChartColors()
 
        {
 
            chrtTopLeft.BackColor = Color.LightGray;
 
            chrtTopRight.BackColor = Color.LightGray;
 
            chrtBottomLeft.BackColor = Color.LightGray;
 
            chrtBottomRight.BackColor = Color.LightGray;
 
        }
 
 
        ///TODO: check min/max/average with real data
 
 
        //highlight Top Left chart on click and set text box values based on this chart
 
        private void chrtTopLeft_Click(object sender, EventArgs e)
 
        {
 
            ResetChartColors();
 
            chrtTopLeft.BackColor = Color.Gray;
 
            tboxChartData.Text = "Altitude";
 
            tboxCurrent.Text = tboxAtmoAltitude.Text;
 
            tboxAverage.Text = (velocitySum / chrtBottomRight.Series.FindByName("altitudeTrend").Points.Count).ToString();
 
            tboxMax.Text = chrtBottomRight.Series.FindByName("altitudeTrend").Points.FindMaxByValue().ToString();
 
            tboxMin.Text = chrtBottomRight.Series.FindByName("altitudeTrend").Points.FindMinByValue().ToString();
 
        }
 
 
        //highlight Top Right chart on click and set text box values based on this chart
 
        private void chrtTopRight_Click(object sender, EventArgs e)
 
        {
 
            ResetChartColors();
 
            chrtTopRight.BackColor = Color.Gray;
 
            tboxChartData.Text = "Humidity";
 
            tboxCurrent.Text = tboxAtmoHumidity.Text;
 
            tboxAverage.Text = (humiditySum / chrtBottomRight.Series.FindByName("humidityTrend").Points.Count).ToString();
 
            tboxMax.Text = chrtBottomRight.Series.FindByName("humidityTrend").Points.FindMaxByValue().ToString();
 
            tboxMin.Text = chrtBottomRight.Series.FindByName("humidityTrend").Points.FindMinByValue().ToString();
 
        }
 
 
        //highlight Bottom Left chart on click and set text box values based on this chart
 
        private void chrtBottomLeft_Click(object sender, EventArgs e)
 
        {
 
            ResetChartColors();
 
            chrtBottomLeft.BackColor = Color.Gray;
 
            tboxChartData.Text = "Pressure";
 
            tboxCurrent.Text = tboxAtmoPressure.Text;
 
            tboxAverage.Text = (pressureSum / chrtBottomRight.Series.FindByName("pressureTrend").Points.Count).ToString();
 
            tboxMax.Text = chrtBottomRight.Series.FindByName("pressureTrend").Points.FindMaxByValue().ToString();
 
            tboxMin.Text = chrtBottomRight.Series.FindByName("pressureTrend").Points.FindMinByValue().ToString();
 
        }
 
 
        //highlight Bottom Right chart on click and set text box values based on this chart
 
        private void chrtBottomRight_Click(object sender, EventArgs e)
 
        {
 
            ResetChartColors();
 
            chrtBottomRight.BackColor = Color.Gray;
 
            tboxChartData.Text = "Velocity";
 
            tboxCurrent.Text = tboxMasterVelocity.Text;
 
            tboxAverage.Text = (velocitySum / chrtBottomRight.Series.FindByName("velocityTrend").Points.Count).ToString();
 
            tboxMax.Text = chrtBottomRight.Series.FindByName("velocityTrend").Points.FindMaxByValue().ToString();
 
            tboxMin.Text = chrtBottomRight.Series.FindByName("velocityTrend").Points.FindMinByValue().ToString();
 
        }
 
 
        #endregion
 
 
        #region transmission handling
 
 
        //variable declarations
 
        string latitude;
 
        string longitude;
 
        bool firstTransmissionDatum = false;
 
        double velocitySum = 0;
 
        double humiditySum = 0;
 
        double altitudeSum = 0;
 
        double pressureSum = 0;
 
        
 
        //runs on init 
 
        public void PrepareGraphs(){
 
 
            //set up for graphs MDKEdit
 
            // http://www.youtube.com/watch?v=zTod4-Fg6Ew - split containers
 
            // http://www.youtube.com/watch?v=bMXtgPk875I - chart controls
 
 
            chrtTopLeft.ChartAreas.Add("altitudeArea");
 
            chrtTopLeft.Series.Add("altitudeTrend");
 
 
            chrtTopRight.ChartAreas.Add("humidityArea");
 
            chrtTopRight.Series.Add("humidityTrend");
 
 
            chrtBottomLeft.ChartAreas.Add("pressureArea");
 
            chrtBottomLeft.Series.Add("pressureTrend");
 
            chrtBottomLeft.ChartAreas.Add("pressureArea");
 
 
            
 
            chrtBottomRight.ChartAreas.Add("velocityArea");
 
            chrtBottomRight.Series.Add("velocityTrend");
 
 
            // declare all series, data points to be modified dynamically at run
 
 
            //---------prep altitude area BEGIN 
 
            chrtTopLeft.Series["altitudeTrend"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
 
            chrtTopLeft.Series["altitudeTrend"].Color = Color.Green;
 
            System.Windows.Forms.DataVisualization.Charting.AxisName.X.Equals("Time");
 
            System.Windows.Forms.DataVisualization.Charting.AxisName.Y.Equals("Altitude");
 
            
 
            ///required initial value
 
            chrtTopLeft.Series["altitudeTrend"].Points.AddXY(0, 140);
 
            //---------prep altitude area END 
 
 
 
            //-----------prep humidity area BEGIN
 
            chrtTopRight.Series["humidityTrend"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
 
            chrtTopRight.Series["humidityTrend"].Color = Color.Red;
 
            System.Windows.Forms.DataVisualization.Charting.AxisName.X.Equals("Time");
 
            System.Windows.Forms.DataVisualization.Charting.AxisName.Y.Equals("Humidity");
 
 
            ///required initial value
 
            chrtTopRight.Series["humidityTrend"].Points.AddXY(0, 50);
 
            //-----------prep humidity area END
 
 
 
            //-----------prep pressure area BEGIN
 
            chrtBottomLeft.Series["pressureTrend"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
 
            chrtBottomLeft.Series["pressureTrend"].Color = Color.Blue;
 
            System.Windows.Forms.DataVisualization.Charting.AxisName.X.Equals("Time");
 
            System.Windows.Forms.DataVisualization.Charting.AxisName.Y.Equals("Pressure");
 
 
            ///required initial value
 
            chrtBottomLeft.Series["pressureTrend"].Points.AddXY(0, 100000);
 
            //-----------prep pressure area END
 
 
 
            //----------prep velocity area BEGIN
 
            chrtBottomRight.Series["velocityTrend"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
 
            chrtBottomRight.Series["velocityTrend"].Color = Color.Green;
 
            System.Windows.Forms.DataVisualization.Charting.AxisName.X.Equals("Time");
 
            System.Windows.Forms.DataVisualization.Charting.AxisName.Y.Equals("Altitude");
 
 
            ///required initial value
 
            chrtBottomRight.Series["velocityTrend"].Points.AddXY(0, 0);
 
            //----------prep velocity area END
 
 
            //put chart displays in a ready state
 
            ResetChartColors();
 
        }
 
        
 
        //parses transmissions and saves data to CSV file
 
        public void ParseIncomingData(string rawDataReceived)
 
        {
 
            //check to see if data should be processed
 
            if (!cboxCollectData.Checked )
 
            {
 
                AddTextDelegate("Transmission not saved: " + rawDataReceived +"\r\n");
 
                return;
 
            }
 
            else if (!rawDataReceived.StartsWith("KD8TDF"))
 
            else if (!rawDataReceived.StartsWith(callsign)) //reject other callsigns
 
            {
 
                AddTextDelegate("Foreign transmission: " + rawDataReceived + "\r\n");
 
                return;
 
            }
 
 
            /* sample stansmissions
 
             * KD8TDF-9>APRS,WIDE2-1:/191950zN/WO/ T79 S00 V H99.99 _ |
 
             * KD8TDF-9>APRS,WIDE2-1:/151916z3944.87N/08348.75WO005/0.013 SV:09 A-30.5 B45.64 C99542
 
             */
 
 
            //find and store latitude string
 
            int indexStart = rawDataReceived.IndexOf("z");
 
            int indexEnd = rawDataReceived.IndexOf("N/");
 
            latitude = rawDataReceived.Substring(indexStart + 1, indexEnd - indexStart - 1);
 
 
            //find and store longitude string
 
            indexStart = rawDataReceived.IndexOf("N/");
 
            indexEnd = rawDataReceived.IndexOf("WO");
 
            longitude = rawDataReceived.Substring(indexStart + 2, indexEnd - indexStart - 2);
 
            
 
            //remove APRS overhead from string
 
            string transmissionCommentField = rawDataReceived.Substring(rawDataReceived.IndexOf(" ") + 1); 
 
 
            //place each datum in its own variable
 
            string[] dataTransmission;
 
            dataTransmission = transmissionCommentField.Split('~');
 
 
            //variables for processing datums
 
            string typeCode;
 
            string data;
 
            string csvData = "";
 
            string testString = "";
 
 
            //loop through all datums in the transmission and send them to the chart builder
 
            for (int i = 1; i < dataTransmission.Length; i++)
 
            {
 
                if (i == 1)
 
                {
 
                    firstTransmissionDatum = true;
 
                }
 
                else
 
                {
 
                    firstTransmissionDatum = false;
 
                }
 
 
                //remove unwanted characters
 
                dataTransmission[i] = dataTransmission[i].Trim();
 
 
                //zero not always trasmitted properly so add '0.0' to any transmission with no data
 
                if (dataTransmission[i].Length == 1) 
 
                {
 
                    dataTransmission[i] += "0";
 
                }
 
                
 
                //pull out data and data type and send to processing function
 
                typeCode = dataTransmission[i].Substring(0, 1);
 
                if (typeCode != "e")
 
                {
 
                    testString = dataTransmission[i].Substring(1);
 
                    data = dataTransmission[i].Substring(1);
 
                    processTransmissionDatum(typeCode, data);
 
 
                    //append data to string for CSV write
 
                    csvData += typeCode + data + ",";
 
                }
 
                else
 
                {
 
                    AddTextDelegate("Error Message: " + dataTransmission[i].Substring(1) + "\r\n");
 
                }
 
            }
 
 
            //handle case of no GPS fix
 
            if (latitude == "" || longitude == "")
 
            {
 
                AddTextDelegate("No GPS fix: ");
 
            }
 
            else
 
            {
 
                //marker added here so extra accuracy can be added
 
                addTrackerMarker(latitude, longitude);
 
            }
 
 
            //display transmission in message box
 
            AddTextDelegate(rawDataReceived + "\r\n");
 
 
            //write the data to CSV file
 
            WriteToCSV(csvData);
 
        }
 
 
        //method to process data from transmissions (usually chart inserts)
 
        private void processTransmissionDatum(string dataType, string data)
 
        {
 
            //TODO: add inserts for all charts. altitude is finished and is a template
 
            ///data types organized by listing in google doc
 
            //MASTER MODULE DATA VALUES
 
            ChartDelegate(dataType, data);
 
 
        }
 
 
        //write the data to CSV file -- usually seniordesign-ui\Demo.WindowsForms\bin\Debug
 
        private void WriteToCSV(string data)
 
        {
 
            string path = Directory.GetCurrentDirectory();
 
            string filename = path+"\\TransmissionData" + unixTime.Milliseconds + ".csv";
 
            using (StreamWriter writer = new StreamWriter(filename, true))
 
            {
 
                writer.WriteLine(data);
 
            }
 
        }
 
        
 
        //must change lat/long coords to properly place map marker
 
        float conv_coords(float in_coords)
 
        {
 
            //Initialize the location.
 
            float f = in_coords;
 
            // Get the first two digits by turning f into an integer, then doing an integer divide by 100;
 
            // firsttowdigits should be 77 at this point.
 
            int firsttwodigits = ((int)f) / 100;                               //This assumes that f < 10000.
 
            float nexttwodigits = f - (float)(firsttwodigits * 100);
 
            float theFinalAnswer = (float)(firsttwodigits + nexttwodigits / 60.0);
 
            return theFinalAnswer;
 
        }
 
 
        // add marker from an APRS transmission - MDKEdit
 
        private void addTrackerMarker(string lat, string lng)
 
        {
 
 
            double latitude = double.Parse(lat), longitude = double.Parse(lng);
 
            PointLatLng APRSloc = new PointLatLng();
 
            APRSloc.Lat = conv_coords((float)latitude);
 
            APRSloc.Lng = conv_coords((float)longitude)*-1;
 
 
            GMarkerGoogle m = new GMarkerGoogle(APRSloc, GMarkerGoogleType.blue_small);
 
 
            m.ToolTipText = "Tracker";
 
            m.ToolTipMode = MarkerTooltipMode.OnMouseOver;
 
            objects.Markers.Add(m);
 
        }
 
        
 
        int comPort = 0;
 
        string callsign;
 
        private void cboxCollectData_Click(object sender, EventArgs e)
 
        {
 
            //sets comPort and callsign, uncheck if parse does not work
 
            if (int.TryParse(tboxCOMPort.Text, out comPort))
 
            {
 
                callsign = tboxAPRSCallsign.Text;
 
            }
 
            else
 
            {
 
                cboxCollectData.Checked = false;
 
            } 
 
            
 
            //disable callsign and port edits while collecting transmissions
 
            tboxAPRSCallsign.Enabled = !cboxCollectData.Checked;
 
            tboxCOMPort.Enabled = !cboxCollectData.Checked;
 
        }
 
 
        //sets and opens the COM port
 
        delegate void SetSerialDelegate(int COM);
 
        public void setSerialPort(int COM)
 
        {
 
            if (InvokeRequired)
 
            {
 
                Invoke(new SetSerialDelegate(setSerialPort), COM);
 
            }
 
            else
 
            {
 
                
 
            }
 
        }
 
 
        //places text in the message box
 
        delegate void SetTextDelegate(string value);
 
        public void AddTextDelegate(string value)
 
        {
 
            if (InvokeRequired)
 
            {
 
                Invoke(new SetTextDelegate(AddTextDelegate), value);
 
            }
 
            else
 
            {
 
                tboxMessageBox.AppendText(value);// += value;
 
                textBoxMarkerCount.Text = objects.Markers.Count.ToString();
 
            }
 
        }
 
 
        //this is where most of the transmission processing is done
 
        delegate void ChartDataDelegate(string dataType, string data);
 
        public void ChartDelegate(string dataType, string data)
 
        {
 
            if (InvokeRequired)
 
            {
 
                Invoke(new ChartDataDelegate(ChartDelegate), dataType, data);
 
            }
 
            else
 
            {
 
                if (firstTransmissionDatum)
 
                {
 
                    ClearTboxColor();
 
                }
 
                ///UNIVERSAL DATA TYPES
 
                if (dataType.Equals("t"))  //board temperature
 
                {
 
                    string dataString = data.ToString();
 
                    if (dataString.StartsWith("9")) //Master Module
 
                    {
 
                        tboxMasterBoardTemp.Text = dataString.Substring(1);
 
                        tboxMasterBoardTemp.BackColor = Color.Chartreuse;
 
                    }
 
                    else if (dataString.StartsWith("0")) //Atmo Module
 
                    {
 
                        tboxAtmoBoardTemp.Text = dataString.Substring(1);
 
                        tboxAtmoBoardTemp.BackColor = Color.Chartreuse;
 
                    }
 
                    else if (dataString.StartsWith("1")) //Geiger Module
 
                    {
 
                        tboxGeigerBoardTemp.Text = dataString.Substring(1);
 
                        tboxGeigerBoardTemp.BackColor = Color.Chartreuse;
 
                    }
 
                    else if (dataString.StartsWith("2")) //Camera Module
 
                    {
 
                        tboxCameraBoardTemp.Text = dataString.Substring(1);
 
                        tboxCameraBoardTemp.BackColor = Color.Chartreuse;
 
                    }
 
                }
 
                else if (dataType.Equals("l"))  //battery level
 
                {
 
                    string dataString = data.ToString();
 
                    if (dataString.StartsWith("9")) //Master Module
 
                    {
 
                        tboxMasterBatteryLevel.Text = dataString.Substring(1);
 
                        tboxMasterBatteryLevel.BackColor = Color.Chartreuse;
 
                    }
 
                    else if (dataString.StartsWith("0")) //Atmo Module
 
                    {
 
                        tboxAtmoBatteryLevel.Text = dataString.Substring(1);
 
                        tboxAtmoBatteryLevel.BackColor = Color.Chartreuse;
 
                    }
 
                    else if (dataString.StartsWith("1"))  //Geiger Module
 
                    {
 
                        tboxGeigerBatteryLevel.Text = dataString.Substring(1);
 
                        tboxGeigerBatteryLevel.BackColor = Color.Chartreuse;
 
                    }
 
                    else if (dataString.StartsWith("2")) //Camera Module
 
                    {
 
                        tboxCameraBatteryLevel.Text = dataString.Substring(1);
 
                        tboxCameraBatteryLevel.BackColor = Color.Chartreuse;
 
                    }
 
                }
 
                else if (dataType.Equals("i")) //Info Message
 
                {
 
                    AddTextDelegate("Info: " + data + "\r\n");
 
                }
 
                
 
                ///MASTER MODULE DATA TYPES
 
                else if (dataType.Equals("_"))  //latitude extra accuracy
 
                {
 
                    //TODO: check math and decimal placement
 
                    latitude += data.ToString();
 
                    tboxMasterLatitude.Text = latitude;
 
                    tboxMasterLatitude.BackColor = Color.Chartreuse;
 
                }
 
                else if (dataType.Equals("|"))  //longitude extra accuracy
 
                {
 
                    //TODO: check math and decimal placement
 
                    longitude += data.ToString();
 
                    tboxMasterLongitude.Text = longitude;
 
                    tboxMasterLongitude.BackColor = Color.Chartreuse;
 
                }
 
                else if (dataType.Equals("h"))  //HDOP
 
                {
 
                    tboxMasterHDOP.Text = data.ToString();
 
                    tboxMasterHDOP.BackColor = Color.Chartreuse;
 
                }
 
                else if (dataType.Equals("v"))  //Velocity
 
                {
 
                    chrtBottomRight.Series.FindByName("velocityTrend").Points.AddY(double.Parse(data));
 
                    velocitySum += double.Parse(data);
 
                    tboxMasterVelocity.Text = data.ToString();
 
                    tboxMasterVelocity.BackColor = Color.Chartreuse;
 
                }
 
                else if (dataType.Equals("s"))  //satellites in view
 
                {
 
                    tboxMasterSatellites.Text = data.ToString();
 
                    tboxMasterSatellites.BackColor = Color.Chartreuse;
 
                }
 
 
                ///ATMOSPHERIC MODULE DATA VALUES
 
                else if (dataType.Equals("C"))  //Air Temperature
 
                {
 
                    tboxAtmoAirTemp.Text = data.ToString();
 
                    tboxAtmoAirTemp.BackColor = Color.Chartreuse;
 
                }
 
                else if (dataType.Equals("L"))  //Ambient Light
 
                {
 
                    tboxAtmoLight.Text = data.ToString();
 
                    tboxAtmoLight.BackColor = Color.Chartreuse;
 
                }
 
                else if (dataType.Equals("H"))  //Humidity
 
                {
 
                    chrtTopRight.Series.FindByName("humidityTrend").Points.AddY(double.Parse(data));
 
                    humiditySum += double.Parse(data);
 
                    tboxAtmoHumidity.Text = data.ToString();
 
                    tboxAtmoHumidity.BackColor = Color.Chartreuse;
 
                }
 
                else if (dataType.Equals("P"))  //Pressure
 
                {
 
                    chrtBottomLeft.Series.FindByName("pressureTrend").Points.AddY(double.Parse(data));
 
                    pressureSum += double.Parse(data);
 
                    tboxAtmoPressure.Text = data.ToString();
 
                    tboxAtmoPressure.BackColor = Color.Chartreuse;
 
                }
 
                else if (dataType.Equals("A"))  //Altitude
 
                {
 
                    chrtTopLeft.Series.FindByName("altitudeTrend").Points.AddY(double.Parse(data));
 
                    altitudeSum += double.Parse(data);
 
                    tboxAtmoAltitude.Text = data.ToString();
 
                    tboxAtmoAltitude.BackColor = Color.Chartreuse;
 
                }
 
                
 
                ///GEIGER MODULE DATA VALUES
 
                else if (dataType.Equals("R"))  //radiation (CPM)
 
                {
 
                    tboxGeigerRads.Text = data.ToString();
 
                    tboxGeigerRads.BackColor = Color.Chartreuse;
 
                }
 
 
                /// CAMERA MODULE DATA VALUES
 
 
                //INVALID DATA TYPE
 
                else
 
                {
 
                    AddTextDelegate("Info: " + data + "\r\n");
 
                }
 
            }
 
        }
 
 
        private void ClearTboxColor()
 
        {
 
            //tboxAtmoHumidity.BorderStyle = BorderStyle.FixedSingle;
 
            tboxMasterBoardTemp.BackColor = Color.White;
 
            tboxAtmoBoardTemp.BackColor = Color.White;
 
            tboxGeigerBoardTemp.BackColor = Color.White;
 
            tboxCameraBoardTemp.BackColor = Color.White;
 
            tboxMasterBatteryLevel.BackColor = Color.White;
 
            tboxAtmoBatteryLevel.BackColor = Color.White;
 
            tboxGeigerBatteryLevel.BackColor = Color.White;
 
            tboxCameraBatteryLevel.BackColor = Color.White;
 
            tboxMasterLatitude.BackColor = Color.White;
 
            tboxMasterLongitude.BackColor = Color.White;
 
            tboxMasterHDOP.BackColor = Color.White;
 
            tboxMasterVelocity.BackColor = Color.White;
 
            tboxMasterSatellites.BackColor = Color.White;
 
            tboxAtmoAirTemp.BackColor = Color.White;
 
            tboxAtmoLight.BackColor = Color.White;
 
            tboxAtmoHumidity.BackColor = Color.White;
 
            tboxAtmoPressure.BackColor = Color.White;
 
            tboxAtmoAltitude.BackColor = Color.White;
 
            tboxGeigerRads.BackColor = Color.White;
 
            return;
 
        }
 
 
        #endregion
 
 
        #region testing
 
        
 
        //click event on the test button
 
        //currently simulates serial inputs
 
        string testData;
 
        int testIteration = 0;
 
        double testLat = 39.751248, testLng = -83.809848, testVelocity = 5.8, testAltitude = 100, testPressure = 700, testHumidity = 38;
 
        private void btnTest_Click(object sender, EventArgs e)
 
        {
 
            testLat += GetRandomNumber(-.005, .015);
 
            testLng += GetRandomNumber(-.005, .015);
 
            testVelocity += GetRandomNumber(1, 15);
 
            testAltitude += GetRandomNumber(50, 150);
 
            testPressure -= GetRandomNumber(10, 50);
 
            testHumidity -= GetRandomNumber(1, 3);
 
 
            switch (testIteration)
 
            {
 
                case 0:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude+" H"+testHumidity+" P"+testPressure;
 
                    testData = "KD8TDF-11>APRS,N8NQH-1,WIDE2*:/051919z3921.07N/08357.76WO63.36/41.178 ~v41.178~_937~|229~t929~s10~h0.79~t024~l056~t111~l10~P3411~C0~H999~A69147";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 1:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,N8NQH-1,WIDE2*:/051919z3921.20N/08357.31WO72.82/44.951 ~v44.951~_836~|685";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 2:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,N8NQH-1,WIDE2*:/051921z3921.71N/08355.84WO68.07/35.951 ~v35.951~_022~|024~t929~s10~h0.79~t022~l057~t111~l10~P3147~C0~H999~A70308";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 3:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,WC8EMA,WIDE2*:/051921z3921.71N/08355.84WO68.07/35.951 ~v35.951~_022~|024~t929~s10~h0.79~t022~l057~t111~l10~P3147~C0~H999~A70308";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 4:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051923z3922.04N/08354.25WO86.93/42.990 ~v42.990~_349~|968";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 5:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051924z3922.21N/08353.23WO84.56/30.156 ~v30.156~_164~|009";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 6:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,WC8EMA,WIDE2*:/051924z3922.21N/08353.23WO84.56/30.156 ~v30.156~_164~|009";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 7:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,WC8EMA,WIDE2*:/051925z3922.29N/08352.75WO70.13/40.926 ~v40.926~_762~|813~t930~s11~h0.74~t024~l056~t111~l10~P2814~C0~H999~A71889";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 8:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051928z3922.77N/08349.49WO80.58/48.331 ~v48.331~_045~|896~t930~s11~h0.73~t024~l056~t113~l10~P3205~C0~H999~A70046";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 9:
 
                    testData = "KD8TDF-9>APRS,WIDE2-1:/151916z" + testLat + "N/" + testLng + "WO005/0.013 V" + testVelocity + " A" + testAltitude + " H" + testHumidity + " P" + testPressure;
 
                    testData = "KD8TDF-11>APRS,N8NQH-1,WIDE2*:/051928z3922.77N/08349.49WO80.58/48.331 ~v48.331~_045~|896~t930~s11~h0.73~t024~l056~t113~l10~P3205~C0~H999~A70046";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 10:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051933z3923.24N/08346.56WO103.57/31.550 ~v31.550~_165~|142~t930~s10~h0.78~t022~l056~t113~l10~P7153~C0~H999~A57607";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 11:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051934z3923.38N/08345.75WO87.77/44.916 ~v44.916~_934~|738~t932~s10~h0.78~t022~l056~t113~l10~P8471~C0~H999~A54733";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 12:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051935z3923.42N/08345.41WO84.64/25.176 ~v25.176~_260~|774";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 13:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051937z3923.33N/08342.85WO87.66/35.760 ~v35.760~_489~|460~t929~s10~h0.87~t020~l056~t110~l10~P13239~C0~H999~A46693";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 14:
 
                    testData = "KD8TDF-11>APRS,WC8EMA,WIDE2*:/051937z3923.33N/08342.85WO87.66/35.760 ~v35.760~_489~|460~t929~s10~h0.87~t020~l056~t110~l10~P13239~C0~H999~A46693";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 15:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051938z3923.30N/08342.29WO93.89/39.613 ~v39.613~_208~|441";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 16:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051939z3923.28N/08341.71WO89.80/47.399 ~v47.399~_382~|785~t929~s10~h0.81~t020~l056~t110~l10~P15171~C0~H999~A44101";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 17:
 
                    testData = "KD8TDF-11>APRS,WC8EMA,WIDE2*:/051939z3923.28N/08341.71WO89.80/47.399 ~v47.399~_382~|785~t929~s10~h0.81~t020~l056~t110~l10~P15171~C0~H999~A44101";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 18:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051939z3923.29N/08341.21WO89.68/42.977 ~v42.977~_049~|692";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 19:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051940z3923.17N/08340.68WO104.09/41.096 ~v41.096~_196~|818~t928~s10~h0.81~t019~l056~t18~l10~P17216~C0~H999~A41631";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 20:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051940z3923.08N/08340.12WO99.91/40.414 ~v40.414~_749~|332";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 21:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051941z3923.06N/08339.67WO105.12/26.372 ~v26.372~_625~|764~t928~s10~h0.81~t019~l056~t16~l10~P19373~C0~H999~A39276";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 22:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051942z3922.93N/08339.26WO128.58/35.021 ~v35.021~_092~|564";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 23:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051942z3922.68N/08338.87WO136.93/37.963 ~v37.963~_409~|785~t926~s09~h0.87~t017~l056~t14~l10~P21733~C0~H999~A36927";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 24:
 
                    testData = "KD8TDF-11>APRS,WC8EMA,WIDE2*:/051942z3922.68N/08338.87WO136.93/37.963 ~v37.963~_409~|785~t926~s09~h0.87~t017~l056~t14~l10~P21733~C0~H999~A36927";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 25:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051943z3922.03N/08338.26WO160.38/56.614 ~v56.614~_060~|181~t924~s09~h0.87~t017~l056~t12~l10~P24231~C0~H999~A34657";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 26:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051944z3921.35N/08337.97WO163.68/88.044 ~v88.044~_733~|114";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 27:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051945z3920.52N/08337.69WO165.97/86.908 ~v86.908~_646~|070~t922~s09~h0.87~t015~l056~t11~l10~P26698~C0~H999~A32594";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 28:
 
                    testData = "KD8TDF-11>APRS,WC8EMA,WIDE2*:/051945z3920.52N/08337.69WO165.97/86.908 ~v86.908~_646~|070~t922~s09~h0.87~t015~l056~t11~l10~P26698~C0~H999~A32594";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 29:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051945z3919.65N/08337.35WO155.12/91.951 ~v91.951~_048~|484";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 30:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051946z3918.82N/08337.00WO159.97/90.062 ~v90.062~_362~|669~t920~s09~h0.96~t015~l056~t1-1~l10~P29320~C0~H999~A30566";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 31:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051946z3918.00N/08336.65WO158.88/83.565 ~v83.565~_177~|836";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 32:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051947z3917.24N/08336.30WO160.33/75.922 ~v75.922~_318~|316~t919~s09~h0.96~t013~l056~t11~l10~P31996~C0~H999~A28641";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 33:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051947z3916.50N/08335.94WO162.38/72.423 ~v72.423~_912~|245";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 34:
 
                    testData = "KD8TDF-11>APRS,WC8EMA,WIDE2*:/051947z3916.50N/08335.94WO162.38/72.423 ~v72.423~_912~|245";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 35:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051948z3915.80N/08335.61WO162.44/80.541 ~v80.541~_756~|326~t917~s08~h0.97~t013~l056~t12~l10~P34716~C0~H999~A26813";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 36:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051949z3915.10N/08335.30WO161.20/82.223 ~v82.223~_935~|370";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 37:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051949z3914.43N/08334.98WO159.63/62.921 ~v62.921~_493~|370~t915~s09~h0.89~t011~l056~t14~l10~P37541~C0~H999~A25036";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 38:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051950z3913.80N/08334.71WO164.45/64.565 ~v64.565~_434~|297";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 39:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051950z3913.22N/08334.46WO163.22/57.953 ~v57.953~_077~|680~t915~s09~h0.89~t011~l056~t16~l10~P40480~C0~H999~A23294";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 40:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051951z3912.62N/08334.20WO162.48/62.928 ~v62.928~_018~|886";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 41:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051952z3912.09N/08333.98WO158.93/62.192 ~v62.192~_550~|711~t913~s09~h0.90~t010~l056~t14~l10~P43509~C0~H999~A21607";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 42:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051952z3911.55N/08333.74WO160.42/53.084 ~v53.084~_827~|212";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 43:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051953z3911.02N/08333.46WO157.50/60.661 ~v60.661~_647~|296~t913~s09~h0.90~t010~l056~t12~l10~P46544~C0~H999~A20007";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 44:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051953z3910.49N/08333.21WO150.50/52.105 ~v52.105~_520~|688";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 45:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051954z3910.04N/08332.97WO146.63/42.412 ~v42.412~_652~|898~t911~s09~h0.99~t010~l056~t12~l10~P49829~C0~H999~A18370";
 
                    ParseIncomingData(testData);
 
                    break;
 
                case 46:
 
                    testData = "KD8TDF-11>APRS,WIDE2-1:/051955z3909.67N/08332.70WO147.20/47.361 ~v47.361~_446~|617";
 
                    ParseIncomingData(testData);
 
                    break;
 
                default:
 
                    break;
 
            }
 
            testIteration++;
 
        }
 
 
        public double GetRandomNumber(double minimum, double maximum)
 
        {
 
            Random random = new Random();
 
            return random.NextDouble() * (maximum - minimum) + minimum;
 
        }
 
 
        #endregion
 
 
 
    }
 
}
 
//TODO: CSV logging, offline caching
 
//weekly changes:   chart text display, map functionality[routes, layout, markers], find/remove unused code, 
 
//                  figured out caching but still needs to be tested
 
 
                  
 
\ No newline at end of file
Demo.WindowsForms/Source/Program.cs
Show inline comments
 
using System;
 
using System.Collections;
 
using System.Collections.Generic;
 
using System.Diagnostics;
 
using System.Net;
 
using System.Net.NetworkInformation;
 
using System.Runtime.InteropServices;
 
using System.Text;
 
using System.Windows.Forms;
 
using System.IO;
 
using System.IO.Ports;
 
using System.Threading;
 
 
namespace Demo.WindowsForms
 
{
 
   class Program
 
   {
 
      /// <summary>
 
      /// The main entry point for the application.
 
      /// </summary>
 
      /// 
 
       // Instantiate the communications port 
 
       private SerialPort port = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One);
 
       static MainForm windowGUI;
 
    class Program
 
    {
 
        /// <summary>
 
        /// The main entry point for the application.
 
        /// </summary>
 
        /// 
 
        // Instantiate the communications port 
 
        public SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
 
        static MainForm windowGUI;
 
 
      [STAThread]
 
      static void Main()
 
      {
 
          Application.SetCompatibleTextRenderingDefault(false);
 
          var program = new Program();
 
          windowGUI = new MainForm();
 
          program.SerialInitialize();
 
         Application.EnableVisualStyles();
 
        [STAThread]
 
        static void Main()
 
        {
 
            Application.SetCompatibleTextRenderingDefault(false);
 
            var program = new Program();
 
            windowGUI = new MainForm();
 
            program.SerialInitialize();
 
            Application.EnableVisualStyles();
 
 
         Application.Run(windowGUI);
 
      }
 
            Application.Run(windowGUI);
 
        }
 
 
      //inits the serial port and event handler
 
      private void SerialInitialize()
 
      {
 
          // http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx
 
          // Attach a method to be called when there is data waiting in the port's buffer
 
          port.DataReceived += new SerialDataReceivedEventHandler(ReceiveData);
 
        //inits the serial port and event handler
 
        public void SerialInitialize()
 
        {
 
            // http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx
 
            // Attach a method to be called when there is data waiting in the port's buffer
 
            port.DataReceived += new SerialDataReceivedEventHandler(ReceiveData);
 
 
          // Open the port for communications
 
          port.Open();
 
            // Open the port for communications
 
            port.Open();
 
 
      }
 
        }
 
 
      //process received data
 
      private void ReceiveData(object sender, SerialDataReceivedEventArgs e)
 
      {
 
          // Show all the incoming data in the port's buffer
 
          string testChk = port.ReadLine();
 
          windowGUI.ParseIncomingData(testChk);
 
      }
 
   }
 
        //process received data
 
        public void ReceiveData(object sender, SerialDataReceivedEventArgs e)
 
        {
 
            // Show all the incoming data in the port's buffer
 
            string testChk = port.ReadLine();
 
            windowGUI.ParseIncomingData(testChk);
 
        }
 
    }
 
 
   public class Dummy
 
   {
 
    //public class Dummy
 
    //{
 
 
   }
 
    //} - removed 4-15
 
 
   class IpInfo
 
   {
 
      public string Ip;
 
      //public int Port;
 
      //public TcpState State;
 
      //public string ProcessName;
 
    class IpInfo
 
    {
 
        public string Ip;
 
        //public int Port;
 
        //public TcpState State;
 
        //public string ProcessName;
 
 
      public string CountryName;
 
      public string RegionName;
 
      public string City;
 
      public double Latitude;
 
      public double Longitude;
 
      public DateTime CacheTime;
 
        public string CountryName;
 
        public string RegionName;
 
        public string City;
 
        public double Latitude;
 
        public double Longitude;
 
        public DateTime CacheTime;
 
 
      //public DateTime StatusTime;
 
      //public bool TracePoint;
 
   }
 
        //public DateTime StatusTime;
 
        //public bool TracePoint;
 
    }
 
 
   struct IpStatus
 
   {
 
      private string countryName;
 
      public string CountryName
 
      {
 
         get
 
         {
 
            return countryName;
 
         }
 
         set
 
         {
 
            countryName = value;
 
         }
 
      }
 
    struct IpStatus
 
    {
 
        private string countryName;
 
        public string CountryName
 
        {
 
            get
 
            {
 
                return countryName;
 
            }
 
            set
 
            {
 
                countryName = value;
 
            }
 
        }
 
 
      private int connectionsCount;
 
      public int ConnectionsCount
 
      {
 
         get
 
         {
 
            return connectionsCount;
 
         }
 
         set
 
         {
 
            connectionsCount = value;
 
         }
 
      }
 
   }
 
        private int connectionsCount;
 
        public int ConnectionsCount
 
        {
 
            get
 
            {
 
                return connectionsCount;
 
            }
 
            set
 
            {
 
                connectionsCount = value;
 
            }
 
        }
 
    }
 
 
   class DescendingComparer : IComparer<IpStatus>
 
   {
 
      public bool SortOnlyCountryName = false;
 
    class DescendingComparer : IComparer<IpStatus>
 
    {
 
        public bool SortOnlyCountryName = false;
 
 
      public int Compare(IpStatus x, IpStatus y)
 
      {
 
         int r = 0;
 
        public int Compare(IpStatus x, IpStatus y)
 
        {
 
            int r = 0;
 
 
         if(!SortOnlyCountryName)
 
         {
 
            r = y.ConnectionsCount.CompareTo(x.ConnectionsCount);
 
         }
 
            if (!SortOnlyCountryName)
 
            {
 
                r = y.ConnectionsCount.CompareTo(x.ConnectionsCount);
 
            }
 
 
         if(r == 0)
 
         {
 
            return x.CountryName.CompareTo(y.CountryName);
 
         }
 
         return r;
 
      }
 
   }
 
            if (r == 0)
 
            {
 
                return x.CountryName.CompareTo(y.CountryName);
 
            }
 
            return r;
 
        }
 
    }
 
 
   class TraceRoute
 
   {
 
      readonly static string Data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
 
      readonly static byte[] DataBuffer;
 
      readonly static int timeout = 8888;
 
    class TraceRoute
 
    {
 
        readonly static string Data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
 
        readonly static byte[] DataBuffer;
 
        readonly static int timeout = 8888;
 
 
      static TraceRoute()
 
      {
 
         DataBuffer = Encoding.ASCII.GetBytes(Data);
 
      }
 
        static TraceRoute()
 
        {
 
            DataBuffer = Encoding.ASCII.GetBytes(Data);
 
        }
 
 
      public static List<PingReply> GetTraceRoute(string hostNameOrAddress)
 
      {
 
         var ret = GetTraceRoute(hostNameOrAddress, 1);
 
        public static List<PingReply> GetTraceRoute(string hostNameOrAddress)
 
        {
 
            var ret = GetTraceRoute(hostNameOrAddress, 1);
 
 
         return ret;
 
      }
 
            return ret;
 
        }
 
 
      private static List<PingReply> GetTraceRoute(string hostNameOrAddress, int ttl)
 
      {
 
         List<PingReply> result = new List<PingReply>();
 
        private static List<PingReply> GetTraceRoute(string hostNameOrAddress, int ttl)
 
        {
 
            List<PingReply> result = new List<PingReply>();
 
 
         using(Ping pinger = new Ping())
 
         {
 
            PingOptions pingerOptions = new PingOptions(ttl, true);
 
            using (Ping pinger = new Ping())
 
            {
 
                PingOptions pingerOptions = new PingOptions(ttl, true);
 
 
            PingReply reply = pinger.Send(hostNameOrAddress, timeout, DataBuffer, pingerOptions);
 
                PingReply reply = pinger.Send(hostNameOrAddress, timeout, DataBuffer, pingerOptions);
 
 
            //Debug.WriteLine("GetTraceRoute[" + hostNameOrAddress + "]: " + reply.RoundtripTime + "ms " + reply.Address + " -> " + reply.Status);
 
                //Debug.WriteLine("GetTraceRoute[" + hostNameOrAddress + "]: " + reply.RoundtripTime + "ms " + reply.Address + " -> " + reply.Status);
 
 
            if(reply.Status == IPStatus.Success)
 
            {
 
               result.Add(reply);
 
            }
 
            else if(reply.Status == IPStatus.TtlExpired)
 
            {
 
               // add the currently returned address
 
               result.Add(reply);
 
                if (reply.Status == IPStatus.Success)
 
                {
 
                    result.Add(reply);
 
                }
 
                else if (reply.Status == IPStatus.TtlExpired)
 
                {
 
                    // add the currently returned address
 
                    result.Add(reply);
 
 
               // recurse to get the next address...
 
               result.AddRange(GetTraceRoute(hostNameOrAddress, ttl + 1));
 
                    // recurse to get the next address...
 
                    result.AddRange(GetTraceRoute(hostNameOrAddress, ttl + 1));
 
                }
 
                else
 
                {
 
                    Debug.WriteLine("GetTraceRoute: " + hostNameOrAddress + " - " + reply.Status);
 
                }
 
            }
 
            else
 
            {
 
               Debug.WriteLine("GetTraceRoute: " + hostNameOrAddress + " - " + reply.Status);
 
            }
 
         }
 
 
         return result;
 
      }
 
   }
 
            return result;
 
        }
 
    }
 
 
 
#if !MONO
 
   #region Managed IP Helper API
 
    #region Managed IP Helper API
 
 
   public struct TcpTable : IEnumerable<TcpRow>
 
   {
 
      #region Private Fields
 
    public struct TcpTable : IEnumerable<TcpRow>
 
    {
 
        #region Private Fields
 
 
      private IEnumerable<TcpRow> tcpRows;
 
        private IEnumerable<TcpRow> tcpRows;
 
 
      #endregion
 
        #endregion
 
 
      #region Constructors
 
        #region Constructors
 
 
      public TcpTable(IEnumerable<TcpRow> tcpRows)
 
      {
 
         this.tcpRows = tcpRows;
 
      }
 
        public TcpTable(IEnumerable<TcpRow> tcpRows)
 
        {
 
            this.tcpRows = tcpRows;
 
        }
 
 
      #endregion
 
        #endregion
 
 
      #region Public Properties
 
        #region Public Properties
 
 
      public IEnumerable<TcpRow> Rows
 
      {
 
         get
 
         {
 
            return this.tcpRows;
 
         }
 
      }
 
        public IEnumerable<TcpRow> Rows
 
        {
 
            get
 
            {
 
                return this.tcpRows;
 
            }
 
        }
 
 
      #endregion
 
        #endregion
 
 
      #region IEnumerable<TcpRow> Members
 
        #region IEnumerable<TcpRow> Members
 
 
      public IEnumerator<TcpRow> GetEnumerator()
 
      {
 
         return this.tcpRows.GetEnumerator();
 
      }
 
        public IEnumerator<TcpRow> GetEnumerator()
 
        {
 
            return this.tcpRows.GetEnumerator();
 
        }
 
 
      #endregion
 
        #endregion
 
 
      #region IEnumerable Members
 
        #region IEnumerable Members
 
 
      IEnumerator IEnumerable.GetEnumerator()
 
      {
 
         return this.tcpRows.GetEnumerator();
 
      }
 
        IEnumerator IEnumerable.GetEnumerator()
 
        {
 
            return this.tcpRows.GetEnumerator();
 
        }
 
 
      #endregion
 
   }
 
        #endregion
 
    }
 
 
   public struct TcpRow
 
   {
 
      #region Private Fields
 
    public struct TcpRow
 
    {
 
        #region Private Fields
 
 
      private IPEndPoint localEndPoint;
 
      private IPEndPoint remoteEndPoint;
 
      private TcpState state;
 
      private int processId;
 
        private IPEndPoint localEndPoint;
 
        private IPEndPoint remoteEndPoint;
 
        private TcpState state;
 
        private int processId;
 
 
      #endregion
 
        #endregion
 
 
      #region Constructors
 
        #region Constructors
 
 
      public TcpRow(IpHelper.TcpRow tcpRow)
 
      {
 
         this.state = tcpRow.state;
 
         this.processId = tcpRow.owningPid;
 
        public TcpRow(IpHelper.TcpRow tcpRow)
 
        {
 
            this.state = tcpRow.state;
 
            this.processId = tcpRow.owningPid;
 
 
         int localPort = (tcpRow.localPort1 << 8) + (tcpRow.localPort2) + (tcpRow.localPort3 << 24) + (tcpRow.localPort4 << 16);
 
         long localAddress = tcpRow.localAddr;
 
         this.localEndPoint = new IPEndPoint(localAddress, localPort);
 
            int localPort = (tcpRow.localPort1 << 8) + (tcpRow.localPort2) + (tcpRow.localPort3 << 24) + (tcpRow.localPort4 << 16);
 
            long localAddress = tcpRow.localAddr;
 
            this.localEndPoint = new IPEndPoint(localAddress, localPort);
 
 
         int remotePort = (tcpRow.remotePort1 << 8) + (tcpRow.remotePort2) + (tcpRow.remotePort3 << 24) + (tcpRow.remotePort4 << 16);
 
         long remoteAddress = tcpRow.remoteAddr;
 
         this.remoteEndPoint = new IPEndPoint(remoteAddress, remotePort);
 
      }
 
            int remotePort = (tcpRow.remotePort1 << 8) + (tcpRow.remotePort2) + (tcpRow.remotePort3 << 24) + (tcpRow.remotePort4 << 16);
 
            long remoteAddress = tcpRow.remoteAddr;
 
            this.remoteEndPoint = new IPEndPoint(remoteAddress, remotePort);
 
        }
 
 
      #endregion
 
        #endregion
 
 
      #region Public Properties
 
        #region Public Properties
 
 
      public IPEndPoint LocalEndPoint
 
      {
 
         get
 
         {
 
            return this.localEndPoint;
 
         }
 
      }
 
        public IPEndPoint LocalEndPoint
 
        {
 
            get
 
            {
 
                return this.localEndPoint;
 
            }
 
        }
 
 
      public IPEndPoint RemoteEndPoint
 
      {
 
         get
 
         {
 
            return this.remoteEndPoint;
 
         }
 
      }
 
        public IPEndPoint RemoteEndPoint
 
        {
 
            get
 
            {
 
                return this.remoteEndPoint;
 
            }
 
        }
 
 
      public TcpState State
 
      {
 
         get
 
         {
 
            return this.state;
 
         }
 
      }
 
        public TcpState State
 
        {
 
            get
 
            {
 
                return this.state;
 
            }
 
        }
 
 
      public int ProcessId
 
      {
 
         get
 
         {
 
            return this.processId;
 
         }
 
      }
 
        public int ProcessId
 
        {
 
            get
 
            {
 
                return this.processId;
 
            }
 
        }
 
 
      #endregion
 
   }
 
        #endregion
 
    }
 
 
   public static class ManagedIpHelper
 
   {
 
      public static readonly List<TcpRow> TcpRows = new List<TcpRow>();
 
    public static class ManagedIpHelper
 
    {
 
        public static readonly List<TcpRow> TcpRows = new List<TcpRow>();
 
 
      #region Public Methods
 
 
      public static void UpdateExtendedTcpTable(bool sorted)
 
      {
 
         TcpRows.Clear();
 
 
         IntPtr tcpTable = IntPtr.Zero;
 
         int tcpTableLength = 0;
 
        #region Public Methods
 
 
         if(IpHelper.GetExtendedTcpTable(tcpTable, ref tcpTableLength, sorted, IpHelper.AfInet, IpHelper.TcpTableType.OwnerPidConnections, 0) != 0)
 
         {
 
            try
 
            {
 
               tcpTable = Marshal.AllocHGlobal(tcpTableLength);
 
               if(IpHelper.GetExtendedTcpTable(tcpTable, ref tcpTableLength, true, IpHelper.AfInet, IpHelper.TcpTableType.OwnerPidConnections, 0) == 0)
 
               {
 
                  IpHelper.TcpTable table = (IpHelper.TcpTable)Marshal.PtrToStructure(tcpTable, typeof(IpHelper.TcpTable));
 
        public static void UpdateExtendedTcpTable(bool sorted)
 
        {
 
            TcpRows.Clear();
 
 
                  IntPtr rowPtr = (IntPtr)((long)tcpTable + Marshal.SizeOf(table.Length));
 
                  for(int i = 0; i < table.Length; ++i)
 
                  {
 
                     TcpRows.Add(new TcpRow((IpHelper.TcpRow)Marshal.PtrToStructure(rowPtr, typeof(IpHelper.TcpRow))));
 
                     rowPtr = (IntPtr)((long)rowPtr + Marshal.SizeOf(typeof(IpHelper.TcpRow)));
 
                  }
 
               }
 
            }
 
            finally
 
            IntPtr tcpTable = IntPtr.Zero;
 
            int tcpTableLength = 0;
 
 
            if (IpHelper.GetExtendedTcpTable(tcpTable, ref tcpTableLength, sorted, IpHelper.AfInet, IpHelper.TcpTableType.OwnerPidConnections, 0) != 0)
 
            {
 
               if(tcpTable != IntPtr.Zero)
 
               {
 
                  Marshal.FreeHGlobal(tcpTable);
 
               }
 
            }
 
         }
 
      }
 
 
      #endregion
 
   }
 
 
   #endregion
 
                try
 
                {
 
                    tcpTable = Marshal.AllocHGlobal(tcpTableLength);
 
                    if (IpHelper.GetExtendedTcpTable(tcpTable, ref tcpTableLength, true, IpHelper.AfInet, IpHelper.TcpTableType.OwnerPidConnections, 0) == 0)
 
                    {
 
                        IpHelper.TcpTable table = (IpHelper.TcpTable)Marshal.PtrToStructure(tcpTable, typeof(IpHelper.TcpTable));
 
 
   #region P/Invoke IP Helper API
 
                        IntPtr rowPtr = (IntPtr)((long)tcpTable + Marshal.SizeOf(table.Length));
 
                        for (int i = 0; i < table.Length; ++i)
 
                        {
 
                            TcpRows.Add(new TcpRow((IpHelper.TcpRow)Marshal.PtrToStructure(rowPtr, typeof(IpHelper.TcpRow))));
 
                            rowPtr = (IntPtr)((long)rowPtr + Marshal.SizeOf(typeof(IpHelper.TcpRow)));
 
                        }
 
                    }
 
                }
 
                finally
 
                {
 
                    if (tcpTable != IntPtr.Zero)
 
                    {
 
                        Marshal.FreeHGlobal(tcpTable);
 
                    }
 
                }
 
            }
 
        }
 
 
   /// <summary>
 
   /// <see cref="http://msdn2.microsoft.com/en-us/library/aa366073.aspx"/>
 
   /// </summary>
 
   public static class IpHelper
 
   {
 
      #region Public Fields
 
        #endregion
 
    }
 
 
    #endregion
 
 
    #region P/Invoke IP Helper API
 
 
      public const string DllName = "iphlpapi.dll";
 
      public const int AfInet = 2;
 
    /// <summary>
 
    /// <see cref="http://msdn2.microsoft.com/en-us/library/aa366073.aspx"/>
 
    /// </summary>
 
    public static class IpHelper
 
    {
 
        #region Public Fields
 
 
      #endregion
 
        public const string DllName = "iphlpapi.dll";
 
        public const int AfInet = 2;
 
 
      #region Public Methods
 
        #endregion
 
 
        #region Public Methods
 
 
      /// <summary>
 
      /// <see cref="http://msdn2.microsoft.com/en-us/library/aa365928.aspx"/>
 
      /// </summary>
 
      [DllImport(IpHelper.DllName, SetLastError = true)]
 
      public static extern uint GetExtendedTcpTable(IntPtr tcpTable, ref int tcpTableLength, bool sort, int ipVersion, TcpTableType tcpTableType, int reserved);
 
        /// <summary>
 
        /// <see cref="http://msdn2.microsoft.com/en-us/library/aa365928.aspx"/>
 
        /// </summary>
 
        [DllImport(IpHelper.DllName, SetLastError = true)]
 
        public static extern uint GetExtendedTcpTable(IntPtr tcpTable, ref int tcpTableLength, bool sort, int ipVersion, TcpTableType tcpTableType, int reserved);
 
 
      #endregion
 
        #endregion
 
 
      #region Public Enums
 
        #region Public Enums
 
 
      /// <summary>
 
      /// <see cref="http://msdn2.microsoft.com/en-us/library/aa366386.aspx"/>
 
      /// </summary>
 
      public enum TcpTableType
 
      {
 
         BasicListener,
 
         BasicConnections,
 
         BasicAll,
 
         OwnerPidListener,
 
         OwnerPidConnections,
 
         OwnerPidAll,
 
         OwnerModuleListener,
 
         OwnerModuleConnections,
 
         OwnerModuleAll,
 
      }
 
        /// <summary>
 
        /// <see cref="http://msdn2.microsoft.com/en-us/library/aa366386.aspx"/>
 
        /// </summary>
 
        public enum TcpTableType
 
        {
 
            BasicListener,
 
            BasicConnections,
 
            BasicAll,
 
            OwnerPidListener,
 
            OwnerPidConnections,
 
            OwnerPidAll,
 
            OwnerModuleListener,
 
            OwnerModuleConnections,
 
            OwnerModuleAll,
 
        }
 
 
      #endregion
 
        #endregion
 
 
      #region Public Structs
 
        #region Public Structs
 
 
      /// <summary>
 
      /// <see cref="http://msdn2.microsoft.com/en-us/library/aa366921.aspx"/>
 
      /// </summary>
 
      [StructLayout(LayoutKind.Sequential)]
 
      public struct TcpTable
 
      {
 
         public uint Length;
 
         public TcpRow row;
 
      }
 
        /// <summary>
 
        /// <see cref="http://msdn2.microsoft.com/en-us/library/aa366921.aspx"/>
 
        /// </summary>
 
        [StructLayout(LayoutKind.Sequential)]
 
        public struct TcpTable
 
        {
 
            public uint Length;
 
            public TcpRow row;
 
        }
 
 
      /// <summary>
 
      /// <see cref="http://msdn2.microsoft.com/en-us/library/aa366913.aspx"/>
 
      /// </summary>
 
      [StructLayout(LayoutKind.Sequential)]
 
      public struct TcpRow
 
      {
 
         public TcpState state;
 
         public uint localAddr;
 
         public byte localPort1;
 
         public byte localPort2;
 
         public byte localPort3;
 
         public byte localPort4;
 
         public uint remoteAddr;
 
         public byte remotePort1;
 
         public byte remotePort2;
 
         public byte remotePort3;
 
         public byte remotePort4;
 
         public int owningPid;
 
      }
 
        /// <summary>
 
        /// <see cref="http://msdn2.microsoft.com/en-us/library/aa366913.aspx"/>
 
        /// </summary>
 
        [StructLayout(LayoutKind.Sequential)]
 
        public struct TcpRow
 
        {
 
            public TcpState state;
 
            public uint localAddr;
 
            public byte localPort1;
 
            public byte localPort2;
 
            public byte localPort3;
 
            public byte localPort4;
 
            public uint remoteAddr;
 
            public byte remotePort1;
 
            public byte remotePort2;
 
            public byte remotePort3;
 
            public byte remotePort4;
 
            public int owningPid;
 
        }
 
 
      #endregion
 
   }
 
        #endregion
 
    }
 
 
   #endregion
 
    #endregion
 
#endif
 
}
0 comments (0 inline, 0 general)