Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 2235 → Rev 2236

/MKLiveView/Source/ExternControl.cs
0,0 → 1,105
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
 
namespace MKLiveView
{
class ExternControl
{
byte digital0;
byte digital1;
byte remoteVisualization;
sbyte pitch;
sbyte yaw;
sbyte roll;
byte throttle;
sbyte high; // affects the pressure sensor according to the MoteCtrl project comments
byte unused; // free unused byte
byte frameConfirmation; // confimation
byte config; // set to 1 to signal new command
 
public ExternControl(byte[] data)
{
Bytes = data;
}
 
public ExternControl(sbyte yaw, sbyte pitch, sbyte roll, byte throttle)
{
digital0 = 0;
digital1 = 0;
remoteVisualization = 0;
this.pitch = pitch;
this.roll = roll;
this.yaw = yaw;
this.throttle = throttle;
high = 0;
unused = 0;
frameConfirmation = 0;
config = 1;
}
 
public sbyte Pitch
{
get { return pitch; }
set { pitch = value; }
}
 
public sbyte Roll
{
get { return roll; }
set { roll = value; }
}
 
public sbyte Yaw
{
get { return yaw; }
set { yaw = value; }
}
 
public byte Throttle
{
get { return throttle; }
set { throttle = value; }
}
 
public byte[] Bytes
{
get
{
byte[] data = new byte[11];
 
data[0] = digital0;
data[1] = digital1;
data[2] = remoteVisualization;
data[3] = (byte)pitch;
data[4] = (byte)roll;
data[5] = (byte)yaw;
data[6] = throttle;
data[7] = (byte)high;
data[8] = unused;
data[9] = frameConfirmation;
data[10] = config;
 
return data;
}
set
{
Debug.Assert(value.Length >= 11);
 
digital0 = value[0];
digital1 = value[1];
remoteVisualization = value[2];
pitch = (sbyte)value[3];
roll = (sbyte)value[4];
yaw = (sbyte)value[5];
throttle = value[6];
high = (sbyte)value[7];
unused = value[8];
frameConfirmation = value[9];
config = value[10];
}
}
}
}
/MKLiveView/Source/FlightControllerMessage.cs
0,0 → 1,156
///============================================================================
/// This file is part of MIKROKOPTER SERIAL CONTROL TUTORIAL.
/// by JOHN C. MACDONALD at Ira A. Fulton College of Engineering and Technology
/// (http://hdl.lib.byu.edu/1877/2747)
/// (http://hdl.lib.byu.edu/1877/2748)
///============================================================================
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
 
namespace MKLiveView
{
static class FlightControllerMessage
{
public static byte[] CreateMessage(char commandId, byte address)
{
return CreateMessage(commandId, address, new byte[0]);
}
 
public static byte[] CreateMessage(char commandId, byte address, byte[] data)
{
List<byte> result = new List<byte>();
//Encoding.ASCII.GetBytes(command);
// add header
result.Add(Convert.ToByte('#'));
result.Add((byte)(Convert.ToByte('a') + address));
result.Add(Convert.ToByte(commandId));
 
// add data
result.AddRange(Encode64(data));
// add footer
result.AddRange(getCRCBytes(result.ToArray()));
result.Add(Convert.ToByte('\r'));
 
return result.ToArray();
}
 
public static void ParseMessage(byte[] message, out char commandId, out byte address, out byte[] data)
{
// Debug.Assert(message.Length >= 6);
if (message.Length >= 6)
{
// header
// '#' == message[0]
byte[] Data = new byte[message.Length - 3];
Array.Copy(message, 0, Data, 0, message.Length - 3);
byte[] crcData = getCRCBytes(Data);
 
if (crcData.Length == 2 && crcData[0] == message[message.Length - 3] && crcData[1] == message[message.Length - 2])
{
 
commandId = Convert.ToChar(message[2]);
address = (byte)(message[1] - Convert.ToByte('a'));
 
// data
data = Decode64(message, 3, message.Length - 6);
}
else
{
commandId = '\0';
address = 255;
data = null;
}
}
else
{
commandId = '\0';
address = 0;
data = null;
}
// footer
// CRC1 == message[message.Length - 3]
// CRC2 == message[message.Length - 2]
// '\r' == message[message.Length - 1]
}
 
public static byte[] Encode64(byte[] data)
{
List<byte> encodedData = new List<byte>();
 
byte a,b,c;
int index = 0;
byte k = Convert.ToByte('=');
 
while (index < data.Length)
{
if (index < data.Length) a = data[index++]; else a = 0;
if (index < data.Length) b = data[index++]; else b = 0;
if (index < data.Length) c = data[index++]; else c = 0;
 
encodedData.Add((byte)(k + (a >> 2)));
encodedData.Add((byte)(k + (((a & 0x03) << 4) | ((b & 0xf0) >> 4))));
encodedData.Add((byte)(k + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6))));
encodedData.Add((byte)(k + ( c & 0x3f)));
}
 
return encodedData.ToArray();
}
 
