Add project files.

This commit is contained in:
Martijn Dijkstra
2025-05-08 09:10:15 +02:00
parent 7be30a6f28
commit 6a44bd4fd2
211 changed files with 729572 additions and 0 deletions

6
FeanorConfig/App.config Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
</startup>
</configuration>

BIN
FeanorConfig/C.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,74 @@

namespace FeanorConfig
{
partial class CalibrationHelpPage
{
/// <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(CalibrationHelpPage));
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.SuspendLayout();
//
// richTextBox1
//
this.richTextBox1.BackColor = System.Drawing.SystemColors.AppWorkspace;
this.richTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.richTextBox1.ForeColor = System.Drawing.SystemColors.Menu;
this.richTextBox1.Location = new System.Drawing.Point(12, 12);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(587, 344);
this.richTextBox1.TabIndex = 0;
this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);
//
// contextMenuStrip1
//
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(61, 4);
this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening);
//
// CalibrationHelpPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.Gray;
this.ClientSize = new System.Drawing.Size(611, 371);
this.Controls.Add(this.richTextBox1);
this.Name = "CalibrationHelpPage";
this.Text = "CalibrationHelpPage";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
}
}

View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FeanorConfig
{
public partial class CalibrationHelpPage : Form
{
public CalibrationHelpPage()
{
InitializeComponent();
}
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
}
}

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

@@ -0,0 +1,229 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{77EC875B-2718-41D3-9CD2-1E8191797673}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FeanorConfig</RootNamespace>
<AssemblyName>FeanorConfig</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>MM.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<Reference Include="HarfBuzzSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\packages\HarfBuzzSharp.7.3.0.3\lib\net462\HarfBuzzSharp.dll</HintPath>
</Reference>
<Reference Include="LiveCharts, Version=0.9.7.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL">
<HintPath>..\packages\LiveCharts.0.9.7\lib\net45\LiveCharts.dll</HintPath>
</Reference>
<Reference Include="LiveCharts.WinForms, Version=0.9.7.1, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL">
<HintPath>..\packages\LiveCharts.WinForms.0.9.7.1\lib\net45\LiveCharts.WinForms.dll</HintPath>
</Reference>
<Reference Include="LiveCharts.Wpf, Version=0.9.7.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL">
<HintPath>..\packages\LiveCharts.Wpf.0.9.7\lib\net45\LiveCharts.Wpf.dll</HintPath>
</Reference>
<Reference Include="OpenTK, Version=3.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
<HintPath>..\packages\OpenTK.3.1.0\lib\net20\OpenTK.dll</HintPath>
</Reference>
<Reference Include="OpenTK.GLControl, Version=3.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
<HintPath>..\packages\OpenTK.GLControl.3.1.0\lib\net20\OpenTK.GLControl.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="ScottPlot, Version=5.0.53.0, Culture=neutral, PublicKeyToken=86698dc10387c39e, processorArchitecture=MSIL">
<HintPath>..\packages\ScottPlot.5.0.53\lib\net462\ScottPlot.dll</HintPath>
</Reference>
<Reference Include="ScottPlot.WinForms, Version=5.0.53.0, Culture=neutral, PublicKeyToken=86698dc10387c39e, processorArchitecture=MSIL">
<HintPath>..\packages\ScottPlot.WinForms.5.0.53\lib\net462\ScottPlot.WinForms.dll</HintPath>
</Reference>
<Reference Include="SkiaSharp, Version=2.88.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\packages\SkiaSharp.2.88.9\lib\net462\SkiaSharp.dll</HintPath>
</Reference>
<Reference Include="SkiaSharp.HarfBuzz, Version=2.88.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\packages\SkiaSharp.HarfBuzz.2.88.9\lib\net462\SkiaSharp.HarfBuzz.dll</HintPath>
</Reference>
<Reference Include="SkiaSharp.Views.Desktop.Common, Version=2.88.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\packages\SkiaSharp.Views.Desktop.Common.2.88.9\lib\net462\SkiaSharp.Views.Desktop.Common.dll</HintPath>
</Reference>
<Reference Include="SkiaSharp.Views.WindowsForms, Version=2.88.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\packages\SkiaSharp.Views.WindowsForms.2.88.9\lib\net462\SkiaSharp.Views.WindowsForms.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Drawing.Common, Version=4.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Drawing.Common.4.7.3\lib\net461\System.Drawing.Common.dll</HintPath>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>
<ItemGroup>
<Compile Include="CalibrationHelpPage.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CalibrationHelpPage.Designer.cs">
<DependentUpon>CalibrationHelpPage.cs</DependentUpon>
</Compile>
<Compile Include="Manager.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Manager.Designer.cs">
<DependentUpon>Manager.cs</DependentUpon>
</Compile>
<Compile Include="Nodestatus.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Nodestatus.Designer.cs">
<DependentUpon>Nodestatus.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RS485_Comm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="RS485_Comm.Designer.cs">
<DependentUpon>RS485_Comm.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="CalibrationHelpPage.resx">
<DependentUpon>CalibrationHelpPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Manager.resx">
<DependentUpon>Manager.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Nodestatus.resx">
<DependentUpon>Nodestatus.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>
<EmbeddedResource Include="RS485_Comm.resx">
<DependentUpon>RS485_Comm.cs</DependentUpon>
</EmbeddedResource>
<None Include="OpenTK.dll.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="C.ico" />
<Content Include="M.ico" />
<Content Include="MM.ico" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Maser.Feanor.Biz\Maser.Feanor.Biz.csproj">
<Project>{316710e0-2143-44cd-8779-a833a2987174}</Project>
<Name>Maser.Feanor.Biz</Name>
</ProjectReference>
<ProjectReference Include="..\Maser.Feanor\Maser.Feanor.Model.csproj">
<Project>{f96ec5eb-647c-405e-934f-08df688f55f8}</Project>
<Name>Maser.Feanor.Model</Name>
</ProjectReference>
<ProjectReference Include="..\Server\Server.csproj">
<Project>{ce8fb8af-6b3a-42d2-9808-e94790707e91}</Project>
<Name>Server</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\HarfBuzzSharp.NativeAssets.macOS.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.macOS.targets" Condition="Exists('..\packages\HarfBuzzSharp.NativeAssets.macOS.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.macOS.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\HarfBuzzSharp.NativeAssets.macOS.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.macOS.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\HarfBuzzSharp.NativeAssets.macOS.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.macOS.targets'))" />
<Error Condition="!Exists('..\packages\HarfBuzzSharp.NativeAssets.Win32.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.Win32.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\HarfBuzzSharp.NativeAssets.Win32.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.Win32.targets'))" />
<Error Condition="!Exists('..\packages\SkiaSharp.NativeAssets.macOS.2.88.9\build\net462\SkiaSharp.NativeAssets.macOS.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\SkiaSharp.NativeAssets.macOS.2.88.9\build\net462\SkiaSharp.NativeAssets.macOS.targets'))" />
<Error Condition="!Exists('..\packages\SkiaSharp.NativeAssets.Win32.2.88.9\build\net462\SkiaSharp.NativeAssets.Win32.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\SkiaSharp.NativeAssets.Win32.2.88.9\build\net462\SkiaSharp.NativeAssets.Win32.targets'))" />
<Error Condition="!Exists('..\packages\HarfBuzzSharp.NativeAssets.Linux.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.Linux.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\HarfBuzzSharp.NativeAssets.Linux.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.Linux.targets'))" />
<Error Condition="!Exists('..\packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.9\build\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.9\build\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.targets'))" />
</Target>
<Import Project="..\packages\HarfBuzzSharp.NativeAssets.Win32.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.Win32.targets" Condition="Exists('..\packages\HarfBuzzSharp.NativeAssets.Win32.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.Win32.targets')" />
<Import Project="..\packages\SkiaSharp.NativeAssets.macOS.2.88.9\build\net462\SkiaSharp.NativeAssets.macOS.targets" Condition="Exists('..\packages\SkiaSharp.NativeAssets.macOS.2.88.9\build\net462\SkiaSharp.NativeAssets.macOS.targets')" />
<Import Project="..\packages\SkiaSharp.NativeAssets.Win32.2.88.9\build\net462\SkiaSharp.NativeAssets.Win32.targets" Condition="Exists('..\packages\SkiaSharp.NativeAssets.Win32.2.88.9\build\net462\SkiaSharp.NativeAssets.Win32.targets')" />
<Import Project="..\packages\HarfBuzzSharp.NativeAssets.Linux.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.Linux.targets" Condition="Exists('..\packages\HarfBuzzSharp.NativeAssets.Linux.7.3.0.3\build\net462\HarfBuzzSharp.NativeAssets.Linux.targets')" />
<Import Project="..\packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.9\build\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.targets" Condition="Exists('..\packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.9\build\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.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>

