/MKLiveView/ArtificialHorizon/ArtificialHorizon.designer.vb |
---|
0,0 → 1,37 |
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ |
Partial Class ArtificialHorizon |
Inherits System.Windows.Forms.UserControl |
'UserControl overrides dispose to clean up the component list. |
<System.Diagnostics.DebuggerNonUserCode()> _ |
Protected Overrides Sub Dispose(ByVal disposing As Boolean) |
If disposing AndAlso components IsNot Nothing Then |
components.Dispose() |
End If |
MyBase.Dispose(disposing) |
End Sub |
'Required by the Windows Form Designer |
Private components As System.ComponentModel.IContainer |
'NOTE: The following procedure is required by the Windows Form Designer |
'It can be modified using the Windows Form Designer. |
'Do not modify it using the code editor. |
<System.Diagnostics.DebuggerStepThrough()> _ |
Private Sub InitializeComponent() |
Me.SuspendLayout() |
' |
'ArtificialHorizon |
' |
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) |
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font |
Me.AutoScroll = True |
Me.BackColor = System.Drawing.Color.Transparent |
Me.DoubleBuffered = True |
Me.Name = "ArtificialHorizon" |
Me.Size = New System.Drawing.Size(266, 257) |
Me.ResumeLayout(False) |
End Sub |
End Class |
/MKLiveView/ArtificialHorizon/ArtificialHorizon.resx |
---|
0,0 → 1,120 |
<?xml version="1.0" encoding="utf-8"?> |
<root> |
<!-- |
Microsoft ResX Schema |
Version 2.0 |
The primary goals of this format is to allow a simple XML format |
that is mostly human readable. The generation and parsing of the |
various data types are done through the TypeConverter classes |
associated with the data types. |
Example: |
... ado.net/XML headers & schema ... |
<resheader name="resmimetype">text/microsoft-resx</resheader> |
<resheader name="version">2.0</resheader> |
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
<value>[base64 mime encoded serialized .NET Framework object]</value> |
</data> |
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
<comment>This is a comment</comment> |
</data> |
There are any number of "resheader" rows that contain simple |
name/value pairs. |
Each data row contains a name, and value. The row also contains a |
type or mimetype. Type corresponds to a .NET class that support |
text/value conversion through the TypeConverter architecture. |
Classes that don't support this are serialized and stored with the |
mimetype set. |
The mimetype is used for serialized objects, and tells the |
ResXResourceReader how to depersist the object. This is currently not |
extensible. For a given mimetype the value must be set accordingly: |
Note - application/x-microsoft.net.object.binary.base64 is the format |
that the ResXResourceWriter will generate, however the reader can |
read any of the formats listed below. |
mimetype: application/x-microsoft.net.object.binary.base64 |
value : The object must be serialized with |
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
: and then encoded with base64 encoding. |
mimetype: application/x-microsoft.net.object.soap.base64 |
value : The object must be serialized with |
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
: and then encoded with base64 encoding. |
mimetype: application/x-microsoft.net.object.bytearray.base64 |
value : The object must be serialized into a byte array |
: using a System.ComponentModel.TypeConverter |
: and then encoded with base64 encoding. |
--> |
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
<xsd:element name="root" msdata:IsDataSet="true"> |
<xsd:complexType> |
<xsd:choice maxOccurs="unbounded"> |
<xsd:element name="metadata"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
</xsd:sequence> |
<xsd:attribute name="name" use="required" type="xsd:string" /> |
<xsd:attribute name="type" type="xsd:string" /> |
<xsd:attribute name="mimetype" type="xsd:string" /> |
<xsd:attribute ref="xml:space" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="assembly"> |
<xsd:complexType> |
<xsd:attribute name="alias" type="xsd:string" /> |
<xsd:attribute name="name" type="xsd:string" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="data"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
</xsd:sequence> |
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
<xsd:attribute ref="xml:space" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="resheader"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
</xsd:sequence> |
<xsd:attribute name="name" type="xsd:string" use="required" /> |
</xsd:complexType> |
</xsd:element> |
</xsd:choice> |
</xsd:complexType> |
</xsd:element> |
</xsd:schema> |
<resheader name="resmimetype"> |
<value>text/microsoft-resx</value> |
</resheader> |
<resheader name="version"> |
<value>2.0</value> |
</resheader> |
<resheader name="reader"> |
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=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> |
</root> |
/MKLiveView/ArtificialHorizon/ArtificialHorizon.vb |
---|
0,0 → 1,167 |
'****************************************** |
'Code from Tom Pycke (http://tom.pycke.be) |
'Artificial horizon (http://tom.pycke.be/mav/100/artificial-horizon) |
'****************************************** |
Public Class ArtificialHorizon |
Private g As Graphics |
Private _roll_angle As Double |
Public Property roll_angle() As Double |
Get |
Return _roll_angle |
End Get |
Set(ByVal value As Double) |
_roll_angle = value |
Invalidate() |
End Set |
End Property |
Private _pitch_angle As Double |
Public Property pitch_angle() As Double |
Get |
Return _pitch_angle |
End Get |
Set(ByVal value As Double) |
_pitch_angle = value |
Invalidate() |
End Set |
End Property |
Private Sub ArtificialHorizon_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load |
End Sub |
Private Function pitch_to_pix(ByVal pitch As Double) As Integer |
Return pitch / 35.0 * Me.Height / 2 |
'Return pitch / 45.0 * Me.Height / 2 |
End Function |
Private Sub ArtificialHorizon_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint |
g = e.Graphics |
g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality |
g.Clear(Me.BackColor) |
Dim sin As Double = Math.Sin(roll_angle / 180 * 3.14) |
g.ResetTransform() |
' g.FillRegion(Brushes.White, New Region(New Rectangle(0, 0, Me.Width, Me.Height))) |
' rounded rectangle |
Dim path As New Drawing2D.GraphicsPath() |
Dim r As Single = 50 |
path.AddArc(0, 0, r, r, 180, 90) |
path.AddArc(Me.Width - r, 0, r, r, 270, 90) |
path.AddArc(Me.Width - r, Me.Height - r, r, r, 0, 90) |
path.AddArc(0, Me.Height - r, r, r, 90, 90) |
'path.AddEllipse(0, 0, Me.Width, Me.Height) |
path.CloseFigure() |
g.SetClip(path) |
g.TranslateTransform(Me.Width / 2, Me.Height / 2) |
g.RotateTransform(roll_angle) |
g.TranslateTransform(0, pitch_to_pix(pitch_angle)) |
' chocolate |
Dim b As New System.Drawing.Drawing2D.LinearGradientBrush(New RectangleF(-Me.Width, 0, Me.Height * 2, Me.Width * 2), Color.FromArgb(255, 219, 140, 21), Color.Brown, Drawing2D.LinearGradientMode.Vertical) |
g.FillRectangle(b, New RectangleF(-Me.Width * 2, +1, Me.Height * 4, Me.Width * 4)) |
g.RotateTransform(180) |
' color.aqua |
b = New System.Drawing.Drawing2D.LinearGradientBrush(New RectangleF(-Me.Width, -1, Me.Height * 2, Me.Width * 2), Color.FromArgb(255, 28, 134, 186), Color.DarkBlue, Drawing2D.LinearGradientMode.Vertical) |
g.FillRectangle(b, New RectangleF(-Me.Width * 2, 0, Me.Height * 4, Me.Width * 4)) |
g.ResetTransform() |
Dim w2 As Single = Me.Width / 2 |
Dim s As Single = Me.Width / 38 |
g.TranslateTransform(Me.Width / 2, Me.Height / 2) |
g.RotateTransform(45) |
g.TranslateTransform(-w2 + s, 0) |
g.DrawLine(New Pen(Color.White, 2), 0, 0, s * 2, 0) |
g.TranslateTransform(+w2 - s, 0) |
g.RotateTransform(15) |
g.DrawLine(New Pen(Color.White, 2), -w2 + s, 0, -w2 + s * 2, 0) |
g.RotateTransform(15) |
g.DrawLine(New Pen(Color.White, 2), -w2 + s, 0, -w2 + s * 2, 0) |
g.RotateTransform(15) |
g.DrawLine(New Pen(Color.White, 2), -w2 + s, 0, -w2 + s * 3, 0) |
'g.DrawString("0°", New System.Drawing.Font("sans-serif", 9), Brushes.White, -w2 + 40, -4) |
g.RotateTransform(15) |
g.DrawLine(New Pen(Color.White, 2), -w2 + s, 0, -w2 + s * 2, 0) |
g.RotateTransform(15) |
g.DrawLine(New Pen(Color.White, 2), -w2 + s, 0, -w2 + s * 2, 0) |
g.RotateTransform(15) |
g.DrawLine(New Pen(Color.White, 2), -w2 + s, 0, -w2 + s * 3, 0) |
'g.DrawString("+45°", New System.Drawing.Font("sans-serif", 9), Brushes.White, -w2 + 40, -4) |
g.ResetTransform() |
Dim length As Single = Me.Width / 4 |
Dim notch As Single = Me.Width / 30 |
g.TranslateTransform(Me.Width / 2, Me.Height / 2) |
g.DrawLine(New Pen(Color.White, 3), -length + notch * 2, 0, -notch, 0) |
g.DrawLine(New Pen(Color.White, 3), notch, 0, length - notch * 2, 0) |
g.DrawArc(New Pen(Color.White, 3), -notch, -notch, notch * 2, notch * 2, 180, -180) |
g.ResetTransform() |
' driehoekje |
Dim ww As Single = Me.Width / 38 |
g.TranslateTransform(Me.Width / 2, Me.Height / 2) |
g.RotateTransform(-90 + roll_angle) |
path = New Drawing2D.GraphicsPath() |
path.AddLine(w2 - ww * 3, 0, w2 - ww * 4, ww) |
path.AddLine(w2 - ww * 4, -ww, w2 - ww * 4, ww) |
path.AddLine(w2 - ww * 4, -ww, w2 - ww * 3, 0) |
g.FillRegion(Brushes.White, New Region(path)) |
g.DrawLine(New Pen(Color.White, 1), w2 - ww * 3, 0, w2 - ww * 4, ww) |
g.DrawLine(New Pen(Color.White, 1), w2 - ww * 4, -ww, w2 - ww * 4, ww) |
g.DrawLine(New Pen(Color.White, 1), w2 - ww * 4, -ww, w2 - ww * 3, 0) |
g.ResetTransform() |
g.ResetClip() |
path = New Drawing2D.GraphicsPath() |
path.AddPie(New Rectangle(ww * 3, ww * 3, Me.Width - ww * 6, Me.Height - ww * 6), 0, 360) |
g.SetClip(path) |
g.TranslateTransform(Me.Width / 2, Me.Height / 2) |
g.RotateTransform(roll_angle) |
g.TranslateTransform(0, pitch_to_pix(pitch_angle)) |
For i As Integer = -80 To 80 Step 10 |
drawpitchline(g, i) |
Next i |
End Sub |
Private Sub drawpitchline(ByVal g As Graphics, ByVal pitch As Double) |
Dim w As Single = Me.Width / 8 |
g.DrawLine(Pens.White, -w, pitch_to_pix(-pitch + 5), w, pitch_to_pix(-pitch + 5)) |
g.DrawLine(Pens.White, -w * 5 / 3, pitch_to_pix(-pitch), w * 5 / 3, pitch_to_pix(-pitch)) |
g.DrawString(pitch, Me.Font, Brushes.White, -w * 75 / 30, pitch_to_pix(-pitch) - 5) |
g.DrawString(pitch, Me.Font, Brushes.White, w * 2, pitch_to_pix(-pitch) - 5) |
End Sub |
Private Sub drawrollline(ByVal g As Graphics, ByVal a As Single) |
Dim w2 As Single = Me.Width / 2 |
g.RotateTransform(a + 90) |
g.TranslateTransform(-w2 + 10, 0) |
g.DrawLine(Pens.White, 0, 0, 20, 0) |
g.TranslateTransform(10, 5) |
g.RotateTransform(-a - 90) |
g.DrawString("" & (a) & "°", New System.Drawing.Font("sans-serif", 9), Brushes.White, 0, 0) |
g.RotateTransform(+90 + a) |
g.TranslateTransform(-10, -5) |
g.TranslateTransform(+w2 - 10, 0) |
g.RotateTransform(-a - 90) |
End Sub |
End Class |
/MKLiveView/ArtificialHorizon/ArtificialHorizon.vbproj |
---|
0,0 → 1,136 |
<?xml version="1.0" encoding="utf-8"?> |
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0"> |
<PropertyGroup> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
<ProductVersion>8.0.50727</ProductVersion> |
<SchemaVersion>2.0</SchemaVersion> |
<ProjectGuid>{C5619CA3-E737-4A3B-AE7B-76E8A6AB4930}</ProjectGuid> |
<OutputType>Library</OutputType> |
<StartupObject> |
</StartupObject> |
<RootNamespace>ArtificialHorizon</RootNamespace> |
<AssemblyName>ArtificialHorizon</AssemblyName> |
<MyType>WebControl</MyType> |
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> |
<FileUpgradeFlags> |
</FileUpgradeFlags> |
<UpgradeBackupLocation> |
</UpgradeBackupLocation> |
<OldToolsVersion>2.0</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> |
<DefineDebug>true</DefineDebug> |
<DefineTrace>true</DefineTrace> |
<OutputPath>bin\Debug\</OutputPath> |
<DocumentationFile>ArtificialHorizon.xml</DocumentationFile> |
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn> |
</PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
<DebugType>pdbonly</DebugType> |
<DefineDebug>false</DefineDebug> |
<DefineTrace>true</DefineTrace> |
<Optimize>true</Optimize> |
<OutputPath>bin\Release\</OutputPath> |
<DocumentationFile>ArtificialHorizon.xml</DocumentationFile> |
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn> |
</PropertyGroup> |
<ItemGroup> |
<Reference Include="System" /> |
<Reference Include="System.Data" /> |
<Reference Include="System.Deployment" /> |
<Reference Include="System.Drawing" /> |
<Reference Include="System.Management" /> |
<Reference Include="System.Web" /> |
<Reference Include="System.Windows.Forms" /> |
<Reference Include="System.Xml" /> |
</ItemGroup> |
<ItemGroup> |
<Import Include="Microsoft.VisualBasic" /> |
<Import Include="System" /> |
<Import Include="System.Collections" /> |
<Import Include="System.Collections.Generic" /> |
<Import Include="System.Data" /> |
<Import Include="System.Drawing" /> |
<Import Include="System.Diagnostics" /> |
<Import Include="System.Windows.Forms" /> |
</ItemGroup> |
<ItemGroup> |
<Compile Include="ArtificialHorizon.designer.vb"> |
<DependentUpon>ArtificialHorizon.vb</DependentUpon> |
</Compile> |
<Compile Include="ArtificialHorizon.vb"> |
<SubType>UserControl</SubType> |
</Compile> |
<Compile Include="My Project\AssemblyInfo.vb" /> |
<Compile Include="My Project\Application.Designer.vb"> |
<AutoGen>True</AutoGen> |
<DependentUpon>Application.myapp</DependentUpon> |
</Compile> |
<Compile Include="My Project\Resources.Designer.vb"> |
<AutoGen>True</AutoGen> |
<DesignTime>True</DesignTime> |
<DependentUpon>Resources.resx</DependentUpon> |
</Compile> |
<Compile Include="My Project\Settings.Designer.vb"> |
<AutoGen>True</AutoGen> |
<DependentUpon>Settings.settings</DependentUpon> |
<DesignTimeSharedInput>True</DesignTimeSharedInput> |
</Compile> |
</ItemGroup> |
<ItemGroup> |
<EmbeddedResource Include="ArtificialHorizon.resx"> |
<DependentUpon>ArtificialHorizon.vb</DependentUpon> |
<SubType>Designer</SubType> |
</EmbeddedResource> |
<EmbeddedResource Include="My Project\Resources.resx"> |
<Generator>VbMyResourcesResXFileCodeGenerator</Generator> |
<LastGenOutput>Resources.Designer.vb</LastGenOutput> |
<CustomToolNamespace>My.Resources</CustomToolNamespace> |
<SubType>Designer</SubType> |
</EmbeddedResource> |
</ItemGroup> |
<ItemGroup> |
<None Include="My Project\Application.myapp"> |
<Generator>MyApplicationCodeGenerator</Generator> |
<LastGenOutput>Application.Designer.vb</LastGenOutput> |
</None> |
<None Include="My Project\Settings.settings"> |
<Generator>SettingsSingleFileGenerator</Generator> |
<CustomToolNamespace>My</CustomToolNamespace> |
<LastGenOutput>Settings.Designer.vb</LastGenOutput> |
</None> |
</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> |
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.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/ArtificialHorizon/ArtificialHorizon.vbproj.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/ArtificialHorizon/My Project/Application.Designer.vb |
---|
0,0 → 1,13 |
'------------------------------------------------------------------------------ |
' <auto-generated> |
' Dieser Code wurde von einem Tool generiert. |
' Laufzeitversion:4.0.30319.42000 |
' |
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn |
' der Code erneut generiert wird. |
' </auto-generated> |
'------------------------------------------------------------------------------ |
Option Strict On |
Option Explicit On |
/MKLiveView/ArtificialHorizon/My Project/Application.myapp |
---|
0,0 → 1,11 |
<?xml version="1.0" encoding="utf-8"?> |
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
<MySubMain>true</MySubMain> |
<MainForm>Form1</MainForm> |
<SingleInstance>false</SingleInstance> |
<ShutdownMode>0</ShutdownMode> |
<EnableVisualStyles>true</EnableVisualStyles> |
<AuthenticationMode>0</AuthenticationMode> |
<ApplicationType>0</ApplicationType> |
<SaveMySettingsOnExit>true</SaveMySettingsOnExit> |
</MyApplicationData> |
/MKLiveView/ArtificialHorizon/My Project/AssemblyInfo.vb |
---|
0,0 → 1,35 |
Imports System |
Imports System.Reflection |
Imports System.Runtime.InteropServices |
' General Information about an assembly is controlled through the following |
' set of attributes. Change these attribute values to modify the information |
' associated with an assembly. |
' Review the values of the assembly attributes |
<Assembly: AssemblyTitle("ArtificialHorizon")> |
<Assembly: AssemblyDescription("")> |
<Assembly: AssemblyCompany("")> |
<Assembly: AssemblyProduct("ArtificialHorizon")> |
<Assembly: AssemblyCopyright("Copyright © 2008")> |
<Assembly: AssemblyTrademark("")> |
<Assembly: ComVisible(False)> |
'The following GUID is for the ID of the typelib if this project is exposed to COM |
<Assembly: Guid("2f90ce11-becb-4388-bb63-aa94f9978881")> |
' Version information for an assembly consists of the following four values: |
' |
' Major Version |
' Minor Version |
' Build Number |
' Revision |
' |
' You can specify all the values or you can default the Build and Revision Numbers |
' by using the '*' as shown below: |
' <Assembly: AssemblyVersion("1.0.*")> |
<Assembly: AssemblyVersion("1.0.0.0")> |
<Assembly: AssemblyFileVersion("1.0.0.0")> |
/MKLiveView/ArtificialHorizon/My Project/Resources.Designer.vb |
---|
0,0 → 1,63 |
'------------------------------------------------------------------------------ |
' <auto-generated> |
' Dieser Code wurde von einem Tool generiert. |
' Laufzeitversion:4.0.30319.42000 |
' |
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn |
' der Code erneut generiert wird. |
' </auto-generated> |
'------------------------------------------------------------------------------ |
Option Strict On |
Option Explicit On |
Imports System |
Namespace My.Resources |
'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert |
'-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. |
'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen |
'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. |
'''<summary> |
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. |
'''</summary> |
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _ |
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ |
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ |
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _ |
Friend Module Resources |
Private resourceMan As Global.System.Resources.ResourceManager |
Private resourceCulture As Global.System.Globalization.CultureInfo |
'''<summary> |
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. |
'''</summary> |
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ |
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager |
Get |
If Object.ReferenceEquals(resourceMan, Nothing) Then |
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ArtificialHorizon.Resources", GetType(Resources).Assembly) |
resourceMan = temp |
End If |
Return resourceMan |
End Get |
End Property |
'''<summary> |
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle |
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. |
'''</summary> |
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ |
Friend Property Culture() As Global.System.Globalization.CultureInfo |
Get |
Return resourceCulture |
End Get |
Set |
resourceCulture = value |
End Set |
End Property |
End Module |
End Namespace |
/MKLiveView/ArtificialHorizon/My Project/Resources.resx |
---|
0,0 → 1,117 |
<?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.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: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" type="xsd:string" /> |
<xsd:attribute name="type" type="xsd:string" /> |
<xsd:attribute name="mimetype" type="xsd:string" /> |
</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" msdata:Ordinal="1" /> |
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
</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> |
</root> |
/MKLiveView/ArtificialHorizon/My Project/Settings.Designer.vb |
---|
0,0 → 1,73 |
'------------------------------------------------------------------------------ |
' <auto-generated> |
' Dieser Code wurde von einem Tool generiert. |
' Laufzeitversion:4.0.30319.42000 |
' |
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn |
' der Code erneut generiert wird. |
' </auto-generated> |
'------------------------------------------------------------------------------ |
Option Strict On |
Option Explicit On |
Namespace My |
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ |
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0"), _ |
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ |
Partial Friend NotInheritable Class MySettings |
Inherits Global.System.Configuration.ApplicationSettingsBase |
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) |
#Region "Funktion zum automatischen Speichern von My.Settings" |
#If _MyType = "WindowsForms" Then |
Private Shared addedHandler As Boolean |
Private Shared addedHandlerLockObject As New Object |
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ |
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) |
If My.Application.SaveMySettingsOnExit Then |
My.Settings.Save() |
End If |
End Sub |
#End If |
#End Region |
Public Shared ReadOnly Property [Default]() As MySettings |
Get |
#If _MyType = "WindowsForms" Then |
If Not addedHandler Then |
SyncLock addedHandlerLockObject |
If Not addedHandler Then |
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings |
addedHandler = True |
End If |
End SyncLock |
End If |
#End If |
Return defaultInstance |
End Get |
End Property |
End Class |
End Namespace |
Namespace My |
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _ |
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ |
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _ |
Friend Module MySettingsProperty |
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _ |
Friend ReadOnly Property Settings() As Global.ArtificialHorizon.My.MySettings |
Get |
Return Global.ArtificialHorizon.My.MySettings.Default |
End Get |
End Property |
End Module |
End Namespace |
/MKLiveView/ArtificialHorizon/My Project/Settings.settings |
---|
0,0 → 1,7 |
<?xml version='1.0' encoding='utf-8'?> |
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true"> |
<Profiles> |
<Profile Name="(Default)" /> |
</Profiles> |
<Settings /> |
</SettingsFile> |
/MKLiveView/ArtificialHorizon/bin/Debug/ArtificialHorizon.dll |
---|
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/ArtificialHorizon/bin/Debug/ArtificialHorizon.pdb |
---|
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/ArtificialHorizon/bin/Debug/ArtificialHorizon.vshost.exe |
---|
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/ArtificialHorizon/bin/Debug/ArtificialHorizon.xml |
---|
0,0 → 1,26 |
<?xml version="1.0"?> |
<doc> |
<assembly> |
<name> |
ArtificialHorizon |
</name> |
</assembly> |
<members> |
<member name="T:ArtificialHorizon.My.Resources.Resources"> |
<summary> |
Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. |
</summary> |
</member> |
<member name="P:ArtificialHorizon.My.Resources.Resources.ResourceManager"> |
<summary> |
Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. |
</summary> |
</member> |
<member name="P:ArtificialHorizon.My.Resources.Resources.Culture"> |
<summary> |
Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle |
Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. |
</summary> |
</member> |
</members> |
</doc> |
/MKLiveView/ArtificialHorizon/bin/Release/ArtificialHorizon.dll |
---|
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/ArtificialHorizon/bin/Release/ArtificialHorizon.pdb |
---|
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/ArtificialHorizon/bin/Release/ArtificialHorizon.vshost.exe |
---|
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/ArtificialHorizon/bin/Release/ArtificialHorizon.vshost.exe.manifest |
---|
0,0 → 1,11 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> |
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> |
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> |
<security> |
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> |
<requestedExecutionLevel level="asInvoker" uiAccess="false"/> |
</requestedPrivileges> |
</security> |
</trustInfo> |
</assembly> |
/MKLiveView/ArtificialHorizon/bin/Release/ArtificialHorizon.xml |
---|
0,0 → 1,26 |
<?xml version="1.0"?> |
<doc> |
<assembly> |
<name> |
ArtificialHorizon |
</name> |
</assembly> |
<members> |
<member name="T:ArtificialHorizon.My.Resources.Resources"> |
<summary> |
Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. |
</summary> |
</member> |
<member name="P:ArtificialHorizon.My.Resources.Resources.ResourceManager"> |
<summary> |
Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. |
</summary> |
</member> |
<member name="P:ArtificialHorizon.My.Resources.Resources.Culture"> |
<summary> |
Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle |
Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. |
</summary> |
</member> |
</members> |
</doc> |
/MKLiveView/ArtificialHorizon/obj/ArtificialHorizon.vbproj.FileListAbsolute.txt |
---|
0,0 → 1,16 |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.exe |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.xml |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.pdb |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ResolveAssemblyReference.cache |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.ArtificialHorizon.resources |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.Form1.resources |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.Resources.resources |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.vbproj.GenerateResource.Cache |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ResolveAssemblyReference.cache |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.ArtificialHorizon.resources |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.Form1.resources |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.Resources.resources |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.vbproj.GenerateResource.Cache |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\bin\Release\ArtificialHorizon.exe |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\bin\Release\ArtificialHorizon.pdb |
C:\Documents and Settings\Eigenaar\Mijn documenten\Visual Studio 2005\Projects\ArtificialHorizon\ArtificialHorizon\bin\Release\ArtificialHorizon.xml |
/MKLiveView/ArtificialHorizon/obj/Debug/ArtificialHorizon.ArtificialHorizon.resources |
---|
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/ArtificialHorizon/obj/Debug/ArtificialHorizon.Form1.resources |
---|
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/ArtificialHorizon/obj/Debug/ArtificialHorizon.Resources.resources |
---|
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/ArtificialHorizon/obj/Debug/ArtificialHorizon.dll |
---|
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/ArtificialHorizon/obj/Debug/ArtificialHorizon.pdb |
---|
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/ArtificialHorizon/obj/Debug/ArtificialHorizon.vbproj.FileListAbsolute.txt |
---|
0,0 → 1,28 |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\bin\Debug\ArtificialHorizon.dll |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\bin\Debug\ArtificialHorizon.pdb |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\bin\Debug\ArtificialHorizon.xml |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.ArtificialHorizon.resources |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.Resources.resources |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.vbproj.GenerateResource.Cache |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.dll |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.xml |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Debug\ArtificialHorizon.pdb |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\bin\Debug\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\bin\Debug\ArtificialHorizon.pdb |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\bin\Debug\ArtificialHorizon.xml |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\obj\Debug\ArtificialHorizon.ArtificialHorizon.resources |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\obj\Debug\ArtificialHorizon.Resources.resources |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\obj\Debug\ArtificialHorizon.vbproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\obj\Debug\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\obj\Debug\ArtificialHorizon.xml |
E:\Documents\VS Projects\MKQuickView\MKQuickView\ArtificialHorizon\obj\Debug\ArtificialHorizon.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\bin\Debug\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\bin\Debug\ArtificialHorizon.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\bin\Debug\ArtificialHorizon.xml |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Debug\ArtificialHorizon.ArtificialHorizon.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Debug\ArtificialHorizon.Resources.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Debug\ArtificialHorizon.vbproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Debug\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Debug\ArtificialHorizon.xml |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Debug\ArtificialHorizon.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Debug\ArtificialHorizon.vbprojResolveAssemblyReference.cache |
/MKLiveView/ArtificialHorizon/obj/Debug/ArtificialHorizon.vbproj.GenerateResource.Cache |
---|
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/ArtificialHorizon/obj/Debug/ArtificialHorizon.vbprojResolveAssemblyReference.cache |
---|
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/ArtificialHorizon/obj/Debug/ArtificialHorizon.xml |
---|
0,0 → 1,26 |
<?xml version="1.0"?> |
<doc> |
<assembly> |
<name> |
ArtificialHorizon |
</name> |
</assembly> |
<members> |
<member name="T:ArtificialHorizon.My.Resources.Resources"> |
<summary> |
Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. |
</summary> |
</member> |
<member name="P:ArtificialHorizon.My.Resources.Resources.ResourceManager"> |
<summary> |
Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. |
</summary> |
</member> |
<member name="P:ArtificialHorizon.My.Resources.Resources.Culture"> |
<summary> |
Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle |
Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. |
</summary> |
</member> |
</members> |
</doc> |
/MKLiveView/ArtificialHorizon/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache |
---|
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/ArtificialHorizon/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll |
---|
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/ArtificialHorizon/obj/Release/ArtificialHorizon.ArtificialHorizon.resources |
---|
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/ArtificialHorizon/obj/Release/ArtificialHorizon.Resources.resources |
---|
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/ArtificialHorizon/obj/Release/ArtificialHorizon.dll |
---|
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/ArtificialHorizon/obj/Release/ArtificialHorizon.pdb |
---|
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/ArtificialHorizon/obj/Release/ArtificialHorizon.vbproj.FileListAbsolute.txt |
---|
0,0 → 1,28 |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.xml |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.pdb |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\bin\Release\ArtificialHorizon.pdb |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\bin\Release\ArtificialHorizon.xml |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.ArtificialHorizon.resources |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.Resources.resources |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.vbproj.GenerateResource.Cache |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\bin\Release\ArtificialHorizon.dll |
E:\Documents\VS Projects\ArtificialHorizon\ArtificialHorizon\obj\Release\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\bin\Release\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\bin\Release\ArtificialHorizon.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\bin\Release\ArtificialHorizon.xml |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Release\ArtificialHorizon.ArtificialHorizon.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Release\ArtificialHorizon.Resources.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Release\ArtificialHorizon.vbproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Release\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Release\ArtificialHorizon.xml |
E:\Documents\VS Projects\MKLifeView\MKLifeView\ArtificialHorizon\obj\Release\ArtificialHorizon.pdb |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\bin\Release\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\bin\Release\ArtificialHorizon.pdb |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\bin\Release\ArtificialHorizon.xml |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\obj\Release\ArtificialHorizon.vbprojResolveAssemblyReference.cache |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\obj\Release\ArtificialHorizon.ArtificialHorizon.resources |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\obj\Release\ArtificialHorizon.Resources.resources |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\obj\Release\ArtificialHorizon.vbproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\obj\Release\ArtificialHorizon.dll |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\obj\Release\ArtificialHorizon.xml |
E:\Documents\VS Projects\MKLiveView\MKLiveView\ArtificialHorizon\obj\Release\ArtificialHorizon.pdb |
/MKLiveView/ArtificialHorizon/obj/Release/ArtificialHorizon.vbproj.GenerateResource.Cache |
---|
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/ArtificialHorizon/obj/Release/ArtificialHorizon.vbprojResolveAssemblyReference.cache |
---|
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/ArtificialHorizon/obj/Release/ArtificialHorizon.xml |
---|
0,0 → 1,26 |
<?xml version="1.0"?> |
<doc> |
<assembly> |
<name> |
ArtificialHorizon |
</name> |
</assembly> |
<members> |
<member name="T:ArtificialHorizon.My.Resources.Resources"> |
<summary> |
Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. |
</summary> |
</member> |
<member name="P:ArtificialHorizon.My.Resources.Resources.ResourceManager"> |
<summary> |
Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. |
</summary> |
</member> |
<member name="P:ArtificialHorizon.My.Resources.Resources.Culture"> |
<summary> |
Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle |
Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. |
</summary> |
</member> |
</members> |
</doc> |
/MKLiveView/ArtificialHorizon/obj/Release/DesignTimeResolveAssemblyReferences.cache |
---|
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/ArtificialHorizon/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |
---|
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/ArtificialHorizon/obj/Release/TempPE/My Project.Resources.Designer.vb.dll |
---|
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/AvionicsInstrumentControl/AvionicsInstrumentControl.csproj |
---|
0,0 → 1,126 |
<?xml version="1.0" encoding="utf-8"?> |
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0"> |
<PropertyGroup> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
<ProductVersion>8.0.50727</ProductVersion> |
<SchemaVersion>2.0</SchemaVersion> |
<ProjectGuid>{1D3163E6-DC65-4595-9D51-4FD9174F2F61}</ProjectGuid> |
<OutputType>Library</OutputType> |
<AppDesignerFolder>Properties</AppDesignerFolder> |
<RootNamespace>AvionicsInstrumentControl</RootNamespace> |
<AssemblyName>AvionicsInstrumentControl</AssemblyName> |
<ApplicationIcon>AvionicsInstrumentIco.ico</ApplicationIcon> |
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> |
<FileUpgradeFlags> |
</FileUpgradeFlags> |
<UpgradeBackupLocation> |
</UpgradeBackupLocation> |
<OldToolsVersion>2.0</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> |
<StartupObject /> |
</PropertyGroup> |
<ItemGroup> |
<Reference Include="System" /> |
<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="HeadingIndicator.cs"> |
<SubType>UserControl</SubType> |
</Compile> |
<Compile Include="HeadingIndicator.Designer.cs"> |
<DependentUpon>HeadingIndicator.cs</DependentUpon> |
</Compile> |
<Compile Include="Properties\AssemblyInfo.cs" /> |
<EmbeddedResource Include="HeadingIndicator.resx"> |
<DependentUpon>HeadingIndicator.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> |
<EmbeddedResource Include="Resources\HeadingIndicator_Aircraft.bmp" /> |
</ItemGroup> |
<ItemGroup> |
<EmbeddedResource Include="Resources\HeadingIndicator_Background.bmp" /> |
</ItemGroup> |
<ItemGroup> |
<EmbeddedResource Include="Resources\HeadingWeel.bmp" /> |
</ItemGroup> |
<ItemGroup> |
<Content Include="AvionicsInstrumentIco.ico" /> |
<None Include="Resources\HeadingIndicatorOverlay.png" /> |
<None Include="Resources\HeadingIndicatorBackground.png" /> |
<None Include="Resources\Aircraft.png" /> |
<None Include="Resources\HeadingIndicator.png" /> |
</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> |
<Import Project="$(MSBuildBinPath)\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/AvionicsInstrumentControl/AvionicsInstrumentControl.csproj.user |
---|
0,0 → 1,17 |
<?xml version="1.0" encoding="utf-8"?> |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0"> |
<PropertyGroup> |
<PublishUrlHistory>publish\</PublishUrlHistory> |
<InstallUrlHistory> |
</InstallUrlHistory> |
<SupportUrlHistory> |
</SupportUrlHistory> |
<UpdateUrlHistory> |
</UpdateUrlHistory> |
<BootstrapperUrlHistory> |
</BootstrapperUrlHistory> |
<FallbackCulture>fr-FR</FallbackCulture> |
<VerifyUploadedFiles>false</VerifyUploadedFiles> |
<ErrorReportUrlHistory /> |
</PropertyGroup> |
</Project> |
/MKLiveView/AvionicsInstrumentControl/AvionicsInstrumentIco.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/AvionicsInstrumentControl/HeadingIndicator.Designer.cs |
---|
0,0 → 1,45 |
namespace AvionicsInstrumentControl |
{ |
partial class HeadingIndicator |
{ |
/// <summary> |
/// Erforderliche Designervariable. |
/// </summary> |
private System.ComponentModel.IContainer components = null; |
/// <summary> |
/// Verwendete Ressourcen bereinigen. |
/// </summary> |
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param> |
protected override void Dispose(bool disposing) |
{ |
if (disposing && (components != null)) |
{ |
components.Dispose(); |
} |
base.Dispose(disposing); |
} |
#region Vom Komponenten-Designer generierter Code |
/// <summary> |
/// Erforderliche Methode für die Designerunterstützung. |
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. |
/// </summary> |
private void InitializeComponent() |
{ |
this.SuspendLayout(); |
// |
// HeadingIndicator |
// |
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); |
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
this.Name = "HeadingIndicator"; |
this.Size = new System.Drawing.Size(162, 160); |
this.ResumeLayout(false); |
} |
#endregion |
} |
} |
/MKLiveView/AvionicsInstrumentControl/HeadingIndicator.cs |
---|
0,0 → 1,153 |
/******************************************* |
Original Source by Chootair (http://www.codeproject.com/Articles/27411/C-Avionic-Instrument-Controls) |
C# Avionic Instrument Controls |
Made some modifications: |
--Reduced to the heading indicator |
-- & changed class to UserControl |
--changed the images |
--doublebuffered to reduce flickering |
*******************************************/ |
using System; |
using System.Collections.Generic; |
using System.ComponentModel; |
using System.Drawing; |
using System.Data; |
using System.Text; |
using System.Windows.Forms; |
namespace AvionicsInstrumentControl |
{ |
public partial class HeadingIndicator : UserControl |
{ |
public HeadingIndicator() |
{ |
InitializeComponent(); |
this.DoubleBuffered = true; |
} |
protected void RotateImage(PaintEventArgs pe, Image img, Double alpha, Point ptImg, Point ptRot, float scaleFactor) |
{ |
double beta = 0; // Angle between the Horizontal line and the line (Left upper corner - Rotation point) |
double d = 0; // Distance between Left upper corner and Rotation point) |
float deltaX = 0; // X componant of the corrected translation |
float deltaY = 0; // Y componant of the corrected translation |
// Compute the correction translation coeff |
if (ptImg != ptRot) |
{ |
// |
if (ptRot.X != 0) |
{ |
beta = Math.Atan((double)ptRot.Y / (double)ptRot.X); |
} |
d = Math.Sqrt((ptRot.X * ptRot.X) + (ptRot.Y * ptRot.Y)); |
// Computed offset |
deltaX = (float)(d * (Math.Cos(alpha - beta) - Math.Cos(alpha) * Math.Cos(alpha + beta) - Math.Sin(alpha) * Math.Sin(alpha + beta))); |
deltaY = (float)(d * (Math.Sin(beta - alpha) + Math.Sin(alpha) * Math.Cos(alpha + beta) - Math.Cos(alpha) * Math.Sin(alpha + beta))); |
} |
// Rotate image support |
pe.Graphics.RotateTransform((float)(alpha * 180 / Math.PI)); |
// Dispay image |
pe.Graphics.DrawImage(img, (ptImg.X + deltaX) * scaleFactor, (ptImg.Y + deltaY) * scaleFactor, img.Width * scaleFactor, img.Height * scaleFactor); |
// Put image support as found |
pe.Graphics.RotateTransform((float)(-alpha * 180 / Math.PI)); |
} |
#region Fields |
// Parameters |
int Heading; |
// Images |
Bitmap bmpHedingWeel = new Bitmap(AvionicsInstrumentControl.Properties.Resources.HeadingIndicatorOverlay); |
Bitmap bmpAircaft = new Bitmap(AvionicsInstrumentControl.Properties.Resources.HeadingIndicatorBackground); |
#endregion |
#region Paint |
protected override void OnPaint(PaintEventArgs pe) |
{ |
// Calling the base class OnPaint |
base.OnPaint(pe); |
// Pre Display computings |
Point ptRotation = new Point(200, 200); |
Point ptImgAircraft = new Point(0, 0); |
Point ptImgHeadingWeel = new Point(0, 0); |
double alphaHeadingWeel = InterpolPhyToAngle(Heading, 0, 360, 360, 0); |
float scale = (float)this.Width / (bmpHedingWeel.Width); |
pe.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed; |
// display aircraft |
pe.Graphics.DrawImage(bmpAircaft, (int)(ptImgAircraft.X * scale), (int)(ptImgAircraft.Y * scale), (float)(bmpAircaft.Width * scale), (float)(bmpAircaft.Height * scale)); |
// display HeadingWeel |
RotateImage(pe, bmpHedingWeel, alphaHeadingWeel, ptImgHeadingWeel, ptRotation, scale); |
} |
#endregion |
#region Methods |
/// <summary> |
/// Convert a physical value in an rad angle used by the rotate function |
/// </summary> |
/// <param name="phyVal">Physical value to interpol/param> |
/// <param name="minPhy">Minimum physical value</param> |
/// <param name="maxPhy">Maximum physical value</param> |
/// <param name="minAngle">The angle related to the minumum value, in deg</param> |
/// <param name="maxAngle">The angle related to the maximum value, in deg</param> |
/// <returns>The angle in radian witch correspond to the physical value</returns> |
protected float InterpolPhyToAngle(float phyVal, float minPhy, float maxPhy, float minAngle, float maxAngle) |
{ |
float a; |
float b; |
float y; |
float x; |
if (phyVal < minPhy) |
{ |
return (float)(minAngle * Math.PI / 180); |
} |
else if (phyVal > maxPhy) |
{ |
return (float)(maxAngle * Math.PI / 180); |
} |
else |
{ |
x = phyVal; |
a = (maxAngle - minAngle) / (maxPhy - minPhy); |
b = (float)(0.5 * (maxAngle + minAngle - a * (maxPhy + minPhy))); |
y = a * x + b; |
return (float)(y * Math.PI / 180); |
} |
} |
/// <summary> |
/// Define the physical value to be displayed on the indicator |
/// </summary> |
/// <param name="aircraftHeading">The aircraft heading in °deg</param> |
public void SetHeadingIndicatorParameters(int aircraftHeading) |
{ |
Heading = aircraftHeading; |
this.Refresh(); |
} |
#endregion |
} |
} |
/MKLiveView/AvionicsInstrumentControl/HeadingIndicator.resx |
---|
0,0 → 1,120 |
<?xml version="1.0" encoding="utf-8"?> |
<root> |
<!-- |
Microsoft ResX Schema |
Version 2.0 |
The primary goals of this format is to allow a simple XML format |
that is mostly human readable. The generation and parsing of the |
various data types are done through the TypeConverter classes |
associated with the data types. |
Example: |
... ado.net/XML headers & schema ... |
<resheader name="resmimetype">text/microsoft-resx</resheader> |
<resheader name="version">2.0</resheader> |
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
<value>[base64 mime encoded serialized .NET Framework object]</value> |
</data> |
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
<comment>This is a comment</comment> |
</data> |
There are any number of "resheader" rows that contain simple |
name/value pairs. |
Each data row contains a name, and value. The row also contains a |
type or mimetype. Type corresponds to a .NET class that support |
text/value conversion through the TypeConverter architecture. |
Classes that don't support this are serialized and stored with the |
mimetype set. |
The mimetype is used for serialized objects, and tells the |
ResXResourceReader how to depersist the object. This is currently not |
extensible. For a given mimetype the value must be set accordingly: |
Note - application/x-microsoft.net.object.binary.base64 is the format |
that the ResXResourceWriter will generate, however the reader can |
read any of the formats listed below. |
mimetype: application/x-microsoft.net.object.binary.base64 |
value : The object must be serialized with |
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
: and then encoded with base64 encoding. |
mimetype: application/x-microsoft.net.object.soap.base64 |
value : The object must be serialized with |
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
: and then encoded with base64 encoding. |
mimetype: application/x-microsoft.net.object.bytearray.base64 |
value : The object must be serialized into a byte array |
: using a System.ComponentModel.TypeConverter |
: and then encoded with base64 encoding. |
--> |
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
<xsd:element name="root" msdata:IsDataSet="true"> |
<xsd:complexType> |
<xsd:choice maxOccurs="unbounded"> |
<xsd:element name="metadata"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
</xsd:sequence> |
<xsd:attribute name="name" use="required" type="xsd:string" /> |
<xsd:attribute name="type" type="xsd:string" /> |
<xsd:attribute name="mimetype" type="xsd:string" /> |
<xsd:attribute ref="xml:space" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="assembly"> |
<xsd:complexType> |
<xsd:attribute name="alias" type="xsd:string" /> |
<xsd:attribute name="name" type="xsd:string" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="data"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
</xsd:sequence> |
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
<xsd:attribute ref="xml:space" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="resheader"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
</xsd:sequence> |
<xsd:attribute name="name" type="xsd:string" use="required" /> |
</xsd:complexType> |
</xsd:element> |
</xsd:choice> |
</xsd:complexType> |
</xsd:element> |
</xsd:schema> |
<resheader name="resmimetype"> |
<value>text/microsoft-resx</value> |
</resheader> |
<resheader name="version"> |
<value>2.0</value> |
</resheader> |
<resheader name="reader"> |
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=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> |
</root> |
/MKLiveView/AvionicsInstrumentControl/Properties/AssemblyInfo.cs |
---|
0,0 → 1,33 |
using System.Reflection; |
using System.Runtime.CompilerServices; |
using System.Runtime.InteropServices; |
// Les informations générales relatives à un assembly dépendent de |
// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations |
// associées à un assembly. |
[assembly: AssemblyTitle("AvionicsInstrumentControlDemo")] |
[assembly: AssemblyDescription("A sample use of the AvionicsIndicators user control developped by C-Air")] |
[assembly: AssemblyConfiguration("")] |
[assembly: AssemblyCompany("C-Air")] |
[assembly: AssemblyProduct("AvionicsInstrumentControlDemo")] |
[assembly: AssemblyCopyright("Copyright © 2008")] |
[assembly: AssemblyTrademark("")] |
[assembly: AssemblyCulture("")] |
// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly |
// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de |
// COM, affectez la valeur true à l'attribut ComVisible sur ce type. |
[assembly: ComVisible(false)] |
// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM |
[assembly: Guid("c20f0679-dfab-4bfc-8fe6-e787226c5ac6")] |
// Les informations de version pour un assembly se composent des quatre valeurs suivantes : |
// |
// Version principale |
// Version secondaire |
// Numéro de build |
// Révision |
// |
[assembly: AssemblyVersion("1.0.0.0")] |
[assembly: AssemblyFileVersion("1.0.0.0")] |
/MKLiveView/AvionicsInstrumentControl/Properties/Resources.Designer.cs |
---|
0,0 → 1,83 |
//------------------------------------------------------------------------------ |
// <auto-generated> |
// Dieser Code wurde von einem Tool generiert. |
// Laufzeitversion:4.0.30319.42000 |
// |
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn |
// der Code erneut generiert wird. |
// </auto-generated> |
//------------------------------------------------------------------------------ |
namespace AvionicsInstrumentControl.Properties { |
using System; |
/// <summary> |
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. |
/// </summary> |
// Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert |
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. |
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen |
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
internal class Resources { |
private static global::System.Resources.ResourceManager resourceMan; |
private static global::System.Globalization.CultureInfo resourceCulture; |
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
internal Resources() { |
} |
/// <summary> |
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. |
/// </summary> |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
internal static global::System.Resources.ResourceManager ResourceManager { |
get { |
if (object.ReferenceEquals(resourceMan, null)) { |
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AvionicsInstrumentControl.Properties.Resources", typeof(Resources).Assembly); |
resourceMan = temp; |
} |
return resourceMan; |
} |
} |
/// <summary> |
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle |
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. |
/// </summary> |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
internal static global::System.Globalization.CultureInfo Culture { |
get { |
return resourceCulture; |
} |
set { |
resourceCulture = value; |
} |
} |
/// <summary> |
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. |
/// </summary> |
internal static System.Drawing.Bitmap HeadingIndicatorBackground { |
get { |
object obj = ResourceManager.GetObject("HeadingIndicatorBackground", resourceCulture); |
return ((System.Drawing.Bitmap)(obj)); |
} |
} |
/// <summary> |
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. |
/// </summary> |
internal static System.Drawing.Bitmap HeadingIndicatorOverlay { |
get { |
object obj = ResourceManager.GetObject("HeadingIndicatorOverlay", resourceCulture); |
return ((System.Drawing.Bitmap)(obj)); |
} |
} |
} |
} |
/MKLiveView/AvionicsInstrumentControl/Properties/Resources.resx |
---|
0,0 → 1,127 |
<?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> |
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> |
<data name="HeadingIndicatorBackground" type="System.Resources.ResXFileRef, System.Windows.Forms"> |
<value>..\Resources\HeadingIndicatorBackground.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> |
</data> |
<data name="HeadingIndicatorOverlay" type="System.Resources.ResXFileRef, System.Windows.Forms"> |
<value>..\Resources\HeadingIndicatorOverlay.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> |
</data> |
</root> |
/MKLiveView/AvionicsInstrumentControl/Properties/Settings.Designer.cs |
---|
0,0 → 1,26 |
//------------------------------------------------------------------------------ |
// <auto-generated> |
// Dieser Code wurde von einem Tool generiert. |
// Laufzeitversion:4.0.30319.42000 |
// |
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn |
// der Code erneut generiert wird. |
// </auto-generated> |
//------------------------------------------------------------------------------ |
namespace AvionicsInstrumentControl.Properties { |
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] |
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { |
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); |
public static Settings Default { |
get { |
return defaultInstance; |
} |
} |
} |
} |
/MKLiveView/AvionicsInstrumentControl/Properties/Settings.settings |
---|
0,0 → 1,7 |
<?xml version='1.0' encoding='utf-8'?> |
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> |
<Profiles> |
<Profile Name="(Default)" /> |
</Profiles> |
<Settings /> |
</SettingsFile> |
/MKLiveView/AvionicsInstrumentControl/Resources/Aircraft.png |
---|
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/AvionicsInstrumentControl/Resources/HeadingIndicator.png |
---|
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/AvionicsInstrumentControl/Resources/HeadingIndicatorBackground.png |
---|
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/AvionicsInstrumentControl/Resources/HeadingIndicatorOverlay.png |
---|
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/AvionicsInstrumentControl/Resources/HeadingIndicator_Aircraft.bmp |
---|
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/AvionicsInstrumentControl/Resources/HeadingIndicator_Background.bmp |
---|
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/AvionicsInstrumentControl/Resources/HeadingWeel.bmp |
---|
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/AvionicsInstrumentControl/UpgradeLog.htm |
---|
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/AvionicsInstrumentControl/bin/Debug/AvionicsInstrumentControl.dll |
---|
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/AvionicsInstrumentControl/bin/Debug/AvionicsInstrumentControl.pdb |
---|
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/AvionicsInstrumentControl/bin/Release/AvionicsInstrumentControl.dll |
---|
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/AvionicsInstrumentControl/bin/Release/AvionicsInstrumentControl.pdb |
---|
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/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControl.HeadingIndicator.resources |
---|
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/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControl.Properties.Resources.resources |
---|
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/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControl.csproj.FileListAbsolute.txt |
---|
0,0 → 1,22 |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControl.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControl.HeadingIndicator.resources |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControl.Properties.Resources.resources |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\bin\Debug\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\bin\Debug\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKQuickView\MKQuickView\AvionicsInstrumentControl\bin\Debug\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\MKQuickView\MKQuickView\AvionicsInstrumentControl\bin\Debug\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKQuickView\MKQuickView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.HeadingIndicator.resources |
E:\Documents\VS Projects\MKQuickView\MKQuickView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.Properties.Resources.resources |
E:\Documents\VS Projects\MKQuickView\MKQuickView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKQuickView\MKQuickView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\MKQuickView\MKQuickView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKQuickView\MKQuickView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.csprojResolveAssemblyReference.cache |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\bin\Debug\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\bin\Debug\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.HeadingIndicator.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.Properties.Resources.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Debug\AvionicsInstrumentControl.pdb |
/MKLiveView/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControl.csproj.GenerateResource.Cache |
---|
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/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControl.dll |
---|
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/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControl.pdb |
---|
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/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControlDemo.AvionicsInstrumentsControls.AvionicsInstrumentsControlsRessources.resources |
---|
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/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControlDemo.HeadingIndicatorInstrumentControl.resources |
---|
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/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControlDemo.csproj.FileListAbsolute.txt |
---|
0,0 → 1,9 |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\bin\Debug\AvionicsInstrumentControlDemo.pdb |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControlDemo.AvionicsInstrumentsControls.AvionicsInstrumentsControlsRessources.resources |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControlDemo.Properties.Resources.resources |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControlDemo.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControlDemo.pdb |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\bin\Debug\AvionicsInstrumentControlDemo.dll |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControlDemo.dll |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControlDemo.HeadingIndicatorInstrumentControl.resources |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Debug\AvionicsInstrumentControlDemo.HeadingIndicator.resources |
/MKLiveView/AvionicsInstrumentControl/obj/Debug/AvionicsInstrumentControlDemo.csproj.GenerateResource.Cache |
---|
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/AvionicsInstrumentControl/obj/Debug/DesignTimeResolveAssemblyReferences.cache |
---|
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/AvionicsInstrumentControl/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache |
---|
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/AvionicsInstrumentControl/obj/Debug/TempPE/AvionicsInstrumentsControls.AvionicsInstrumentsControlsRessources.Designer.cs.dll |
---|
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/AvionicsInstrumentControl/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll |
---|
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/AvionicsInstrumentControl/obj/Release/AvionicsInstrumentControl.HeadingIndicator.resources |
---|
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/AvionicsInstrumentControl/obj/Release/AvionicsInstrumentControl.Properties.Resources.resources |
---|
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/AvionicsInstrumentControl/obj/Release/AvionicsInstrumentControl.csproj.FileListAbsolute.txt |
---|
0,0 → 1,23 |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\bin\Release\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\bin\Release\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Release\AvionicsInstrumentControl.csprojResolveAssemblyReference.cache |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Release\AvionicsInstrumentControl.HeadingIndicator.resources |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Release\AvionicsInstrumentControl.Properties.Resources.resources |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Release\AvionicsInstrumentControl.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Release\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\AvionicsInstrumentControlDemo\obj\Release\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\bin\Release\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\bin\Release\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.HeadingIndicator.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.Properties.Resources.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKLiveView\MKLiveView\AvionicsInstrumentControl\bin\Release\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\MKLiveView\MKLiveView\AvionicsInstrumentControl\bin\Release\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKLiveView\MKLiveView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.HeadingIndicator.resources |
E:\Documents\VS Projects\MKLiveView\MKLiveView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.Properties.Resources.resources |
E:\Documents\VS Projects\MKLiveView\MKLiveView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLiveView\MKLiveView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.dll |
E:\Documents\VS Projects\MKLiveView\MKLiveView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.pdb |
E:\Documents\VS Projects\MKLiveView\MKLiveView\AvionicsInstrumentControl\obj\Release\AvionicsInstrumentControl.csprojResolveAssemblyReference.cache |
/MKLiveView/AvionicsInstrumentControl/obj/Release/AvionicsInstrumentControl.csproj.GenerateResource.Cache |
---|
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/AvionicsInstrumentControl/obj/Release/AvionicsInstrumentControl.csprojResolveAssemblyReference.cache |
---|
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/AvionicsInstrumentControl/obj/Release/AvionicsInstrumentControl.dll |
---|
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/AvionicsInstrumentControl/obj/Release/AvionicsInstrumentControl.pdb |
---|
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/AvionicsInstrumentControl/obj/Release/DesignTimeResolveAssemblyReferences.cache |
---|
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/AvionicsInstrumentControl/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |
---|
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/AvionicsInstrumentControl/obj/Release/TempPE/Properties.Resources.Designer.cs.dll |
---|
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/EasySerialPort/Properties/AssemblyInfo.cs |
---|
0,0 → 1,36 |
using System.Reflection; |
using System.Runtime.CompilerServices; |
using System.Runtime.InteropServices; |
// General Information about an assembly is controlled through the following |
// set of attributes. Change these attribute values to modify the information |
// associated with an assembly. |
[assembly: AssemblyTitle("SimpleSerialPort")] |
[assembly: AssemblyDescription("")] |
[assembly: AssemblyConfiguration("")] |
[assembly: AssemblyCompany("")] |
[assembly: AssemblyProduct("SimpleSerialPort")] |
[assembly: AssemblyCopyright("Copyright © 2010")] |
[assembly: AssemblyTrademark("")] |
[assembly: AssemblyCulture("")] |
// Setting ComVisible to false makes the types in this assembly not visible |
// to COM components. If you need to access a type in this assembly from |
// COM, set the ComVisible attribute to true on that type. |
[assembly: ComVisible(false)] |
// The following GUID is for the ID of the typelib if this project is exposed to COM |
[assembly: Guid("9e32b5af-d497-4f8e-bcd0-7c363da6f8fc")] |
// Version information for an assembly consists of the following four values: |
// |
// Major Version |
// Minor Version |
// Build Number |
// Revision |
// |
// You can specify all the values or you can default the Build and Revision Numbers |
// by using the '*' as shown below: |
// [assembly: AssemblyVersion("1.0.*")] |
[assembly: AssemblyVersion("1.0.0.0")] |
[assembly: AssemblyFileVersion("1.0.0.0")] |
/MKLiveView/EasySerialPort/SimpleSerialPort.Designer.cs |
---|
0,0 → 1,209 |
namespace SimpleSerialPort |
{ |
partial class SimpleSerialPort |
{ |
/// <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 Component 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.comboBoxPortName = new System.Windows.Forms.ComboBox(); |
this.buttonOpen = new System.Windows.Forms.Button(); |
this.buttonClose = new System.Windows.Forms.Button(); |
this.textBoxBaudRate = new System.Windows.Forms.TextBox(); |
this.textBoxStatus = new System.Windows.Forms.TextBox(); |
this.textBoxDataBits = new System.Windows.Forms.TextBox(); |
this.comboBoxStopBits = new System.Windows.Forms.ComboBox(); |
this.comboBoxParity = new System.Windows.Forms.ComboBox(); |
this.labelStatus = new System.Windows.Forms.Label(); |
this.labelPortName = new System.Windows.Forms.Label(); |
this.labelBaudRate = new System.Windows.Forms.Label(); |
this.labelDataBits = new System.Windows.Forms.Label(); |
this.labelStopBits = new System.Windows.Forms.Label(); |
this.labelParity = new System.Windows.Forms.Label(); |
this.SuspendLayout(); |
// |
// comboBoxPortName |
// |
this.comboBoxPortName.FormattingEnabled = true; |
this.comboBoxPortName.Location = new System.Drawing.Point(66, 88); |
this.comboBoxPortName.Name = "comboBoxPortName"; |
this.comboBoxPortName.Size = new System.Drawing.Size(100, 21); |
this.comboBoxPortName.TabIndex = 0; |
// |
// buttonOpen |
// |
this.buttonOpen.Location = new System.Drawing.Point(66, 5); |
this.buttonOpen.Name = "buttonOpen"; |
this.buttonOpen.Size = new System.Drawing.Size(100, 23); |
this.buttonOpen.TabIndex = 1; |
this.buttonOpen.Text = "Open"; |
this.buttonOpen.UseVisualStyleBackColor = true; |
this.buttonOpen.Click += new System.EventHandler(this.buttonOpen_Click); |
// |
// buttonClose |
// |
this.buttonClose.Location = new System.Drawing.Point(66, 34); |
this.buttonClose.Name = "buttonClose"; |
this.buttonClose.Size = new System.Drawing.Size(100, 23); |
this.buttonClose.TabIndex = 2; |
this.buttonClose.Text = "Close"; |
this.buttonClose.UseVisualStyleBackColor = true; |
this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); |
// |
// textBoxBaudRate |
// |
this.textBoxBaudRate.Location = new System.Drawing.Point(66, 115); |
this.textBoxBaudRate.Name = "textBoxBaudRate"; |
this.textBoxBaudRate.Size = new System.Drawing.Size(100, 20); |
this.textBoxBaudRate.TabIndex = 3; |
// |
// textBoxStatus |
// |
this.textBoxStatus.Location = new System.Drawing.Point(66, 63); |
this.textBoxStatus.Name = "textBoxStatus"; |
this.textBoxStatus.ReadOnly = true; |
this.textBoxStatus.Size = new System.Drawing.Size(100, 20); |
this.textBoxStatus.TabIndex = 4; |
// |
// textBoxDataBits |
// |
this.textBoxDataBits.Location = new System.Drawing.Point(66, 142); |
this.textBoxDataBits.Name = "textBoxDataBits"; |
this.textBoxDataBits.Size = new System.Drawing.Size(100, 20); |
this.textBoxDataBits.TabIndex = 5; |
// |
// comboBoxStopBits |
// |
this.comboBoxStopBits.FormattingEnabled = true; |
this.comboBoxStopBits.Location = new System.Drawing.Point(66, 169); |
this.comboBoxStopBits.Name = "comboBoxStopBits"; |
this.comboBoxStopBits.Size = new System.Drawing.Size(100, 21); |
this.comboBoxStopBits.TabIndex = 6; |
// |
// comboBoxParity |
// |
this.comboBoxParity.FormattingEnabled = true; |
this.comboBoxParity.Location = new System.Drawing.Point(66, 197); |
this.comboBoxParity.Name = "comboBoxParity"; |
this.comboBoxParity.Size = new System.Drawing.Size(100, 21); |
this.comboBoxParity.TabIndex = 7; |
// |
// labelStatus |
// |
this.labelStatus.AutoSize = true; |
this.labelStatus.Location = new System.Drawing.Point(23, 66); |
this.labelStatus.Name = "labelStatus"; |
this.labelStatus.Size = new System.Drawing.Size(37, 13); |
this.labelStatus.TabIndex = 8; |
this.labelStatus.Text = "Status"; |
// |
// labelPortName |
// |
this.labelPortName.AutoSize = true; |
this.labelPortName.Location = new System.Drawing.Point(3, 91); |
this.labelPortName.Name = "labelPortName"; |
this.labelPortName.Size = new System.Drawing.Size(57, 13); |
this.labelPortName.TabIndex = 9; |
this.labelPortName.Text = "Port Name"; |
// |
// labelBaudRate |
// |
this.labelBaudRate.AutoSize = true; |
this.labelBaudRate.Location = new System.Drawing.Point(2, 118); |
this.labelBaudRate.Name = "labelBaudRate"; |
this.labelBaudRate.Size = new System.Drawing.Size(58, 13); |
this.labelBaudRate.TabIndex = 10; |
this.labelBaudRate.Text = "Baud Rate"; |
// |
// labelDataBits |
// |
this.labelDataBits.AutoSize = true; |
this.labelDataBits.Location = new System.Drawing.Point(10, 145); |
this.labelDataBits.Name = "labelDataBits"; |
this.labelDataBits.Size = new System.Drawing.Size(50, 13); |
this.labelDataBits.TabIndex = 11; |
this.labelDataBits.Text = "Data Bits"; |
// |
// labelStopBits |
// |
this.labelStopBits.AutoSize = true; |
this.labelStopBits.Location = new System.Drawing.Point(11, 172); |
this.labelStopBits.Name = "labelStopBits"; |
this.labelStopBits.Size = new System.Drawing.Size(49, 13); |
this.labelStopBits.TabIndex = 12; |
this.labelStopBits.Text = "Stop Bits"; |
// |
// labelParity |
// |
this.labelParity.AutoSize = true; |
this.labelParity.Location = new System.Drawing.Point(23, 200); |
this.labelParity.Name = "labelParity"; |
this.labelParity.Size = new System.Drawing.Size(33, 13); |
this.labelParity.TabIndex = 13; |
this.labelParity.Text = "Parity"; |
// |
// SimpleSerialPort |
// |
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); |
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
this.Controls.Add(this.labelParity); |
this.Controls.Add(this.labelStopBits); |
this.Controls.Add(this.labelDataBits); |
this.Controls.Add(this.labelBaudRate); |
this.Controls.Add(this.labelPortName); |
this.Controls.Add(this.labelStatus); |
this.Controls.Add(this.comboBoxParity); |
this.Controls.Add(this.comboBoxStopBits); |
this.Controls.Add(this.textBoxDataBits); |
this.Controls.Add(this.textBoxStatus); |
this.Controls.Add(this.textBoxBaudRate); |
this.Controls.Add(this.buttonClose); |
this.Controls.Add(this.buttonOpen); |
this.Controls.Add(this.comboBoxPortName); |
this.Name = "SimpleSerialPort"; |
this.Size = new System.Drawing.Size(175, 229); |
this.ResumeLayout(false); |
this.PerformLayout(); |
} |
#endregion |
private System.Windows.Forms.ComboBox comboBoxPortName; |
private System.Windows.Forms.Button buttonOpen; |
private System.Windows.Forms.Button buttonClose; |
private System.Windows.Forms.TextBox textBoxBaudRate; |
private System.Windows.Forms.TextBox textBoxStatus; |
private System.Windows.Forms.TextBox textBoxDataBits; |
private System.Windows.Forms.ComboBox comboBoxStopBits; |
private System.Windows.Forms.ComboBox comboBoxParity; |
private System.Windows.Forms.Label labelStatus; |
private System.Windows.Forms.Label labelPortName; |
private System.Windows.Forms.Label labelBaudRate; |
private System.Windows.Forms.Label labelDataBits; |
private System.Windows.Forms.Label labelStopBits; |
private System.Windows.Forms.Label labelParity; |
} |
} |
/MKLiveView/EasySerialPort/SimpleSerialPort.cs |
---|
0,0 → 1,244 |
///============================================================================ |
/// 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.ComponentModel; |
using System.Drawing; |
using System.Data; |
using System.Linq; |
using System.Text; |
using System.Windows.Forms; |
using System.IO.Ports; |
using System.IO; |
namespace SimpleSerialPort |
{ |
public partial class SimpleSerialPort : UserControl |
{ |
private SerialPort port; |
public event PortOpenedHandler PortOpened; |
public delegate void PortOpenedHandler(); |
public event PortClosedHandler PortClosed; |
public delegate void PortClosedHandler(); |
// public delegate void PortOpenedHandler(Stream stream); |
public event DataReceivedHandler DataReceived; |
public delegate void DataReceivedHandler(byte[] buffer); |
public SimpleSerialPort() |
{ |
InitializeComponent(); |
port = new SerialPort(); |
port.ReadTimeout = 10000; |
port.WriteTimeout = 1000; |
textBoxStatus.Text = "closed"; |
//textBoxBaudRate.Text = port.BaudRate.ToString(); |
textBoxBaudRate.Text = "57600"; |
textBoxDataBits.Text = port.DataBits.ToString(); |
populateComboBoxes(); |
setComboBoxDefaultValues(); |
// PortOpened += SimpleSerialPort_PortOpened; |
} |
public SerialPort Port |
{ |
get |
{ |
return port; |
} |
} |
public void Connect(bool bConn) |
{ |
if (bConn) |
buttonOpen.Invoke((Action)(()=> buttonOpen_Click(null, null))); |
else |
buttonClose.Invoke((Action)(() => buttonClose_Click(null, null))); |
} |
private void buttonOpen_Click(object sender, EventArgs e) |
{ |
try |
{ |
if (port.IsOpen == true) |
{ |
port.DataReceived -= SerialPortDataReceived; |
port.Close(); |
} |
lastoffset = 0; |
append = false; |
port.PortName = comboBoxPortName.Text; |
port.BaudRate = Convert.ToInt32(textBoxBaudRate.Text); |
port.DataBits = Convert.ToInt32(textBoxDataBits.Text); |
port.StopBits = (StopBits)Enum.Parse(typeof(StopBits), comboBoxStopBits.Text); |
port.Parity = (Parity)Enum.Parse(typeof(Parity), comboBoxParity.Text); |
port.DataReceived += SerialPortDataReceived; |
port.Open(); |
textBoxStatus.Text = "open"; |
if (PortOpened != null) |
{ |
// PortOpened(port.BaseStream); |
PortOpened(); |
} |
} |
catch (Exception ex) |
{ |
textBoxStatus.Text = "error: " + ex; |
} |
} |
private void buttonClose_Click(object sender, EventArgs e) |
{ |
port.DataReceived -= SerialPortDataReceived; |
port.Close(); |
PortClosed(); |
textBoxStatus.Text = "closed"; |
lastoffset = 0; |
append = false; |
} |
public string[] getPortNameValues() |
{ |
try |
{ |
return SerialPort.GetPortNames().Reverse().ToArray(); |
} |
catch |
{ |
return new string[0]; |
} |
} |
public string[] getStopBitValues() |
{ |
return Enum.GetNames(typeof(StopBits)); |
} |
public string[] getParityValues() |
{ |
return Enum.GetNames(typeof(Parity)); |
} |
private void populateComboBoxes() |
{ |
comboBoxPortName.Items.AddRange(getPortNameValues()); |
comboBoxStopBits.Items.AddRange(getStopBitValues()); |
comboBoxParity.Items.AddRange(getParityValues()); |
} |
private void setComboBoxDefaultValues() |
{ |
try { comboBoxPortName.SelectedIndex = 0; } |
catch { } |
try { comboBoxStopBits.SelectedIndex = 1; } |
catch { } |
try { comboBoxParity.SelectedIndex = 0; } |
catch { } |
} |
byte[] messageBuffer = new byte[4096]; |
int lastoffset = 0; |
bool append = false; |
byte sentinel = Convert.ToByte('\r'); |
object oLock = 0; |
private void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e) |
{ |
System.Threading.Monitor.Enter(oLock); |
int offset = 0; |
try |
{ |
byte[] buffer = new byte[port.BytesToRead]; |
port.Read(buffer, 0, port.BytesToRead); |
bool bFound = false; |
for (int i = 0; (i < buffer.Length) && port.IsOpen; i++) |
{ |
if(buffer[i]==sentinel) |
{ |
if (!append) |
{ |
byte[] message = new byte[i+1 - offset]; |
if(buffer[offset] != '#') |
System.Diagnostics.Debug.Print(buffer[offset].ToString()); |
Buffer.BlockCopy(buffer, offset, message, 0, i + 1 - offset); |
if (DataReceived != null) |
DataReceived(message); |
// bFound = true; |
} |
else |
{ |
Buffer.BlockCopy(buffer, 0, messageBuffer, lastoffset, i + 1); |
byte[] message = new byte[lastoffset + i + 1]; |
Buffer.BlockCopy(messageBuffer, 0, message, 0, message.Length); |
messageBuffer.Initialize(); |
append = false; |
lastoffset = 0; |
// System.Diagnostics.Debug.Print(message.Length.ToString()); |
// System.Diagnostics.Debug.Print(BitConverter.ToString(message)); |
if (DataReceived != null) |
DataReceived(message); |
// bFound = true; |
} |
offset = i + 1; |
if (buffer.Length > i + 1) |
{ |
//offset = i + 1; |
bFound = false; |
} |
else |
{ |
// offset = 0; |
bFound = true; |
} |
} |
} |
if(!bFound && port.IsOpen) |
{ |
if (!append) |
{ |
if (buffer[offset] != '#') |
System.Diagnostics.Debug.Print(buffer[offset].ToString("X2")); |
Buffer.BlockCopy(buffer, offset, messageBuffer, 0, buffer.Length-offset); |
// textBoxBuffer.Invoke((Action)(() => textBoxBuffer.Text = "n " + offset.ToString())); |
lastoffset = (buffer.Length - offset); |
} |
else |
{ |
if (messageBuffer[0] != '#') |
System.Diagnostics.Debug.Print(buffer[0].ToString("X2")); |
Buffer.BlockCopy(buffer, offset, messageBuffer, lastoffset, buffer.Length-offset); |
// textBoxBuffer.Invoke((Action)(() => textBoxBuffer.Text = "a " + offset.ToString())); |
lastoffset += (buffer.Length - offset); |
} |
append = true; |
} |
} |
catch(Exception ex) |
{ |
System.Diagnostics.Debug.Print(ex.Message); |
} |
finally |
{ |
System.Threading.Monitor.Exit(oLock); |
} |
} |
} |
} |
/MKLiveView/EasySerialPort/SimpleSerialPort.csproj |
---|
0,0 → 1,118 |
<?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>{D7450AA6-F964-487D-B2AA-661D0908A7EE}</ProjectGuid> |
<OutputType>Library</OutputType> |
<AppDesignerFolder>Properties</AppDesignerFolder> |
<RootNamespace>SimpleSerialPort</RootNamespace> |
<AssemblyName>SimpleSerialPort</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> |
<ItemGroup> |
<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.Drawing" /> |
<Reference Include="System.Windows.Forms" /> |
<Reference Include="System.Xml" /> |
</ItemGroup> |
<ItemGroup> |
<Compile Include="SimpleSerialPort.cs"> |
<SubType>UserControl</SubType> |
</Compile> |
<Compile Include="SimpleSerialPort.Designer.cs"> |
<DependentUpon>SimpleSerialPort.cs</DependentUpon> |
</Compile> |
<Compile Include="Properties\AssemblyInfo.cs" /> |
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" /> |
</ItemGroup> |
<ItemGroup> |
<EmbeddedResource Include="SimpleSerialPort.resx"> |
<DependentUpon>SimpleSerialPort.cs</DependentUpon> |
<SubType>Designer</SubType> |
</EmbeddedResource> |
</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> |
<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/EasySerialPort/SimpleSerialPort.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/EasySerialPort/SimpleSerialPort.resx |
---|
0,0 → 1,120 |
<?xml version="1.0" encoding="utf-8"?> |
<root> |
<!-- |
Microsoft ResX Schema |
Version 2.0 |
The primary goals of this format is to allow a simple XML format |
that is mostly human readable. The generation and parsing of the |
various data types are done through the TypeConverter classes |
associated with the data types. |
Example: |
... ado.net/XML headers & schema ... |
<resheader name="resmimetype">text/microsoft-resx</resheader> |
<resheader name="version">2.0</resheader> |
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
<value>[base64 mime encoded serialized .NET Framework object]</value> |
</data> |
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
<comment>This is a comment</comment> |
</data> |
There are any number of "resheader" rows that contain simple |
name/value pairs. |
Each data row contains a name, and value. The row also contains a |
type or mimetype. Type corresponds to a .NET class that support |
text/value conversion through the TypeConverter architecture. |
Classes that don't support this are serialized and stored with the |
mimetype set. |
The mimetype is used for serialized objects, and tells the |
ResXResourceReader how to depersist the object. This is currently not |
extensible. For a given mimetype the value must be set accordingly: |
Note - application/x-microsoft.net.object.binary.base64 is the format |
that the ResXResourceWriter will generate, however the reader can |
read any of the formats listed below. |
mimetype: application/x-microsoft.net.object.binary.base64 |
value : The object must be serialized with |
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
: and then encoded with base64 encoding. |
mimetype: application/x-microsoft.net.object.soap.base64 |
value : The object must be serialized with |
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
: and then encoded with base64 encoding. |
mimetype: application/x-microsoft.net.object.bytearray.base64 |
value : The object must be serialized into a byte array |
: using a System.ComponentModel.TypeConverter |
: and then encoded with base64 encoding. |
--> |
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
<xsd:element name="root" msdata:IsDataSet="true"> |
<xsd:complexType> |
<xsd:choice maxOccurs="unbounded"> |
<xsd:element name="metadata"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
</xsd:sequence> |
<xsd:attribute name="name" use="required" type="xsd:string" /> |
<xsd:attribute name="type" type="xsd:string" /> |
<xsd:attribute name="mimetype" type="xsd:string" /> |
<xsd:attribute ref="xml:space" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="assembly"> |
<xsd:complexType> |
<xsd:attribute name="alias" type="xsd:string" /> |
<xsd:attribute name="name" type="xsd:string" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="data"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
</xsd:sequence> |
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
<xsd:attribute ref="xml:space" /> |
</xsd:complexType> |
</xsd:element> |
<xsd:element name="resheader"> |
<xsd:complexType> |
<xsd:sequence> |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
</xsd:sequence> |
<xsd:attribute name="name" type="xsd:string" use="required" /> |
</xsd:complexType> |
</xsd:element> |
</xsd:choice> |
</xsd:complexType> |
</xsd:element> |
</xsd:schema> |
<resheader name="resmimetype"> |
<value>text/microsoft-resx</value> |
</resheader> |
<resheader name="version"> |
<value>2.0</value> |
</resheader> |
<resheader name="reader"> |
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=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> |
</root> |
/MKLiveView/EasySerialPort/bin/Debug/EasySerialPort.dll |
---|
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/EasySerialPort/bin/Debug/EasySerialPort.pdb |
---|
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/EasySerialPort/bin/Debug/SimpleSerialPort.dll |
---|
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/EasySerialPort/bin/Debug/SimpleSerialPort.pdb |
---|
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/EasySerialPort/bin/Release/EasySerialPort.dll |
---|
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/EasySerialPort/bin/Release/EasySerialPort.pdb |
---|
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/EasySerialPort/bin/Release/SimpleSerialPort.dll |
---|
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/EasySerialPort/bin/Release/SimpleSerialPort.pdb |
---|
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/EasySerialPort/bin/x86/Debug/SimpleSerialPort.dll |
---|
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/EasySerialPort/bin/x86/Debug/SimpleSerialPort.pdb |
---|
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/EasySerialPort/bin/x86/Release/SimpleSerialPort.dll |
---|
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/EasySerialPort/bin/x86/Release/SimpleSerialPort.pdb |
---|
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/EasySerialPort/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache |
---|
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/EasySerialPort/obj/Debug/EasySerialPort.EasySerialPortControl.resources |
---|
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/EasySerialPort/obj/Debug/EasySerialPort.csproj.FileListAbsolute.txt |
---|
0,0 → 1,7 |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\ResolveAssemblyReference.cache |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\EasySerialPort.EasySerialPortControl.resources |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\EasySerialPort.csproj.GenerateResource.Cache |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\bin\Debug\EasySerialPort.dll |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\bin\Debug\EasySerialPort.pdb |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\EasySerialPort.dll |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\EasySerialPort.pdb |
/MKLiveView/EasySerialPort/obj/Debug/EasySerialPort.csproj.GenerateResource.Cache |
---|
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/EasySerialPort/obj/Debug/EasySerialPort.dll |
---|
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/EasySerialPort/obj/Debug/EasySerialPort.pdb |
---|
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/EasySerialPort/obj/Debug/Refactor/SimpleSerialPort.dll |
---|
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/EasySerialPort/obj/Debug/SimpleSerialPort.SimpleSerialPort.resources |
---|
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/EasySerialPort/obj/Debug/SimpleSerialPort.csproj.FileListAbsolute.txt |
---|
0,0 → 1,35 |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\bin\Debug\SimpleSerialPort.dll |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\bin\Debug\SimpleSerialPort.pdb |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\ResolveAssemblyReference.cache |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\SimpleSerialPort.SimpleSerialPort.resources |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\SimpleSerialPort.csproj.GenerateResource.Cache |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\SimpleSerialPort.dll |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Debug\SimpleSerialPort.pdb |
C:\Users\jackson\Desktop\HexacopterController\HexacopterController\EasySerialPort\bin\Debug\SimpleSerialPort.dll |
C:\Users\jackson\Desktop\HexacopterController\HexacopterController\EasySerialPort\bin\Debug\SimpleSerialPort.pdb |
C:\Users\jackson\Desktop\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\ResolveAssemblyReference.cache |
C:\Users\jackson\Desktop\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.SimpleSerialPort.resources |
C:\Users\jackson\Desktop\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.csproj.GenerateResource.Cache |
C:\Users\jackson\Desktop\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.dll |
C:\Users\jackson\Desktop\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.pdb |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\bin\Debug\SimpleSerialPort.dll |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\bin\Debug\SimpleSerialPort.pdb |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.csprojResolveAssemblyReference.cache |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.SimpleSerialPort.resources |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.dll |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\Debug\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKQuickView\MKQuickView\EasySerialPort\bin\Debug\SimpleSerialPort.dll |
E:\Documents\VS Projects\MKQuickView\MKQuickView\EasySerialPort\bin\Debug\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKQuickView\MKQuickView\EasySerialPort\obj\Debug\SimpleSerialPort.SimpleSerialPort.resources |
E:\Documents\VS Projects\MKQuickView\MKQuickView\EasySerialPort\obj\Debug\SimpleSerialPort.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKQuickView\MKQuickView\EasySerialPort\obj\Debug\SimpleSerialPort.dll |
E:\Documents\VS Projects\MKQuickView\MKQuickView\EasySerialPort\obj\Debug\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKQuickView\MKQuickView\EasySerialPort\obj\Debug\SimpleSerialPort.csprojResolveAssemblyReference.cache |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\bin\Debug\SimpleSerialPort.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\bin\Debug\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Debug\SimpleSerialPort.SimpleSerialPort.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Debug\SimpleSerialPort.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Debug\SimpleSerialPort.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Debug\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Debug\SimpleSerialPort.csprojResolveAssemblyReference.cache |
/MKLiveView/EasySerialPort/obj/Debug/SimpleSerialPort.csproj.GenerateResource.Cache |
---|
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/EasySerialPort/obj/Debug/SimpleSerialPort.csprojResolveAssemblyReference.cache |
---|
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/EasySerialPort/obj/Debug/SimpleSerialPort.dll |
---|
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/EasySerialPort/obj/Debug/SimpleSerialPort.pdb |
---|
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/EasySerialPort/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |
---|
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/EasySerialPort/obj/Release/EasySerialPort.SimpleSerialPort.resources |
---|
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/EasySerialPort/obj/Release/EasySerialPort.csproj.FileListAbsolute.txt |
---|
0,0 → 1,7 |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\bin\Release\EasySerialPort.dll |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\bin\Release\EasySerialPort.pdb |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\ResolveAssemblyReference.cache |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\EasySerialPort.SimpleSerialPort.resources |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\EasySerialPort.csproj.GenerateResource.Cache |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\EasySerialPort.dll |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\EasySerialPort.pdb |
/MKLiveView/EasySerialPort/obj/Release/EasySerialPort.csproj.GenerateResource.Cache |
---|
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/EasySerialPort/obj/Release/EasySerialPort.dll |
---|
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/EasySerialPort/obj/Release/EasySerialPort.pdb |
---|
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/EasySerialPort/obj/Release/Refactor/EasySerialPort.dll |
---|
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/EasySerialPort/obj/Release/SimpleSerialPort.SimpleSerialPort.resources |
---|
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/EasySerialPort/obj/Release/SimpleSerialPort.csproj.FileListAbsolute.txt |
---|
0,0 → 1,20 |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\bin\Release\SimpleSerialPort.dll |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\bin\Release\SimpleSerialPort.pdb |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\ResolveAssemblyReference.cache |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\SimpleSerialPort.SimpleSerialPort.resources |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\SimpleSerialPort.csproj.GenerateResource.Cache |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\SimpleSerialPort.dll |
C:\Users\jackson\Desktop\SentryGun\EasySerialPort\obj\Release\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\bin\Release\SimpleSerialPort.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\bin\Release\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Release\SimpleSerialPort.SimpleSerialPort.resources |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Release\SimpleSerialPort.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Release\SimpleSerialPort.dll |
E:\Documents\VS Projects\MKLifeView\MKLifeView\EasySerialPort\obj\Release\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKLiveView\MKLiveView\EasySerialPort\bin\Release\SimpleSerialPort.dll |
E:\Documents\VS Projects\MKLiveView\MKLiveView\EasySerialPort\bin\Release\SimpleSerialPort.pdb |
E:\Documents\VS Projects\MKLiveView\MKLiveView\EasySerialPort\obj\Release\SimpleSerialPort.csprojResolveAssemblyReference.cache |
E:\Documents\VS Projects\MKLiveView\MKLiveView\EasySerialPort\obj\Release\SimpleSerialPort.SimpleSerialPort.resources |
E:\Documents\VS Projects\MKLiveView\MKLiveView\EasySerialPort\obj\Release\SimpleSerialPort.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\MKLiveView\MKLiveView\EasySerialPort\obj\Release\SimpleSerialPort.dll |
E:\Documents\VS Projects\MKLiveView\MKLiveView\EasySerialPort\obj\Release\SimpleSerialPort.pdb |
/MKLiveView/EasySerialPort/obj/Release/SimpleSerialPort.csproj.GenerateResource.Cache |
---|
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/EasySerialPort/obj/Release/SimpleSerialPort.csprojResolveAssemblyReference.cache |
---|
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/EasySerialPort/obj/Release/SimpleSerialPort.dll |
---|
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/EasySerialPort/obj/Release/SimpleSerialPort.pdb |
---|
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/EasySerialPort/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache |
---|
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/EasySerialPort/obj/x86/Debug/SimpleSerialPort.SimpleSerialPort.resources |
---|
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/EasySerialPort/obj/x86/Debug/SimpleSerialPort.csproj.FileListAbsolute.txt |
---|
0,0 → 1,6 |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\bin\x86\Debug\SimpleSerialPort.dll |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\bin\x86\Debug\SimpleSerialPort.pdb |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\x86\Debug\SimpleSerialPort.SimpleSerialPort.resources |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\x86\Debug\SimpleSerialPort.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\x86\Debug\SimpleSerialPort.dll |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\x86\Debug\SimpleSerialPort.pdb |
/MKLiveView/EasySerialPort/obj/x86/Debug/SimpleSerialPort.csproj.GenerateResource.Cache |
---|
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/EasySerialPort/obj/x86/Debug/SimpleSerialPort.dll |
---|
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/EasySerialPort/obj/x86/Debug/SimpleSerialPort.pdb |
---|
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/EasySerialPort/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache |
---|
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/EasySerialPort/obj/x86/Release/SimpleSerialPort.SimpleSerialPort.resources |
---|
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/EasySerialPort/obj/x86/Release/SimpleSerialPort.csproj.FileListAbsolute.txt |
---|
0,0 → 1,6 |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\bin\x86\Release\SimpleSerialPort.dll |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\bin\x86\Release\SimpleSerialPort.pdb |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\x86\Release\SimpleSerialPort.SimpleSerialPort.resources |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\x86\Release\SimpleSerialPort.csproj.GenerateResource.Cache |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\x86\Release\SimpleSerialPort.dll |
E:\Documents\VS Projects\HexacopterController\HexacopterController\EasySerialPort\obj\x86\Release\SimpleSerialPort.pdb |
/MKLiveView/EasySerialPort/obj/x86/Release/SimpleSerialPort.csproj.GenerateResource.Cache |
---|
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/EasySerialPort/obj/x86/Release/SimpleSerialPort.dll |
---|
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/EasySerialPort/obj/x86/Release/SimpleSerialPort.pdb |
---|
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/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/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/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/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/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/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/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/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/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 |
AAAAAAAAAAAAAAAAAAArLTIAAAAAAAAAAAAnKC4BMTM3FiQnLJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxNDgAAAAAAAAAAAAfIic/Gx4j1xwfJEgfIieUKSswIAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRVWQ4YGyD+KCsuMQAA |
AABeYGMLAAAAAC4xNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATE9TEkxP |
Uw4AAAAAKi0yAAAAAAAAAAAAAAAAACQnLAAhJCkAHB8kARseIwEcHyMBICMoAC4xNgAAAAAAKCsvADs9 |
QQAAAAAALjE1HyotMj8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAaHSKXHB8kpSEkKV0rLjMsMjU5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAATU9SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wA6PEEAKi0xACUn |
LAAlJywAJSgtACIlKgAjJisAKCovADc5PgBoam0AAAAAAAAAAAAAAAAAAAAAAAAAAAA4Oj8AAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAALjE0GRcaH/04O0AkLC8zDywvNDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExPUwAAAAAAAAAAAExPUwAAAAAAAAAAAAAAAABhYGUAJikuByAj |
KHAbHiPnGx4j/xseI+MfIiZ8JyovFAAAAAAAAAAAAAAAAC4xNQD///8AREZKHwAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEtMUQAFCw8AAAAAAB8iJkkcHyPQIyYqPzg7 |
Pyg1ODwDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0c3cAAAAAAAAAAAAAAAAAAAAAAFRW |
VwEkJysFHyInCBwfJAwaHSIOKi0xEyotMiklKCw+IiQpTiIkKVgiJitdICMoWSEjKFIkJitEKi0yLygr |
MBccHyQPHB8kDB8iJwgmKS4EAAAAAAAAAAAAAAAAAAAAACwuMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXWV0MGBsg+yUo |
LDQfIicPIiUqVSotMRwAAAAALC4zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAClpaUAAAAAAAAAAAClpaUAAAAAADc5PgAoKi8sGBsg/xcaH/8XGh//Fxof/xgbIP8cHySBNTg7BwAA |
AAAAAAAAAAAAAAAAAAAAAAAAQkRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAHBvdQAAAAAANTY7FRkcIdMeISZUiYuNB4yOkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAqLTEAAAAAAAAAAAAAAAAALjE1Bx4hJhQfIiYhISQoPx4hJXQcHySkGh0izhodIvIZHCH/Fxof/xca |
H/8XGh//Fxof/xcaH/8XGh//Fxof/xcaH/8XGh//GBsg/xodIvcbHiPRHB8koh4hJmwkJis0Gx4jGiMl |
KgwAAAAAAAAAAAAAAAABBQoAU1VZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAVVdbAAAAAAAcHyTcHyImawAAAAAiJSpVHiEmbgAAAAAAAAAASk1RAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEJGACot |
MRsaHSLbGBsg/xcaH/8XGh//GBsg/xseI4IkJywMAAAAAJ6engAAAAAAAAAAAGdpagAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDU6CT9BRRUAAAAAGBsgvR4h |
JnsnKi4GAAAAAGVnagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEVISwAAAAQAAAAAAAAAAABLTlAFICMoIR4hJj4eISV4Gx4juxod |
IfcYGyD/GBsf/xgbIPoYGyDqGBsg3BgbIM8YGyDGGBsgwBodIrkaHiOyGx4jrhsdIrAbHSK2GRwhvhgb |
IMQYGyDNGBsg2RgbIOkYGyD7Fxof/xgbIP8aHSLgHB8kkx8hJksgIygfhIeLAQAAAAAAAAAAJCcsAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHiEmAB0g |
JZIaHSLAAAAAAB0gJT0eISamIyUqJAAAAAASFRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAEVHSg6TkZQBAAAAACotMQAAAAAAAAAAACcqLiscHySSGRwhshkcIbEdICSDJyouHAAA |
AAAAAAAAHCAlAAAAAABkZmcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAMDI3AAAAAAAjJSokJikuQAAAAAAYGyC4HiEmgyotMQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdZXQAFCAwAAAAAAAAA |
AAAtMDUQHSAmPxwfJHsaHSLHGRwh/xcaH/8YGyDwGBsgzRkcIa0cHyOLHSAkZCIlKkMqLTI0LjE1KjAz |
OCM2OT0eIyYrHB8iJyEeISYkHCAlIyMnLCAxMzgfMTQ4JCwvNCwpLDE2JCcqRB0gJWUbHiOQGBsgtRgb |
INsYGyD/GBsg/xseI8gcHyRsJSgtIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKzAAIyYrNBkcIfElKCs3NzlDARwfJI4dICWdKSwxCwAA |
AAAaHCEAeXl6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzo+IC0wNCgAAAAAAAAAACYp |
LQAAAAAAAAAAAAAAAAD///8B////AAAAAAAAAAAABwoPADM2OgAAAAAAOz5CFGlrbQMAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIlKkUgIyhnAAAAABgb |
IMUdICVuNTc8BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAmKS4AAAAAAAAAAAA2OTwMHyIlUxseIqEZHCHxGBsg/xkcIegZHCGuGx4jeB8i |
JUcuMDQnLzI2JCAjKDYbHiNZGh0ieBodIpQaHSKtHB8jtxwfJLkcHyS6HB8kux0gJbwcHyS8HB8kuxwf |
JLocHyS5Gx4isxocIZ4ZHCGBGx4jYCAjJzwuMTYuJikuNxseI2EZHCGiGRsg7BkbIP8aHSLHHiEmX+3w |
5wEAAAAALjA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAsLzMFHiEloRodIsAAAAAAISQoLRseI8gdICWNQkBEBgAAAAAAAAAAPkBFAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAA7P0EDKCsvVCYoLT8AAAAAAAAAAAAAAABPUVQAAAAAAAAAAAAAAAAAAAAAAFVW |
WgACBgsAAAAAAAAAAAArLjJfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAISQpAAAAAAAhIicTICInix4hJkwlKC0fGh0i1x4hJkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/QkUAAAEGAAAAAAAAAAAAISQpQxod |
IqkYGyD5GRwg/xodIsIcHyRvHyAlMzY5PBsjJis6Gx4jdhkcIawaHSLJHB8kxR0fJLgbHiOrGx4jkhse |
I3kbHiJoGx4jXBwfI1MbHiNOHB8kTBwfJEwbHiNPGx4jVhseImEbHiJvGx4jiBseI6UcHyS2HB8kxBse |
I8oaHSGjHiElYyotMi8kJio2HB4jghkcIfIZHCH5HB8klFFRVggAAAAAMDI3AAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFESgAgIygsGx4j2xwfJIAAAAAAHyInUhod |
It8cHySZQkVKCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzI2AAAAAAAmKS4SJigtUyMl |
KnwoKzEnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJisoIyYreistMy4AAAAAXmBjAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMmKgAAAAAAPkJNAR8iJ3wbHiOwAAAAABwf |
JGkcHyTJHiEmJwAAAAAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAALzI2AAAAAAAAAAAAMzY5DR0gJIgYGyDsGRwh/xweJLYeISVKNTg8EycqLzIcHySGGRwhzBse |
I9kdICWzHB8khRwfJFQbHiM4HiAlJSQnLBRDRkoGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAADRzNACKSwxDx8iJyEcHyQ3HB8kVR0gJY8cHyTGGh0i2RseIponKi87IyYrLRwf |
JKcYGyD/Gx4jqv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAkJywAAAAAAEdITQEfIidVGh0i6BwfJGIAAAAAHiAlWxkbIOsbHSLCLC8zIgAAAAAAAAAAQURIAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAJikuAAAAAAAkJysLKSwwJyIlKWsiJSmTHiImgR8iJ1QjJis9JSgtOiEj |
J0sfISZ1ISQpkyMmK2omKS4mXl1iAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAA/QkYAAAAAAAAAAAAhJChyGRwh4CIlKj0yNTcQGh0iwhseI4ExMzgGAAAAALy9vgAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACouMR8bHiLAGBsg/xod |
ItIfIiZJRUVJCSIlKkgZHCG8GRwh7B0gJbceISZrHiEmKx4hJhkqLTIIAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjZWgAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAKCswCx4hJh8fIidOHSAlsBkcIekcHySaKy4yICAjKGoZHCH/HSAljwAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0/RAUeICVrGh0i6x8i |
J2AAAAAAIyUqRhodIugYGyDvICMocQAAAAAAAAAAAAAAAE1QUwAAAAAAAAAAAAAAAAAAAAAAJSgsAAAA |
AAAAAAAAISQoCiMmKhItMDQhIyYrSCEkKF4jJipiIyYqUiotMSsmKS4TIiUqCgAAAAAAAAAANzk+AAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyouAAAAAAAAAAAAHyEmlBgbIPQgIydsAAAAABwe |
I30bHiPOHyInLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAMTM4AAAAAAAiJCkhGhwh4BgbIPseISaHS01QCSUoLTkaHSLDGh0i8R0gJZskJywwHSAlDyss |
MQQAAAAAAAAAAAAAAAAAAAAAMzY6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXmEAAAAAAAAAAAAAAAAAAAAAAEFESQEmKC0JIiUqQhse |
I8waHSLiJigsPSIlKVYYGyD7Ki0xMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAADk7QAAAAAAAAAAAAGZobQIeISZsGh0i8R8hJnlDQkgFLC8yHBseI8UXGh//Gh0i2CEk |
KU8AAAAAAAAAAAAAAAA0NzwAAAAAAAAAAAAAAAAAPD9DAAAAAAAAAAAAAAAAAEVGSwAkJywBICQoAiMm |
KgIkJisCMzY5AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKSwxAAAA |
AAAAAAAAKi0xNBseI9QXGh/6ICMocQAAAAAeISVYGx4i6B4hJV0AAAAAAAAAACkrMAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIaIiQAAAAAAMDI3FBseI+QZHCHsJCcqTDI1 |
OgodICWRGRwh+B0fJaUlJy0iJiotAz9CRgAAAAAAAAAAAAAAAABWWFsAAAAAAAAAAAAAAAAAAAAAAAAA |
AAB9fYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJkaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAFZYXQAAAAUAAAAAAAAAAAAAAAAAWV9hBB8hJpMYGyD5JSctUCAjKHwcHySkAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuMTYAAAAAAAAA |
AAAhJClUGRwh6xwfI7ElKCweAAAAACEkKW0ZHCHwFxof/xseI9chJCleNDc8DhIVGgMtMDQBAAAAAAAA |
AAAAAAAAAAAAADk8PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERG |
SgAAAAAAAAAAAAAAAAAAAAAAAAAAACYpLQIAAAABKSwxKx4hJqoXGh//GRwh7CUoLEwAAAAAICMoVxkc |
Ie0bHiN5AAAAAAAAAABNT1IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AACkpqcAAAAAAAAAAAAdICXAGRwh6CwvNDAjJisoGx4jzhodItwjJitEAAAAAAAAAAAAAAAANjk8AAAA |
AAAAAAAAAAAAAAAAAAAvMjYAAAAAAAAAAACWmp8AHyIoAxwfJAU2OTwHLzE2IycqLj0iJClEJyouPC8y |
NiA7PUIHGx4iBCcqLwEAAAAAAAAAACQnLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ3 |
OwAAAAAAAAAAACAjKHgYGyD7JyovQx8hJrkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5PEAAAAAAAAAAAAArLjEmGh0iwBseIukhJChsGh0iDjs+ |
QhEfIieLGRsg6xcaH/8ZHCHzHB8kniEkKUYgIygZHSAlDiUoLQeNkI4BAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJikuBx0gJA4jJiobICMnVxwf |
JL8YGyD/Fxof9x0gJaY6PUETHiEmER8iJ4EaHSLwHiEmdgAAAAAAAAAAMDM4AAAAAAAAAAAAAAAAAAAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFCgAAAAAAIiUqZBgbIPIsLzQxICMoPhse |
I+gbHiOpNzc8EgAAAAAAAAAAMTQ3AAAAAAAAAAAAAAAAAAAAAAAAAAAAKiwxAAAAAAAAAAAAHB8kByks |
MR0gIyhgHyImpx8iJrccHySZHSAlfh4hJnYdICR/HSAlnR8iJ7YgIyeRJCcsOCwvNAcAAAAAAAAAAElL |
TwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHV1dwAIDBIAAAAAAB8hJpMaHSLqJyovYwAA |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
AAAAAAAAIyYqAAAAAAAAAAAAICInaxkcIeEcHyTNHiEmYx0gJRc0NzsbHyIndRkcIckXGh/uGBsg/xkc |
IfYbHiO5HSAlfyEkKUwbHiMuHSAlJR0gJR0fIicXIiUqEiYpLg8gIygMIyYqDCYpLg4iJSoQICMnFB4h |
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/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()); |
} |
} |
} |
/MKLiveView/Properties/AssemblyInfo.cs |
---|
0,0 → 1,36 |
using System.Reflection; |
using System.Runtime.CompilerServices; |
using System.Runtime.InteropServices; |
// General Information about an assembly is controlled through the following |
// set of attributes. Change these attribute values to modify the information |
// associated with an assembly. |
[assembly: AssemblyTitle("Mikrokopter LiveView")] |
[assembly: AssemblyDescription("Tool 4 displaying live data from NC via serial con")] |
[assembly: AssemblyConfiguration("")] |
[assembly: AssemblyCompany("NextSteph")] |
[assembly: AssemblyProduct("Mikrokopter LiveView")] |
[assembly: AssemblyCopyright("Copyright © 2016")] |
[assembly: AssemblyTrademark("")] |
[assembly: AssemblyCulture("")] |
// Setting ComVisible to false makes the types in this assembly not visible |
// to COM components. If you need to access a type in this assembly from |
// COM, set the ComVisible attribute to true on that type. |
[assembly: ComVisible(false)] |
// The following GUID is for the ID of the typelib if this project is exposed to COM |
[assembly: Guid("15228974-4509-4f77-8ec5-f007793214a2")] |
// Version information for an assembly consists of the following four values: |
// |
// Major Version |
// Minor Version |
// Build Number |
// Revision |
// |
// You can specify all the values or you can default the Build and Revision Numbers |
// by using the '*' as shown below: |
// [assembly: AssemblyVersion("1.0.*")] |
[assembly: AssemblyVersion("1.0.0.0")] |
[assembly: AssemblyFileVersion("1.0.0.0")] |
/MKLiveView/Properties/Resources.Designer.cs |
---|
0,0 → 1,137 |
//------------------------------------------------------------------------------ |
// <auto-generated> |
// Dieser Code wurde von einem Tool generiert. |
// Laufzeitversion:4.0.30319.42000 |
// |
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn |
// der Code erneut generiert wird. |
// </auto-generated> |
//------------------------------------------------------------------------------ |
namespace MKLiveView.Properties { |
using System; |
/// <summary> |
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. |
/// </summary> |
// Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert |
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. |
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen |
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
internal class Resources { |
private static global::System.Resources.ResourceManager resourceMan; |
private static global::System.Globalization.CultureInfo resourceCulture; |
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
internal Resources() { |
} |
/// <summary> |
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. |
/// </summary> |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
internal static global::System.Resources.ResourceManager ResourceManager { |
get { |
if (object.ReferenceEquals(resourceMan, null)) { |
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MKLiveView.Properties.Resources", typeof(Resources).Assembly); |
resourceMan = temp; |
} |
return resourceMan; |
} |
} |
/// <summary> |
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle |
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. |
/// </summary> |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
internal static global::System.Globalization.CultureInfo Culture { |
get { |
return resourceCulture; |
} |
set { |
resourceCulture = value; |
} |
} |
/// <summary> |
/// Sucht eine lokalisierte Zeichenfolge, die AngleNick |
///AngleRoll |
///AccNick |
///AccRoll |
///YawGyro |
///Altitude [0.1m] |
///AccZ |
///Gas |
///Compass Value |
///Voltage [0.1V] |
///Receiver Level |
///Gyro Compass |
///Motor 1 |
///Motor 2 |
///Motor 3 |
///Motor 4 |
///16 |
///17 |
///18 |
///19 |
///Servo |
///Hovergas |
///Current [0.1A] |
///Capacity [mAh] |
///Height Setpoint |
///25 |
///26 |
///SPI-Error |
///I2C-Erro [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt. |
/// </summary> |
internal static string FCLabelTexts { |
get { |
return ResourceManager.GetString("FCLabelTexts", resourceCulture); |
} |
} |
/// <summary> |
/// Sucht eine lokalisierte Zeichenfolge, die AngleNick |
///AngleRoll |
///AccNick |
///AccRoll |
///Altitude [0.1m] |
///FC-Flags |
///NC-Flags |
///Voltage [0.1V] |
///Current [0.1A] |
///GPS Data |
///CompassHeading |
///GyroHeading |
///SPI Error |
///GPS CRC Error |
///I2C Error |
///I2C Okay |
///16 |
///17 |
///18 |
///19 |
///EarthMagnet [%] |
///Ground Speed |
///N_Speed |
///E_Speed |
///Magnet X |
///Magnet Y |
///Magnet Z |
///Distance N |
///Distance [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt. |
/// </summary> |
internal static string NCLabelTexts { |
get { |
return ResourceManager.GetString("NCLabelTexts", resourceCulture); |
} |
} |
} |
} |
/MKLiveView/Properties/Resources.resx |
---|
0,0 → 1,188 |
<?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> |
<data name="FCLabelTexts" xml:space="preserve"> |
<value>AngleNick |
AngleRoll |
AccNick |
AccRoll |
YawGyro |
Altitude [0.1m] |
AccZ |
Gas |
Compass Value |
Voltage [0.1V] |
Receiver Level |
Gyro Compass |
Motor 1 |
Motor 2 |
Motor 3 |
Motor 4 |
16 |
17 |
18 |
19 |
Servo |
Hovergas |
Current [0.1A] |
Capacity [mAh] |
Height Setpoint |
25 |
26 |
SPI-Error |
I2C-Error |
BL Limit |
GPS_Nick |
GPS_Roll</value> |
</data> |
<data name="NCLabelTexts" xml:space="preserve"> |
<value>AngleNick |
AngleRoll |
AccNick |
AccRoll |
Altitude [0.1m] |
FC-Flags |
NC-Flags |
Voltage [0.1V] |
Current [0.1A] |
GPS Data |
CompassHeading |
GyroHeading |
SPI Error |
GPS CRC Error |
I2C Error |
I2C Okay |
16 |
17 |
18 |
19 |
EarthMagnet [%] |
Ground Speed |
N_Speed |
E_Speed |
Magnet X |
Magnet Y |
Magnet Z |
Distance N |
Distance E |
-GPS_Nick |
-GPS_Roll |
Used_Sats</value> |
</data> |
</root> |
/MKLiveView/Properties/Settings.Designer.cs |
---|
0,0 → 1,26 |
//------------------------------------------------------------------------------ |
// <auto-generated> |
// Dieser Code wurde von einem Tool generiert. |
// Laufzeitversion:4.0.30319.42000 |
// |
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn |
// der Code erneut generiert wird. |
// </auto-generated> |
//------------------------------------------------------------------------------ |
namespace MKLiveView.Properties { |
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] |
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { |
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); |
public static Settings Default { |
get { |
return defaultInstance; |
} |
} |
} |
} |
/MKLiveView/Properties/Settings.settings |
---|
0,0 → 1,7 |
<?xml version='1.0' encoding='utf-8'?> |
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> |
<Profiles> |
<Profile Name="(Default)" /> |
</Profiles> |
<Settings /> |
</SettingsFile> |