public static byte[] Decode64(byte[] data, int startIndex, int count)
{
// data should be in chunks of 4 right?
// Debug.Assert(count % 4 == 0);
 
List<byte> decodedData = new List<byte>();
 
byte k = Convert.ToByte('=');
byte a,b,c,d;
byte x,y,z;
int index = startIndex;
 
while (index <= count + startIndex - 4)
{
a = (byte)(data[index++] - k);
b = (byte)(data[index++] - k);
c = (byte)(data[index++] - k);
d = (byte)(data[index++] - k);
 
x = (byte)((a << 2) | (b >> 4));
y = (byte)(((b & 0x0f) << 4) | (c >> 2));
z = (byte)(((c & 0x03) << 6) | d);
 
decodedData.Add(x);
decodedData.Add(y);
decodedData.Add(z);
}
 
return decodedData.ToArray();
}
 
 
// cyclic redundancy check (CRC) or polynomial code checksum used to verify message
// it is an insecure hash function designed to detect accidental changes to raw computer data (wikipedia)
private static byte[] getCRCBytes(byte[] data)
{
byte[] crcBytes = new byte[2];
 
uint tmpCRC = 0;
for(int i = 0; i < data.Length ;i++)
{
tmpCRC += data[i];
}
tmpCRC %= 4096;
crcBytes[0] = (byte)(Convert.ToByte('=') + tmpCRC / 64);
crcBytes[1] = (byte)(Convert.ToByte('=') + tmpCRC % 64);
 
return crcBytes;
}
}
}
/MKLiveView/Source/MK.ico
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/MKLiveView/Source/MKLiveView.csproj
0,0 → 1,158
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{0B51DDDC-0917-493E-A0BD-73192A1C4649}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MKLiveView</RootNamespace>
<AssemblyName>MKLiveView</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>MK.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ExternControl.cs" />
<Compile Include="FlightControllerMessage.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="AvionicsInstrumentControl\AvionicsInstrumentControl.csproj">
<Project>{1D3163E6-DC65-4595-9D51-4FD9174F2F61}</Project>
<Name>AvionicsInstrumentControl</Name>
</ProjectReference>
<ProjectReference Include="ArtificialHorizon\ArtificialHorizon.vbproj">
<Project>{c5619ca3-e737-4a3b-ae7b-76e8a6ab4930}</Project>
<Name>ArtificialHorizon</Name>
</ProjectReference>
<ProjectReference Include="EasySerialPort\SimpleSerialPort.csproj">
<Project>{D7450AA6-F964-487D-B2AA-661D0908A7EE}</Project>
<Name>SimpleSerialPort</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Content Include="MK.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
/MKLiveView/Source/MKLiveView.csproj.user
0,0 → 1,13
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory />
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>de-DE</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>
/MKLiveView/Source/MKLiveView.sln
0,0 → 1,61

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.24720.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MKLiveView", "MKLiveView.csproj", "{0B51DDDC-0917-493E-A0BD-73192A1C4649}"
ProjectSection(ProjectDependencies) = postProject
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930} = {C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}
EndProjectSection
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ArtificialHorizon", "ArtificialHorizon\ArtificialHorizon.vbproj", "{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvionicsInstrumentControl", "AvionicsInstrumentControl\AvionicsInstrumentControl.csproj", "{1D3163E6-DC65-4595-9D51-4FD9174F2F61}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleSerialPort", "EasySerialPort\SimpleSerialPort.csproj", "{D7450AA6-F964-487D-B2AA-661D0908A7EE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0B51DDDC-0917-493E-A0BD-73192A1C4649}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0B51DDDC-0917-493E-A0BD-73192A1C4649}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0B51DDDC-0917-493E-A0BD-73192A1C4649}.Debug|x86.ActiveCfg = Debug|x86
{0B51DDDC-0917-493E-A0BD-73192A1C4649}.Debug|x86.Build.0 = Debug|x86
{0B51DDDC-0917-493E-A0BD-73192A1C4649}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B51DDDC-0917-493E-A0BD-73192A1C4649}.Release|Any CPU.Build.0 = Release|Any CPU
{0B51DDDC-0917-493E-A0BD-73192A1C4649}.Release|x86.ActiveCfg = Release|x86
{0B51DDDC-0917-493E-A0BD-73192A1C4649}.Release|x86.Build.0 = Release|x86
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}.Debug|x86.ActiveCfg = Debug|Any CPU
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}.Debug|x86.Build.0 = Debug|Any CPU
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}.Release|Any CPU.Build.0 = Release|Any CPU
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}.Release|x86.ActiveCfg = Release|Any CPU
{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}.Release|x86.Build.0 = Release|Any CPU
{1D3163E6-DC65-4595-9D51-4FD9174F2F61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1D3163E6-DC65-4595-9D51-4FD9174F2F61}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1D3163E6-DC65-4595-9D51-4FD9174F2F61}.Debug|x86.ActiveCfg = Debug|Any CPU
{1D3163E6-DC65-4595-9D51-4FD9174F2F61}.Debug|x86.Build.0 = Debug|Any CPU
{1D3163E6-DC65-4595-9D51-4FD9174F2F61}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1D3163E6-DC65-4595-9D51-4FD9174F2F61}.Release|Any CPU.Build.0 = Release|Any CPU
{1D3163E6-DC65-4595-9D51-4FD9174F2F61}.Release|x86.ActiveCfg = Release|Any CPU
{1D3163E6-DC65-4595-9D51-4FD9174F2F61}.Release|x86.Build.0 = Release|Any CPU
{D7450AA6-F964-487D-B2AA-661D0908A7EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D7450AA6-F964-487D-B2AA-661D0908A7EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D7450AA6-F964-487D-B2AA-661D0908A7EE}.Debug|x86.ActiveCfg = Debug|x86
{D7450AA6-F964-487D-B2AA-661D0908A7EE}.Debug|x86.Build.0 = Debug|x86
{D7450AA6-F964-487D-B2AA-661D0908A7EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7450AA6-F964-487D-B2AA-661D0908A7EE}.Release|Any CPU.Build.0 = Release|Any CPU
{D7450AA6-F964-487D-B2AA-661D0908A7EE}.Release|x86.ActiveCfg = Release|x86
{D7450AA6-F964-487D-B2AA-661D0908A7EE}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
/MKLiveView/Source/MainForm.Designer.cs
0,0 → 1,2017
namespace MKLiveView
{
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.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.btnReadDebugCont = new System.Windows.Forms.Button();
this.buttonReset = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.btnSwitchFC = new System.Windows.Forms.Button();
this.btnSwitchNC = new System.Windows.Forms.Button();
this.lblCtrl = new System.Windows.Forms.Label();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.rtfTerminal = new System.Windows.Forms.RichTextBox();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.groupBox37 = new System.Windows.Forms.GroupBox();
this.groupBox34 = new System.Windows.Forms.GroupBox();
this.chkbAutoOSD = new System.Windows.Forms.CheckBox();
this.chkbAutoBL = new System.Windows.Forms.CheckBox();
this.chkbAutoNav = new System.Windows.Forms.CheckBox();
this.chkbAutoDbg = new System.Windows.Forms.CheckBox();
this.cbTimingOSD = new System.Windows.Forms.ComboBox();
this.cbTimingBLCTRL = new System.Windows.Forms.ComboBox();
this.cbTimingNAV = new System.Windows.Forms.ComboBox();
this.cbTimingDebug = new System.Windows.Forms.ComboBox();
this.labelTimingOSD = new System.Windows.Forms.Label();
this.labelTimingBLCTRL = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.labelTimingNAV = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.labelTimingDebug = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.groupBox32 = new System.Windows.Forms.GroupBox();
this.button5 = new System.Windows.Forms.Button();
this.btnReadBLCtrl = new System.Windows.Forms.Button();
this.btnGetNaviData = new System.Windows.Forms.Button();
this.groupBox30 = new System.Windows.Forms.GroupBox();
this.simpleSerialPort = new SimpleSerialPort.SimpleSerialPort();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.btnOSDAuto = new System.Windows.Forms.Button();
this.btnOSD = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.btnReadFCFile = new System.Windows.Forms.Button();
this.btnLoadFCLabels = new System.Windows.Forms.Button();
this.btnSaveFCLabels = new System.Windows.Forms.Button();
this.lbLabels = new System.Windows.Forms.ListBox();
this.button2 = new System.Windows.Forms.Button();
this.lblFileName = new System.Windows.Forms.Label();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.groupBox36 = new System.Windows.Forms.GroupBox();
this.lblOSDPageNr = new System.Windows.Forms.Label();
this.rtfOSD = new System.Windows.Forms.RichTextBox();
this.cbOSD = new System.Windows.Forms.ComboBox();
this.btnOSDBackward = new System.Windows.Forms.Button();
this.btnOSDLeave = new System.Windows.Forms.Button();
this.btnOSDEnter = new System.Windows.Forms.Button();
this.btnOSDForward = new System.Windows.Forms.Button();
this.groupBox35 = new System.Windows.Forms.GroupBox();
this.lblCRCErr = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.lblLifeCounter = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.groupBox31 = new System.Windows.Forms.GroupBox();
this.lblNCCtrl = new System.Windows.Forms.Label();
this.groupBox27 = new System.Windows.Forms.GroupBox();
this.lblNCErrNmbr = new System.Windows.Forms.Label();
this.groupBox19 = new System.Windows.Forms.GroupBox();
this.lblNCSPI = new System.Windows.Forms.Label();
this.groupBox18 = new System.Windows.Forms.GroupBox();
this.lblNCI2C = new System.Windows.Forms.Label();
this.groupBox33 = new System.Windows.Forms.GroupBox();
this.lblNCDist = new System.Windows.Forms.Label();
this.groupBox26 = new System.Windows.Forms.GroupBox();
this.lblNCCap = new System.Windows.Forms.Label();
this.groupBox29 = new System.Windows.Forms.GroupBox();
this.lblNCFlTime = new System.Windows.Forms.Label();
this.groupBox28 = new System.Windows.Forms.GroupBox();
this.lblNCRC = new System.Windows.Forms.Label();
this.groupBox6 = new System.Windows.Forms.GroupBox();
this.groupBox9 = new System.Windows.Forms.GroupBox();
this.LBLNCM5Cur = new System.Windows.Forms.Label();
this.groupBox12 = new System.Windows.Forms.GroupBox();
this.LBLNCM8Temp = new System.Windows.Forms.Label();
this.groupBox15 = new System.Windows.Forms.GroupBox();
this.LBLNCM5Temp = new System.Windows.Forms.Label();
this.groupBox20 = new System.Windows.Forms.GroupBox();
this.LBLNCM7Temp = new System.Windows.Forms.Label();
this.groupBox21 = new System.Windows.Forms.GroupBox();
this.LBLNCM8Cur = new System.Windows.Forms.Label();
this.groupBox22 = new System.Windows.Forms.GroupBox();
this.LBLNCM6Cur = new System.Windows.Forms.Label();
this.groupBox23 = new System.Windows.Forms.GroupBox();
this.LBLNCM7Cur = new System.Windows.Forms.Label();
this.groupBox24 = new System.Windows.Forms.GroupBox();
this.LBLNCM6Temp = new System.Windows.Forms.Label();
this.groupBox7 = new System.Windows.Forms.GroupBox();
this.LBLNCM1Cur = new System.Windows.Forms.Label();
this.groupBox16 = new System.Windows.Forms.GroupBox();
this.LBLNCM4Temp = new System.Windows.Forms.Label();
this.groupBox8 = new System.Windows.Forms.GroupBox();
this.LBLNCM1Temp = new System.Windows.Forms.Label();
this.groupBox13 = new System.Windows.Forms.GroupBox();
this.LBLNCM3Temp = new System.Windows.Forms.Label();
this.groupBox17 = new System.Windows.Forms.GroupBox();
this.LBLNCM4Cur = new System.Windows.Forms.Label();
this.groupBox11 = new System.Windows.Forms.GroupBox();
this.LBLNCM2Cur = new System.Windows.Forms.Label();
this.groupBox14 = new System.Windows.Forms.GroupBox();
this.LBLNCM3Cur = new System.Windows.Forms.Label();
this.groupBox10 = new System.Windows.Forms.GroupBox();
this.LBLNCM2Temp = new System.Windows.Forms.Label();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.lblNCSat = new System.Windows.Forms.Label();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.lblNCMF = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.lblNCCur = new System.Windows.Forms.Label();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.lblNCVolt = new System.Windows.Forms.Label();
this.groupBox25 = new System.Windows.Forms.GroupBox();
this.lblNCGSpeed = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.lblNCAlt = new System.Windows.Forms.Label();
this.headingIndicator1 = new AvionicsInstrumentControl.HeadingIndicator();
this.artificialHorizon1 = new ArtificialHorizon.ArtificialHorizon();
this.lblNCCompass = new System.Windows.Forms.Label();
this.lblNCRoll = new System.Windows.Forms.Label();
this.lblNCPitch = new System.Windows.Forms.Label();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPageTesting = new System.Windows.Forms.TabPage();
this.btnConn = new System.Windows.Forms.Button();
this.rtfError = new System.Windows.Forms.RichTextBox();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.tabPage2.SuspendLayout();
this.groupBox37.SuspendLayout();
this.groupBox34.SuspendLayout();
this.groupBox32.SuspendLayout();
this.groupBox30.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.tabPage3.SuspendLayout();
this.groupBox36.SuspendLayout();
this.groupBox35.SuspendLayout();
this.groupBox31.SuspendLayout();
this.groupBox27.SuspendLayout();
this.groupBox19.SuspendLayout();
this.groupBox18.SuspendLayout();
this.groupBox33.SuspendLayout();
this.groupBox26.SuspendLayout();
this.groupBox29.SuspendLayout();
this.groupBox28.SuspendLayout();
this.groupBox6.SuspendLayout();
this.groupBox9.SuspendLayout();
this.groupBox12.SuspendLayout();
this.groupBox15.SuspendLayout();
this.groupBox20.SuspendLayout();
this.groupBox21.SuspendLayout();
this.groupBox22.SuspendLayout();
this.groupBox23.SuspendLayout();
this.groupBox24.SuspendLayout();
this.groupBox7.SuspendLayout();
this.groupBox16.SuspendLayout();
this.groupBox8.SuspendLayout();
this.groupBox13.SuspendLayout();
this.groupBox17.SuspendLayout();
this.groupBox11.SuspendLayout();
this.groupBox14.SuspendLayout();
this.groupBox10.SuspendLayout();
this.groupBox5.SuspendLayout();
this.groupBox4.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox25.SuspendLayout();
this.groupBox1.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tabPageTesting.SuspendLayout();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.SuspendLayout();
//
// btnReadDebugCont
//
this.btnReadDebugCont.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnReadDebugCont.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.btnReadDebugCont.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnReadDebugCont.Location = new System.Drawing.Point(806, 4);
this.btnReadDebugCont.Name = "btnReadDebugCont";
this.btnReadDebugCont.Size = new System.Drawing.Size(141, 55);
this.btnReadDebugCont.TabIndex = 26;
this.btnReadDebugCont.Text = "start automatic\r\ndata update";
this.btnReadDebugCont.UseVisualStyleBackColor = false;
this.btnReadDebugCont.Click += new System.EventHandler(this.btnReadDbgCont_Click);
//
// buttonReset
//
this.buttonReset.Location = new System.Drawing.Point(51, 174);
this.buttonReset.Name = "buttonReset";
this.buttonReset.Size = new System.Drawing.Size(116, 43);
this.buttonReset.TabIndex = 15;
this.buttonReset.Text = "Reset";
this.buttonReset.UseVisualStyleBackColor = true;
this.buttonReset.Click += new System.EventHandler(this.buttonReset_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(51, 121);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(116, 43);
this.button1.TabIndex = 16;
this.button1.Text = "Version";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.btnVersion_Click);
//
// btnSwitchFC
//
this.btnSwitchFC.Location = new System.Drawing.Point(51, 23);
this.btnSwitchFC.Name = "btnSwitchFC";
this.btnSwitchFC.Size = new System.Drawing.Size(116, 43);
this.btnSwitchFC.TabIndex = 26;
this.btnSwitchFC.Text = "switch to FC";
this.btnSwitchFC.UseVisualStyleBackColor = true;
this.btnSwitchFC.Click += new System.EventHandler(this.btnSwitchFC_Click);
//
// btnSwitchNC
//
this.btnSwitchNC.Location = new System.Drawing.Point(51, 67);
this.btnSwitchNC.Name = "btnSwitchNC";
this.btnSwitchNC.Size = new System.Drawing.Size(116, 43);
this.btnSwitchNC.TabIndex = 27;
this.btnSwitchNC.Text = "switch to NC";
this.btnSwitchNC.UseVisualStyleBackColor = true;
this.btnSwitchNC.Click += new System.EventHandler(this.btnSwitchNC_Click);
//
// lblCtrl
//
this.lblCtrl.AutoSize = true;
this.lblCtrl.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCtrl.Location = new System.Drawing.Point(10, 52);
this.lblCtrl.Name = "lblCtrl";
this.lblCtrl.Size = new System.Drawing.Size(24, 20);
this.lblCtrl.TabIndex = 16;
this.lblCtrl.Text = "...";
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.Interval = 4000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// rtfTerminal
//
this.rtfTerminal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.rtfTerminal.Location = new System.Drawing.Point(3, 2);
this.rtfTerminal.Name = "rtfTerminal";
this.rtfTerminal.Size = new System.Drawing.Size(259, 58);
this.rtfTerminal.TabIndex = 17;
this.rtfTerminal.Text = "";
//
// tabPage2
//
this.tabPage2.Controls.Add(this.groupBox37);
this.tabPage2.Controls.Add(this.groupBox34);
this.tabPage2.Controls.Add(this.groupBox32);
this.tabPage2.Controls.Add(this.groupBox30);
this.tabPage2.Controls.Add(this.dataGridView1);
this.tabPage2.Location = new System.Drawing.Point(4, 27);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(945, 482);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "Settings";
this.tabPage2.UseVisualStyleBackColor = true;
//
// groupBox37
//
this.groupBox37.Controls.Add(this.btnSwitchNC);
this.groupBox37.Controls.Add(this.btnSwitchFC);
this.groupBox37.Controls.Add(this.lblCtrl);
this.groupBox37.Controls.Add(this.buttonReset);
this.groupBox37.Controls.Add(this.button1);
this.groupBox37.Location = new System.Drawing.Point(463, 8);
this.groupBox37.Name = "groupBox37";
this.groupBox37.Size = new System.Drawing.Size(178, 230);
this.groupBox37.TabIndex = 35;
this.groupBox37.TabStop = false;
//
// groupBox34
//
this.groupBox34.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox34.Controls.Add(this.chkbAutoOSD);
this.groupBox34.Controls.Add(this.chkbAutoBL);
this.groupBox34.Controls.Add(this.chkbAutoNav);
this.groupBox34.Controls.Add(this.chkbAutoDbg);
this.groupBox34.Controls.Add(this.cbTimingOSD);
this.groupBox34.Controls.Add(this.cbTimingBLCTRL);
this.groupBox34.Controls.Add(this.cbTimingNAV);
this.groupBox34.Controls.Add(this.cbTimingDebug);
this.groupBox34.Controls.Add(this.labelTimingOSD);
this.groupBox34.Controls.Add(this.labelTimingBLCTRL);
this.groupBox34.Controls.Add(this.label5);
this.groupBox34.Controls.Add(this.labelTimingNAV);
this.groupBox34.Controls.Add(this.label4);
this.groupBox34.Controls.Add(this.labelTimingDebug);
this.groupBox34.Controls.Add(this.label3);
this.groupBox34.Controls.Add(this.label2);
this.groupBox34.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox34.Location = new System.Drawing.Point(711, 322);
this.groupBox34.Name = "groupBox34";
this.groupBox34.Size = new System.Drawing.Size(226, 150);
this.groupBox34.TabIndex = 34;
this.groupBox34.TabStop = false;
this.groupBox34.Text = "timings auto update (ms)";
//
// chkbAutoOSD
//
this.chkbAutoOSD.AutoSize = true;
this.chkbAutoOSD.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkbAutoOSD.Location = new System.Drawing.Point(201, 120);
this.chkbAutoOSD.Name = "chkbAutoOSD";
this.chkbAutoOSD.Size = new System.Drawing.Size(15, 14);
this.chkbAutoOSD.TabIndex = 10;
this.chkbAutoOSD.UseVisualStyleBackColor = true;
this.chkbAutoOSD.CheckedChanged += new System.EventHandler(this.chkbAutoOSD_CheckedChanged);
//
// chkbAutoBL
//
this.chkbAutoBL.AutoSize = true;
this.chkbAutoBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkbAutoBL.Location = new System.Drawing.Point(201, 94);
this.chkbAutoBL.Name = "chkbAutoBL";
this.chkbAutoBL.Size = new System.Drawing.Size(15, 14);
this.chkbAutoBL.TabIndex = 10;
this.chkbAutoBL.UseVisualStyleBackColor = true;
this.chkbAutoBL.CheckedChanged += new System.EventHandler(this.chkbAutoBL_CheckedChanged);
//
// chkbAutoNav
//
this.chkbAutoNav.AutoSize = true;
this.chkbAutoNav.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkbAutoNav.Location = new System.Drawing.Point(201, 67);
this.chkbAutoNav.Name = "chkbAutoNav";
this.chkbAutoNav.Size = new System.Drawing.Size(15, 14);
this.chkbAutoNav.TabIndex = 10;
this.chkbAutoNav.UseVisualStyleBackColor = true;
this.chkbAutoNav.CheckedChanged += new System.EventHandler(this.chkbAutoNav_CheckedChanged);
//
// chkbAutoDbg
//
this.chkbAutoDbg.AutoSize = true;
this.chkbAutoDbg.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkbAutoDbg.Location = new System.Drawing.Point(201, 41);
this.chkbAutoDbg.Name = "chkbAutoDbg";
this.chkbAutoDbg.Size = new System.Drawing.Size(15, 14);
this.chkbAutoDbg.TabIndex = 10;
this.chkbAutoDbg.UseVisualStyleBackColor = true;
this.chkbAutoDbg.CheckedChanged += new System.EventHandler(this.chkbAutoDbg_CheckedChanged);
//
// cbTimingOSD
//
this.cbTimingOSD.DropDownWidth = 60;
this.cbTimingOSD.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbTimingOSD.FormattingEnabled = true;
this.cbTimingOSD.Items.AddRange(new object[] {
"100",
"150",
"200",
"250",
"300",
"350",
"400",
"450",
"500",
"550",
"600",
"650",
"700",
"750",
"800",
"850",
"900",
"950",
"1000",
"1100",
"1200",
"1300",
"1400",
"1500",
"1600",
"1700",
"1800",
"1900",
"2000"});
this.cbTimingOSD.Location = new System.Drawing.Point(176, 114);
this.cbTimingOSD.Name = "cbTimingOSD";
this.cbTimingOSD.Size = new System.Drawing.Size(18, 26);
this.cbTimingOSD.TabIndex = 9;
this.cbTimingOSD.SelectedIndexChanged += new System.EventHandler(this.cbTimingOSD_SelectedIndexChanged);
//
// cbTimingBLCTRL
//
this.cbTimingBLCTRL.DropDownWidth = 60;
this.cbTimingBLCTRL.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbTimingBLCTRL.FormattingEnabled = true;
this.cbTimingBLCTRL.Items.AddRange(new object[] {
"100",
"150",
"200",
"250",
"300",
"350",
"400",
"450",
"500",
"550",
"600",
"650",
"700",
"750",
"800",
"850",
"900",
"950",
"1000",
"1100",
"1200",
"1300",
"1400",
"1500",
"1600",
"1700",
"1800",
"1900",
"2000"});
this.cbTimingBLCTRL.Location = new System.Drawing.Point(176, 87);
this.cbTimingBLCTRL.Name = "cbTimingBLCTRL";
this.cbTimingBLCTRL.Size = new System.Drawing.Size(18, 26);
this.cbTimingBLCTRL.TabIndex = 9;
this.cbTimingBLCTRL.SelectedIndexChanged += new System.EventHandler(this.cbTimingBLCTRL_SelectedIndexChanged);
//
// cbTimingNAV
//
this.cbTimingNAV.DropDownWidth = 60;
this.cbTimingNAV.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbTimingNAV.FormattingEnabled = true;
this.cbTimingNAV.Items.AddRange(new object[] {
"100",
"150",
"200",
"250",
"300",
"350",
"400",
"450",
"500",
"550",
"600",
"650",
"700",
"750",
"800",
"850",
"900",
"950",
"1000",
"1100",
"1200",
"1300",
"1400",
"1500",
"1600",
"1700",
"1800",
"1900",
"2000"});
this.cbTimingNAV.Location = new System.Drawing.Point(176, 60);
this.cbTimingNAV.Name = "cbTimingNAV";
this.cbTimingNAV.Size = new System.Drawing.Size(18, 26);
this.cbTimingNAV.TabIndex = 9;
this.cbTimingNAV.SelectedIndexChanged += new System.EventHandler(this.cbTimingNAV_SelectedIndexChanged);
//
// cbTimingDebug
//
this.cbTimingDebug.DropDownWidth = 60;
this.cbTimingDebug.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbTimingDebug.FormattingEnabled = true;
this.cbTimingDebug.Items.AddRange(new object[] {
"100",
"150",
"200",
"250",
"300",
"350",
"400",
"450",
"500",
"550",
"600",
"650",
"700",
"750",
"800",
"850",
"900",
"950",
"1000",
"1100",
"1200",
"1300",
"1400",
"1500",
"1600",
"1700",
"1800",
"1900",
"2000"});
this.cbTimingDebug.Location = new System.Drawing.Point(176, 33);
this.cbTimingDebug.Name = "cbTimingDebug";
this.cbTimingDebug.Size = new System.Drawing.Size(18, 26);
this.cbTimingDebug.TabIndex = 9;
this.cbTimingDebug.SelectedIndexChanged += new System.EventHandler(this.cbTimingDebug_SelectedIndexChanged);
//
// labelTimingOSD
//
this.labelTimingOSD.AutoSize = true;
this.labelTimingOSD.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelTimingOSD.Location = new System.Drawing.Point(142, 118);
this.labelTimingOSD.Name = "labelTimingOSD";
this.labelTimingOSD.Size = new System.Drawing.Size(12, 18);
this.labelTimingOSD.TabIndex = 8;
this.labelTimingOSD.Text = " ";
//
// labelTimingBLCTRL
//
this.labelTimingBLCTRL.AutoSize = true;
this.labelTimingBLCTRL.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelTimingBLCTRL.Location = new System.Drawing.Point(142, 91);
this.labelTimingBLCTRL.Name = "labelTimingBLCTRL";
this.labelTimingBLCTRL.Size = new System.Drawing.Size(12, 18);
this.labelTimingBLCTRL.TabIndex = 8;
this.labelTimingBLCTRL.Text = " ";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label5.Location = new System.Drawing.Point(10, 116);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(87, 18);
this.label5.TabIndex = 8;
this.label5.Text = "OSD values";
//
// labelTimingNAV
//
this.labelTimingNAV.AutoSize = true;
this.labelTimingNAV.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelTimingNAV.Location = new System.Drawing.Point(142, 65);
this.labelTimingNAV.Name = "labelTimingNAV";
this.labelTimingNAV.Size = new System.Drawing.Size(12, 18);
this.labelTimingNAV.TabIndex = 8;
this.labelTimingNAV.Text = " ";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label4.Location = new System.Drawing.Point(10, 90);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(116, 18);
this.label4.TabIndex = 8;
this.label4.Text = "BL-CTRL values";
//
// labelTimingDebug
//
this.labelTimingDebug.AutoSize = true;
this.labelTimingDebug.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelTimingDebug.Location = new System.Drawing.Point(142, 38);
this.labelTimingDebug.Name = "labelTimingDebug";
this.labelTimingDebug.Size = new System.Drawing.Size(12, 18);
this.labelTimingDebug.TabIndex = 8;
this.labelTimingDebug.Text = " ";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label3.Location = new System.Drawing.Point(10, 65);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(124, 18);
this.label3.TabIndex = 8;
this.label3.Text = "Nav-CTRL values";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(10, 40);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(94, 18);
this.label2.TabIndex = 8;
this.label2.Text = "debug values";
//
// groupBox32
//
this.groupBox32.Controls.Add(this.button5);
this.groupBox32.Controls.Add(this.btnReadBLCtrl);
this.groupBox32.Controls.Add(this.btnGetNaviData);
this.groupBox32.Location = new System.Drawing.Point(488, 315);
this.groupBox32.Name = "groupBox32";
this.groupBox32.Size = new System.Drawing.Size(153, 154);
this.groupBox32.TabIndex = 31;
this.groupBox32.TabStop = false;
this.groupBox32.Text = "onetime query";
//
// button5
//
this.button5.Location = new System.Drawing.Point(6, 23);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(133, 42);
this.button5.TabIndex = 19;
this.button5.Text = "read debug data";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.btnDbgData_Click);
//
// btnReadBLCtrl
//
this.btnReadBLCtrl.Location = new System.Drawing.Point(6, 105);
this.btnReadBLCtrl.Name = "btnReadBLCtrl";
this.btnReadBLCtrl.Size = new System.Drawing.Size(133, 42);
this.btnReadBLCtrl.TabIndex = 29;
this.btnReadBLCtrl.Text = "read BLCtrl";
this.btnReadBLCtrl.UseVisualStyleBackColor = true;
this.btnReadBLCtrl.Click += new System.EventHandler(this.btnReadBLCtrl_Click);
//
// btnGetNaviData
//
this.btnGetNaviData.Location = new System.Drawing.Point(6, 64);
this.btnGetNaviData.Name = "btnGetNaviData";
this.btnGetNaviData.Size = new System.Drawing.Size(133, 42);
this.btnGetNaviData.TabIndex = 29;
this.btnGetNaviData.Text = "read Navi Data";
this.btnGetNaviData.UseVisualStyleBackColor = true;
this.btnGetNaviData.Click += new System.EventHandler(this.btnGetNaviData_Click);
//
// groupBox30
//
this.groupBox30.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox30.Controls.Add(this.simpleSerialPort);
this.groupBox30.Location = new System.Drawing.Point(678, 8);
this.groupBox30.Name = "groupBox30";
this.groupBox30.Size = new System.Drawing.Size(259, 297);
this.groupBox30.TabIndex = 30;
this.groupBox30.TabStop = false;
this.groupBox30.Text = "Serial connection";
//
// simpleSerialPort
//
this.simpleSerialPort.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.simpleSerialPort.Location = new System.Drawing.Point(24, 19);
this.simpleSerialPort.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.simpleSerialPort.Name = "simpleSerialPort";
this.simpleSerialPort.Size = new System.Drawing.Size(235, 280);
this.simpleSerialPort.TabIndex = 0;
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.AllowUserToResizeColumns = false;
this.dataGridView1.AllowUserToResizeRows = false;
this.dataGridView1.BackgroundColor = System.Drawing.SystemColors.Window;
this.dataGridView1.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.ColumnHeadersVisible = false;
this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this.dataGridView1.EnableHeadersVisualStyles = false;
this.dataGridView1.Location = new System.Drawing.Point(7, 8);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowHeadersVisible = false;
this.dataGridView1.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dataGridView1.RowTemplate.Height = 14;
this.dataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.None;
this.dataGridView1.Size = new System.Drawing.Size(213, 461);
this.dataGridView1.TabIndex = 0;
//
// btnOSDAuto
//
this.btnOSDAuto.Location = new System.Drawing.Point(768, 158);
this.btnOSDAuto.Name = "btnOSDAuto";
this.btnOSDAuto.Size = new System.Drawing.Size(131, 41);
this.btnOSDAuto.TabIndex = 33;
this.btnOSDAuto.Text = "OSD Auto";
this.btnOSDAuto.UseVisualStyleBackColor = true;
this.btnOSDAuto.Visible = false;
this.btnOSDAuto.Click += new System.EventHandler(this.btnOSDAuto_Click);
//
// btnOSD
//
this.btnOSD.Location = new System.Drawing.Point(768, 111);
this.btnOSD.Name = "btnOSD";
this.btnOSD.Size = new System.Drawing.Size(131, 41);
this.btnOSD.TabIndex = 33;
this.btnOSD.Text = "OSD";
this.btnOSD.UseVisualStyleBackColor = true;
this.btnOSD.Visible = false;
this.btnOSD.Click += new System.EventHandler(this.btnOSD_Click);
//
// button4
//
this.button4.Location = new System.Drawing.Point(768, 64);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(131, 41);
this.button4.TabIndex = 33;
this.button4.Text = "version NC";
this.button4.UseVisualStyleBackColor = true;
this.button4.Visible = false;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(768, 22);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(131, 36);
this.button3.TabIndex = 32;
this.button3.Text = "version FC";
this.button3.UseVisualStyleBackColor = true;
this.button3.Visible = false;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// btnReadFCFile
//
this.btnReadFCFile.Location = new System.Drawing.Point(340, 17);
this.btnReadFCFile.Name = "btnReadFCFile";
this.btnReadFCFile.Size = new System.Drawing.Size(86, 28);
this.btnReadFCFile.TabIndex = 25;
this.btnReadFCFile.Text = "read file";
this.btnReadFCFile.UseVisualStyleBackColor = true;
this.btnReadFCFile.Click += new System.EventHandler(this.btnReadLabelFile_Click);
//
// btnLoadFCLabels
//
this.btnLoadFCLabels.Location = new System.Drawing.Point(145, 89);
this.btnLoadFCLabels.Name = "btnLoadFCLabels";
this.btnLoadFCLabels.Size = new System.Drawing.Size(75, 36);
this.btnLoadFCLabels.TabIndex = 24;
this.btnLoadFCLabels.Text = "< Load";
this.btnLoadFCLabels.UseVisualStyleBackColor = true;
this.btnLoadFCLabels.Click += new System.EventHandler(this.btnLoadLabels_Click);
//
// btnSaveFCLabels
//
this.btnSaveFCLabels.Location = new System.Drawing.Point(145, 49);
this.btnSaveFCLabels.Name = "btnSaveFCLabels";
this.btnSaveFCLabels.Size = new System.Drawing.Size(75, 36);
this.btnSaveFCLabels.TabIndex = 23;
this.btnSaveFCLabels.Text = "Save >";
this.btnSaveFCLabels.UseVisualStyleBackColor = true;
this.btnSaveFCLabels.Click += new System.EventHandler(this.btnSaveLabels_Click);
//
// lbLabels
//
this.lbLabels.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbLabels.Location = new System.Drawing.Point(226, 49);
this.lbLabels.Name = "lbLabels";
this.lbLabels.Size = new System.Drawing.Size(200, 433);
this.lbLabels.TabIndex = 22;
//
// button2
//
this.button2.Location = new System.Drawing.Point(145, 147);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 52);
this.button2.TabIndex = 18;
this.button2.Text = "get Analog labels";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.btnAnalogLabels_Click);
//
// lblFileName
//
this.lblFileName.AutoSize = true;
this.lblFileName.Location = new System.Drawing.Point(225, 26);
this.lblFileName.Name = "lblFileName";
this.lblFileName.Size = new System.Drawing.Size(136, 18);
this.lblFileName.TabIndex = 8;
this.lblFileName.Text = "1234567890123456";
//
// tabPage3
//
this.tabPage3.Controls.Add(this.groupBox36);
this.tabPage3.Controls.Add(this.groupBox35);
this.tabPage3.Controls.Add(this.groupBox33);
this.tabPage3.Controls.Add(this.groupBox26);
this.tabPage3.Controls.Add(this.groupBox29);
this.tabPage3.Controls.Add(this.groupBox28);
this.tabPage3.Controls.Add(this.groupBox6);
this.tabPage3.Controls.Add(this.groupBox5);
this.tabPage3.Controls.Add(this.groupBox4);
this.tabPage3.Controls.Add(this.groupBox3);
this.tabPage3.Controls.Add(this.groupBox2);
this.tabPage3.Controls.Add(this.groupBox25);
this.tabPage3.Controls.Add(this.groupBox1);
this.tabPage3.Controls.Add(this.headingIndicator1);
this.tabPage3.Controls.Add(this.artificialHorizon1);
this.tabPage3.Controls.Add(this.lblNCCompass);
this.tabPage3.Controls.Add(this.lblNCRoll);
this.tabPage3.Controls.Add(this.lblNCPitch);
this.tabPage3.Location = new System.Drawing.Point(4, 27);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(945, 481);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "Visual";
this.tabPage3.UseVisualStyleBackColor = true;
//
// groupBox36
//
this.groupBox36.Controls.Add(this.lblOSDPageNr);
this.groupBox36.Controls.Add(this.rtfOSD);
this.groupBox36.Controls.Add(this.cbOSD);
this.groupBox36.Controls.Add(this.btnOSDBackward);
this.groupBox36.Controls.Add(this.btnOSDLeave);
this.groupBox36.Controls.Add(this.btnOSDEnter);
this.groupBox36.Controls.Add(this.btnOSDForward);
this.groupBox36.Location = new System.Drawing.Point(517, 12);
this.groupBox36.Name = "groupBox36";
this.groupBox36.Size = new System.Drawing.Size(280, 160);
this.groupBox36.TabIndex = 36;
this.groupBox36.TabStop = false;
this.groupBox36.Text = "OSD";
//
// lblOSDPageNr
//
this.lblOSDPageNr.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblOSDPageNr.AutoSize = true;
this.lblOSDPageNr.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblOSDPageNr.Location = new System.Drawing.Point(225, 101);
this.lblOSDPageNr.Name = "lblOSDPageNr";
this.lblOSDPageNr.Size = new System.Drawing.Size(15, 16);
this.lblOSDPageNr.TabIndex = 11;
this.lblOSDPageNr.Text = "0";
//
// rtfOSD
//
this.rtfOSD.Font = new System.Drawing.Font("Consolas", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtfOSD.Location = new System.Drawing.Point(9, 27);
this.rtfOSD.Name = "rtfOSD";
this.rtfOSD.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None;
this.rtfOSD.Size = new System.Drawing.Size(208, 96);
this.rtfOSD.TabIndex = 29;
this.rtfOSD.Text = "";
this.rtfOSD.WordWrap = false;
//
// cbOSD
//
this.cbOSD.DropDownWidth = 45;
this.cbOSD.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbOSD.FormattingEnabled = true;
this.cbOSD.Location = new System.Drawing.Point(255, 95);
this.cbOSD.MaxDropDownItems = 32;
this.cbOSD.Name = "cbOSD";
this.cbOSD.Size = new System.Drawing.Size(19, 28);
this.cbOSD.TabIndex = 35;
this.cbOSD.SelectedIndexChanged += new System.EventHandler(this.cbOSD_SelectedIndexChanged);
//
// btnOSDBackward
//
this.btnOSDBackward.Font = new System.Drawing.Font("Wingdings 3", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.btnOSDBackward.Location = new System.Drawing.Point(220, 59);
this.btnOSDBackward.Name = "btnOSDBackward";
this.btnOSDBackward.Size = new System.Drawing.Size(55, 31);
this.btnOSDBackward.TabIndex = 34;
this.btnOSDBackward.Text = "Å";
this.btnOSDBackward.UseVisualStyleBackColor = true;
this.btnOSDBackward.Click += new System.EventHandler(this.btnOSDBackward_Click);
//
// btnOSDLeave
//
this.btnOSDLeave.Font = new System.Drawing.Font("Wingdings", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.btnOSDLeave.Location = new System.Drawing.Point(161, 124);
this.btnOSDLeave.Name = "btnOSDLeave";
this.btnOSDLeave.Size = new System.Drawing.Size(55, 31);
this.btnOSDLeave.TabIndex = 34;
this.btnOSDLeave.UseVisualStyleBackColor = true;
this.btnOSDLeave.Click += new System.EventHandler(this.btnOSDLeave_Click);
//
// btnOSDEnter
//
this.btnOSDEnter.Font = new System.Drawing.Font("Wingdings", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.btnOSDEnter.Location = new System.Drawing.Point(104, 124);
this.btnOSDEnter.Name = "btnOSDEnter";
this.btnOSDEnter.Size = new System.Drawing.Size(55, 31);
this.btnOSDEnter.TabIndex = 34;
this.btnOSDEnter.UseVisualStyleBackColor = true;
this.btnOSDEnter.Click += new System.EventHandler(this.btnOSDEnter_Click);
//
// btnOSDForward
//
this.btnOSDForward.Font = new System.Drawing.Font("Wingdings 3", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.btnOSDForward.Location = new System.Drawing.Point(220, 27);
this.btnOSDForward.Name = "btnOSDForward";
this.btnOSDForward.Size = new System.Drawing.Size(55, 31);
this.btnOSDForward.TabIndex = 34;
this.btnOSDForward.Text = "Æ";
this.btnOSDForward.UseVisualStyleBackColor = true;
this.btnOSDForward.Click += new System.EventHandler(this.btnOSDForward_Click);
//
// groupBox35
//
this.groupBox35.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox35.Controls.Add(this.lblCRCErr);
this.groupBox35.Controls.Add(this.label6);
this.groupBox35.Controls.Add(this.lblLifeCounter);
this.groupBox35.Controls.Add(this.label1);
this.groupBox35.Controls.Add(this.groupBox31);
this.groupBox35.Controls.Add(this.groupBox27);
this.groupBox35.Controls.Add(this.groupBox19);
this.groupBox35.Controls.Add(this.groupBox18);
this.groupBox35.Location = new System.Drawing.Point(834, 226);
this.groupBox35.Name = "groupBox35";
this.groupBox35.Size = new System.Drawing.Size(105, 249);
this.groupBox35.TabIndex = 11;
this.groupBox35.TabStop = false;
//
// lblCRCErr
//
this.lblCRCErr.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblCRCErr.AutoSize = true;
this.lblCRCErr.Font = new System.Drawing.Font("Arial Narrow", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCRCErr.Location = new System.Drawing.Point(86, 228);
this.lblCRCErr.Name = "lblCRCErr";
this.lblCRCErr.Size = new System.Drawing.Size(14, 16);
this.lblCRCErr.TabIndex = 12;
this.lblCRCErr.Text = "0";
//
// label6
//
this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("Arial Narrow", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label6.Location = new System.Drawing.Point(6, 228);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(61, 16);
this.label6.TabIndex = 11;
this.label6.Text = "CRC-Error";
//
// lblLifeCounter
//
this.lblLifeCounter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblLifeCounter.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.lblLifeCounter.Location = new System.Drawing.Point(87, 209);
this.lblLifeCounter.Name = "lblLifeCounter";
this.lblLifeCounter.Size = new System.Drawing.Size(14, 14);
this.lblLifeCounter.TabIndex = 10;
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Arial Narrow", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(5, 208);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(79, 16);
this.label1.TabIndex = 9;
this.label1.Text = "Communication";
//
// groupBox31
//
this.groupBox31.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox31.Controls.Add(this.lblNCCtrl);
this.groupBox31.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox31.Location = new System.Drawing.Point(13, 14);
this.groupBox31.Name = "groupBox31";
this.groupBox31.Size = new System.Drawing.Size(86, 39);
this.groupBox31.TabIndex = 8;
this.groupBox31.TabStop = false;
this.groupBox31.Text = "Controller";
//
// lblNCCtrl
//
this.lblNCCtrl.AutoSize = true;
this.lblNCCtrl.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCCtrl.Location = new System.Drawing.Point(6, 16);
this.lblNCCtrl.Name = "lblNCCtrl";
this.lblNCCtrl.Size = new System.Drawing.Size(61, 20);
this.lblNCCtrl.TabIndex = 0;
this.lblNCCtrl.Text = "FC/NC";
//
// groupBox27
//
this.groupBox27.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox27.Controls.Add(this.lblNCErrNmbr);
this.groupBox27.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox27.Location = new System.Drawing.Point(13, 156);
this.groupBox27.Name = "groupBox27";
this.groupBox27.Size = new System.Drawing.Size(86, 39);
this.groupBox27.TabIndex = 7;
this.groupBox27.TabStop = false;
this.groupBox27.Text = "NC Error #";
//
// lblNCErrNmbr
//
this.lblNCErrNmbr.AutoSize = true;
this.lblNCErrNmbr.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCErrNmbr.Location = new System.Drawing.Point(6, 16);
this.lblNCErrNmbr.Name = "lblNCErrNmbr";
this.lblNCErrNmbr.Size = new System.Drawing.Size(52, 20);
this.lblNCErrNmbr.TabIndex = 0;
this.lblNCErrNmbr.Text = "NCErr";
//
// groupBox19
//
this.groupBox19.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox19.Controls.Add(this.lblNCSPI);
this.groupBox19.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox19.Location = new System.Drawing.Point(13, 113);
this.groupBox19.Name = "groupBox19";
this.groupBox19.Size = new System.Drawing.Size(86, 39);
this.groupBox19.TabIndex = 7;
this.groupBox19.TabStop = false;
this.groupBox19.Text = "SPI Error";
//
// lblNCSPI
//
this.lblNCSPI.AutoSize = true;
this.lblNCSPI.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCSPI.Location = new System.Drawing.Point(6, 16);
this.lblNCSPI.Name = "lblNCSPI";
this.lblNCSPI.Size = new System.Drawing.Size(35, 20);
this.lblNCSPI.TabIndex = 0;
this.lblNCSPI.Text = "SPI";
//
// groupBox18
//
this.groupBox18.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox18.Controls.Add(this.lblNCI2C);
this.groupBox18.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox18.Location = new System.Drawing.Point(13, 70);
this.groupBox18.Name = "groupBox18";
this.groupBox18.Size = new System.Drawing.Size(86, 39);
this.groupBox18.TabIndex = 6;
this.groupBox18.TabStop = false;
this.groupBox18.Text = "I2C Error";
//
// lblNCI2C
//
this.lblNCI2C.AutoSize = true;
this.lblNCI2C.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCI2C.Location = new System.Drawing.Point(6, 16);
this.lblNCI2C.Name = "lblNCI2C";
this.lblNCI2C.Size = new System.Drawing.Size(34, 20);
this.lblNCI2C.TabIndex = 0;
this.lblNCI2C.Text = "I2C";
//
// groupBox33
//
this.groupBox33.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox33.Controls.Add(this.lblNCDist);
this.groupBox33.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox33.Location = new System.Drawing.Point(803, 131);
this.groupBox33.Name = "groupBox33";
this.groupBox33.Size = new System.Drawing.Size(135, 57);
this.groupBox33.TabIndex = 4;
this.groupBox33.TabStop = false;
this.groupBox33.Text = "Distance (HP)";
//
// lblNCDist
//
this.lblNCDist.AutoSize = true;
this.lblNCDist.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCDist.Location = new System.Drawing.Point(5, 23);
this.lblNCDist.Name = "lblNCDist";
this.lblNCDist.Size = new System.Drawing.Size(54, 29);
this.lblNCDist.TabIndex = 0;
this.lblNCDist.Text = "Dist";
//
// groupBox26
//
this.groupBox26.Controls.Add(this.lblNCCap);
this.groupBox26.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox26.Location = new System.Drawing.Point(7, 128);
this.groupBox26.Name = "groupBox26";
this.groupBox26.Size = new System.Drawing.Size(124, 52);
this.groupBox26.TabIndex = 8;
this.groupBox26.TabStop = false;
this.groupBox26.Text = "Capacity used";
//
// lblNCCap
//
this.lblNCCap.AutoSize = true;
this.lblNCCap.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCCap.Location = new System.Drawing.Point(3, 19);
this.lblNCCap.Name = "lblNCCap";
this.lblNCCap.Size = new System.Drawing.Size(57, 29);
this.lblNCCap.TabIndex = 0;
this.lblNCCap.Text = "Cap";
//
// groupBox29
//
this.groupBox29.Controls.Add(this.lblNCFlTime);
this.groupBox29.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox29.Location = new System.Drawing.Point(7, 195);
this.groupBox29.Name = "groupBox29";
this.groupBox29.Size = new System.Drawing.Size(100, 39);
this.groupBox29.TabIndex = 7;
this.groupBox29.TabStop = false;
this.groupBox29.Text = "Flying time";
//
// lblNCFlTime
//
this.lblNCFlTime.AutoSize = true;
this.lblNCFlTime.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCFlTime.Location = new System.Drawing.Point(6, 16);
this.lblNCFlTime.Name = "lblNCFlTime";
this.lblNCFlTime.Size = new System.Drawing.Size(53, 20);
this.lblNCFlTime.TabIndex = 0;
this.lblNCFlTime.Text = "FTime";
//
// groupBox28
//
this.groupBox28.Controls.Add(this.lblNCRC);
this.groupBox28.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox28.Location = new System.Drawing.Point(7, 241);
this.groupBox28.Name = "groupBox28";
this.groupBox28.Size = new System.Drawing.Size(100, 39);
this.groupBox28.TabIndex = 7;
this.groupBox28.TabStop = false;
this.groupBox28.Text = "RC quality";
//
// lblNCRC
//
this.lblNCRC.AutoSize = true;
this.lblNCRC.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCRC.Location = new System.Drawing.Point(6, 16);
this.lblNCRC.Name = "lblNCRC";
this.lblNCRC.Size = new System.Drawing.Size(32, 20);
this.lblNCRC.TabIndex = 0;
this.lblNCRC.Text = "RC";
//
// groupBox6
//
this.groupBox6.Controls.Add(this.groupBox9);
this.groupBox6.Controls.Add(this.groupBox12);
this.groupBox6.Controls.Add(this.groupBox15);
this.groupBox6.Controls.Add(this.groupBox20);
this.groupBox6.Controls.Add(this.groupBox21);
this.groupBox6.Controls.Add(this.groupBox22);
this.groupBox6.Controls.Add(this.groupBox23);
this.groupBox6.Controls.Add(this.groupBox24);
this.groupBox6.Controls.Add(this.groupBox7);
this.groupBox6.Controls.Add(this.groupBox16);
this.groupBox6.Controls.Add(this.groupBox8);
this.groupBox6.Controls.Add(this.groupBox13);
this.groupBox6.Controls.Add(this.groupBox17);
this.groupBox6.Controls.Add(this.groupBox11);
this.groupBox6.Controls.Add(this.groupBox14);
this.groupBox6.Controls.Add(this.groupBox10);
this.groupBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox6.Location = new System.Drawing.Point(143, 12);
this.groupBox6.Name = "groupBox6";
this.groupBox6.Size = new System.Drawing.Size(368, 216);
this.groupBox6.TabIndex = 5;
this.groupBox6.TabStop = false;
this.groupBox6.Text = "Motors";
//
// groupBox9
//
this.groupBox9.Controls.Add(this.LBLNCM5Cur);
this.groupBox9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox9.Location = new System.Drawing.Point(187, 21);
this.groupBox9.Name = "groupBox9";
this.groupBox9.Size = new System.Drawing.Size(82, 45);
this.groupBox9.TabIndex = 6;
this.groupBox9.TabStop = false;
this.groupBox9.Text = "Current 5";
//
// LBLNCM5Cur
//
this.LBLNCM5Cur.AutoSize = true;
this.LBLNCM5Cur.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM5Cur.Location = new System.Drawing.Point(3, 16);
this.LBLNCM5Cur.Name = "LBLNCM5Cur";
this.LBLNCM5Cur.Size = new System.Drawing.Size(40, 24);
this.LBLNCM5Cur.TabIndex = 0;
this.LBLNCM5Cur.Text = "Cur";
//
// groupBox12
//
this.groupBox12.Controls.Add(this.LBLNCM8Temp);
this.groupBox12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox12.Location = new System.Drawing.Point(275, 161);
this.groupBox12.Name = "groupBox12";
this.groupBox12.Size = new System.Drawing.Size(82, 45);
this.groupBox12.TabIndex = 7;
this.groupBox12.TabStop = false;
this.groupBox12.Text = "Temp 8";
//
// LBLNCM8Temp
//
this.LBLNCM8Temp.AutoSize = true;
this.LBLNCM8Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM8Temp.Location = new System.Drawing.Point(3, 16);
this.LBLNCM8Temp.Name = "LBLNCM8Temp";
this.LBLNCM8Temp.Size = new System.Drawing.Size(60, 24);
this.LBLNCM8Temp.TabIndex = 0;
this.LBLNCM8Temp.Text = "Temp";
//
// groupBox15
//
this.groupBox15.Controls.Add(this.LBLNCM5Temp);
this.groupBox15.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox15.Location = new System.Drawing.Point(275, 21);
this.groupBox15.Name = "groupBox15";
this.groupBox15.Size = new System.Drawing.Size(82, 45);
this.groupBox15.TabIndex = 8;
this.groupBox15.TabStop = false;
this.groupBox15.Text = "Temp 5";
//
// LBLNCM5Temp
//
this.LBLNCM5Temp.AutoSize = true;
this.LBLNCM5Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM5Temp.Location = new System.Drawing.Point(3, 16);
this.LBLNCM5Temp.Name = "LBLNCM5Temp";
this.LBLNCM5Temp.Size = new System.Drawing.Size(60, 24);
this.LBLNCM5Temp.TabIndex = 0;
this.LBLNCM5Temp.Text = "Temp";
//
// groupBox20
//
this.groupBox20.Controls.Add(this.LBLNCM7Temp);
this.groupBox20.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox20.Location = new System.Drawing.Point(275, 115);
this.groupBox20.Name = "groupBox20";
this.groupBox20.Size = new System.Drawing.Size(82, 45);
this.groupBox20.TabIndex = 9;
this.groupBox20.TabStop = false;
this.groupBox20.Text = "Temp 7";
//
// LBLNCM7Temp
//
this.LBLNCM7Temp.AutoSize = true;
this.LBLNCM7Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM7Temp.Location = new System.Drawing.Point(3, 16);
this.LBLNCM7Temp.Name = "LBLNCM7Temp";
this.LBLNCM7Temp.Size = new System.Drawing.Size(60, 24);
this.LBLNCM7Temp.TabIndex = 0;
this.LBLNCM7Temp.Text = "Temp";
//
// groupBox21
//
this.groupBox21.Controls.Add(this.LBLNCM8Cur);
this.groupBox21.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox21.Location = new System.Drawing.Point(187, 161);
this.groupBox21.Name = "groupBox21";
this.groupBox21.Size = new System.Drawing.Size(82, 45);
this.groupBox21.TabIndex = 10;
this.groupBox21.TabStop = false;
this.groupBox21.Text = "Current 8";
//
// LBLNCM8Cur
//
this.LBLNCM8Cur.AutoSize = true;
this.LBLNCM8Cur.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM8Cur.Location = new System.Drawing.Point(3, 16);
this.LBLNCM8Cur.Name = "LBLNCM8Cur";
this.LBLNCM8Cur.Size = new System.Drawing.Size(40, 24);
this.LBLNCM8Cur.TabIndex = 0;
this.LBLNCM8Cur.Text = "Cur";
//
// groupBox22
//
this.groupBox22.Controls.Add(this.LBLNCM6Cur);
this.groupBox22.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox22.Location = new System.Drawing.Point(187, 68);
this.groupBox22.Name = "groupBox22";
this.groupBox22.Size = new System.Drawing.Size(82, 45);
this.groupBox22.TabIndex = 11;
this.groupBox22.TabStop = false;
this.groupBox22.Text = "Current 6";
//
// LBLNCM6Cur
//
this.LBLNCM6Cur.AutoSize = true;
this.LBLNCM6Cur.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM6Cur.Location = new System.Drawing.Point(3, 16);
this.LBLNCM6Cur.Name = "LBLNCM6Cur";
this.LBLNCM6Cur.Size = new System.Drawing.Size(40, 24);
this.LBLNCM6Cur.TabIndex = 0;
this.LBLNCM6Cur.Text = "Cur";
//
// groupBox23
//
this.groupBox23.Controls.Add(this.LBLNCM7Cur);
this.groupBox23.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox23.Location = new System.Drawing.Point(187, 115);
this.groupBox23.Name = "groupBox23";
this.groupBox23.Size = new System.Drawing.Size(82, 45);
this.groupBox23.TabIndex = 12;
this.groupBox23.TabStop = false;
this.groupBox23.Text = "Current 7";
//
// LBLNCM7Cur
//
this.LBLNCM7Cur.AutoSize = true;
this.LBLNCM7Cur.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM7Cur.Location = new System.Drawing.Point(3, 16);
this.LBLNCM7Cur.Name = "LBLNCM7Cur";
this.LBLNCM7Cur.Size = new System.Drawing.Size(40, 24);
this.LBLNCM7Cur.TabIndex = 0;
this.LBLNCM7Cur.Text = "Cur";
//
// groupBox24
//
this.groupBox24.Controls.Add(this.LBLNCM6Temp);
this.groupBox24.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox24.Location = new System.Drawing.Point(275, 68);
this.groupBox24.Name = "groupBox24";
this.groupBox24.Size = new System.Drawing.Size(82, 45);
this.groupBox24.TabIndex = 13;
this.groupBox24.TabStop = false;
this.groupBox24.Text = "Temp 6";
//
// LBLNCM6Temp
//
this.LBLNCM6Temp.AutoSize = true;
this.LBLNCM6Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM6Temp.Location = new System.Drawing.Point(3, 16);
this.LBLNCM6Temp.Name = "LBLNCM6Temp";
this.LBLNCM6Temp.Size = new System.Drawing.Size(60, 24);
this.LBLNCM6Temp.TabIndex = 0;
this.LBLNCM6Temp.Text = "Temp";
//
// groupBox7
//
this.groupBox7.Controls.Add(this.LBLNCM1Cur);
this.groupBox7.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox7.Location = new System.Drawing.Point(9, 21);
this.groupBox7.Name = "groupBox7";
this.groupBox7.Size = new System.Drawing.Size(82, 45);
this.groupBox7.TabIndex = 5;
this.groupBox7.TabStop = false;
this.groupBox7.Text = "Current 1";
//
// LBLNCM1Cur
//
this.LBLNCM1Cur.AutoSize = true;
this.LBLNCM1Cur.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM1Cur.Location = new System.Drawing.Point(3, 16);
this.LBLNCM1Cur.Name = "LBLNCM1Cur";
this.LBLNCM1Cur.Size = new System.Drawing.Size(40, 24);
this.LBLNCM1Cur.TabIndex = 0;
this.LBLNCM1Cur.Text = "Cur";
//
// groupBox16
//
this.groupBox16.Controls.Add(this.LBLNCM4Temp);
this.groupBox16.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox16.Location = new System.Drawing.Point(98, 161);
this.groupBox16.Name = "groupBox16";
this.groupBox16.Size = new System.Drawing.Size(82, 45);
this.groupBox16.TabIndex = 5;
this.groupBox16.TabStop = false;
this.groupBox16.Text = "Temp 4";
//
// LBLNCM4Temp
//
this.LBLNCM4Temp.AutoSize = true;
this.LBLNCM4Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM4Temp.Location = new System.Drawing.Point(3, 16);
this.LBLNCM4Temp.Name = "LBLNCM4Temp";
this.LBLNCM4Temp.Size = new System.Drawing.Size(60, 24);
this.LBLNCM4Temp.TabIndex = 0;
this.LBLNCM4Temp.Text = "Temp";
//
// groupBox8
//
this.groupBox8.Controls.Add(this.LBLNCM1Temp);
this.groupBox8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox8.Location = new System.Drawing.Point(97, 21);
this.groupBox8.Name = "groupBox8";
this.groupBox8.Size = new System.Drawing.Size(82, 45);
this.groupBox8.TabIndex = 5;
this.groupBox8.TabStop = false;
this.groupBox8.Text = "Temp 1";
//
// LBLNCM1Temp
//
this.LBLNCM1Temp.AutoSize = true;
this.LBLNCM1Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM1Temp.Location = new System.Drawing.Point(3, 16);
this.LBLNCM1Temp.Name = "LBLNCM1Temp";
this.LBLNCM1Temp.Size = new System.Drawing.Size(60, 24);
this.LBLNCM1Temp.TabIndex = 0;
this.LBLNCM1Temp.Text = "Temp";
//
// groupBox13
//
this.groupBox13.Controls.Add(this.LBLNCM3Temp);
this.groupBox13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox13.Location = new System.Drawing.Point(97, 115);
this.groupBox13.Name = "groupBox13";
this.groupBox13.Size = new System.Drawing.Size(82, 45);
this.groupBox13.TabIndex = 5;
this.groupBox13.TabStop = false;
this.groupBox13.Text = "Temp 3";
//
// LBLNCM3Temp
//
this.LBLNCM3Temp.AutoSize = true;
this.LBLNCM3Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM3Temp.Location = new System.Drawing.Point(3, 16);
this.LBLNCM3Temp.Name = "LBLNCM3Temp";
this.LBLNCM3Temp.Size = new System.Drawing.Size(60, 24);
this.LBLNCM3Temp.TabIndex = 0;
this.LBLNCM3Temp.Text = "Temp";
//
// groupBox17
//
this.groupBox17.Controls.Add(this.LBLNCM4Cur);
this.groupBox17.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox17.Location = new System.Drawing.Point(9, 161);
this.groupBox17.Name = "groupBox17";
this.groupBox17.Size = new System.Drawing.Size(82, 45);
this.groupBox17.TabIndex = 5;
this.groupBox17.TabStop = false;
this.groupBox17.Text = "Current 4";
//
// LBLNCM4Cur
//
this.LBLNCM4Cur.AutoSize = true;
this.LBLNCM4Cur.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM4Cur.Location = new System.Drawing.Point(3, 16);
this.LBLNCM4Cur.Name = "LBLNCM4Cur";
this.LBLNCM4Cur.Size = new System.Drawing.Size(40, 24);
this.LBLNCM4Cur.TabIndex = 0;
this.LBLNCM4Cur.Text = "Cur";
//
// groupBox11
//
this.groupBox11.Controls.Add(this.LBLNCM2Cur);
this.groupBox11.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox11.Location = new System.Drawing.Point(9, 68);
this.groupBox11.Name = "groupBox11";
this.groupBox11.Size = new System.Drawing.Size(82, 45);
this.groupBox11.TabIndex = 5;
this.groupBox11.TabStop = false;
this.groupBox11.Text = "Current 2";
//
// LBLNCM2Cur
//
this.LBLNCM2Cur.AutoSize = true;
this.LBLNCM2Cur.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM2Cur.Location = new System.Drawing.Point(3, 16);
this.LBLNCM2Cur.Name = "LBLNCM2Cur";
this.LBLNCM2Cur.Size = new System.Drawing.Size(40, 24);
this.LBLNCM2Cur.TabIndex = 0;
this.LBLNCM2Cur.Text = "Cur";
//
// groupBox14
//
this.groupBox14.Controls.Add(this.LBLNCM3Cur);
this.groupBox14.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox14.Location = new System.Drawing.Point(9, 115);
this.groupBox14.Name = "groupBox14";
this.groupBox14.Size = new System.Drawing.Size(82, 45);
this.groupBox14.TabIndex = 5;
this.groupBox14.TabStop = false;
this.groupBox14.Text = "Current 3";
//
// LBLNCM3Cur
//
this.LBLNCM3Cur.AutoSize = true;
this.LBLNCM3Cur.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM3Cur.Location = new System.Drawing.Point(3, 16);
this.LBLNCM3Cur.Name = "LBLNCM3Cur";
this.LBLNCM3Cur.Size = new System.Drawing.Size(40, 24);
this.LBLNCM3Cur.TabIndex = 0;
this.LBLNCM3Cur.Text = "Cur";
//
// groupBox10
//
this.groupBox10.Controls.Add(this.LBLNCM2Temp);
this.groupBox10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox10.Location = new System.Drawing.Point(97, 68);
this.groupBox10.Name = "groupBox10";
this.groupBox10.Size = new System.Drawing.Size(82, 45);
this.groupBox10.TabIndex = 5;
this.groupBox10.TabStop = false;
this.groupBox10.Text = "Temp 2";
//
// LBLNCM2Temp
//
this.LBLNCM2Temp.AutoSize = true;
this.LBLNCM2Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LBLNCM2Temp.Location = new System.Drawing.Point(3, 16);
this.LBLNCM2Temp.Name = "LBLNCM2Temp";
this.LBLNCM2Temp.Size = new System.Drawing.Size(60, 24);
this.LBLNCM2Temp.TabIndex = 0;
this.LBLNCM2Temp.Text = "Temp";
//
// groupBox5
//
this.groupBox5.Controls.Add(this.lblNCSat);
this.groupBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox5.Location = new System.Drawing.Point(7, 415);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(124, 52);
this.groupBox5.TabIndex = 5;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "Satellites";
//
// lblNCSat
//
this.lblNCSat.AutoSize = true;
this.lblNCSat.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCSat.Location = new System.Drawing.Point(3, 19);
this.lblNCSat.Name = "lblNCSat";
this.lblNCSat.Size = new System.Drawing.Size(60, 29);
this.lblNCSat.TabIndex = 0;
this.lblNCSat.Text = "Sats";
//
// groupBox4
//
this.groupBox4.Controls.Add(this.lblNCMF);
this.groupBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox4.Location = new System.Drawing.Point(7, 353);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(124, 52);
this.groupBox4.TabIndex = 5;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Magnetic field";
//
// lblNCMF
//
this.lblNCMF.AutoSize = true;
this.lblNCMF.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCMF.Location = new System.Drawing.Point(3, 20);
this.lblNCMF.Name = "lblNCMF";
this.lblNCMF.Size = new System.Drawing.Size(48, 29);
this.lblNCMF.TabIndex = 0;
this.lblNCMF.Text = "MF";
//
// groupBox3
//
this.groupBox3.Controls.Add(this.lblNCCur);
this.groupBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox3.Location = new System.Drawing.Point(7, 70);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(124, 52);
this.groupBox3.TabIndex = 5;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Current";
//
// lblNCCur
//
this.lblNCCur.AutoSize = true;
this.lblNCCur.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCCur.Location = new System.Drawing.Point(3, 19);
this.lblNCCur.Name = "lblNCCur";
this.lblNCCur.Size = new System.Drawing.Size(51, 29);
this.lblNCCur.TabIndex = 0;
this.lblNCCur.Text = "Cur";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.lblNCVolt);
this.groupBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox2.Location = new System.Drawing.Point(7, 12);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(124, 52);
this.groupBox2.TabIndex = 4;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Voltage";
//
// lblNCVolt
//
this.lblNCVolt.AutoSize = true;
this.lblNCVolt.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCVolt.Location = new System.Drawing.Point(4, 20);
this.lblNCVolt.Name = "lblNCVolt";
this.lblNCVolt.Size = new System.Drawing.Size(54, 29);
this.lblNCVolt.TabIndex = 0;
this.lblNCVolt.Text = "Volt";
//
// groupBox25
//
this.groupBox25.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox25.Controls.Add(this.lblNCGSpeed);
this.groupBox25.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox25.Location = new System.Drawing.Point(803, 12);
this.groupBox25.Name = "groupBox25";
this.groupBox25.Size = new System.Drawing.Size(135, 57);
this.groupBox25.TabIndex = 3;
this.groupBox25.TabStop = false;
this.groupBox25.Text = "Ground Speed";
//
// lblNCGSpeed
//
this.lblNCGSpeed.AutoSize = true;
this.lblNCGSpeed.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCGSpeed.Location = new System.Drawing.Point(5, 23);
this.lblNCGSpeed.Name = "lblNCGSpeed";
this.lblNCGSpeed.Size = new System.Drawing.Size(85, 29);
this.lblNCGSpeed.TabIndex = 0;
this.lblNCGSpeed.Text = "Speed";
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.lblNCAlt);
this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox1.Location = new System.Drawing.Point(803, 71);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(135, 57);
this.groupBox1.TabIndex = 3;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Altitude";
//
// lblNCAlt
//
this.lblNCAlt.AutoSize = true;
this.lblNCAlt.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCAlt.Location = new System.Drawing.Point(5, 23);
this.lblNCAlt.Name = "lblNCAlt";
this.lblNCAlt.Size = new System.Drawing.Size(40, 29);
this.lblNCAlt.TabIndex = 0;
this.lblNCAlt.Text = "Alt";
//
// headingIndicator1
//
this.headingIndicator1.Location = new System.Drawing.Point(228, 240);
this.headingIndicator1.Name = "headingIndicator1";
this.headingIndicator1.Size = new System.Drawing.Size(210, 210);
this.headingIndicator1.TabIndex = 2;
//
// artificialHorizon1
//
this.artificialHorizon1.AutoScroll = true;
this.artificialHorizon1.BackColor = System.Drawing.Color.White;
this.artificialHorizon1.ForeColor = System.Drawing.Color.White;
this.artificialHorizon1.Location = new System.Drawing.Point(521, 240);
this.artificialHorizon1.Name = "artificialHorizon1";
this.artificialHorizon1.pitch_angle = 0D;
this.artificialHorizon1.roll_angle = 0D;
this.artificialHorizon1.Size = new System.Drawing.Size(210, 210);
this.artificialHorizon1.TabIndex = 1;
//
// lblNCCompass
//
this.lblNCCompass.AutoSize = true;
this.lblNCCompass.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCCompass.Location = new System.Drawing.Point(310, 449);
this.lblNCCompass.Name = "lblNCCompass";
this.lblNCCompass.Size = new System.Drawing.Size(115, 29);
this.lblNCCompass.TabIndex = 0;
this.lblNCCompass.Text = "Compass";
this.lblNCCompass.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblNCRoll
//
this.lblNCRoll.AutoSize = true;
this.lblNCRoll.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCRoll.Location = new System.Drawing.Point(599, 449);
this.lblNCRoll.Name = "lblNCRoll";
this.lblNCRoll.Size = new System.Drawing.Size(56, 29);
this.lblNCRoll.TabIndex = 0;
this.lblNCRoll.Text = "Roll";
this.lblNCRoll.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblNCPitch
//
this.lblNCPitch.AutoSize = true;
this.lblNCPitch.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblNCPitch.Location = new System.Drawing.Point(467, 332);
this.lblNCPitch.Name = "lblNCPitch";
this.lblNCPitch.Size = new System.Drawing.Size(66, 29);
this.lblNCPitch.TabIndex = 0;
this.lblNCPitch.Text = "Pitch";
this.lblNCPitch.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPageTesting);
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabControl1.Location = new System.Drawing.Point(0, 0);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(953, 512);
this.tabControl1.TabIndex = 15;
//
// tabPageTesting
//
this.tabPageTesting.Controls.Add(this.lbLabels);
this.tabPageTesting.Controls.Add(this.btnOSDAuto);
this.tabPageTesting.Controls.Add(this.btnOSD);
this.tabPageTesting.Controls.Add(this.btnSaveFCLabels);
this.tabPageTesting.Controls.Add(this.btnLoadFCLabels);
this.tabPageTesting.Controls.Add(this.button4);
this.tabPageTesting.Controls.Add(this.lblFileName);
this.tabPageTesting.Controls.Add(this.btnReadFCFile);
this.tabPageTesting.Controls.Add(this.button3);
this.tabPageTesting.Controls.Add(this.button2);
this.tabPageTesting.Location = new System.Drawing.Point(4, 27);
this.tabPageTesting.Name = "tabPageTesting";
this.tabPageTesting.Padding = new System.Windows.Forms.Padding(3);
this.tabPageTesting.Size = new System.Drawing.Size(945, 482);
this.tabPageTesting.TabIndex = 3;
this.tabPageTesting.Text = "testing";
this.tabPageTesting.UseVisualStyleBackColor = true;
//
// btnConn
//
this.btnConn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnConn.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnConn.Location = new System.Drawing.Point(661, 4);
this.btnConn.Name = "btnConn";
this.btnConn.Size = new System.Drawing.Size(141, 55);
this.btnConn.TabIndex = 28;
this.btnConn.Text = "open\r\nserial port";
this.btnConn.UseVisualStyleBackColor = true;
this.btnConn.Click += new System.EventHandler(this.btnConn_Click);
//
// rtfError
//
this.rtfError.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.rtfError.Location = new System.Drawing.Point(268, 2);
this.rtfError.Name = "rtfError";
this.rtfError.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None;
this.rtfError.Size = new System.Drawing.Size(204, 58);
this.rtfError.TabIndex = 29;
this.rtfError.Text = "";
this.rtfError.WordWrap = false;
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.tabControl1);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.rtfTerminal);
this.splitContainer1.Panel2.Controls.Add(this.btnReadDebugCont);
this.splitContainer1.Panel2.Controls.Add(this.btnConn);
this.splitContainer1.Panel2.Controls.Add(this.rtfError);
this.splitContainer1.Size = new System.Drawing.Size(953, 575);
this.splitContainer1.SplitterDistance = 512;
this.splitContainer1.SplitterWidth = 1;
this.splitContainer1.TabIndex = 36;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(953, 575);
this.Controls.Add(this.splitContainer1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "MainForm";
this.Text = "MikroKopter LiveView";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed);
this.Shown += new System.EventHandler(this.MainForm_Shown);
this.tabPage2.ResumeLayout(false);
this.groupBox37.ResumeLayout(false);
this.groupBox37.PerformLayout();
this.groupBox34.ResumeLayout(false);
this.groupBox34.PerformLayout();
this.groupBox32.ResumeLayout(false);
this.groupBox30.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.tabPage3.ResumeLayout(false);
this.tabPage3.PerformLayout();
this.groupBox36.ResumeLayout(false);
this.groupBox36.PerformLayout();
this.groupBox35.ResumeLayout(false);
this.groupBox35.PerformLayout();
this.groupBox31.ResumeLayout(false);
this.groupBox31.PerformLayout();
this.groupBox27.ResumeLayout(false);
this.groupBox27.PerformLayout();
this.groupBox19.ResumeLayout(false);
this.groupBox19.PerformLayout();
this.groupBox18.ResumeLayout(false);
this.groupBox18.PerformLayout();
this.groupBox33.ResumeLayout(false);
this.groupBox33.PerformLayout();
this.groupBox26.ResumeLayout(false);
this.groupBox26.PerformLayout();
this.groupBox29.ResumeLayout(false);
this.groupBox29.PerformLayout();
this.groupBox28.ResumeLayout(false);
this.groupBox28.PerformLayout();
this.groupBox6.ResumeLayout(false);
this.groupBox9.ResumeLayout(false);
this.groupBox9.PerformLayout();
this.groupBox12.ResumeLayout(false);
this.groupBox12.PerformLayout();
this.groupBox15.ResumeLayout(false);
this.groupBox15.PerformLayout();
this.groupBox20.ResumeLayout(false);
this.groupBox20.PerformLayout();
this.groupBox21.ResumeLayout(false);
this.groupBox21.PerformLayout();
this.groupBox22.ResumeLayout(false);
this.groupBox22.PerformLayout();
this.groupBox23.ResumeLayout(false);
this.groupBox23.PerformLayout();
this.groupBox24.ResumeLayout(false);
this.groupBox24.PerformLayout();
this.groupBox7.ResumeLayout(false);
this.groupBox7.PerformLayout();
this.groupBox16.ResumeLayout(false);
this.groupBox16.PerformLayout();
this.groupBox8.ResumeLayout(false);
this.groupBox8.PerformLayout();
this.groupBox13.ResumeLayout(false);
this.groupBox13.PerformLayout();
this.groupBox17.ResumeLayout(false);
this.groupBox17.PerformLayout();
this.groupBox11.ResumeLayout(false);
this.groupBox11.PerformLayout();
this.groupBox14.ResumeLayout(false);
this.groupBox14.PerformLayout();
this.groupBox10.ResumeLayout(false);
this.groupBox10.PerformLayout();
this.groupBox5.ResumeLayout(false);
this.groupBox5.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox25.ResumeLayout(false);
this.groupBox25.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.tabControl1.ResumeLayout(false);
this.tabPageTesting.ResumeLayout(false);
this.tabPageTesting.PerformLayout();
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
this.splitContainer1.ResumeLayout(false);
this.ResumeLayout(false);
 
}
 
#endregion
 
private SimpleSerialPort.SimpleSerialPort simpleSerialPort;
private System.Windows.Forms.Button buttonReset;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button btnSwitchFC;
private System.Windows.Forms.Button btnSwitchNC;
private System.Windows.Forms.Label lblCtrl;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.RichTextBox rtfTerminal;
private System.Windows.Forms.Button btnReadDebugCont;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.Button btnGetNaviData;
private System.Windows.Forms.Button btnReadBLCtrl;
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.Button btnReadFCFile;
private System.Windows.Forms.Button btnLoadFCLabels;
private System.Windows.Forms.Button btnSaveFCLabels;
private System.Windows.Forms.ListBox lbLabels;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label lblFileName;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.GroupBox groupBox26;
private System.Windows.Forms.Label lblNCCap;
private System.Windows.Forms.GroupBox groupBox29;
private System.Windows.Forms.Label lblNCFlTime;
private System.Windows.Forms.GroupBox groupBox28;
private System.Windows.Forms.Label lblNCRC;
private System.Windows.Forms.GroupBox groupBox27;
private System.Windows.Forms.Label lblNCErrNmbr;
private System.Windows.Forms.GroupBox groupBox19;
private System.Windows.Forms.Label lblNCSPI;
private System.Windows.Forms.GroupBox groupBox18;
private System.Windows.Forms.Label lblNCI2C;
private System.Windows.Forms.GroupBox groupBox6;
private System.Windows.Forms.GroupBox groupBox9;
private System.Windows.Forms.Label LBLNCM5Cur;
private System.Windows.Forms.GroupBox groupBox12;
private System.Windows.Forms.Label LBLNCM8Temp;
private System.Windows.Forms.GroupBox groupBox15;
private System.Windows.Forms.Label LBLNCM5Temp;
private System.Windows.Forms.GroupBox groupBox20;
private System.Windows.Forms.Label LBLNCM7Temp;
private System.Windows.Forms.GroupBox groupBox21;
private System.Windows.Forms.Label LBLNCM8Cur;
private System.Windows.Forms.GroupBox groupBox22;
private System.Windows.Forms.Label LBLNCM6Cur;
private System.Windows.Forms.GroupBox groupBox23;
private System.Windows.Forms.Label LBLNCM7Cur;
private System.Windows.Forms.GroupBox groupBox24;
private System.Windows.Forms.Label LBLNCM6Temp;
private System.Windows.Forms.GroupBox groupBox7;
private System.Windows.Forms.Label LBLNCM1Cur;
private System.Windows.Forms.GroupBox groupBox16;
private System.Windows.Forms.Label LBLNCM4Temp;
private System.Windows.Forms.GroupBox groupBox8;
private System.Windows.Forms.Label LBLNCM1Temp;
private System.Windows.Forms.GroupBox groupBox13;
private System.Windows.Forms.Label LBLNCM3Temp;
private System.Windows.Forms.GroupBox groupBox17;
private System.Windows.Forms.Label LBLNCM4Cur;
private System.Windows.Forms.GroupBox groupBox11;
private System.Windows.Forms.Label LBLNCM2Cur;
private System.Windows.Forms.GroupBox groupBox14;
private System.Windows.Forms.Label LBLNCM3Cur;
private System.Windows.Forms.GroupBox groupBox10;
private System.Windows.Forms.Label LBLNCM2Temp;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.Label lblNCSat;
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.Label lblNCMF;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Label lblNCCur;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Label lblNCVolt;
private System.Windows.Forms.GroupBox groupBox25;
private System.Windows.Forms.Label lblNCGSpeed;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label lblNCAlt;
private AvionicsInstrumentControl.HeadingIndicator headingIndicator1;
private ArtificialHorizon.ArtificialHorizon artificialHorizon1;
private System.Windows.Forms.Label lblNCCompass;
private System.Windows.Forms.Label lblNCRoll;
private System.Windows.Forms.Label lblNCPitch;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.GroupBox groupBox30;
private System.Windows.Forms.Button btnConn;
private System.Windows.Forms.GroupBox groupBox31;
private System.Windows.Forms.Label lblNCCtrl;
private System.Windows.Forms.GroupBox groupBox32;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label lblLifeCounter;
private System.Windows.Forms.GroupBox groupBox33;
private System.Windows.Forms.Label lblNCDist;
private System.Windows.Forms.RichTextBox rtfOSD;
private System.Windows.Forms.Button btnOSD;
private System.Windows.Forms.Button btnOSDForward;
private System.Windows.Forms.Button btnOSDBackward;
private System.Windows.Forms.Button btnOSDAuto;
private System.Windows.Forms.ComboBox cbOSD;
private System.Windows.Forms.GroupBox groupBox34;
private System.Windows.Forms.ComboBox cbTimingBLCTRL;
private System.Windows.Forms.ComboBox cbTimingNAV;
private System.Windows.Forms.ComboBox cbTimingDebug;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ComboBox cbTimingOSD;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.GroupBox groupBox35;
private System.Windows.Forms.RichTextBox rtfError;
private System.Windows.Forms.CheckBox chkbAutoOSD;
private System.Windows.Forms.CheckBox chkbAutoBL;
private System.Windows.Forms.CheckBox chkbAutoNav;
private System.Windows.Forms.CheckBox chkbAutoDbg;
private System.Windows.Forms.Label labelTimingOSD;
private System.Windows.Forms.Label labelTimingBLCTRL;
private System.Windows.Forms.Label labelTimingNAV;
private System.Windows.Forms.Label labelTimingDebug;
private System.Windows.Forms.TabPage tabPageTesting;
private System.Windows.Forms.GroupBox groupBox37;
private System.Windows.Forms.GroupBox groupBox36;
private System.Windows.Forms.Label lblOSDPageNr;
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.Button btnOSDLeave;
private System.Windows.Forms.Button btnOSDEnter;
private System.Windows.Forms.Label lblCRCErr;
private System.Windows.Forms.Label label6;
}
}
 