BIN
FeanorConfig/M.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
FeanorConfig/MM.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

1419
FeanorConfig/Manager.Designer.cs generated Normal file

File diff suppressed because it is too large Load Diff

1146
FeanorConfig/Manager.cs Normal file

File diff suppressed because it is too large Load Diff

219
FeanorConfig/Manager.resx Normal file
View File

@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Chamber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Temperature.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Humidity.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Mode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Number_of_alarms.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="timerDBbackup.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>72</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAODAAAAEACAAoEAAAFgAAACgAAAA4AAAAYAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAQAAAAMAAAAAAAMADAAAAA4AAAAJAQAAAAAGAAABBQAAAQcACwMAAAABCwADAwQAGgMBABsE
AAARBQAAAAAVAAADDAAaBQAAAAAhAAAEFwAmCgAAKwoAAAwMBgAhDAQAAwkXAB4NAwACBSUAAAklADgR
AAAyEgAAAxEmABwcAQAEES0ALhoJAAQTLAAYGCYARSAAAAAUPQA4IAkAChosAD0jCgBOJQQABh0yADok
EQA9JxUACiI7AAAfSQAFIUIADCJAACgoJwBjMwAAACZMABgpRQBSNyIACDBVAGE7HgBfPiQAY0EhACI4
UgAbN1kAbUQaABc4WgBnRCIAHzxXACM+VgAZPWEAX0cuABpBZABqSzMAMUdhAG5SNQBET1AALExmAG1V
OgAsTWoAVVdAAD9RbAAzV3EAbFxfADxYegCFZ0IAgWVLADtggwBJZYEATWZ/AJFxSgCNb1QARWeDAI52
WABKbI0AmHdVAERtjgCXeWAAhXxcAJd9VwCYe14AWXOMAFp0kQBadpMAV3mVAGJ7kwCjhl8AjoGBAKmP
bABti6gAq5V3AI6PoAB0kKwAr5uCAHuVqgB5lK4Atp6AAHmVrwC3oIAAdpevALmgiACxqHoAuKSHAL2k
jQC9pooAgp63AIaftwCHoLsAvamRALqrkAC2qpUAuquRALurkQDAqpMAj6a6AIuovgDKtZsAkq7DAMK3
sgDMvaUA0b2nAKG2zACht8sA08GqAKK7zwCjvM4Apr3NAKO9zwDVxKsA18OyANjHrwDZxrYArMPWAKvE
1QCyxNkA3cq6ALLH1QCyxtkA28y7AOHRvQDm1ccA09PTANPU1QDZ1dMA6NvJAMfV5gDF1+QAx9jlAOnd
zADF2eUA7N7MAOzfzQDv4c0A7eHPAMfc6gDQ3ewA8uLWAOji2gDx49YA5OHjAM7g7gDN4e0A4+PjAO/m
1wDj4+QA0uLtAOfk4wDm5OQA0eTuANjj9AD26dsA1+bwANjo7gDh6e4A9+zhAOTp8AD47OIA8O7pAODs
9ADh6/cA+PDkAPny5gD78ucA4u/4AOTv+QDi8PcA+vPqAOTx9wD59OoA/PXoAPHy9gDp8voA6vP4AP72
7AD+9+kA6vP8AOr0+wD59fQA6PX6AP338gDy9vsA8vf8AP/78AD3+f0A//v1APf6+wD2+vwA/vv4AP/8
9QDz+v8A//z4APP7/wD+/PkA+Pv+AP38+wD+/fgA9fz+AP/9+QD1/P8A9/z/AP/++QD+/f0A9/3/AP/+
/AD3/v8A//79APz+/gD7/v8A/P7/AP3+/wD///wA///9AP///gD8//8A/f//AP7//wD///8AAAAAAAAA
AAAAAAAA/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Nu0srKyssH8
/Pz8/Pz8/Pz8/M6ysrK36fz8/Pz8/Pz8/PzdtLKysrK27fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAAdfz8/Pz8
/Pz8/Pz6cQAAACKk/Pz8/Pz8/Pz8/LwmAAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAAAAB1/Pz8/Pz8/Pz8
/MhBAAAAAHDx/Pz8/Pz8/Pz8vCYAAAAAM9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAHX8/Pz8/Pz8/Pz8jQkA
AAAAKs38/Pz8/Pz8/Py8JgAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAAdfz8/Pz8/Pz8/OhTAAAAAAAA
i/z8/Pz8/Pz8/LwmAAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAAAAB1/Pz8/Pz8/Pz8qhkAAAAAAABZ3Pz8
/Pz8/Pz8vCYAAAAAM9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAHX8/Pz8/Pz8/PNvAAAAAAAAABan/Pz8/Pz8
/Py8JgAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAAdfz8/Pz8/Pz8yT4AAAAAAAAAAHL4/Pz8/Pz8/Lwm
AAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAAAAB1/Pz8/Pz8/PyMAAAAABcMAAAAQ8b8/Pz8/Pz8vCYAAAAA
M9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAHX8/Pz8/Pz841UAAAAAXk0AAAAFkPz8/Pz8/Py8JgAAAAAz1fz8
/Pz8/Pz8/Pz8/Pz8uSsAAAAAdfz8/Pz8/PyiIwAAAAaIhQAAAABW7Pz8/Pz8/LwmAAAAADPV/Pz8/Pz8
/Pz8/Pz8/Py5KwAAAAB1/Pz8/Pz8+3MAAAAALbq7MAAAABio/Pz8/Pz8vCYAAAAAM9X8/Pz8/Pz8/Pz8
/Pz8/LkrAAAAAHX8/Pz8/PzHNQAAAABm/OphAAAAAHb3/Pz8/Py8JgAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8
uSsAAAAAdfz8/Pz8+48JAAAADpr8/JQAAAAAP8X8/Pz8/LwmAAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAA
AAB1/Pz8/PzeWAAAAABKzPz81kIAAAABkvz8/Pz8vCYAAAAAM9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAHX8
/Pz8/KUQAAAAAHz8/Pz1eQAAAABd4vz8/Py8JgAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAAdfz8/Pz5
bgAAAAAds/z8/PyxKAAAACmp/Pz8/LwmAAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAAAAB1/Pz8/MJAAAAA
AGDf/Pz8/PBaAAAAAHf8/Pz8vCYAAAAAM9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAHX8/Pz8jgcAAAAKkfz8
/Pz8/JULAAAAOdL8/Py8JgAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAAdfz8/OFQAAAAADjR/Pz8/Pz8
z0kAAAAPk/z8/LwmAAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAAAAB1/Pz8ox8AAAAAdPz8/Pz8/Pz7egAA
AABf5Pz8vCYAAAAAM9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAHX8/PRsAAAAACem/Pz8/Pz8/PywEwAAAB6u
/Py8JgAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAAdfz8yy8AAAAAV+D8/Pz8/Pz8/OVjAAAAAHj8/Lwm
AAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAAAAB1/PyJAAAAAAKQ/Pz8/Pz8/Pz8/JYRAAAAR8r8vCYAAAAA
M9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAHX82VQAAAAAOsT8/Pz8/Pz8/Pz80zwAAAASl/y8JgAAAAAz1fz8
/Pz8/Pz8/Pz8/Pz8uSsAAAAAdfyhHAAAAABt9vz8/Pz8/Pz8/Pz8ewAAAABb9rwmAAAAADPV/Pz8/Pz8
/Pz8/Pz8/Py5KwAAAAB9+2kAAAAADaD8/Pz8/Pz8/Pz8/PyrLgAAACysvCYAAAAAM9X8/Pz8/Pz8/Pz8
/Pz8/LkrAAAAAIDDOwAAAABR5/z8/Pz8/Pz8/Pz8/OtiAAAAAYG/NAAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8
uSsAAAAAf4oDAAAABIf8/Pz8/Pz8/Pz8/Pz8/JkAAAAAPa83AAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAA
AAB+XAAAAAA2wPz8/Pz8/Pz8/Pz8/Pz80EsAAAAAhkQAAAAAM9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAGsh
AAAAAGr4/Pz8/Pz8/Pz8/Pz8/Pz7ggAAAABnTgAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAATwgAAAAV
nPz8/Pz8/Pz8/Pz8/Pz8/Py4GwAAAExIAAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAAAAAyAAAAAFLX/Pz8
/Pz8/Pz8/Pz8/Pz8/PJkAAAAICQAAAAAM9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAAAAAAAAhPz8/Pz8/Pz8
/Pz8/Pz8/Pz8/JgUAAAAAAAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAAAAAAACW+/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz81EYAAAAAAAAAADPV/Pz8/Pz8/Pz8/Pz8/Py5KwAAAAAAAAAAaO/8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8gwAAAAAAAAAAM9X8/Pz8/Pz8/Pz8/Pz8/LkrAAAAAAAAABqb/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Py1
MQAAAAAAAAAz1fz8/Pz8/Pz8/Pz8/Pz8uSsAAAAAAAAARdr8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/O5lAAAA
AAAAADPV/Pz8/Pz8/Pz8/Pz8/PzYnp2dnZ2dnZ2t/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/L2dnZ2dnZ2d
n+b8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8
/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
</value>
</data>
</root>

124
FeanorConfig/Nodestatus.Designer.cs generated Normal file
View File

@@ -0,0 +1,124 @@
namespace FeanorConfig
{
partial class Nodestatus
{
/// <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.webBrowser1 = new System.Windows.Forms.WebBrowser();
this.UpdateStatus = new System.Windows.Forms.Button();
this.Close = new System.Windows.Forms.Button();
this.nodeURL = new System.Windows.Forms.TextBox();
this.UpdateStatusCheckBox = new System.Windows.Forms.CheckBox();
this.SuspendLayout();
//
// webBrowser1
//
this.webBrowser1.Location = new System.Drawing.Point(12, 73);
this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
this.webBrowser1.Name = "webBrowser1";
this.webBrowser1.Size = new System.Drawing.Size(936, 861);
this.webBrowser1.TabIndex = 44;
this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted);
//
// UpdateStatus
//
this.UpdateStatus.BackColor = System.Drawing.Color.DimGray;
this.UpdateStatus.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.UpdateStatus.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.UpdateStatus.Location = new System.Drawing.Point(12, 12);
this.UpdateStatus.Name = "UpdateStatus";
this.UpdateStatus.Size = new System.Drawing.Size(145, 55);
this.UpdateStatus.TabIndex = 45;
this.UpdateStatus.Text = "Update status";
this.UpdateStatus.UseVisualStyleBackColor = false;
this.UpdateStatus.Click += new System.EventHandler(this.UpdateStatus_Click);
//
// Close
//
this.Close.BackColor = System.Drawing.Color.DimGray;
this.Close.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Close.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.Close.Location = new System.Drawing.Point(163, 12);
this.Close.Name = "Close";
this.Close.Size = new System.Drawing.Size(145, 55);
this.Close.TabIndex = 46;
this.Close.Text = "Close";
this.Close.UseVisualStyleBackColor = false;
this.Close.Click += new System.EventHandler(this.Close_Click);
//
// nodeURL
//
this.nodeURL.BackColor = System.Drawing.Color.Gray;
this.nodeURL.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.nodeURL.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.nodeURL.Location = new System.Drawing.Point(585, 26);
this.nodeURL.Name = "nodeURL";
this.nodeURL.Size = new System.Drawing.Size(363, 27);
this.nodeURL.TabIndex = 47;
this.nodeURL.TextChanged += new System.EventHandler(this.nodeURL_TextChanged);
//
// UpdateStatusCheckBox
//
this.UpdateStatusCheckBox.AutoSize = true;
this.UpdateStatusCheckBox.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.UpdateStatusCheckBox.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.UpdateStatusCheckBox.Location = new System.Drawing.Point(330, 28);
this.UpdateStatusCheckBox.Name = "UpdateStatusCheckBox";
this.UpdateStatusCheckBox.Size = new System.Drawing.Size(165, 25);
this.UpdateStatusCheckBox.TabIndex = 48;
this.UpdateStatusCheckBox.Text = "Update every 10s";
this.UpdateStatusCheckBox.UseVisualStyleBackColor = true;
this.UpdateStatusCheckBox.CheckedChanged += new System.EventHandler(this.UpdateStatusCheckBox_CheckedChanged);
//
// Nodestatus
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.DimGray;
this.ClientSize = new System.Drawing.Size(986, 946);
this.Controls.Add(this.UpdateStatusCheckBox);
this.Controls.Add(this.nodeURL);
this.Controls.Add(this.Close);
this.Controls.Add(this.UpdateStatus);
this.Controls.Add(this.webBrowser1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "Nodestatus";
this.Text = "Nodestatus";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
public System.Windows.Forms.WebBrowser webBrowser1;
private System.Windows.Forms.Button UpdateStatus;
private System.Windows.Forms.Button Close;
public System.Windows.Forms.TextBox nodeURL;
private System.Windows.Forms.CheckBox UpdateStatusCheckBox;
}
}