/MKLiveView/Source/MainForm.cs
0,0 → 1,1280
///============================================================================
/// MKLiveView
/// Copyright © 2016 Steph
///
///This file is part of MKLiveView.
///
///MKLiveView is free software: you can redistribute it and/or modify
///it under the terms of the GNU General Public License as published by
///the Free Software Foundation, either version 3 of the License, or
///(at your option) any later version.
///
///MKLiveView is distributed in the hope that it will be useful,
///but WITHOUT ANY WARRANTY; without even the implied warranty of
///MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
///GNU General Public License for more details.
///
///You should have received a copy of the GNU General Public License
///along with cssRcon. If not, see <http://www.gnu.org/licenses/>.
///
///============================================================================
///Credits:
///Chootair (http://www.codeproject.com/script/Membership/View.aspx?mid=3941737)
///for his "C# Avionic Instrument Controls" (http://www.codeproject.com/Articles/27411/C-Avionic-Instrument-Controls)
///I used some of his code for displaying the compass
///
///Tom Pyke (http://tom.pycke.be)
///for his "Artifical horizon" (http://tom.pycke.be/mav/100/artificial-horizon)
///Great job!
///
/// and last but most of all to JOHN C. MACDONALD at Ira A. Fulton College of Engineering and Technology
/// for his MIKROKOPTER SERIAL CONTROL TUTORIAL (http://hdl.lib.byu.edu/1877/2747)
/// and the sourcode (http://hdl.lib.byu.edu/1877/2748)
/// By his work I finally managed to get the communication with the Mikrokopter controllers to run
/// Some of his code was used in this programm like the SimpelSerialPort class (with some changes)
/// and the FilghtControllerMessage class
///
///============================================================================
 