View File

@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Threading;
namespace FeanorConfig
{
public partial class Nodestatus : Form
{
public void Start()
{
while( UpdateStatusCheckBox.Checked == true)
{
this.Invoke(new Action(() => { UpdateStatus.PerformClick();})); // update cms-2 node status (by clicking on update button)
Thread.Sleep(10000); // 10 sec delay
}
}
public Nodestatus()
{
InitializeComponent();
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
}
public void UpdateStatus_Click(object sender, EventArgs e) // update node status
{
try
{
using (WebClient client = new WebClient())
{
string dta = client.DownloadString(nodeURL.Text); // get url for corresponding node
Nodestatus nodestate = new Nodestatus();
webBrowser1.Navigate("about:blank");
if (webBrowser1.Document != null)
{
webBrowser1.Document.Write(string.Empty); // empty viewer
}
webBrowser1.DocumentText = dta; // place incoming html in viewer
}
}
catch
{
Console.WriteLine("Status request error!");
System.Windows.Forms.MessageBox.Show("No response from CMS-2 node");
}
}
private void Close_Click(object sender, EventArgs e)
{
this.Close();
}
private void nodeURL_TextChanged(object sender, EventArgs e)
{
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
private void UpdateStatusCheckBox_CheckedChanged(object sender, EventArgs e)
{
Thread rtd = new Thread(Start); // initialize thread
if (UpdateStatusCheckBox.Checked == true)
{
rtd.Start(); // start thread
}
else if (UpdateStatusCheckBox.Checked == false)
{
rtd.Abort();
}
}
}
}

View File

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

View File

@@ -0,0 +1,25 @@
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1"/>
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1"/>
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1"/>
<dllmap os="linux" dll="alut.dll" target="libalut.so.0"/>
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so"/>
<dllmap os="linux" dll="libX11" target="libX11.so.6"/>
<dllmap os="linux" dll="libXi" target="libXi.so.6"/>
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0"/>
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL"/>
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL"/>
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib"/>
<!-- XQuartz compatibility (X11 on Mac) -->
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib"/>
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib"/>
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib"/>
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib"/>
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib"/>
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib"/>
</configuration>

22
FeanorConfig/Program.cs Normal file
View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FeanorConfig
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Manager());
}
}
}

View File

@@ -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("FeanorConfig")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("FeanorConfig")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[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("77ec875b-2718-41d3-9cd2-1e8191797673")]
// 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")]

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace FeanorConfig.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.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>
/// Returns the cached ResourceManager instance used by this class.
/// </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("FeanorConfig.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -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>

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace FeanorConfig.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.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;
}
}
}
}

View File

@@ -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>

725
FeanorConfig/RS485_Comm.Designer.cs generated Normal file
View File

@@ -0,0 +1,725 @@
namespace FeanorConfig
{
partial class RS485_Comm
{
/// <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.RSurl = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.RStemp = new System.Windows.Forms.TextBox();
this.RShumi = new System.Windows.Forms.TextBox();
this.RSalarm = new System.Windows.Forms.TextBox();
this.RSmode = new System.Windows.Forms.TextBox();
this.ConditionsButton = new System.Windows.Forms.Button();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.gbSendCommand = new System.Windows.Forms.GroupBox();
this.RSinput = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.SendButton = new System.Windows.Forms.Button();
this.commandTxt = new System.Windows.Forms.TextBox();
this.numAddress = new System.Windows.Forms.NumericUpDown();
this.gbChamberConditions = new System.Windows.Forms.GroupBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnSetParameters = new System.Windows.Forms.Button();
this.btnOff = new System.Windows.Forms.Button();
this.btnStandby = new System.Windows.Forms.Button();
this.btnRunConstant = new System.Windows.Forms.Button();
this.HumiLow = new System.Windows.Forms.TextBox();
this.HumiHigh = new System.Windows.Forms.TextBox();
this.HumiTarget = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.TempLow = new System.Windows.Forms.TextBox();
this.TempHigh = new System.Windows.Forms.TextBox();
this.TempTarget = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.btnEndProgram = new System.Windows.Forms.Button();
this.btnContinueProgram = new System.Windows.Forms.Button();
this.btnPauseProgram = new System.Windows.Forms.Button();
this.btnRunProgram = new System.Windows.Forms.Button();
this.numProgramNumber = new System.Windows.Forms.NumericUpDown();
this.label14 = new System.Windows.Forms.Label();
this.gbSendCommand.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numAddress)).BeginInit();
this.gbChamberConditions.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numProgramNumber)).BeginInit();
this.SuspendLayout();
//
// RSurl
//
this.RSurl.BackColor = System.Drawing.Color.Gray;
this.RSurl.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.RSurl.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.RSurl.Location = new System.Drawing.Point(250, 14);
this.RSurl.Name = "RSurl";
this.RSurl.Size = new System.Drawing.Size(369, 27);
this.RSurl.TabIndex = 3;
this.RSurl.TextChanged += new System.EventHandler(this.RSurl_TextChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label1.Location = new System.Drawing.Point(21, 18);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(153, 21);
this.label1.TabIndex = 5;
this.label1.Text = "Chamber address ";
//
// RStemp
//
this.RStemp.BackColor = System.Drawing.Color.Gray;
this.RStemp.Font = new System.Drawing.Font("Century Gothic", 12F);
this.RStemp.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.RStemp.Location = new System.Drawing.Point(196, 19);
this.RStemp.Name = "RStemp";
this.RStemp.Size = new System.Drawing.Size(100, 27);
this.RStemp.TabIndex = 8;
//
// RShumi
//
this.RShumi.BackColor = System.Drawing.Color.Gray;
this.RShumi.Font = new System.Drawing.Font("Century Gothic", 12F);
this.RShumi.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.RShumi.Location = new System.Drawing.Point(196, 48);
this.RShumi.Name = "RShumi";
this.RShumi.Size = new System.Drawing.Size(100, 27);
this.RShumi.TabIndex = 9;
//
// RSalarm
//
this.RSalarm.BackColor = System.Drawing.Color.Gray;
this.RSalarm.Font = new System.Drawing.Font("Century Gothic", 12F);
this.RSalarm.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.RSalarm.Location = new System.Drawing.Point(196, 107);
this.RSalarm.Name = "RSalarm";
this.RSalarm.Size = new System.Drawing.Size(100, 27);
this.RSalarm.TabIndex = 10;
//
// RSmode
//
this.RSmode.BackColor = System.Drawing.Color.Gray;
this.RSmode.Font = new System.Drawing.Font("Century Gothic", 12F);
this.RSmode.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.RSmode.Location = new System.Drawing.Point(196, 77);
this.RSmode.Name = "RSmode";
this.RSmode.Size = new System.Drawing.Size(100, 27);
this.RSmode.TabIndex = 11;
//
// ConditionsButton
//
this.ConditionsButton.BackColor = System.Drawing.Color.DimGray;
this.ConditionsButton.Font = new System.Drawing.Font("Century Gothic", 12F);
this.ConditionsButton.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.ConditionsButton.Location = new System.Drawing.Point(5, 136);
this.ConditionsButton.Name = "ConditionsButton";
this.ConditionsButton.Size = new System.Drawing.Size(291, 64);
this.ConditionsButton.TabIndex = 12;
this.ConditionsButton.Text = "Chamber conditions";
this.ConditionsButton.UseCompatibleTextRendering = true;
this.ConditionsButton.UseVisualStyleBackColor = false;
this.ConditionsButton.Click += new System.EventHandler(this.ConditionsButton_Click);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label4.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label4.Location = new System.Drawing.Point(5, 25);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(112, 21);
this.label4.TabIndex = 13;
this.label4.Text = "Temperature";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label5.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label5.Location = new System.Drawing.Point(5, 54);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(78, 21);
this.label5.TabIndex = 14;
this.label5.Text = "Humidity";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label6.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label6.Location = new System.Drawing.Point(5, 81);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(56, 21);
this.label6.TabIndex = 15;
this.label6.Text = "Mode";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label7.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label7.Location = new System.Drawing.Point(5, 110);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(147, 21);
this.label7.TabIndex = 16;
this.label7.Text = "Number of alarms";
//
// gbSendCommand
//
this.gbSendCommand.Controls.Add(this.RSinput);
this.gbSendCommand.Controls.Add(this.label2);
this.gbSendCommand.Controls.Add(this.label3);
this.gbSendCommand.Controls.Add(this.SendButton);
this.gbSendCommand.Controls.Add(this.commandTxt);
this.gbSendCommand.Font = new System.Drawing.Font("Century Gothic", 12F);
this.gbSendCommand.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.gbSendCommand.Location = new System.Drawing.Point(24, 50);
this.gbSendCommand.Margin = new System.Windows.Forms.Padding(2);
this.gbSendCommand.Name = "gbSendCommand";
this.gbSendCommand.Padding = new System.Windows.Forms.Padding(2);
this.gbSendCommand.Size = new System.Drawing.Size(279, 205);
this.gbSendCommand.TabIndex = 18;
this.gbSendCommand.TabStop = false;
this.gbSendCommand.Text = "Send Command";
//
// RSinput
//
this.RSinput.BackColor = System.Drawing.Color.Gray;
this.RSinput.Font = new System.Drawing.Font("Century Gothic", 12F);
this.RSinput.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.RSinput.Location = new System.Drawing.Point(8, 98);
this.RSinput.Name = "RSinput";
this.RSinput.Size = new System.Drawing.Size(267, 27);
this.RSinput.TabIndex = 4;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label2.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label2.Location = new System.Drawing.Point(5, 23);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(95, 21);
this.label2.TabIndex = 6;
this.label2.Text = "Command";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label3.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label3.Location = new System.Drawing.Point(5, 76);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(198, 21);
this.label3.TabIndex = 7;
this.label3.Text = "Response from chamber";
//
// SendButton
//
this.SendButton.BackColor = System.Drawing.Color.DimGray;
this.SendButton.Font = new System.Drawing.Font("Century Gothic", 12F);
this.SendButton.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.SendButton.Location = new System.Drawing.Point(8, 136);
this.SendButton.Name = "SendButton";
this.SendButton.Size = new System.Drawing.Size(266, 64);
this.SendButton.TabIndex = 0;
this.SendButton.Text = "Send";
this.SendButton.UseCompatibleTextRendering = true;
this.SendButton.UseVisualStyleBackColor = false;
this.SendButton.Click += new System.EventHandler(this.SendButton_Click);
//
// commandTxt
//
this.commandTxt.BackColor = System.Drawing.Color.Gray;
this.commandTxt.Font = new System.Drawing.Font("Century Gothic", 12F);
this.commandTxt.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.commandTxt.Location = new System.Drawing.Point(8, 45);
this.commandTxt.Name = "commandTxt";
this.commandTxt.Size = new System.Drawing.Size(267, 27);
this.commandTxt.TabIndex = 2;
this.commandTxt.Text = "MON?";
//
// numAddress
//
this.numAddress.BackColor = System.Drawing.Color.Gray;
this.numAddress.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.numAddress.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.numAddress.Location = new System.Drawing.Point(179, 14);
this.numAddress.Margin = new System.Windows.Forms.Padding(2);
this.numAddress.Maximum = new decimal(new int[] {
16,
0,
0,
0});
this.numAddress.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numAddress.Name = "numAddress";
this.numAddress.Size = new System.Drawing.Size(56, 27);
this.numAddress.TabIndex = 19;
this.numAddress.Value = new decimal(new int[] {
1,
0,
0,
0});
this.numAddress.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
//
// gbChamberConditions
//
this.gbChamberConditions.Controls.Add(this.ConditionsButton);
this.gbChamberConditions.Controls.Add(this.label4);
this.gbChamberConditions.Controls.Add(this.RStemp);
this.gbChamberConditions.Controls.Add(this.label7);
this.gbChamberConditions.Controls.Add(this.RShumi);
this.gbChamberConditions.Controls.Add(this.label6);
this.gbChamberConditions.Controls.Add(this.RSalarm);
this.gbChamberConditions.Controls.Add(this.label5);
this.gbChamberConditions.Controls.Add(this.RSmode);
this.gbChamberConditions.Font = new System.Drawing.Font("Century Gothic", 12F);
this.gbChamberConditions.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.gbChamberConditions.Location = new System.Drawing.Point(316, 50);
this.gbChamberConditions.Margin = new System.Windows.Forms.Padding(2);
this.gbChamberConditions.Name = "gbChamberConditions";
this.gbChamberConditions.Padding = new System.Windows.Forms.Padding(2);
this.gbChamberConditions.Size = new System.Drawing.Size(301, 205);
this.gbChamberConditions.TabIndex = 20;
this.gbChamberConditions.TabStop = false;
this.gbChamberConditions.Text = "Chamber conditions";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.btnSetParameters);
this.groupBox1.Controls.Add(this.btnOff);
this.groupBox1.Controls.Add(this.btnStandby);
this.groupBox1.Controls.Add(this.btnRunConstant);
this.groupBox1.Controls.Add(this.HumiLow);
this.groupBox1.Controls.Add(this.HumiHigh);
this.groupBox1.Controls.Add(this.HumiTarget);
this.groupBox1.Controls.Add(this.label13);
this.groupBox1.Controls.Add(this.label12);
this.groupBox1.Controls.Add(this.label11);
this.groupBox1.Controls.Add(this.TempLow);
this.groupBox1.Controls.Add(this.TempHigh);
this.groupBox1.Controls.Add(this.TempTarget);
this.groupBox1.Controls.Add(this.label10);
this.groupBox1.Controls.Add(this.label9);
this.groupBox1.Controls.Add(this.label8);
this.groupBox1.Font = new System.Drawing.Font("Century Gothic", 12F);
this.groupBox1.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.groupBox1.Location = new System.Drawing.Point(24, 273);
this.groupBox1.Margin = new System.Windows.Forms.Padding(2);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(2);
this.groupBox1.Size = new System.Drawing.Size(593, 200);
this.groupBox1.TabIndex = 8;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Setup constant mode";
this.groupBox1.Enter += new System.EventHandler(this.groupBox1_Enter);
//
// btnSetParameters
//
this.btnSetParameters.BackColor = System.Drawing.Color.DimGray;
this.btnSetParameters.Font = new System.Drawing.Font("Century Gothic", 12F);
this.btnSetParameters.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnSetParameters.Location = new System.Drawing.Point(9, 122);
this.btnSetParameters.Name = "btnSetParameters";
this.btnSetParameters.Size = new System.Drawing.Size(137, 64);
this.btnSetParameters.TabIndex = 32;
this.btnSetParameters.Text = "Set parameters";
this.btnSetParameters.UseCompatibleTextRendering = true;
this.btnSetParameters.UseVisualStyleBackColor = false;
this.btnSetParameters.Click += new System.EventHandler(this.btnSetParameters_Click);
//
// btnOff
//
this.btnOff.BackColor = System.Drawing.Color.DimGray;
this.btnOff.Font = new System.Drawing.Font("Century Gothic", 12F);
this.btnOff.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnOff.Location = new System.Drawing.Point(465, 122);
this.btnOff.Name = "btnOff";
this.btnOff.Size = new System.Drawing.Size(120, 64);
this.btnOff.TabIndex = 31;
this.btnOff.Text = "Off";
this.btnOff.UseCompatibleTextRendering = true;
this.btnOff.UseVisualStyleBackColor = false;
this.btnOff.Click += new System.EventHandler(this.btnOff_Click);
//
// btnStandby
//
this.btnStandby.BackColor = System.Drawing.Color.DimGray;
this.btnStandby.Font = new System.Drawing.Font("Century Gothic", 12F);
this.btnStandby.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnStandby.Location = new System.Drawing.Point(310, 122);
this.btnStandby.Name = "btnStandby";
this.btnStandby.Size = new System.Drawing.Size(149, 64);
this.btnStandby.TabIndex = 21;
this.btnStandby.Text = "Standby";
this.btnStandby.UseCompatibleTextRendering = true;
this.btnStandby.UseVisualStyleBackColor = false;
this.btnStandby.Click += new System.EventHandler(this.btnStandby_Click);
//
// btnRunConstant
//
this.btnRunConstant.BackColor = System.Drawing.Color.DimGray;
this.btnRunConstant.Font = new System.Drawing.Font("Century Gothic", 12F);
this.btnRunConstant.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnRunConstant.Location = new System.Drawing.Point(152, 122);
this.btnRunConstant.Name = "btnRunConstant";
this.btnRunConstant.Size = new System.Drawing.Size(152, 64);
this.btnRunConstant.TabIndex = 8;
this.btnRunConstant.Text = "Run constant mode";
this.btnRunConstant.UseCompatibleTextRendering = true;
this.btnRunConstant.UseVisualStyleBackColor = false;
this.btnRunConstant.Click += new System.EventHandler(this.btnRunConstant_Click);
//
// HumiLow
//
this.HumiLow.BackColor = System.Drawing.Color.Gray;
this.HumiLow.Font = new System.Drawing.Font("Century Gothic", 12F);
this.HumiLow.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.HumiLow.Location = new System.Drawing.Point(523, 79);
this.HumiLow.Name = "HumiLow";
this.HumiLow.Size = new System.Drawing.Size(62, 27);
this.HumiLow.TabIndex = 30;
//
// HumiHigh
//
this.HumiHigh.BackColor = System.Drawing.Color.Gray;
this.HumiHigh.Font = new System.Drawing.Font("Century Gothic", 12F);
this.HumiHigh.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.HumiHigh.Location = new System.Drawing.Point(523, 49);
this.HumiHigh.Name = "HumiHigh";
this.HumiHigh.Size = new System.Drawing.Size(62, 27);
this.HumiHigh.TabIndex = 29;
//
// HumiTarget
//
this.HumiTarget.BackColor = System.Drawing.Color.Gray;
this.HumiTarget.Font = new System.Drawing.Font("Century Gothic", 12F);
this.HumiTarget.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.HumiTarget.Location = new System.Drawing.Point(523, 20);
this.HumiTarget.Name = "HumiTarget";
this.HumiTarget.Size = new System.Drawing.Size(62, 27);
this.HumiTarget.TabIndex = 28;
this.HumiTarget.TextChanged += new System.EventHandler(this.textBox4_TextChanged);
//
// label13
//
this.label13.AutoSize = true;
this.label13.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label13.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label13.Location = new System.Drawing.Point(336, 52);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(151, 21);
this.label13.TabIndex = 27;
this.label13.Text = "High limit humidity";
//
// label12
//
this.label12.AutoSize = true;
this.label12.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label12.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label12.Location = new System.Drawing.Point(336, 82);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(181, 21);
this.label12.TabIndex = 26;
this.label12.Text = "Low limit temperature";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label11.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label11.Location = new System.Drawing.Point(336, 23);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(133, 21);
this.label11.TabIndex = 25;
this.label11.Text = "Target humidity";
//
// TempLow
//
this.TempLow.BackColor = System.Drawing.Color.Gray;
this.TempLow.Font = new System.Drawing.Font("Century Gothic", 12F);
this.TempLow.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.TempLow.Location = new System.Drawing.Point(191, 79);
this.TempLow.Name = "TempLow";
this.TempLow.Size = new System.Drawing.Size(62, 27);
this.TempLow.TabIndex = 24;
//
// TempHigh
//
this.TempHigh.BackColor = System.Drawing.Color.Gray;
this.TempHigh.Font = new System.Drawing.Font("Century Gothic", 12F);
this.TempHigh.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.TempHigh.Location = new System.Drawing.Point(191, 49);
this.TempHigh.Name = "TempHigh";
this.TempHigh.Size = new System.Drawing.Size(62, 27);
this.TempHigh.TabIndex = 23;
//
// TempTarget
//
this.TempTarget.BackColor = System.Drawing.Color.Gray;
this.TempTarget.Font = new System.Drawing.Font("Century Gothic", 12F);
this.TempTarget.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.TempTarget.Location = new System.Drawing.Point(191, 20);
this.TempTarget.Name = "TempTarget";
this.TempTarget.Size = new System.Drawing.Size(62, 27);
this.TempTarget.TabIndex = 17;
//
// label10
//
this.label10.AutoSize = true;
this.label10.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label10.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label10.Location = new System.Drawing.Point(9, 79);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(181, 21);
this.label10.TabIndex = 22;
this.label10.Text = "Low limit temperature";
//
// label9
//
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label9.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label9.Location = new System.Drawing.Point(9, 49);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(185, 21);
this.label9.TabIndex = 21;
this.label9.Text = "High limit temperature";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label8.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label8.Location = new System.Drawing.Point(8, 23);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(167, 21);
this.label8.TabIndex = 8;
this.label8.Text = "Target temperature";
this.label8.Click += new System.EventHandler(this.label8_Click);
//
// groupBox2
//
this.groupBox2.Controls.Add(this.btnEndProgram);
this.groupBox2.Controls.Add(this.btnContinueProgram);
this.groupBox2.Controls.Add(this.btnPauseProgram);
this.groupBox2.Controls.Add(this.btnRunProgram);
this.groupBox2.Controls.Add(this.numProgramNumber);
this.groupBox2.Controls.Add(this.label14);
this.groupBox2.Font = new System.Drawing.Font("Century Gothic", 12F);
this.groupBox2.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.groupBox2.Location = new System.Drawing.Point(24, 493);
this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
this.groupBox2.Size = new System.Drawing.Size(593, 76);
this.groupBox2.TabIndex = 21;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Run Program";
//
// btnEndProgram
//
this.btnEndProgram.BackColor = System.Drawing.Color.DimGray;
this.btnEndProgram.Font = new System.Drawing.Font("Century Gothic", 12F);
this.btnEndProgram.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnEndProgram.Location = new System.Drawing.Point(480, 19);
this.btnEndProgram.Name = "btnEndProgram";
this.btnEndProgram.Size = new System.Drawing.Size(105, 52);
this.btnEndProgram.TabIndex = 36;
this.btnEndProgram.Text = "End program";
this.btnEndProgram.UseCompatibleTextRendering = true;
this.btnEndProgram.UseVisualStyleBackColor = false;
this.btnEndProgram.Click += new System.EventHandler(this.btnEndProgram_Click);
//
// btnContinueProgram
//
this.btnContinueProgram.BackColor = System.Drawing.Color.DimGray;
this.btnContinueProgram.Font = new System.Drawing.Font("Century Gothic", 12F);
this.btnContinueProgram.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnContinueProgram.Location = new System.Drawing.Point(369, 19);
this.btnContinueProgram.Name = "btnContinueProgram";
this.btnContinueProgram.Size = new System.Drawing.Size(105, 52);
this.btnContinueProgram.TabIndex = 36;
this.btnContinueProgram.Text = "Continue program";
this.btnContinueProgram.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage;
this.btnContinueProgram.UseCompatibleTextRendering = true;
this.btnContinueProgram.UseVisualStyleBackColor = false;
this.btnContinueProgram.Click += new System.EventHandler(this.btnContinueProgram_Click);
//
// btnPauseProgram
//
this.btnPauseProgram.BackColor = System.Drawing.Color.DimGray;
this.btnPauseProgram.Font = new System.Drawing.Font("Century Gothic", 12F);
this.btnPauseProgram.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnPauseProgram.Location = new System.Drawing.Point(270, 19);
this.btnPauseProgram.Name = "btnPauseProgram";
this.btnPauseProgram.Size = new System.Drawing.Size(93, 52);
this.btnPauseProgram.TabIndex = 35;
this.btnPauseProgram.Text = "Pause program";
this.btnPauseProgram.UseCompatibleTextRendering = true;
this.btnPauseProgram.UseVisualStyleBackColor = false;
this.btnPauseProgram.Click += new System.EventHandler(this.btnPauseProgram_Click);
//
// btnRunProgram
//
this.btnRunProgram.BackColor = System.Drawing.Color.DimGray;
this.btnRunProgram.Font = new System.Drawing.Font("Century Gothic", 12F);
this.btnRunProgram.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnRunProgram.Location = new System.Drawing.Point(170, 19);
this.btnRunProgram.Name = "btnRunProgram";
this.btnRunProgram.Size = new System.Drawing.Size(94, 52);
this.btnRunProgram.TabIndex = 33;
this.btnRunProgram.Text = "Run program";
this.btnRunProgram.UseCompatibleTextRendering = true;
this.btnRunProgram.UseVisualStyleBackColor = false;
this.btnRunProgram.Click += new System.EventHandler(this.btnRunProgram_Click);
//
// numProgramNumber
//
this.numProgramNumber.BackColor = System.Drawing.Color.Gray;
this.numProgramNumber.Font = new System.Drawing.Font("Century Gothic", 12F);
this.numProgramNumber.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.numProgramNumber.Location = new System.Drawing.Point(90, 33);
this.numProgramNumber.Margin = new System.Windows.Forms.Padding(2);
this.numProgramNumber.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numProgramNumber.Name = "numProgramNumber";
this.numProgramNumber.Size = new System.Drawing.Size(56, 27);
this.numProgramNumber.TabIndex = 34;
this.numProgramNumber.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// label14
//
this.label14.AutoSize = true;
this.label14.Font = new System.Drawing.Font("Century Gothic", 12F);
this.label14.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.label14.Location = new System.Drawing.Point(8, 34);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(76, 21);
this.label14.TabIndex = 33;
this.label14.Text = "Program";
//
// RS485_Comm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.DimGray;
this.ClientSize = new System.Drawing.Size(653, 596);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.gbChamberConditions);
this.Controls.Add(this.numAddress);
this.Controls.Add(this.gbSendCommand);
this.Controls.Add(this.label1);
this.Controls.Add(this.RSurl);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "RS485_Comm";
this.Text = "RS485_Comm";
this.Load += new System.EventHandler(this.RS485_Comm_Load);
this.gbSendCommand.ResumeLayout(false);
this.gbSendCommand.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numAddress)).EndInit();
this.gbChamberConditions.ResumeLayout(false);
this.gbChamberConditions.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numProgramNumber)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
public System.Windows.Forms.TextBox RSurl;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox RStemp;
private System.Windows.Forms.TextBox RShumi;
private System.Windows.Forms.TextBox RSalarm;
private System.Windows.Forms.TextBox RSmode;
private System.Windows.Forms.Button ConditionsButton;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.GroupBox gbSendCommand;
private System.Windows.Forms.TextBox RSinput;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button SendButton;
private System.Windows.Forms.TextBox commandTxt;
private System.Windows.Forms.NumericUpDown numAddress;
private System.Windows.Forms.GroupBox gbChamberConditions;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox TempLow;
private System.Windows.Forms.TextBox TempHigh;
private System.Windows.Forms.TextBox TempTarget;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox HumiTarget;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.TextBox HumiLow;
private System.Windows.Forms.TextBox HumiHigh;
private System.Windows.Forms.Button btnSetParameters;
private System.Windows.Forms.Button btnOff;
private System.Windows.Forms.Button btnStandby;
private System.Windows.Forms.Button btnRunConstant;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Button btnRunProgram;
private System.Windows.Forms.NumericUpDown numProgramNumber;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Button btnEndProgram;
private System.Windows.Forms.Button btnContinueProgram;
private System.Windows.Forms.Button btnPauseProgram;
}
}