using System;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;
using System.Diagnostics;
using System.Runtime.InteropServices;
 
namespace MKLiveView
{
public partial class MainForm : Form
{
 
[FlagsAttribute]
enum NC_HWError0 : short
{
None = 0,
SPI_RX = 1,
COMPASS_RX = 2,
FC_INCOMPATIBLE = 4,
COMPASS_INCOMPATIBLE = 8,
GPS_RX = 16,
COMPASS_VALUE = 32
};
[FlagsAttribute]
enum FC_HWError0 : short
{
None = 0,
GYRO_NICK = 1,
GYRO_ROLL = 2,
GYRO_YAW = 4,
ACC_NICK = 8,
ACC_ROLL = 16,
ACC_TOP = 32,
PRESSURE = 64,
CAREFREE = 128
};
[FlagsAttribute]
enum FC_HWError1 : short
{
None = 0,
I2C = 1,
BL_MISSING = 2,
SPI_RX = 4,
PPM = 8,
MIXER = 16,
RC_VOLTAGE = 32,
ACC_NOT_CAL = 64,
RES3 = 128
};
public enum LogMsgType { Incoming, Outgoing, Normal, Warning, Error };
// Various colors for logging info
private Color[] LogMsgTypeColor = { Color.FromArgb(43, 145, 175), Color.Green, Color.Black, Color.Orange, Color.Red };
 
string[] sAnalogLabel = new string[32];
string[] sAnalogData = new string[32];
bool bReadContinously = false;
bool check_HWError = false;
bool _bCBInit = true;
bool _init = true;
bool _debugDataAutorefresh = true;
bool _navCtrlDataAutorefresh = true;
bool _blctrlDataAutorefresh = true;
bool _OSDAutorefresh = true;
int crcError = 0;
int iLableIndex = 0;
string filePath = Directory.GetCurrentDirectory();
string fileName = "NCLabelTexts.txt";
int _iCtrlAct = 0;
int _iLifeCounter = 0;
int iOSDPage = 0;
int iOSDMax = 0;
/// <summary>
/// interval for sending debugdata (multiplied by 10ms)
/// </summary>
byte debugInterval = 25; //(=> 250ms)
/// <summary>
/// interval for sending BL-CTRL status (multiplied by 10ms)
/// </summary>
byte blctrlInterval = 45;
/// <summary>
/// interval for sending NAV-CTRL status (multiplied by 10ms)
/// </summary>
byte navctrlInterval = 80;
/// <summary>
/// interval for sending OSD page update (multiplied by 10ms)
/// </summary>
byte OSDInterval = 85;
/// <summary>
/// datatable for the debug data array - displayed on settings tabpage in datagridview
/// </summary>
DataTable dtAnalog = new DataTable();
public MainForm()
{
InitializeComponent();
_readIni();
dtAnalog.Columns.Add("ID");
dtAnalog.Columns.Add("Value");
dataGridView1.DataSource = dtAnalog;
simpleSerialPort.PortClosed += SimpleSerialPort_PortClosed;
simpleSerialPort.PortOpened += SimpleSerialPort_PortOpened;
simpleSerialPort.DataReceived += processMessage;
chkbAutoBL.Checked = _blctrlDataAutorefresh;
chkbAutoDbg.Checked = _debugDataAutorefresh;
chkbAutoNav.Checked = _navCtrlDataAutorefresh;
chkbAutoOSD.Checked = _OSDAutorefresh;
labelTimingDebug.Text = (debugInterval * 10).ToString();
labelTimingBLCTRL.Text = (blctrlInterval * 10).ToString();
labelTimingNAV.Text = (navctrlInterval * 10).ToString();
labelTimingOSD.Text = (OSDInterval * 10).ToString();
tabControl1.TabPages.Remove(tabPageTesting);
}
#region events
private void MainForm_Shown(object sender, EventArgs e)
{
_loadLabelNames();
_init = false;
}
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
{
_writeIni();
}
private void SimpleSerialPort_PortOpened()
{
btnConn.Invoke((Action)(() => btnConn.BackColor = Color.FromArgb(192, 255, 192)));
btnConn.Invoke((Action)(() => btnConn.Text = "close" + Environment.NewLine + "serial port"));
_getVersion();
Thread.Sleep(100);
_OSDMenue(0);
// _readCont(true);
}
private void SimpleSerialPort_PortClosed()
{
btnConn.Invoke((Action)(() => btnConn.BackColor = Color.FromArgb(224, 224, 224)));
btnConn.Invoke((Action)(() => btnConn.Text = "open" + Environment.NewLine + "serial port"));
_readCont(false);
}
/// <summary>
/// timer for refreshing subscription of subscribed data
/// query lifecounter for connection failure
/// </summary>
private void timer1_Tick(object sender, EventArgs e)
{
if(bReadContinously)
{
if (_debugDataAutorefresh) { _readDebugData(true); Thread.Sleep(10); }
 
if (_blctrlDataAutorefresh && _iCtrlAct == 2) { _readBLCtrl(true); Thread.Sleep(10); }
if (_navCtrlDataAutorefresh && _iCtrlAct == 2) { _readNavData(true); Thread.Sleep(10); }
check_HWError = true;
_getVersion();
Thread.Sleep(10);
if (_OSDAutorefresh) { _OSDMenueAutoRefresh(); }
if (_iLifeCounter > 0)
{
lblLifeCounter.BackColor = Color.FromArgb(0, 224, 0);
_iLifeCounter = 0;
}
else
{
Log(LogMsgType.Error, "No communication to NC/FC!");
lblLifeCounter.BackColor = Color.FromArgb(224, 0, 0);
}
}
}
private void cbOSD_SelectedIndexChanged(object sender, EventArgs e)
{
if (!_bCBInit && cbOSD.SelectedIndex > -1)
_OSDMenue(cbOSD.SelectedIndex);
}
 
private void chkbAutoDbg_CheckedChanged(object sender, EventArgs e)
{
if(!_init) _debugDataAutorefresh = chkbAutoDbg.Checked;
}
private void chkbAutoNav_CheckedChanged(object sender, EventArgs e)
{
if (!_init) _navCtrlDataAutorefresh = chkbAutoNav.Checked;
}
private void chkbAutoBL_CheckedChanged(object sender, EventArgs e)
{
if (!_init) _blctrlDataAutorefresh = chkbAutoBL.Checked;
}
private void chkbAutoOSD_CheckedChanged(object sender, EventArgs e)
{
if (!_init) _OSDAutorefresh = chkbAutoOSD.Checked;
}
 
private void cbTimingDebug_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbTimingDebug.SelectedIndex > -1)
{
debugInterval = (byte)(Convert.ToInt16(cbTimingDebug.SelectedItem) / 10);
labelTimingDebug.Text = (debugInterval * 10).ToString();
}
}
private void cbTimingNAV_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbTimingNAV.SelectedIndex > -1)
{
navctrlInterval = (byte)(Convert.ToInt16(cbTimingNAV.SelectedItem) / 10);
labelTimingNAV.Text = (navctrlInterval * 10).ToString();
}
}
private void cbTimingBLCTRL_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbTimingBLCTRL.SelectedIndex > -1)
{
blctrlInterval = (byte)(Convert.ToInt16(cbTimingBLCTRL.SelectedItem) / 10);
labelTimingBLCTRL.Text = (blctrlInterval * 10).ToString();
}
}
private void cbTimingOSD_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbTimingOSD.SelectedIndex > -1)
{
OSDInterval = (byte)(Convert.ToInt16(cbTimingOSD.SelectedItem) / 10);
labelTimingOSD.Text = (OSDInterval * 10).ToString();
}
}
#endregion events
 
/// <summary> Log data to the terminal window. </summary>
/// <param name="msgtype"> The type of message to be written. </param>
/// <param name="msg"> The string containing the message to be shown. </param>
private void Log(LogMsgType msgtype, string msg)
{
rtfTerminal.Invoke(new EventHandler(delegate
{
if (rtfTerminal.Lines.Length >= 1000) //Wenn Terminal mehr als 1000 Zeilen hat
rtfTerminal.Select(42, (500 * 129)); //500 löschen
rtfTerminal.Select(rtfTerminal.Text.Length, 0);
rtfTerminal.SelectedText = string.Empty;
rtfTerminal.SelectionFont = new Font(rtfTerminal.SelectionFont, FontStyle.Regular);
rtfTerminal.SelectionColor = LogMsgTypeColor[(int)msgtype];
rtfTerminal.AppendText(msg + Environment.NewLine);
rtfTerminal.ScrollToCaret();
}));
}
/// <summary> display the OSD text in 4 lines à 20 chars </summary>
/// <param name="msgtype"> The type of message to be written. </param>
/// <param name="msg"> The string containing the message to be shown. </param>
private void OSD(LogMsgType msgtype, string msg)
{
rtfOSD.Invoke(new EventHandler(delegate
{
if (rtfOSD.Lines.Length > 4)
rtfOSD.Clear();
rtfOSD.Select(rtfOSD.Text.Length,0);
rtfOSD.SelectedText = string.Empty;
rtfOSD.SelectionFont = new Font(rtfOSD.SelectionFont, FontStyle.Regular);
rtfOSD.SelectionColor = LogMsgTypeColor[(int)msgtype];
rtfOSD.AppendText(msg + Environment.NewLine);
if (rtfOSD.Text.IndexOf("ERR") > 0)
{
rtfOSD.Select(rtfOSD.Text.IndexOf("ERR"), 40);
rtfOSD.SelectionColor = LogMsgTypeColor[(int)LogMsgType.Error];
}
}));
}
private void ErrorLog(LogMsgType msgtype, string msg)
{
rtfError.Invoke(new EventHandler(delegate
{
if (rtfError.Lines.Length > 4)
rtfError.Clear();
rtfError.Focus();
rtfError.Select(rtfError.Text.Length, 0);
rtfError.SelectedText = string.Empty;
rtfError.SelectionFont = new Font(rtfError.SelectionFont, FontStyle.Regular);
rtfError.SelectionColor = LogMsgTypeColor[(int)msgtype];
rtfError.AppendText(msg + Environment.NewLine);
}));
}
 