223
FeanorConfig/RS485_Comm.cs Normal file
View File

@@ -0,0 +1,223 @@
using System;
using System.Net;
using System.Windows.Forms;
namespace FeanorConfig
{
public partial class RS485_Comm : Form
{
public RS485_Comm()
{
InitializeComponent();
}
private void RS485_Comm_Load(object sender, EventArgs e)
{
}
private void SendButton_Click(object sender, EventArgs e)
{
RS485_Sender(@RSurl.Text, commandTxt.Text); // send command to chamber, receive response from chamber
}
private void RSurl_TextChanged(object sender, EventArgs e)
{
}
private void ConditionsButton_Click(object sender, EventArgs e)
{
string url = RS485_Sender(@RSurl.Text, "MON?"); // send command to chamber, receive response from chamber
string[] split_url = url.Split(','); // split response from chamber
RStemp.Text = split_url[0].ToString(); // temp
RShumi.Text = split_url[1].ToString(); // humidity
RSmode.Text = split_url[2].ToString(); // mode
RSalarm.Text = split_url[3].ToString(); // number of alarms occured
}
public void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
//Console.WriteLine(numAddress.Value);
if (numAddress.Value < 10) // add 0 before the address (example 02)
{
Globals.RSaddress = "0" + numAddress.Value.ToString();
}
else // don't add 0 before address
{
Globals.RSaddress = numAddress.Value.ToString();
}
//Console.WriteLine(Globals.RSaddress);
}
private void label8_Click(object sender, EventArgs e)
{
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void textBox4_TextChanged(object sender, EventArgs e)
{
}
private void btnSetParameters_Click(object sender, EventArgs e)
{ // Set chamber parameters for constant mode
// Temperature parameters
double Temptarget = Double.Parse(TempTarget.Text);
string TemptargetString = String.Format("{0:0.0}", Temptarget); // convert to one decimal
double Temphigh = Double.Parse(TempHigh.Text);
string TemphighString = String.Format("{0:0.0}", Temphigh); // convert to one decimal
double Templow = Double.Parse(TempLow.Text);
string TemplowString = String.Format("{0:0.0}", Templow); // convert to one decimal
string tempstring = "TEMP, S";
tempstring += TemptargetString;
tempstring += " H";
tempstring += TemphighString;
tempstring += " L";
tempstring += TemplowString;
//Console.WriteLine(tempstring);
RS485_Sender(@RSurl.Text, tempstring);
double Humitarget, Humihigh, Humilow;
string HumitargetString, HumihighString, HumilowString;
// Humidity parameters
if (String.IsNullOrEmpty(HumiTarget.Text)) // If humi textbox is not filled
{
RS485_Sender(@RSurl.Text, "HUMI,SOFF");
}
else
{ // if humi textbox is filled
Humitarget = Double.Parse(HumiTarget.Text);
HumitargetString = String.Format("{0:0.0}", Humitarget); // convert to one decimal
Humihigh = Double.Parse(HumiHigh.Text);
HumihighString = String.Format("{0:0.0}", Humihigh); // convert to one decimal
Humilow = Double.Parse(HumiLow.Text);
HumilowString = String.Format("{0:0.0}", Humilow); // convert to one decimal
string humistring = "HUMI,S";
humistring += HumitargetString;
humistring += " H";
humistring += HumihighString;
humistring += " L";
humistring += HumilowString;
//Console.WriteLine(humistring);
RS485_Sender(@RSurl.Text, humistring);
}
}
private void RS485_ErrorCheck(string RS_String)
{
try
{
if (RS_String == "NA:CMD_ERR")
{
MessageBox.Show("Chamber could not recognize the command data");
}
if (RS_String == "NA:ADDR_ERR")
{
MessageBox.Show("Invalid address expression");
}
}
catch
{
}
}
private string RS485_Sender(string URL, string command)
{
RSinput.Text = ""; // clear textbox
Console.WriteLine(Globals.RSaddress);
// HTTP string format: <RS485>,Chamber address [01..16],Command,\r\n</RS485>
// Construct command for chamber:
string http = "<RS485>,";
http += Globals.RSaddress;
http += ",";
http += command;
http += "\r\n";
http += "</RS485>";
try
{
using (WebClient client = new WebClient())
{
Console.WriteLine(http);
string url = client.UploadString(URL, http);
Console.WriteLine(url);
RSinput.Text = url;
RS485_ErrorCheck(url);
return url;
}
}
catch
{
// Continue with next object, ignoring exception
RSinput.Text = null; // if no response --> empty text field
return null;
}
}
private void btnRunConstant_Click(object sender, EventArgs e)
{ // Set operating mode constant
RS485_Sender(@RSurl.Text, "MODE,CONSTANT"); // send command to chamber, receive response from chamber
}
private void btnStandby_Click(object sender, EventArgs e)
{ // Set operating mode standby
RS485_Sender(@RSurl.Text, "MODE,STANDBY"); // send command to chamber, receive response from chamber
}
private void btnOff_Click(object sender, EventArgs e)
{
RS485_Sender(@RSurl.Text, "MODE,OFF"); // send command to chamber, receive response from chamber
}
private void btnRunProgram_Click(object sender, EventArgs e)
{
Console.WriteLine(numProgramNumber.Value);
string runProgram = "PRGM, RUN, RAM :";
runProgram += numProgramNumber.Value;
runProgram += ", STEP1";
RS485_Sender(@RSurl.Text, runProgram); // send command to chamber, receive response from chamber
}
private void btnPauseProgram_Click(object sender, EventArgs e)
{
RS485_Sender(@RSurl.Text, "PRGM,PAUSE"); // send command to chamber, receive response from chamber
}
private void btnContinueProgram_Click(object sender, EventArgs e)
{
RS485_Sender(@RSurl.Text, "PRGM,CONTINUE"); // send command to chamber, receive response from chamber
}
private void btnEndProgram_Click(object sender, EventArgs e)
{
RS485_Sender(@RSurl.Text, "PRGM,END, STANDBY"); // send command to chamber, receive response from chamber
}
}
public static class Globals
{
public static string RSaddress = "01"; // RS485 chamber address (01...16)
}
}