#region functions
 
/// <summary> Processing the messages and displaying them in the according form controls </summary>
/// <param name="message"> message bytearray recieved by SimpleSerialPort class </param>
private void processMessage(byte[] message)
{
if (message.Length > 0)
{
_iLifeCounter++;
//Log(LogMsgType.Incoming, BitConverter.ToString(message));
//Log(LogMsgType.Incoming, message.Length.ToString());
string s = new string(ASCIIEncoding.ASCII.GetChars(message, 0, message.Length));
char cmdID;
byte adr;
byte[] data;
if (message[0] != '#')
Log(LogMsgType.Normal, s.Trim('\0', '\n','\r'));
//Debug.Print(s);
else
{
FlightControllerMessage.ParseMessage(message, out cmdID, out adr, out data);
 
if (adr == 255) { crcError++; }
else crcError = 0;
lblCRCErr.Invoke((Action)(() => lblCRCErr.Text = crcError.ToString()));
 
if (adr > 0 && adr < 3 && adr != _iCtrlAct) //adr < 3: temporary workaround cause when I've connected the FC alone it always switches between mk3mag & FC every second...???
{
_iCtrlAct = adr;
switch (adr)
{
case 1:
lblCtrl.Invoke((Action)(() => lblCtrl.Text = "FC"));
lblNCCtrl.Invoke((Action)(() => lblNCCtrl.Text = "FC"));
_setFieldsNA(); //display fields NA for FC
break;
case 2:
lblCtrl.Invoke((Action)(() => lblCtrl.Text = "NC"));
lblNCCtrl.Invoke((Action)(() => lblNCCtrl.Text = "NC"));
break;
case 3:
lblCtrl.Invoke((Action)(() => lblCtrl.Text = "MK3MAG"));
break;
case 4:
lblCtrl.Invoke((Action)(() => lblCtrl.Text = "BL-CTRL"));
break;
default:
lblCtrl.Invoke((Action)(() => lblCtrl.Text = "...."));
break;
}
_loadLabelNames();
}
// else
// Debug.Print("Address == 0?");
 
if (data != null && data.Length > 0)
{
s = new string(ASCIIEncoding.ASCII.GetChars(data, 1, data.Length - 1));
s = s.Trim('\0', '\n');
 
switch (cmdID)
{
case 'A':
if (iLableIndex < 32)
{
sAnalogLabel[iLableIndex] = s;
if (dtAnalog.Rows.Count < 32)
dtAnalog.Rows.Add(s, "");
else
dtAnalog.Rows[iLableIndex].SetField(0, s);
 
_getAnalogLabels(iLableIndex + 1);
}
Debug.Print(s);
 
break;
case 'D':
if (data.Length == 66)
{
int[] iAnalogData = new int[32];
 
int index = 0;
Int16 i16 = 0;
double dTemp = 0;
for (int i = 2; i < 66; i += 2)
{
i16 = data[i + 1];
i16 = (Int16)(i16 << 8);
iAnalogData[index] = data[i] + i16;
sAnalogData[index] = (data[i] + i16).ToString();
dtAnalog.Rows[index].SetField(1, sAnalogData[index]);
 
if (adr == 2) //NC
{
switch (index)
{
case 0: //pitch (German: nick)
artificialHorizon1.Invoke((Action)(() => artificialHorizon1.pitch_angle = ((double)iAnalogData[index] / (double)10)));
lblNCPitch.Invoke((Action)(() => lblNCPitch.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0°")));
break;
case 1: //roll
artificialHorizon1.Invoke((Action)(() => artificialHorizon1.roll_angle = ((double)iAnalogData[index] / (double)10)));
lblNCRoll.Invoke((Action)(() => lblNCRoll.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0°")));
break;
case 4: //altitude
lblNCAlt.Invoke((Action)(() => lblNCAlt.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0 m")));
break;
case 7: //Voltage
lblNCVolt.Invoke((Action)(() => lblNCVolt.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0 V")));
break;
case 8: // Current
lblNCCur.Invoke((Action)(() => lblNCCur.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0 A")));
break;
case 10: //heading
lblNCCompass.Invoke((Action)(() => lblNCCompass.Text = sAnalogData[index] + "°"));
headingIndicator1.Invoke((Action)(() => headingIndicator1.SetHeadingIndicatorParameters(iAnalogData[index])));
break;
case 12: // SPI error
lblNCSPI.Invoke((Action)(() => lblNCSPI.Text = sAnalogData[index]));
break;
case 14: //i2c error
lblNCI2C.Invoke((Action)(() => lblNCI2C.Text = sAnalogData[index]));
break;
case 20: //Earthmagnet field
lblNCMF.Invoke((Action)(() => lblNCMF.Text = sAnalogData[index] + "%"));
break;
case 21: //GroundSpeed
lblNCGSpeed.Invoke((Action)(() => lblNCGSpeed.Text = ((double)iAnalogData[index] / (double)100).ToString("0.00 m/s")));
break;
case 28: //Distance East from saved home position -> calculate distance with distance N + height
dTemp = Math.Pow((double)iAnalogData[index],2) + Math.Pow((double)iAnalogData[index - 1],2);
dTemp = Math.Sqrt(dTemp)/ (double)10; //'flat' distance from HP with N/E
// lblNCDist.Invoke((Action)(() => lblNCDist.Text = dTemp.ToString("0.00")));
dTemp = Math.Pow(dTemp, 2) + Math.Pow(((double)iAnalogData[4] / (double)10), 2); //adding 'height' into calculation
dTemp = Math.Sqrt(dTemp);
lblNCDist.Invoke((Action)(() => lblNCDist.Text = dTemp.ToString("0 m")));
break;
case 31: //Sats used
lblNCSat.Invoke((Action)(() => lblNCSat.Text = sAnalogData[index]));
break;
}
}
if (adr == 1) //FC
{
switch (index)
{
case 0: //pitch (German: nick)
artificialHorizon1.Invoke((Action)(() => artificialHorizon1.pitch_angle = ((double)iAnalogData[index] / (double)10)));
lblNCPitch.Invoke((Action)(() => lblNCPitch.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0°")));
break;
case 1: //roll
artificialHorizon1.Invoke((Action)(() => artificialHorizon1.roll_angle = ((double)iAnalogData[index] / (double)10)));
lblNCRoll.Invoke((Action)(() => lblNCRoll.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0°")));
break;
case 5: //altitude
lblNCAlt.Invoke((Action)(() => lblNCAlt.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0 m")));
break;
case 8: //heading
lblNCCompass.Invoke((Action)(() => lblNCCompass.Text = sAnalogData[index] + "°"));
headingIndicator1.Invoke((Action)(() => headingIndicator1.SetHeadingIndicatorParameters(iAnalogData[index])));
break;
case 9: //Voltage
lblNCVolt.Invoke((Action)(() => lblNCVolt.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0 V")));
break;
case 10: //Receiver quality
lblNCRC.Invoke((Action)(() => lblNCRC.Text = sAnalogData[index]));
break;
case 22: // Current
lblNCCur.Invoke((Action)(() => lblNCCur.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0 A")));
break;
case 23: //capacity used
lblNCCap.Invoke((Action)(() => lblNCCap.Text = (iAnalogData[index]).ToString("0 mAh")));
break;
case 27: // SPI error
lblNCSPI.Invoke((Action)(() => lblNCSPI.Text = sAnalogData[index]));
break;
case 28: //i2c error
lblNCI2C.Invoke((Action)(() => lblNCI2C.Text = sAnalogData[index]));
break;
}
}
index++;
}
}
else
Debug.Print("wrong data-length (66): " + data.Length.ToString());
break;
 
case 'V':
if (data.Length == 12)
{
if (!check_HWError)
{
string[] sVersionStruct = new string[10] { "SWMajor: ", "SWMinor: ", "ProtoMajor: ", "LabelTextCRC: ", "SWPatch: ", "HardwareError 1: ", "HardwareError 2: ", "HWMajor: ", "BL_Firmware: ", "Flags: " };
string sVersion = "";
//sbyte[] signed = Array.ConvertAll(data, b => unchecked((sbyte)b));
Log(LogMsgType.Warning, (adr == 1 ? "FC-" : "NC-") + "Version: ");
sVersion = "HW V" + (data[7] / 10).ToString() + "." + (data[7] % 10).ToString();
Log(LogMsgType.Incoming, sVersion);
sVersion = "SW V" + (data[0]).ToString() + "." + (data[1]).ToString() + ((char)(data[4] + 'a')).ToString();
Log(LogMsgType.Incoming, sVersion);
Log(LogMsgType.Incoming, "BL-Firmware: V" + (data[8] / 100).ToString() + "." + (data[8] % 100).ToString());
}
if(data[5] > 0) //error0
{
if(adr == 1)
ErrorLog(LogMsgType.Error, "FC - HW-Error " + data[5].ToString() + ": " + ((FC_HWError0)data[5]).ToString());
if (adr == 2)
ErrorLog(LogMsgType.Error, "NC - HW-Error " + data[5].ToString() + ": " + ((NC_HWError0)data[5]).ToString());
}
if (data[6] > 0) //error1
{
if (adr == 1)
ErrorLog(LogMsgType.Error, "FC - HW-Error " + data[6].ToString() + ": " + ((FC_HWError1)data[6]).ToString());
if (adr == 2)
ErrorLog(LogMsgType.Error, "NC - Unknown HW-ERROR: " + data[6].ToString()); //@moment NC has only one error field
}
 
}
check_HWError = false;
break;
 
case 'K'://BL-CTRL debug data from NC
if (data.Length == 6 && data[0] < 8)
{
Label lbCur = new Label(), lbTemp = new Label();
switch (data[0])
{
case 0:
lbCur = LBLNCM1Cur;
lbTemp = LBLNCM1Temp;
break;
case 1:
lbCur = LBLNCM2Cur;
lbTemp = LBLNCM2Temp;
break;
case 2:
lbCur = LBLNCM3Cur;
lbTemp = LBLNCM3Temp;
break;
case 3:
lbCur = LBLNCM4Cur;
lbTemp = LBLNCM4Temp;
break;
case 4:
lbCur = LBLNCM5Cur;
lbTemp = LBLNCM5Temp;
break;
case 5:
lbCur = LBLNCM6Cur;
lbTemp = LBLNCM6Temp;
break;
case 6:
lbCur = LBLNCM7Cur;
lbTemp = LBLNCM7Temp;
break;
case 7:
lbCur = LBLNCM8Cur;
lbTemp = LBLNCM8Temp;
break;
}
if (lbCur != null)
lbCur.Invoke((Action)(() => lbCur.Text = ((double)data[1] / (double)10).ToString("0.0 A")));
if (lbTemp != null)
lbTemp.Invoke((Action)(() => lbTemp.Text = data[2].ToString("0 °C")));
 
}
 
break;
 
case 'O': //NC Data
int i_16,iVal;
i_16 = data[81];
i_16 = (Int16)(i_16 << 8);
iVal = data[80] + i_16;
lblNCCap.Invoke((Action)(() => lblNCCap.Text = iVal.ToString() + " mAh")); //Capacity used
 
i_16 = data[56];
i_16 = (Int16)(i_16 << 8);
iVal = data[55] + i_16;
TimeSpan t = TimeSpan.FromSeconds(iVal);
string Text = t.Hours.ToString("D2") + ":" + t.Minutes.ToString("D2") + ":" + t.Seconds.ToString("D2");
lblNCFlTime.Invoke((Action)(() => lblNCFlTime.Text = Text.ToString())); //Flying time
 
lblNCRC.Invoke((Action)(() => lblNCRC.Text = data[66].ToString())); //RC quality
lblNCErrNmbr.Invoke((Action)(() => lblNCErrNmbr.Text = data[69].ToString())); //NC Errornumber
if (data[69] > 0)
_readNCError();
break;
 
case 'E': //NC error-string
ErrorLog(LogMsgType.Error, "NC Error: " + s);
 
break;
 
case 'L':
if(data.Length == 84)
{
string sMessage = "";
iOSDPage = data[0];
iOSDMax = data[1];
if (cbOSD.Items.Count != iOSDMax) _initOSDCB();
sMessage = new string(ASCIIEncoding.ASCII.GetChars(data, 2, data.Length - 4));
OSD(LogMsgType.Incoming, sMessage.Substring(0,20));
OSD(LogMsgType.Incoming, sMessage.Substring(20,20));
OSD(LogMsgType.Incoming, sMessage.Substring(40,20));
OSD(LogMsgType.Incoming, sMessage.Substring(60,20));
lblOSDPageNr.Invoke((Action)(()=>lblOSDPageNr.Text = iOSDPage.ToString("[0]")));
 
}
else
OSD(LogMsgType.Incoming,"Wrong length: " + data.Length + " (should be 84)");
break;
case 'H':
if(data.Length == 81)
{
string sMessage = "";
sMessage = new string(ASCIIEncoding.ASCII.GetChars(data, 0, data.Length - 1));
OSD(LogMsgType.Incoming, sMessage.Substring(0,20));
OSD(LogMsgType.Incoming, sMessage.Substring(20,20));
OSD(LogMsgType.Incoming, sMessage.Substring(40,20));
OSD(LogMsgType.Incoming, sMessage.Substring(60,20));
 
}
else
OSD(LogMsgType.Incoming, "Wrong length: " + data.Length + " (should be 81)");
break;
 
//default:
// Log(LogMsgType.Incoming, "cmd: " + cmdID.ToString());
// Log(LogMsgType.Incoming, BitConverter.ToString(data));
// break;
}
}
//else
//{
// Log(LogMsgType.Incoming, "cmd: " + cmdID.ToString());
// Log(LogMsgType.Incoming, BitConverter.ToString(data));
//}
}
}
}
 
/// <summary> send message to controller to request data
/// for detailed info see http://wiki.mikrokopter.de/en/SerialProtocol/
/// </summary>
/// <param name="CMDID"> the command ID </param>
/// <param name="address"> the address of the controller: 0-any, 1-FC, 2-NC </param>
private void _sendControllerMessage(char CMDID, byte address)
{
if (simpleSerialPort.Port.IsOpen)
{
Stream serialStream = simpleSerialPort.Port.BaseStream;
byte[] bytes = FlightControllerMessage.CreateMessage(CMDID, address);
serialStream.Write(bytes, 0, bytes.Length);
 
}
else
Log(LogMsgType.Error, "NOT CONNECTED!");
}
/// <summary> send message to controller to request data
/// for detailed info see http://wiki.mikrokopter.de/en/SerialProtocol/
/// </summary>
/// <param name="CMDID"> the command ID </param>
/// <param name="address"> the address of the controller: 0-any, 1-FC, 2-NC </param>
/// <param name="data"> additional data for the request</param>
private void _sendControllerMessage(char CMDID, byte address, byte[]data)
{
if (simpleSerialPort.Port.IsOpen)
{
Stream serialStream = simpleSerialPort.Port.BaseStream;
byte[] bytes = FlightControllerMessage.CreateMessage(CMDID, address,data);
serialStream.Write(bytes, 0, bytes.Length);
 
}
else
Log(LogMsgType.Error, "NOT CONNECTED!");
}
 
/// <summary>
/// read the analog-label names for the actual controller
/// and load it into listbox
/// </summary>
void _loadLabelNames()
{
if (_iCtrlAct > 0 && _iCtrlAct < 3)
{
switch (_iCtrlAct)
{
case 1:
sAnalogLabel = Properties.Resources.FCLabelTexts.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
break;
case 2:
sAnalogLabel = Properties.Resources.NCLabelTexts.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
break;
}
for (int i = 0; i < 32; i++)
{
if (dtAnalog.Rows.Count < 32)
dtAnalog.Rows.Add(sAnalogLabel[i], "");
else
dtAnalog.Rows[i].SetField(0, sAnalogLabel[i]);
}
dataGridView1.Invoke((Action)(()=>dataGridView1.Refresh()));
}
}
/// <summary>
/// no longer used...
/// read the analog-label textfile for the actual controller
/// </summary>
private void _loadLabelFile()
{
switch (_iCtrlAct)
{
case 1:
fileName = "FCLabelTexts.txt";
break;
case 2:
fileName = "NCLabelTexts.txt";
break;
//default:
// fileName = "NCLabelTexts.txt";
// break;
}
 
if (File.Exists(filePath + "\\" + fileName))
{
sAnalogLabel.Initialize();
sAnalogLabel = File.ReadAllLines(filePath + "\\" + fileName);
lbLabels.Invoke((Action)(() => lbLabels.Items.Clear()));
lbLabels.Invoke((Action)(() => lbLabels.Update()));
lbLabels.Invoke((Action)(() => lbLabels.Items.AddRange(sAnalogLabel)));
Console.WriteLine("Names loaded from file");
lblFileName.Invoke((Action)(() => lblFileName.Text = fileName));
}
else
{
_readCont(false);
Log(LogMsgType.Error, "Label-file not found!");
Log(LogMsgType.Error, "Please go to settings-tab and load the label texts from the copter control (FC & NC)");
Log(LogMsgType.Error, "When done, you have to save the label texts with the 'save' button!");
}
}
/// <summary>
/// no longer used...
/// assign the analog-label names from the textfile to the datatable
///
/// </summary>
private void _assignLabelNames()
{
if (lbLabels.Items.Count == 32)
{
lbLabels.Items.CopyTo(sAnalogLabel, 0);
for (int i = 0; i < 32; i++)
{
if (dtAnalog.Rows.Count < 32)
dtAnalog.Rows.Add(sAnalogLabel[i], "");
else
dtAnalog.Rows[i].SetField(0, sAnalogLabel[i]);
 
}
}
}
/// <summary>
/// get the version struct of actual controller
/// </summary>
/// <summary>
/// get the labeltexts for the analog values
/// </summary>
private void _getAnalogLabels()
{
if (simpleSerialPort.Port.IsOpen)
{
iLableIndex = 0;
for (int i = 0; i < 32; i++)
{
Stream serialStream = simpleSerialPort.Port.BaseStream;
byte[] bytes = FlightControllerMessage.CreateMessage('a', 0, new byte[1] { (byte)i });
serialStream.Write(bytes, 0, bytes.Length);
Thread.Sleep(10);
}
}
else
Log(LogMsgType.Error, "NOT CONNECTED!");
}
/// <summary>
/// get the labeltext for a single label
/// </summary>
/// <param name="iIndex">index of the label</param>
private void _getAnalogLabels(int iIndex)
{
if (simpleSerialPort.Port.IsOpen)
{
if (iIndex < 32)
{
iLableIndex = iIndex;
_sendControllerMessage('a', 0, new byte[1] { (byte)iLableIndex });
}
}
else
Log(LogMsgType.Error, "NOT CONNECTED!");
}
private void _getVersion()
{
_sendControllerMessage('v', 0);
}
/// <summary>
/// get FC version struct via NC
/// by sending '1' as data (not documented in wiki...)
/// returns HW error 255 (comment in uart1.c : tells the KopterTool that it is the FC-version)
/// </summary>
/// <param name="ctrl">controller number 1=FC</param>
private void _getVersion(byte ctrl)
{
_sendControllerMessage('v', 0, new byte[1] {ctrl});
}
/// <summary>
/// Switch back to NC by sending the 'Magic Packet' 0x1B,0x1B,0x55,0xAA,0x00
/// </summary>
private void _switchToNC()
{
if (simpleSerialPort.Port.IsOpen)
{
Stream serialStream = simpleSerialPort.Port.BaseStream;
byte[] bytes = new byte[5] { 0x1B,0x1B,0x55,0xAA,0x00 };
serialStream.Write(bytes, 0, bytes.Length);
 
Thread.Sleep(100);
_getVersion();
Thread.Sleep(100);
_OSDMenue(0);
}
else
Log(LogMsgType.Error, "NOT CONNECTED!");
}
/// <summary>
/// switch to FC
/// </summary>
private void _switchToFC()
{
_sendControllerMessage('u', 2, new byte[1] { (byte)0 });
Thread.Sleep(100);
_getVersion();
Thread.Sleep(100);
_OSDMenue(0);
}
/// <summary>
/// send RESET signal to FC
/// </summary>
private void _resetCtrl()
{
_sendControllerMessage('R', 1);
}
/// <summary>
/// poll the debug data (4sec subscription)
/// </summary>
/// <param name="auto"> onetimequery(false) or autoupdate(true) with set timing interval </param>
private void _readDebugData(bool auto)
{
byte interval = auto ? debugInterval : (byte)0;
_sendControllerMessage('d', 0, new byte[1] { debugInterval });
}
/// <summary>
/// poll the BL-CTRL status via NC (4sec subscription)
/// </summary>
/// <param name="auto"> onetimequery(false) or autoupdate(true) with set timing interval </param>
private void _readBLCtrl(bool auto)
{
byte interval = auto ? blctrlInterval : (byte)0;
_sendControllerMessage('k', 0, new byte[1] { interval });
}
/// <summary>
/// poll the NC data struct (4sec subscription)
/// </summary>
/// <param name="auto"> onetimequery(false) or autoupdate(true) with set timing interval </param>
private void _readNavData(bool auto)
{
byte interval = auto ? navctrlInterval : (byte)0;
_sendControllerMessage('o', 2, new byte[1] { interval });
}
/// <summary>
/// get the errortext for pending NC error
/// </summary>
private void _readNCError()
{
_sendControllerMessage('e', 2);
}
/// <summary>
/// start/stop continous polling of controller values
/// </summary>
/// <param name="b">start/stop switch</param>
void _readCont(bool b)
{
bReadContinously = b;
btnReadDebugCont.Invoke((Action)(() => btnReadDebugCont.Text = bReadContinously ? "stop automatic" + Environment.NewLine + "data refresh" : "start automatic" + Environment.NewLine + "data refresh"));
btnReadDebugCont.Invoke((Action)(() => btnReadDebugCont.BackColor = bReadContinously ? Color.FromArgb(192, 255, 192) : Color.FromArgb(224, 224, 224)));
if (bReadContinously)
{
_readDebugData(true);
if (_iCtrlAct == 2) { Thread.Sleep(10); _readBLCtrl(true);}
if (_iCtrlAct == 2) { Thread.Sleep(10); _readNavData(true);}
Thread.Sleep(10);
_OSDMenueAutoRefresh();
lblLifeCounter.Invoke((Action)(() => lblLifeCounter.BackColor = Color.FromArgb(0, 224, 0)));
}
else
lblLifeCounter.Invoke((Action)(() => lblLifeCounter.BackColor = Color.FromArgb(224, 224, 224)));
_iLifeCounter = 0;
}
/// <summary>
/// set fieldtexts to "NA" when not available with FC
/// </summary>
void _setFieldsNA()
{
Thread.Sleep(100);
Label lbCur = new Label(), lbTemp = new Label();
for (int i = 0; i < 8; i++)
{
//BL-Ctrl Temp & Current
switch (i)
{
case 0:
lbCur = LBLNCM1Cur;
lbTemp = LBLNCM1Temp;
break;
case 1:
lbCur = LBLNCM2Cur;
lbTemp = LBLNCM2Temp;
break;
case 2:
lbCur = LBLNCM3Cur;
lbTemp = LBLNCM3Temp;
break;
case 3:
lbCur = LBLNCM4Cur;
lbTemp = LBLNCM4Temp;
break;
case 4:
lbCur = LBLNCM5Cur;
lbTemp = LBLNCM5Temp;
break;
case 5:
lbCur = LBLNCM6Cur;
lbTemp = LBLNCM6Temp;
break;
case 6:
lbCur = LBLNCM7Cur;
lbTemp = LBLNCM7Temp;
break;
case 7:
lbCur = LBLNCM8Cur;
lbTemp = LBLNCM8Temp;
break;
}
if (lbCur != null)
lbCur.Invoke((Action)(() => lbCur.Text = "NA"));
if (lbTemp != null)
lbTemp.Invoke((Action)(() => lbTemp.Text = "NA"));
 
}
lblNCFlTime.Invoke((Action)(() => lblNCFlTime.Text = "NA")); //FlightTime
lblNCErrNmbr.Invoke((Action)(() => lblNCErrNmbr.Text = "NA")); //NC ErrorNr
lblNCMF.Invoke((Action)(() => lblNCMF.Text = "NA")); //earth magnet field
lblNCGSpeed.Invoke((Action)(() => lblNCGSpeed.Text = "NA")); //GroundSpeed
lblNCDist.Invoke((Action)(() => lblNCDist.Text = "NA")); //Distance to HP
lblNCSat.Invoke((Action)(() => lblNCSat.Text = "NA")); //Sats used
}
/// <summary>
/// one time query of the OSD Menue with pagenumber
/// </summary>
/// <param name="iMenue">Menue page</param>
void _OSDMenue(int iMenue)
{
if (simpleSerialPort.Port.IsOpen)
{
if (iMenue > iOSDMax)
iMenue = 0;
Stream serialStream = simpleSerialPort.Port.BaseStream;
byte[] bytes = FlightControllerMessage.CreateMessage('l', 0, new byte[1] { (byte)iMenue });
serialStream.Write(bytes, 0, bytes.Length);
}
else
Log(LogMsgType.Error, "NOT CONNECTED!");
 
}
/// <summary>
/// call the OSDMenue and start autorefresh
/// usually by sending a menuekey
/// a bit tricky - but by sending inverted value of 32 (32 = 0010 0000) you can start the OSD menue with autoupdate (abo) without switching the page with the keyvalues (0x1, 0x2)
/// therefore the value has to be negative (inverted) in order to distinguish from old (2 line) menuestyle
/// and must not have any bits of the menue keys 0x1 0x2 0x4 0x8 (0x10?) --> 0x20 = -33
/// </summary>
void _OSDMenueAutoRefresh()
{
_sendControllerMessage('h', 0, new byte[2] { unchecked((byte)(-33)),OSDInterval });
}
void _OSDMenueAutoRefresh(byte key)
{
_sendControllerMessage('h', 0, new byte[2] { unchecked((byte)~key), OSDInterval });
}
/// <summary>
/// initialize the OSD menue combobox
/// combox is filled by numbers from 0 to max pagenumber
/// </summary>
void _initOSDCB()
{
_bCBInit = true;
if(iOSDMax == 0)
{
_OSDMenue(0);
Thread.Sleep(10);
}
cbOSD.Invoke((Action)(()=>cbOSD.Items.Clear()));
for(int i = 0; i <= iOSDMax;i++)
{
cbOSD.Invoke((Action)(() => cbOSD.Items.Add(i)));
}
cbOSD.Invoke((Action)(() => cbOSD.SelectedItem = iOSDPage));
_bCBInit = false;
}
void _readIni()
{
if (!File.Exists(filePath + "\\MKLiveViewSettings.ini"))
_writeIni();
IniFile ini = new IniFile("MKLiveViewSettings.ini");
ini.path = filePath + "\\MKLiveViewSettings.ini";
 
string sVal = ini.IniReadValue("default", "AutorefreshDebugData");
_debugDataAutorefresh = Convert.ToBoolean(sVal);
sVal = ini.IniReadValue("default", "AutorefreshNavCtrlData");
_navCtrlDataAutorefresh = Convert.ToBoolean(sVal);
sVal = ini.IniReadValue("default", "AutorefreshBLCtrlData");
_blctrlDataAutorefresh = Convert.ToBoolean(sVal);
sVal = ini.IniReadValue("default", "AutorefreshOSDData");
_OSDAutorefresh = Convert.ToBoolean(sVal);
 
sVal = ini.IniReadValue("default", "IntervalDebugData");
debugInterval = (byte)Convert.ToInt16(sVal);
sVal = ini.IniReadValue("default", "IntervalNavCtrlData");
navctrlInterval = (byte)Convert.ToInt16(sVal);
sVal = ini.IniReadValue("default", "IntervalBLCtrlData");
blctrlInterval = (byte)Convert.ToInt16(sVal);
sVal = ini.IniReadValue("default", "IntervalOSDData");
OSDInterval = (byte)Convert.ToInt16(sVal);
}
void _writeIni()
{
 
IniFile ini = new IniFile("MKLiveViewSettings.ini");
ini.path = filePath + "\\MKLiveViewSettings.ini";
 
ini.IniWriteValue("default", "AutorefreshDebugData", _debugDataAutorefresh ? "true":"false");
ini.IniWriteValue("default", "AutorefreshNavCtrlData", _navCtrlDataAutorefresh ? "true":"false");
ini.IniWriteValue("default", "AutorefreshBLCtrlData", _blctrlDataAutorefresh ? "true":"false");
ini.IniWriteValue("default", "AutorefreshOSDData", _OSDAutorefresh ? "true":"false");
 
ini.IniWriteValue("default", "IntervalDebugData", debugInterval.ToString());
ini.IniWriteValue("default", "IntervalNavCtrlData", navctrlInterval.ToString());
ini.IniWriteValue("default", "IntervalBLCtrlData", blctrlInterval.ToString());
ini.IniWriteValue("default", "IntervalOSDData", OSDInterval.ToString());
}
 
#endregion functions
 
#region buttons
private void buttonReset_Click(object sender, EventArgs e)
{
_resetCtrl();
}
private void btnVersion_Click(object sender, EventArgs e)
{
_getVersion();
}
private void btnAnalogLabels_Click(object sender, EventArgs e)
{
_getAnalogLabels(0);
}
private void btnDbgData_Click(object sender, EventArgs e)
{
_readDebugData(false); //onetime reading of debug data --> subscription lasts 4sec - this means you will receive data for 4 seconds
}
private void btnSaveLabels_Click(object sender, EventArgs e)
{
switch (_iCtrlAct)
{
case 1:
fileName = "FCLabelTexts.txt";
break;
case 2:
fileName = "NCLabelTexts.txt";
break;
default:
fileName = "NCLabelTexts.txt";
break;
}
if (sAnalogLabel[0] != null)
{
File.WriteAllLines(filePath + "\\" + fileName, sAnalogLabel);
Console.WriteLine("Names saved to file");
_loadLabelFile();
}
else
Log(LogMsgType.Warning, "there's no data -> read first from fc/nc!");
}
private void btnLoadLabels_Click(object sender, EventArgs e)
{
_assignLabelNames();
}
private void btnReadLabelFile_Click(object sender, EventArgs e)
{
_loadLabelFile();
}
private void btnSwitchFC_Click(object sender, EventArgs e)
{
_switchToFC();
}
private void btnSwitchNC_Click(object sender, EventArgs e)
{
_switchToNC();
}
private void btnReadDbgCont_Click(object sender, EventArgs e)
{
_readCont(!bReadContinously);
}
private void btnReadBLCtrl_Click(object sender, EventArgs e)
{
 
if (_iCtrlAct == 2) _readBLCtrl(false);
else Log(LogMsgType.Warning, "only available when connected to NC");
}
private void btnGetNaviData_Click(object sender, EventArgs e)
{
if (_iCtrlAct == 2) _readNavData(false);
else Log(LogMsgType.Warning, "only available when connected to NC");
}
private void btnConn_Click(object sender, EventArgs e)
{
simpleSerialPort.Connect(!simpleSerialPort.Port.IsOpen);
}
private void button3_Click(object sender, EventArgs e)
{
_getVersion(1);
}
private void button4_Click(object sender, EventArgs e)
{
_getVersion(2);
}
private void btnOSD_Click(object sender, EventArgs e)
{
if (iOSDPage > iOSDMax)
iOSDPage = 0;
_OSDMenue(iOSDPage);
}
private void btnOSDForward_Click(object sender, EventArgs e)
{
iOSDPage++;
if (iOSDPage > iOSDMax)
iOSDPage = 0;
 
_OSDMenue(iOSDPage);
}
private void btnOSDBackward_Click(object sender, EventArgs e)
{
iOSDPage--;
if (iOSDPage < 0)
iOSDPage = iOSDMax;
 
_OSDMenue(iOSDPage);
}
private void btnOSDAuto_Click(object sender, EventArgs e)
{
_OSDMenueAutoRefresh();
}
/// call the OSDMenue with Key 0x8
private void btnOSDLeave_Click(object sender, EventArgs e)
{
_OSDMenueAutoRefresh(8);
}
/// call the OSDMenue with Key 0x4
private void btnOSDEnter_Click(object sender, EventArgs e)
{
_OSDMenueAutoRefresh(4);
}
#endregion buttons
 
}
public class IniFile
{
public string path;
 
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,
string key, string val, string filePath);
 
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern uint GetPrivateProfileSectionNames(IntPtr lpszReturnBuffer,
uint nSize, string lpFileName);
 
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retVal,
int size, string filePath);
 
public IniFile(string INIPath)
{
path = INIPath;
}
 
public void IniWriteValue(string Section, string Key, string Value)
{
WritePrivateProfileString(Section, Key, Value, this.path);
}
 
public string IniReadValue(string Section, string Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section, Key, "", temp, 255, this.path);
return temp.ToString();
}
//Ini_sections auslesen in String-Array
public string[] IniSectionNames()
{
 
// uint MAX_BUFFER = 32767;
uint MAX_BUFFER = 8388608;
IntPtr pReturnedString = Marshal.AllocCoTaskMem((int)MAX_BUFFER);
uint bytesReturned = GetPrivateProfileSectionNames(pReturnedString, MAX_BUFFER, this.path);
if (bytesReturned == 0)
{
Marshal.FreeCoTaskMem(pReturnedString);
return null;
}
string local = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned).ToString();
Marshal.FreeCoTaskMem(pReturnedString);
//use of Substring below removes terminating null for split
return local.Substring(0, local.Length - 1).Split('\0');
 
 
}
}
public static class ControlExtensions
{
/// <summary>
/// Execute a threadsafe operation, when accessing a control via another thread
/// action is a lamdaexpression
/// e.g. comboBox1.ExecuteThreadSafe(() => comboBox1.Enabled = true);
/// </summary>
/// <param name="control"> The control </param>
/// <param name="action"> The 'action' to perform </param>
public static void ExecuteThreadSafe(this Control control, Action action)
{
if (control.InvokeRequired)
{
control.BeginInvoke(action); //"BeginInvoke" is an async call -> threadsafety error when called to many times successively -> then take "Invoke"
}
else
{
action.Invoke();
}
}
}
 
}
/MKLiveView/Source/MainForm.resx
0,0 → 1,1040
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
 
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHSAlexwfJHscHySYHSAlcQAAAAAiJSkAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4ijBwfJKIiJSpEGRwh7CIk
KSsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0gJZ4cHySqJCcsIgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHiAlExocIR8cHyQZQ0Y+AQAAAAAlKCwAAAAAAAAAAAAAAAAAAAAAAAAA
AAAvMjcJGx4jvSIkKUIaHSLUJSgsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAjKE8dICVyHyAlRgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiJSouHyInfyAjKFQnKC1AIiUpSR8iJ3IgIyhgIiUoDwAA
AAAAAAAAAAAAAAAAAAAAAAAAKi0xAAAAAAAbHiSkICMoSxwfJJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAUHdgELzfbeTE42iglLtqXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADA42gAxOdoVIyzayC422k0sNNpzJzDaW2Fn3wkAAAAAPEPaHzA52lgwONtPMzzaRTQ8
2k43P9olAAAAACoz2iwqMtpsMDjaZyYu2molLdq2bXHaA0ZN2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1F2wclLtqKJS7auCcw2ocvN9p1LTXabisz
2nQrM9pwLTXbeSw02ngrM9pwKzTacTA32nAtNtp6JCzanyUu2rUpMNpcAAAAACs02gAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwONoAAAAAAP//
9QEqM9pKIirakScv2rAoMNqrJzDaqiYv2qcnL9qpJzDaqicv2q0kLdqqJC3adjM82iYAAAAAAAAAAFdd
3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP/4Af///////8f+P///////sfjP//////5f/5P//////3//5f/////8///6////////
//1//////f///v/////9////f/////3/x/9//4A//f/v/3/4f8f/////f+Y/G/6f//3/k//1/2//8v8v
//z/0//N/z/L/v/mADf/f//+//z/n/9/5/7//////v/H/v/////+v//7/z//t//f++Xn/P/b72//l6P4
n+h/mHBP3/+/gD/n/j+//+/hf/4H/3//9///////f8/7/8A///+///v+ABP//9f/+/j/8///5f/X+//9
///4wJ/3//7///+Af/f5/v//////9//+///////7//3///////x/5////////4A///8oAAAAgAAAAIoA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzE2AAAA
AAAAAAAAAAAAAJ2gpQMiJSopHSAlShweI2cbHSJ/Gh0ikxkcIaQZHCGzGRwhvSUoLN8rLTL/Jiku/yUo
LekgIyfHGBsgtRkcIakaHSKZGx4jiBseI3McHyRaHiEmPicqLx4AAAAAAAAAAAAAAAAAAAAAAAAAAE5P
UwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABeYWUAAAAEAAAAAAAAAAAAi4mOBSAjKEQbHiN+GRwhqhgbIMsYGyDqGBsg/xca
H/8WGR7/GRwh/xkcIf8aHCH2GBsg6hYZHuEYGyDiGBsg5xgbIfIZHCH/GRwh/xcaH/8XGh//GBsg/xgb
IPoYGyDfGRwhwBodIaEcHyR3ISQoQUdKTAoAAAAAAAAAAAAAAAAoKzAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOj5EAFRkeAAAAAAAAAAAALTAzIR0g
JXwZGyC/GBsg4xgbIP8XGh//GRwh/hodIsobHiObHSAkcx8hJlAcHyQ6HB8kLx4fJCceISYiGx4jHx8i
Jx8cHyQhHB8kJRwfJCwcHyQ1HiEmRh4gJWMbHiOGGh0isBkcId0ZHCH/Fxof/xgbIP8YGyDiGRwhwR0f
I4snKS43AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAKy4zAAAAAAAAAAAALjE2GhwfJJAYGyDbGBsg/RcaH/8bHiPiHB8kjyAjKEYgIygYLzI3Gicq
Lz0gIyhgHiEmfxwfI5obHiO0Gh0ixhseI9MaHSLZGRwh2RseI9YaHSLLGx4juxseI6QdHySKHyInbyIl
KlAsLzQuKiwxEh0gJSAhJChUHB8kmhodIuQYGyD/Fxof/xcaH+kbHiO8ISQpWAAAAAAAAAAAAAAAAGtu
cgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMmKwAAAAAAAAAAACAjKGcZHCHfFxof/xkc
If8cHySkJCcsNx8iKQctMDQvHyImeRseI74YGyDvGBsg9xseI98cHyS6HSAlnh0gJYYfIiZ1ICMoaCAj
J2IbHiNfIiUqaB8hJnAeISZ/HiEmkx0gJa0bHiPMGh0i8BcaH/YZHCHmHB8jqyAjKG0qLTIsSkxPByMm
KzIeISWRGh0h7xgbH/8XGh/4Gx4j0yMlKlMAAAAAAAAAACgqLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxd
XwAbHiMAAAAAACksMRYdICWjGBsg/xkcIfseISWWKy0xGTs9QhEfIiZzHB8j1xcaH/4cHyTXHiEmjCMm
K0swMzcXKSwxBBodIgQeICUDHiElAyAjJwIiJSoCIyYpAh0gJAEmKS4CISMoAh8iJwIeISYDHSAlBBYZ
HgRDRUkGLC8zKSEkKF8dICWcGx4j3RgbIP8aHSLZHyInfiorMCJbYWIGISQpWRseI9UXGh//Fxof/hwf
I8QtLjQmAAAAAAAAAABHSk4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiJSoAAAAAAAAAAAAjJisiHB8kwhcaH/8bHiO7JyovKzQ3
OxYeISaNGRwh9RodIuQeISaALjE0IgAAAAAAAAAAAAAAAAAAAAAAAAAAg4WGAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf4CDAAAAAAAAAAAAAAAAAAAAAAAAAAAALzE2Ih8i
J3saHSLVGRwh/BwfJLsjJitDhYiKAyMlKlAaHSLVFxof/RgbIPohJCh0AAAAAAAAAAAAAAAAKy0yAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAICMoHRwfJMQYGyD4HyEmejs/QxIfIidwGRwh6hseItEiJSlVAAAAAAAAAAAAAAAAAAACAKut
rgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAMzU6AAAAAAAAAAAAAAAAAAAAAAAnKi8wHB8joxkcIPIbHiPIISQpSj9B
RgohJClpGRwh5hgbIP8cHySuKy4zFQAAAAAAAAAAKi0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPUBGACcqMAsdICWkGBsg7iEkKVknKi8qGx4juBod
It4gIyhkAAAAAAAAAAAAAAAAT1FVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAzNjoAAAAAAAAAAAAAAAAAMDM4GxwfJJAZHCHpHSAluSEjKDcxNDghGx4jpxgbIPsbHiPGJykuJgAA
AAAAAAAALTA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4x
NgAAAAAAICMoWBkcIfMgIydTIiUpQhseI9MbHiOsLC8yHQAAAAAAAAAACA0SAGNjZwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYmRpAAIFCgAAAAAAAAAAACsu
MSUbHiOgGx4j5B0gJYgmKS4eICMoahkcIfAbHiPHJCcsJgAAAAAAAAAAU1VYAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc6PwcbHiPZHiEmbSQnK0AbHiPbHSAliTs+
QwgAAAAAAAAAADs9QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAz
NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXWBjAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3eAAVGB0AAAAAAAAAAAAgIyhQGh0ixhwfJMIhIyg4JCcsSRod
IuQbHiOyJSgtFQAAAAARFBkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAIyYrRBwfJLsrLjImGx0i1B0fJI2AhYkEAAAAACIlKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAhYWHABUYHQAAAAAAAAAAAFdaXAYhIygyHR8kUBweI2EaHSJkHB8kXB0g
JUkkJyooAAAAAAAAAAAAAAAAAAAAACcqLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA5Oz8AAAAAAAAAAAAqLTEeHB8kmxsdItggIyhLIyYrRRodIuEdICR7LjE0BgAAAAA7PUEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfIieOJSgtMhwfJKUbHSK9RkZKBwAA
AAAoKzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsuMgAAAAAAAAAAACQn
LCUfIieBHyInhiAjJ3EgIyhiIyUqWSUnLFgiJSlbICMoZR8iJ3UfIieMHiEmfSUoLCQAAAAAAAAAADI0
OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvMDUNHR8khBod
I9sgIyhIHyInXxseI9UgIycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACYpLnwlKC06GRwh8SkrLzEAAAAAGBofAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIyhjISQpgCQnLEIdICUsICMnGScqLwxHS04FeHp9AzY4
PAYlKCwPHSAmHR0hJSwkJitDISQphSAjJ4Z6fXwDAAAAAC4xNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAArLjMAAAAAAAAAAAAxNDgLHB8kiRseI9EjJisxHB4knR8iJ3skJywJAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODo/Ox0gJJsbHiO1AAAAAAAA
AACVlZcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4wNQAAAAAAJCYrVSUn
LFcjJisXdXZ7AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5NUwEfIicRJiktOiEj
KKE5PUINAAAAAFdaXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NzsAAAAAAAAA
AAArLjIVGx4jrBseI6InKi44HiElqxwfIxsAAAAAXF1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABbXF8FGx0i4x8iJ2IAAAAAAAAAAF9hZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4wNRkrLTI5KSwxEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
JhodICUiHB8kLB8iJ0QdICV6Gx4juRodIfoYGyD/Fxof5xseI6cpLDE2IyYrCx8iJkkdICXHGRwh3CEk
KU4AAAAAAAAAAC8xNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAbHiPcIyYrVCEkKDwaHSLrHB4jiwAAAAAAAAAAJScsAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADw/QwAAAAAAgG54ACgrMBcgIyhnHyEmmSEkKFZdYGMGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACksLyAhJCiHIiUqZSYoLQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAFJUVwAAAAAA////ARodIuAlJyyRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALTA0AAAAAAAAAAAAOz5BER0g
JYAZHCHUHB8kyx0fJIYdISQ2LTA0HyYpLkMdHySAGRwhthgbINgYGyD1GBsg/xodIv8aHSLqGh0izhod
IrYbHiOlHB8kmRodIpAaHSKQHB8klRseI58bHiKuGh0ixRodIuEZHCH/GRwh/xgbIPcYGyDZGRwhsh4h
JnMvMjYuJCUqHhwfJFUcHySzGh0i3xseI5M1ODsVAAAAAAAAAAA/QUYAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSgsOxwfJKYpLDAhGx4j6Bwe
JIsAAAAAAAAAACotMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApLDEZIyYrcyMl
Kk8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9CRgAAAAAAAAAAAAAAAAAmKCxULjA0KWho
bQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMTVMFHyIndBod
IdsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
JUocHySgFxof/xcaH/8ZHCHbGBsg5hgbIPoXGh//Fxof/xgbIfQgIyh4LzE1LyIlKj4cHiNoGRwhmhwf
JLIeISWYICMneh8iJ14dICY8Ki0yDgAAAAAAAAAAAAAAAD9BRQAAAAAAAAAAACMlKgAAAAAAAAAAACcq
LxgcHyR1HB8kxxodIsoaHSKIIiUqNQAAAAAqKzAWHSAlQBseI2kaHSKXGhwivhodIdwZHCH1GRwh/xod
Iv8bHiP/Gh0i/xseI/8aHSL/GRwh/xkcIf0ZHCHoGh0izhodIq4aHSKGGx4jXh0gJDgwMjcjKy4zLBwf
JF4ZHCGiGx4j0BwfJL8bHiODHyInOJyfpAIAAAAAAAAAACgrLwAAAAAAAAAAAAAAAAAAAAAAAAAAACAj
KFwhJChqMDM4FxseI60bHiPWHSAlbyAiJyT///8AAAAAAAAAAAAAAAAAOTtAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAISGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHSEwAAAAAAAAAAAAAAAAAAAAAAAAA
AAAzNjgKHSAlKRwfJFIdHyShGx4j2RkcIbghJClUJCcrOx4gJZgeISaeJSgtGwAAAAAAAAAAAAAAAFlb
XgYsLjMiICMnQh0gJWgbHiOPGh0itxgbINMZHCHkGx4j4xseI9EaHSKxHB8kpRcaH/8XGh//Fxof/xca
H/8XGh//Fxof/xgbINYZHCHJGx4j0B0gJbAeISaCGx4jTR0gJC4oKzAPAAAAAAAAAAAAAAAAAAAAAEpL
UAAAAAAAAAAAAAAAAAAAAAAAAAAAACksMQAAAAAAAAAAAP///wAhJCknHSAlah0gJbIbHiPcGRwhyhwf
JI4dICVQLzI3IGJlZgwxMTYMHyImHRwfIysbHiQ1Gh0iPBseI0EZHCFCGh0iQRkcIj0cHyQ2HB8kLR4h
JiEpLDEXNTg8IigrLzgfIiZZGx4jjhgbIMIaHSLdHR8kwx0fJJUcHyRPHiElJZyfpgIAAAAAAAAAACYp
LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSgseSwuNA0cHyS5Gh0iyCMmKi1SVVsCAAAAAAAA
AAAAAAAARUdLAAAAAAAAAAAAAAAAAAAAAABmaGwAFBccAAAAAAAAAAAAAAAAAAAAAADFxsYF////AQAA
AAAAAAAAAAAAAAAAAAAAAAAAQURIAAAAAABGSE0AAAAAAAAAAAAAAAAAAAAAACMlKhEdICUxHSAlkhse
I+cbHiOoKi0wMCAjKGgeISasISQpHwAAAAAAAAAAQkRIECYpLTwiJSpYICMoZx4hJmwfIidmICMnUCAj
JzIaHSIeKi0xFCsuMy8iJCldGx4j2hcaH/8XGh//Fxof/xgbIP8bHiPlGBsg+hkcIf4hIydWICMoGC4x
NAgAAAAAAAAAAAAAAAAAAAAAS01RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHV2
dwAbHiMAAAAAAAAAAABYWl8CHyInFx8iJjIeISdwHSAkqRseI9UYGyDuGBsg3xodIsYbHiOjHB8kiB0g
JXQfISdnHB8jXxkcIV0eISZkHSAlbxwfJH8bHiOWGx4jsxodIdEXGiDlGh0h6RwfI84dICWnHiEmdR4g
JTodHyQhKCkuDQAAAAAAAAAAAAAAACksMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA3OT4+HyImdBkcIeAsLzMcAAAAAAAAAAAVGB0AZGRpAAAAAAAAAAAAAAAAAAAAAAAAAAAAPkBFAAAA
AAAAAAAAKCswHCcpLmMnKS5zIyYrdB0gJW0fISZ1JCYrgyMmK4YiJSp/JCcsOQAAAAAAAAAAHSAlAF1g
ZAAAAAAAAAAAADw+QgAAAAAAAAAAAAAAAAAmKS4JISQpNRseI74aHSLeIiUqRSIkKVYfIieZHiEmEgAA
AAArLDMBFBsfAXl8ggAAAAAAAAAAAEZHSxAlKC1CHiEmdB0gJasaHSLfFxof8hcaH/sZHCH/Gx4j1hoc
IfEYHCHsJSgtWAACBgMhJClOGh0h5BodItwoKjAdAAAAAAAAAABkZ2sAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4kABAgOAAAAAAAAAAAAAAAAACot
MgUeISQNGx4jFSYpLSchJClWHyInex0gJZgdICWvGx4jvxseI8odICXTHSAk0hseI8wcHyTDHB8kthwf
JKIeISaJHyImbCMmK0UkJyshGh0hEx4hJQ0oKzAGAAAAAAAAAAAAAAAAAAAAAD9CRQAAAAAAAAAAAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJi/akyIr
2uUqM9pPRk3bISsz2okqM9qIKjLaTmJn2wgAAAAAAAAAAAAAAAAAAAAAMjvYAjxD2js2PtpcMzzaWTA5
2lgrM9pKKzPaOS022jQtNtpANT7aTjQ82lYyOtppMTnaUgAAAAAAAAAAAAAAAAAAAAAAAAAALTXaNiox
2nssNNqULDTaVkZO3B0kLNqbIyva4i832kYAAAAAFh/WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAUFfbAAAAAABOVdoMJS7aiCMs2uUjLNqONz/aODA52lIrM9qGKDHanyYv
2nsvN9s+pKfiCAAAAAAAAAAAAAAAAD5F2xEuNtpDMzzaSzY92002PttNOEDaRzpD20E3P9pAMDjaPk5U
2g0AAAAAAAAAAAAAAAAzPNsyJi/abygw2pssNNqQKjLaZj9H2zooL9plIira0CUu2scrNNpBAAAAAAAA
0QCkp+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOUHaAAAA
AABYXdwHKDHaUyUu2sEiK9rcJS3alTQ82lY0PdtDLzfaZCoy2o8nMNq2JC3asicv2oYpMtpjLzfaQzlA
2ilPVNsbaG/cGWdt2x5bYtsgVFvbHzxE2igxONo8KjLaWyYv2oAlLdqoJy/auyky2pguN9puNDvbSTQ8
2lIpMtqCHyjazSYu2tkoL9p7LzbaIgAAAAAAAAAAUljaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDjaGysz2lkoMNq5ICna6CEq
2tAoMdqaLzfaajtD2kNBSdw5MTnaXCw02nspMtqTKDDapicw2rMnL9q7Jy/bvycv2rwmL9q0KDDaqSky
2pYrNNp+MDjaYTxD2kBCSdw+MDjaZCoy2pIhKtrHICna6yYv2sssNNpzKDDaKVdd3AYAAAAAAADNAGhu
3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAB5f+EAAADPAAAAAAAAAAAAU1nbAiUt2g00PNstLTbadScw2rwhKtrwHCXa9CMr2uUnL9rBKDHaoCsz
24YtNdpzLzfaZDI621w0PNxZMDjbWy832mMtNdpwKjPahCgw2p0mLtq8Iyza4B0m2vUgKdryJy/axys0
2oUyOts4LjXaE0NK2gUAAAAAAAAAADxD2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX2bdAAAAAAAAAAAAAAAAAHt/
3QAyO9oCGyTZBFti3ws9RNo4LTbaaSoy2pEnL9qzJi7azyQt2uMkLdrzIyva+iAp2vojLNr7JCza9CQt
2uUlLtrRJy/atykx2pYuN9pvOkDbPlVc3REQGdkELzfaA1Zd2wEAAAAAAAAAAAAAAAA+RtoAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/////AAf/////////////////4AAAP////////////////wH/+AP////
///////////gfgA/A///////////////w8B/AeD//////////////w4f//w8P/////////////4w////
xx/////////////85/////HH////////////+Z/////8Y/////////////s//////xn////////////2
f//////M////////////9P//////5v///////////+n//z+///N////////////7//7/5//5f///////
////8/////v//L////////////f////9//6////////////3///////+f///////////9///+P///3//
//////////f///A///9/////wAAf///3///wP///f////AAAAf//83//+H///z///+A//+B///s/////
//9///8H8AA+H//5n//////7f//8Pgf/A4f//M//////+3//8OD///hj//7n/+ff//Z//+OP////Gf//
c//////O///GP////83//7j/////nf//mP/////m///OP////jv//zP/////+v//5wf///hn//9n//HH
//n///ng///Bz//+z//f+//8///8OAAADx///p///////v///4fAAPh///8///////7////wf/+D////
f//8f//2/////wAAP////n//+D//9v////////////7///g//+z////////////+3//8///N////////
/////t//////mf///////97///5v/////zP//wf////uf///Z///7/xn/4AAD///5x///zH/4D/wz/x/
//D///GP/H+cf///w5/zwAAPH//4x4f/zg///A5/zh//wOP//GA//+eAPgB4/7j///4Z//wB4//4+AAH
w//n////xn+AAA///h///B//z/////G//4B////AfwH//9///P/83/gHP////gA///+//////n4B85//
////////v/////8v//3//////////7//8f//n/////////////+//+B//9///+AAB///////n//wf//P
//4D/+B//////8v/////z//4YAAHD//////m/////9//5g//8GP/////8z////7f/5j///8Z//////jP
///5v/9j////xv/////+Mf//5j//z/5///P//////4YP/hz//p/7///5///////g8AHj//+//////f//
/////gP8D///P//D//z////////wAf///3//gf/8//////////////8//8f//f//////////////t///
/9n//////////////5n///+z///////////////Gf//85///////////////8cP/hx//////////////
//w+APh/////////////////gP4B//////////////////gAP///////
</value>
</data>
</root>
/MKLiveView/Source/Program.cs
0,0 → 1,21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
 
namespace MKLiveView
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}