View File

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

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="HarfBuzzSharp" version="7.3.0.3" targetFramework="net472" />
<package id="HarfBuzzSharp.NativeAssets.Linux" version="7.3.0.3" targetFramework="net472" />
<package id="HarfBuzzSharp.NativeAssets.macOS" version="7.3.0.3" targetFramework="net472" />
<package id="HarfBuzzSharp.NativeAssets.Win32" version="7.3.0.3" targetFramework="net472" />
<package id="LiveCharts" version="0.9.7" targetFramework="net472" />
<package id="LiveCharts.WinForms" version="0.9.7.1" targetFramework="net472" />
<package id="LiveCharts.Wpf" version="0.9.7" targetFramework="net472" />
<package id="OpenTK" version="3.1.0" targetFramework="net472" />
<package id="OpenTK.GLControl" version="3.1.0" targetFramework="net472" />
<package id="ScottPlot" version="5.0.53" targetFramework="net472" />
<package id="ScottPlot.WinForms" version="5.0.53" targetFramework="net472" />
<package id="SkiaSharp" version="2.88.9" targetFramework="net472" />
<package id="SkiaSharp.HarfBuzz" version="2.88.9" targetFramework="net472" />
<package id="SkiaSharp.NativeAssets.Linux.NoDependencies" version="2.88.9" targetFramework="net472" />
<package id="SkiaSharp.NativeAssets.macOS" version="2.88.9" targetFramework="net472" />
<package id="SkiaSharp.NativeAssets.Win32" version="2.88.9" targetFramework="net472" />
<package id="SkiaSharp.Views.Desktop.Common" version="2.88.9" targetFramework="net472" />
<package id="SkiaSharp.Views.WindowsForms" version="2.88.9" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Drawing.Common" version="4.7.3" targetFramework="net472" />
<package id="System.Memory" version="4.5.5" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
</packages>