Initial upload
174
VKT5_RemoteConsole/Plugin.cs
Normal file
@ -0,0 +1,174 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using Lers.Plugins;
|
||||
using Lers.UI;
|
||||
using Lers.Poll;
|
||||
using Lers.Utils;
|
||||
using Lers.Interop;
|
||||
using System.Collections.Generic;
|
||||
using Lers.UI.Tabs;
|
||||
using Lers.Core;
|
||||
|
||||
namespace Vkt5_RemoteConsole
|
||||
{
|
||||
public class Plugin : IPlugin
|
||||
{
|
||||
#region IPlugin Members
|
||||
|
||||
/// <summary>
|
||||
/// Инициализация плагина
|
||||
/// </summary>
|
||||
/// <param name="pluginHost"></param>
|
||||
public void Initialize(IPluginHost pluginHost)
|
||||
{
|
||||
Plugin.Host = pluginHost;
|
||||
|
||||
// Добавляем элементы управления для точек учёта
|
||||
Plugin.Host.MainWindow.RegisterObjectAction(ObjectType.MeasurePoint, "ВКТ-5: Удалённый пульт", Properties.Resources.vkt5_icon, OnRemoteConsoleOpen);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Экземпляр хост-интерфейса клиента
|
||||
/// </summary>
|
||||
internal static IPluginHost Host
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Пользователь выбрал пункт меню или навигационного окна "Удалённый пульт"
|
||||
/// </summary>
|
||||
/// <param name="actionId"></param>
|
||||
/// <param name="sender"></param>
|
||||
private void OnRemoteConsoleOpen(int actionId, object sender)
|
||||
{
|
||||
MeasurePoint measurePoint = (MeasurePoint)sender;
|
||||
|
||||
// Запрашиваем требуемую для работы информацию
|
||||
measurePoint.Refresh(MeasurePointInfoFlags.Equipment);
|
||||
|
||||
// Проверим, что у точки учёта есть устройство
|
||||
if (measurePoint.Device == null)
|
||||
{
|
||||
MessageBox.Show("У выбранной точки учёта не задано устройство. Выберите точку учёта с поддерживаемым устройством.",
|
||||
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Проверим, что мы работаем с ВКТ-5
|
||||
if (!CheckDeviceModel(measurePoint.Device))
|
||||
{
|
||||
MessageBox.Show("Удалённый пульт ВКТ-5 не поддерживает работу с устройствами "
|
||||
+ measurePoint.Device.Model.Title, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Проверим, открыто ли окно с опросом этого устройства
|
||||
Vkt5RemoteConsoleForm currentForm = GetOpenedForm(measurePoint.Device);
|
||||
if (currentForm == null)
|
||||
{
|
||||
// Такого окна нет, открываем
|
||||
NewForm(measurePoint.Device);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Окно уже есть, переводим фокус на него
|
||||
currentForm.Show();
|
||||
currentForm.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Проверяет, что в выбранной точке учёта указана модель,
|
||||
/// которая поддерживается удалённым пультом
|
||||
/// </summary>
|
||||
/// <param name="device"></param>
|
||||
/// <returns>true если модель поддерживается, иначе false</returns>
|
||||
private bool CheckDeviceModel(Equipment device)
|
||||
{
|
||||
return device.Model.Id == (int)DeviceModel.VKT_5;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Открывает новое окно для управления устройством
|
||||
/// </summary>
|
||||
/// <param name="device"></param>
|
||||
private void NewForm(Equipment device)
|
||||
{
|
||||
// Окно для этого устройства ещё не открыто
|
||||
Vkt5RemoteConsoleForm mainForm = new Vkt5RemoteConsoleForm();
|
||||
|
||||
// Заголовок окна
|
||||
mainForm.Text = "Удалённый пульт - " + device.ToString();
|
||||
|
||||
RemoteConsoleFormParams param = new RemoteConsoleFormParams();
|
||||
|
||||
// Параметры базовой формы опроса
|
||||
param.PollConnections = device.PollSettings.Connections;
|
||||
if (param.PollConnections != null && param.PollConnections.Length > 0)
|
||||
{
|
||||
param.SelectedConnection = param.PollConnections[0];
|
||||
}
|
||||
|
||||
// Параметры формы удалённого пульта
|
||||
param.Device = device;
|
||||
|
||||
// Инициализация
|
||||
mainForm.Initialize(param, Plugin.Host.Server);
|
||||
|
||||
Plugin.Host.MainWindow.AddPage(mainForm);
|
||||
|
||||
mainForm.Show();
|
||||
|
||||
mainForm.FormClosed += new System.Windows.Forms.FormClosedEventHandler(currentForm_FormClosed);
|
||||
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
this.visibleForms.Add(mainForm);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Возвращает открытую форму, работающую с указанным устройством, или null если формы нет
|
||||
/// </summary>
|
||||
/// <param name="device"></param>
|
||||
/// <returns></returns>
|
||||
private Vkt5RemoteConsoleForm GetOpenedForm(Equipment device)
|
||||
{
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
foreach (Vkt5RemoteConsoleForm form in this.visibleForms)
|
||||
{
|
||||
if (form.Parameters.Device == device)
|
||||
{
|
||||
return form;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Закрыто окно удалённого пульта. Удаляем его из списка открытых окон.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
void currentForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
|
||||
{
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
this.visibleForms.Remove((Vkt5RemoteConsoleForm)sender);
|
||||
}
|
||||
}
|
||||
|
||||
private List<Vkt5RemoteConsoleForm> visibleForms = new List<Vkt5RemoteConsoleForm>();
|
||||
}
|
||||
}
|
36
VKT5_RemoteConsole/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Lers.Plugins;
|
||||
|
||||
// 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("Удалённый пульт ВКТ-5")]
|
||||
[assembly: AssemblyDescription("Внешний модуль ЛЭРС УЧЕТ для удалённого управления теплосчётчиками ВКТ-5")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("ООО \"Хабаровский центр энергоресурсосбережения\" (www.lers.ru)")]
|
||||
[assembly: AssemblyProduct("Система диспетчеризации ЛЭРС УЧЕТ")]
|
||||
[assembly: AssemblyCopyright("© 2000-2014, Хабаровский центр энергоресурсосбережения")]
|
||||
[assembly: AssemblyTrademark("Внимание: Данная компьютерная программа защищена законами об авторских правах и международными соглашениями. Незаконное воспроизведение или распространения данной программы или любой ее части влечет гражданскую и уголовную ответственность.")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
[assembly: AssemblyPlugin("B8837A83-3700-47E1-ADAA-02E7496914F0")]
|
||||
[assembly: AssemblyPluginWebsite("http://www.lers.ru")]
|
||||
[assembly: AssemblyPluginEmail("support@lers.ru")]
|
||||
|
||||
// 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("092a73fe-433c-4ab9-b6df-54ca0393806c")]
|
||||
|
||||
// Чтобы внешние модули обновлялись автоматически, необходимо увеличивать версию файла.
|
||||
// Т.к. мы можем забыть это сделать, то лучше чтобы версия увеличивалась сама. Звездочку можно задать только для версии сборки,
|
||||
// для версии файла она не работает. Но если не указать версию файла, то она будет равна версии сборки.
|
||||
|
||||
[assembly: AssemblyVersion("1.1.*")]
|
||||
//[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
|
153
VKT5_RemoteConsole/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,153 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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 Vkt5_RemoteConsole.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", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 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("Vkt5_RemoteConsole.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;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap back {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("back", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap down {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("down", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap enter {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("enter", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap left {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("left", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap menu {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("menu", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap right {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("right", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap tab {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("tab", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap up {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("up", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap vkt5_icon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("vkt5_icon", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
148
VKT5_RemoteConsole/Properties/Resources.resx
Normal file
@ -0,0 +1,148 @@
|
||||
<?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>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="vkt5_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\vkt5_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="back" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\back.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="enter" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="left" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="menu" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\menu.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="right" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="tab" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\tab.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
0
VKT5_RemoteConsole/Properties/licenses.licx
Normal file
BIN
VKT5_RemoteConsole/Resources/PluginImage.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
VKT5_RemoteConsole/Resources/back.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
VKT5_RemoteConsole/Resources/down.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
VKT5_RemoteConsole/Resources/enter.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
VKT5_RemoteConsole/Resources/left.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
VKT5_RemoteConsole/Resources/menu.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
VKT5_RemoteConsole/Resources/right.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
VKT5_RemoteConsole/Resources/tab.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
VKT5_RemoteConsole/Resources/up.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
VKT5_RemoteConsole/Resources/vkt5_icon.png
Normal file
After Width: | Height: | Size: 705 B |
BIN
VKT5_RemoteConsole/Resources/vkt5_icon1.png
Normal file
After Width: | Height: | Size: 705 B |
333
VKT5_RemoteConsole/Vkt5Console.cs
Normal file
@ -0,0 +1,333 @@
|
||||
using System;
|
||||
using Lers;
|
||||
using Lers.Poll;
|
||||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace Vkt5_RemoteConsole
|
||||
{
|
||||
delegate void VktDataReadEventHandler(byte[] dataByte);
|
||||
|
||||
enum Vkt5Key: byte
|
||||
{
|
||||
Right = 0,
|
||||
Left = 1,
|
||||
Down = 2,
|
||||
Up = 3,
|
||||
Tab = 4,
|
||||
Enter = 5,
|
||||
Back = 6,
|
||||
Menu = 7,
|
||||
LongMenuPress = 9
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Класс для отправки запросов и считывания ответов от ECL 300
|
||||
/// ВНИМАНИЕ! После считывания ответа перед повторным запросом к прибору нужно выждать 400мс
|
||||
/// </summary>
|
||||
class Vkt5Console
|
||||
{
|
||||
#region События и методы для протоколирования
|
||||
|
||||
/// <summary>
|
||||
/// Вызвается при ошибке выполнения запроса
|
||||
/// </summary>
|
||||
public event EventHandler RequestError;
|
||||
|
||||
private void CallRequestError()
|
||||
{
|
||||
if (this.RequestError != null)
|
||||
this.RequestError(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Событие поднимается когда необходимо запротоколировать ошибку чтения данных
|
||||
/// </summary>
|
||||
public event WriteLogEventHandler WriteLog;
|
||||
|
||||
private void LogMessage(string msg)
|
||||
{
|
||||
if (this.WriteLog != null)
|
||||
{
|
||||
this.WriteLog(Importance.Info, msg);
|
||||
}
|
||||
}
|
||||
|
||||
private void LogWarning(string msg)
|
||||
{
|
||||
if (this.WriteLog != null)
|
||||
{
|
||||
this.WriteLog(Importance.Warn, msg);
|
||||
}
|
||||
}
|
||||
|
||||
private void LogError(string msg)
|
||||
{
|
||||
if (this.WriteLog != null)
|
||||
{
|
||||
this.WriteLog(Importance.Error, msg);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Сетевой адрес прибора
|
||||
/// </summary>
|
||||
public int NetworkAddress
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="remoteConsole"></param>
|
||||
public Vkt5Console(RemoteConsole remoteConsole)
|
||||
{
|
||||
this.NetworkAddress = 0;
|
||||
|
||||
this.remoteConsole = remoteConsole;
|
||||
this.remoteConsole.DeviceDataReceived += new EventHandler<DeviceDataEventArgs>(remoteConsole_DeviceDataReceived);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Сброс состояния объекта в исходную позицию
|
||||
/// </summary>
|
||||
public void Reset()
|
||||
{
|
||||
this.handlers.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Отправляет команду на чтение буфера экрана устройства
|
||||
/// </summary>
|
||||
/// <param name="readHandler"></param>
|
||||
public void ReadScreenBuffer(VktDataReadEventHandler readHandler)
|
||||
{
|
||||
byte[] rq = PackRequest(new byte[] { 0x03, 0x0C, 0x00, 0x00, 0x00 });
|
||||
SendRequest(rq, 38, readHandler);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Отправляет в устройство команду нажатия клавишы
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="readHandler"></param>
|
||||
public void SendKeyCode(Vkt5Key key, VktDataReadEventHandler readHandler)
|
||||
{
|
||||
byte[] rq = PackRequest(new byte[] { 0x10, 0x0D, 0x00, 0x00, 0x01, 0x01, (byte)key });
|
||||
SendRequest(rq, 8, readHandler);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Формирует пакет с запросом прибору
|
||||
/// </summary>
|
||||
/// <param name="rqData"></param>
|
||||
/// <returns></returns>
|
||||
private byte[] PackRequest(byte[] rqData)
|
||||
{
|
||||
List<byte> request = new List<byte>();
|
||||
|
||||
// Сетевой адрес
|
||||
request.Add((byte)this.NetworkAddress);
|
||||
|
||||
// Пакет с запросом
|
||||
request.AddRange(rqData);
|
||||
|
||||
ushort crc = ModBusCrc.Calc(request);
|
||||
|
||||
request.Add((byte)(crc & 0x00FF));
|
||||
request.Add((byte)((crc & 0xFF00) >> 8));
|
||||
|
||||
|
||||
return request.ToArray();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Отправка запроса прибору
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="responseLength"></param>
|
||||
/// <param name="readHandler"></param>
|
||||
private void SendRequest(byte[] request, int responseLength, VktDataReadEventHandler readHandler)
|
||||
{
|
||||
CommandSettings cmd = new CommandSettings("", 1000, responseLength, 10);
|
||||
|
||||
this.handlers.AddLast(readHandler);
|
||||
|
||||
this.responseLength = responseLength;
|
||||
|
||||
this.remoteConsole.SendCommandAsync(request, cmd, 0, DataReadCallback, null);
|
||||
}
|
||||
|
||||
private void DataReadCallback(Lers.AsyncOperation asyncOp)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Завершаем операцию чтения данных
|
||||
Lers.Networking.ExecuteRequestAsyncOperation execRequestAsyncOp
|
||||
= (Lers.Networking.ExecuteRequestAsyncOperation)asyncOp;
|
||||
|
||||
execRequestAsyncOp.EndExecuteRequest();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// При ошибке отправки данных отключаемся от устройства
|
||||
LogError("Ошибка чтения данных. " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void remoteConsole_DeviceDataReceived(object sender, DeviceDataEventArgs args)
|
||||
{
|
||||
// Проверим, что консоль подключена к прибору
|
||||
if (!this.remoteConsole.IsConnected)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Получаем обработчик запроса
|
||||
VktDataReadEventHandler currentHandler = this.handlers.First.Value;
|
||||
this.handlers.RemoveFirst();
|
||||
|
||||
// Проверим длину считанного пакета
|
||||
if (args.Response.Length < 5)
|
||||
{
|
||||
// Повторяем запрос
|
||||
LogError("Неверная длина ответа прибора. Ожидалось не менее 5 байт, получено " + args.Response.Length);
|
||||
|
||||
CallRequestError();
|
||||
|
||||
// Отключаемся
|
||||
try
|
||||
{
|
||||
this.remoteConsole.DisconnectAsync(null, null);
|
||||
}
|
||||
catch (Lers.PermissionDeniedException exc)
|
||||
{
|
||||
LogError("Ошибка отключения удалённого пульта. " + exc.Message);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Проверим контрольную сумму
|
||||
ushort calcCs = ModBusCrc.Calc(args.Response, 0, args.Response.Length - 2);
|
||||
ushort recvCrc = BitConverter.ToUInt16(args.Response, args.Response.Length - 2);
|
||||
|
||||
if (calcCs != recvCrc)
|
||||
{
|
||||
LogWarning("Не сходится контрольная сумма ответа");
|
||||
|
||||
// Повторяем запрос
|
||||
SendRequest(args.Request, this.responseLength, currentHandler);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Проверим сетевой адрес
|
||||
if (args.Response[0] != (byte)this.NetworkAddress)
|
||||
{
|
||||
LogWarning("В ответе указан неверный контрольный адрес");
|
||||
|
||||
// Повторяем запрос
|
||||
SendRequest(args.Request, this.responseLength, currentHandler);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Возвращаем считанные прибором данные
|
||||
if (currentHandler != null)
|
||||
{
|
||||
byte[] rspData = new byte[args.Response.Length - 5];
|
||||
Array.Copy(args.Response, 3, rspData, 0, rspData.Length);
|
||||
currentHandler(rspData);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Объект для отправки запросов и считывания ответов от удалённого прибора
|
||||
/// </summary>
|
||||
private RemoteConsole remoteConsole = null;
|
||||
|
||||
/// <summary>
|
||||
/// Длина ответа на запрос
|
||||
/// </summary>
|
||||
private int responseLength = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Список обработчиков ответов
|
||||
/// </summary>
|
||||
LinkedList<VktDataReadEventHandler> handlers = new LinkedList<VktDataReadEventHandler>();
|
||||
}
|
||||
|
||||
class ModBusCrc
|
||||
{
|
||||
/// <summary>
|
||||
/// Вычисляет контрольную сумму для переданного блока данных, согласно
|
||||
/// спецификации протокола ModBus (Modicon Modbus Protocol Reference Guide)
|
||||
///
|
||||
/// Для расчета контрольной суммы используется модифицированный CRC-16-IBM с полиномом 0xA001.
|
||||
/// В отличие от стандартного алгоритма CRC-16-IBM, начальное значение устанавливается равным 0xFFFF
|
||||
/// </summary>
|
||||
/// <param name="input">Массив байт, по которому нужно посчитать CRC</param>
|
||||
/// <param name="start">Начальный индекс в массиве байт</param>
|
||||
/// <param name="length">Количество байт, начиная со start, используемых в расчете контрольной суммы</param>
|
||||
/// <returns>Значение контрольной суммы</returns>
|
||||
public static ushort Calc(IList<byte> input, int start, int length)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
if (length > input.Count)
|
||||
throw new Exception(String.Format("При расчете контрольной суммы по блоку данных длиной {0} байт, указана длина {1} байт", input.Count, length));
|
||||
|
||||
// Для хранения CRC используем тип int, чтобы не заниматься приведением типов
|
||||
// постоянно, а сделать это только при выходе
|
||||
// При расчете CRC значение никогда не выйдет за границы 2-х младших байт (сдвигаем всегда вправо)
|
||||
// поэтому при операциях сдвига, сдвиг знакового бита переменной crc не обрабатываем
|
||||
int crc = 0xFFFF;
|
||||
|
||||
// обнуляем 2 старших байта
|
||||
for (i = start; i < start + length; i++)
|
||||
{
|
||||
crc = (ushort)crc & 0xFF00 + (ushort)(crc & 0x00FF) ^ input[i];
|
||||
|
||||
for (j = 0; j < 8; j++)
|
||||
{
|
||||
if ((crc & 0x01) > 0)
|
||||
{
|
||||
// Сдвигаем вправо на 1 бит и XOR-им полиномом 0xA001
|
||||
crc = (crc >> 1) ^ 0xA001;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Сдвигаем вправо на 1 бит
|
||||
crc = (crc >> 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Возвращаем 2 младших байта
|
||||
return (ushort)crc;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Вычисляет контрольную сумму для переданного блока данных, согласно
|
||||
/// спецификации протокола ModBus (Modicon Modbus Protocol Reference Guide)
|
||||
///
|
||||
/// Для расчета контрольной суммы используется модифицированный CRC-16-IBM с полиномом 0xA001.
|
||||
/// В отличие от стандартного алгоритма CRC-16-IBM, начальное значение устанавливается равным 0xFFFF
|
||||
/// </summary>
|
||||
/// <param name="input">Массив байт, по которому нужно посчитать CRC</param>
|
||||
/// <returns>Значение контрольной суммы</returns>
|
||||
public static ushort Calc(IList<byte> input)
|
||||
{
|
||||
return ModBusCrc.Calc(input, 0, input.Count);
|
||||
}
|
||||
}
|
||||
}
|
222
VKT5_RemoteConsole/Vkt5ConsoleControl.Designer.cs
generated
Normal file
@ -0,0 +1,222 @@
|
||||
namespace Vkt5_RemoteConsole
|
||||
{
|
||||
partial class Vkt5ConsoleControl
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Vkt5ConsoleControl));
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.txtLine2 = new System.Windows.Forms.Label();
|
||||
this.txtLine1 = new System.Windows.Forms.Label();
|
||||
this.btnMenu = new System.Windows.Forms.Button();
|
||||
this.btnBack = new System.Windows.Forms.Button();
|
||||
this.btnTab = new System.Windows.Forms.Button();
|
||||
this.btnLeft = new System.Windows.Forms.Button();
|
||||
this.btnEnter = new System.Windows.Forms.Button();
|
||||
this.btnDown = new System.Windows.Forms.Button();
|
||||
this.btnUp = new System.Windows.Forms.Button();
|
||||
this.btnRight = new System.Windows.Forms.Button();
|
||||
this.refreshTimer = new System.Windows.Forms.Timer();
|
||||
this.cursorTimer = new System.Windows.Forms.Timer();
|
||||
this.panel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(180)))), ((int)(((byte)(40)))));
|
||||
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel1.Controls.Add(this.txtLine2);
|
||||
this.panel1.Controls.Add(this.txtLine1);
|
||||
this.panel1.Location = new System.Drawing.Point(12, 14);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(318, 67);
|
||||
this.panel1.TabIndex = 20;
|
||||
//
|
||||
// txtLine2
|
||||
//
|
||||
this.txtLine2.Font = new System.Drawing.Font("Lucida Console", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.txtLine2.ForeColor = System.Drawing.Color.DimGray;
|
||||
this.txtLine2.Location = new System.Drawing.Point(3, 35);
|
||||
this.txtLine2.Name = "txtLine2";
|
||||
this.txtLine2.Size = new System.Drawing.Size(310, 29);
|
||||
this.txtLine2.TabIndex = 1;
|
||||
this.txtLine2.Text = "подключения";
|
||||
//
|
||||
// txtLine1
|
||||
//
|
||||
this.txtLine1.Font = new System.Drawing.Font("Lucida Console", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.txtLine1.ForeColor = System.Drawing.Color.DimGray;
|
||||
this.txtLine1.Location = new System.Drawing.Point(3, 3);
|
||||
this.txtLine1.Name = "txtLine1";
|
||||
this.txtLine1.Size = new System.Drawing.Size(310, 29);
|
||||
this.txtLine1.TabIndex = 0;
|
||||
this.txtLine1.Text = "Нет";
|
||||
//
|
||||
// btnMenu
|
||||
//
|
||||
this.btnMenu.BackColor = System.Drawing.Color.Gray;
|
||||
this.btnMenu.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnMenu.Image = ((System.Drawing.Image)(resources.GetObject("btnMenu.Image")));
|
||||
this.btnMenu.Location = new System.Drawing.Point(222, 102);
|
||||
this.btnMenu.Name = "btnMenu";
|
||||
this.btnMenu.Size = new System.Drawing.Size(108, 64);
|
||||
this.btnMenu.TabIndex = 18;
|
||||
this.btnMenu.UseVisualStyleBackColor = false;
|
||||
this.btnMenu.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btnMenu_MouseDown);
|
||||
this.btnMenu.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btnMenu_MouseUp);
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.BackColor = System.Drawing.Color.Gray;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Image = ((System.Drawing.Image)(resources.GetObject("btnBack.Image")));
|
||||
this.btnBack.Location = new System.Drawing.Point(12, 102);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(64, 64);
|
||||
this.btnBack.TabIndex = 12;
|
||||
this.btnBack.UseVisualStyleBackColor = false;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// btnTab
|
||||
//
|
||||
this.btnTab.BackColor = System.Drawing.Color.Gray;
|
||||
this.btnTab.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnTab.Image = ((System.Drawing.Image)(resources.GetObject("btnTab.Image")));
|
||||
this.btnTab.Location = new System.Drawing.Point(222, 172);
|
||||
this.btnTab.Name = "btnTab";
|
||||
this.btnTab.Size = new System.Drawing.Size(108, 64);
|
||||
this.btnTab.TabIndex = 19;
|
||||
this.btnTab.UseVisualStyleBackColor = false;
|
||||
this.btnTab.Click += new System.EventHandler(this.btnTab_Click);
|
||||
//
|
||||
// btnLeft
|
||||
//
|
||||
this.btnLeft.BackColor = System.Drawing.Color.Gray;
|
||||
this.btnLeft.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnLeft.Image = ((System.Drawing.Image)(resources.GetObject("btnLeft.Image")));
|
||||
this.btnLeft.Location = new System.Drawing.Point(12, 172);
|
||||
this.btnLeft.Name = "btnLeft";
|
||||
this.btnLeft.Size = new System.Drawing.Size(64, 64);
|
||||
this.btnLeft.TabIndex = 15;
|
||||
this.btnLeft.UseVisualStyleBackColor = false;
|
||||
this.btnLeft.Click += new System.EventHandler(this.btnLeft_Click);
|
||||
//
|
||||
// btnEnter
|
||||
//
|
||||
this.btnEnter.BackColor = System.Drawing.Color.Gray;
|
||||
this.btnEnter.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnEnter.Image = ((System.Drawing.Image)(resources.GetObject("btnEnter.Image")));
|
||||
this.btnEnter.Location = new System.Drawing.Point(152, 102);
|
||||
this.btnEnter.Name = "btnEnter";
|
||||
this.btnEnter.Size = new System.Drawing.Size(64, 64);
|
||||
this.btnEnter.TabIndex = 14;
|
||||
this.btnEnter.UseVisualStyleBackColor = false;
|
||||
this.btnEnter.Click += new System.EventHandler(this.btnEnter_Click);
|
||||
//
|
||||
// btnDown
|
||||
//
|
||||
this.btnDown.BackColor = System.Drawing.Color.Gray;
|
||||
this.btnDown.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnDown.Image = ((System.Drawing.Image)(resources.GetObject("btnDown.Image")));
|
||||
this.btnDown.Location = new System.Drawing.Point(82, 172);
|
||||
this.btnDown.Name = "btnDown";
|
||||
this.btnDown.Size = new System.Drawing.Size(64, 64);
|
||||
this.btnDown.TabIndex = 16;
|
||||
this.btnDown.UseVisualStyleBackColor = false;
|
||||
this.btnDown.Click += new System.EventHandler(this.btnDown_Click);
|
||||
//
|
||||
// btnUp
|
||||
//
|
||||
this.btnUp.BackColor = System.Drawing.Color.Gray;
|
||||
this.btnUp.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnUp.Image = ((System.Drawing.Image)(resources.GetObject("btnUp.Image")));
|
||||
this.btnUp.Location = new System.Drawing.Point(82, 102);
|
||||
this.btnUp.Name = "btnUp";
|
||||
this.btnUp.Size = new System.Drawing.Size(64, 64);
|
||||
this.btnUp.TabIndex = 13;
|
||||
this.btnUp.UseVisualStyleBackColor = false;
|
||||
this.btnUp.Click += new System.EventHandler(this.btnUp_Click);
|
||||
//
|
||||
// btnRight
|
||||
//
|
||||
this.btnRight.BackColor = System.Drawing.Color.Gray;
|
||||
this.btnRight.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnRight.Image = ((System.Drawing.Image)(resources.GetObject("btnRight.Image")));
|
||||
this.btnRight.Location = new System.Drawing.Point(152, 172);
|
||||
this.btnRight.Name = "btnRight";
|
||||
this.btnRight.Size = new System.Drawing.Size(64, 64);
|
||||
this.btnRight.TabIndex = 17;
|
||||
this.btnRight.UseVisualStyleBackColor = false;
|
||||
this.btnRight.Click += new System.EventHandler(this.btnRight_Click);
|
||||
//
|
||||
// refreshTimer
|
||||
//
|
||||
this.refreshTimer.Interval = 1000;
|
||||
this.refreshTimer.Tick += new System.EventHandler(this.refreshTimer_Tick);
|
||||
//
|
||||
// cursorTimer
|
||||
//
|
||||
this.cursorTimer.Interval = 500;
|
||||
this.cursorTimer.Tick += new System.EventHandler(this.cursorTimer_Tick);
|
||||
//
|
||||
// Vkt5ConsoleControl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Controls.Add(this.btnMenu);
|
||||
this.Controls.Add(this.btnBack);
|
||||
this.Controls.Add(this.btnTab);
|
||||
this.Controls.Add(this.btnLeft);
|
||||
this.Controls.Add(this.btnEnter);
|
||||
this.Controls.Add(this.btnDown);
|
||||
this.Controls.Add(this.btnUp);
|
||||
this.Controls.Add(this.btnRight);
|
||||
this.Name = "Vkt5ConsoleControl";
|
||||
this.Size = new System.Drawing.Size(348, 257);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Label txtLine2;
|
||||
private System.Windows.Forms.Label txtLine1;
|
||||
private System.Windows.Forms.Button btnMenu;
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
private System.Windows.Forms.Button btnTab;
|
||||
private System.Windows.Forms.Button btnLeft;
|
||||
private System.Windows.Forms.Button btnEnter;
|
||||
private System.Windows.Forms.Button btnDown;
|
||||
private System.Windows.Forms.Button btnUp;
|
||||
private System.Windows.Forms.Button btnRight;
|
||||
private System.Windows.Forms.Timer refreshTimer;
|
||||
private System.Windows.Forms.Timer cursorTimer;
|
||||
}
|
||||
}
|
382
VKT5_RemoteConsole/Vkt5ConsoleControl.cs
Normal file
@ -0,0 +1,382 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
using Lers;
|
||||
using Lers.Poll;
|
||||
|
||||
namespace Vkt5_RemoteConsole
|
||||
{
|
||||
/// <summary>
|
||||
/// Делегат для события <see cref="WriteLog"/>.
|
||||
/// </summary>
|
||||
public delegate void WriteLogEventHandler(Importance importance, string message);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Контрол удалённого пульта ВКТ-5
|
||||
/// </summary>
|
||||
public partial class Vkt5ConsoleControl : UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// Состояния контрола
|
||||
/// </summary>
|
||||
private enum State
|
||||
{
|
||||
/// <summary>Начальное состояния</summary>
|
||||
None,
|
||||
|
||||
/// <summary>Отключены от прибора</summary>
|
||||
Disconnected,
|
||||
|
||||
/// <summary>Режим ожидания команд</summary>
|
||||
Ready,
|
||||
|
||||
/// <summary>Чтение буфера экрана</summary>
|
||||
ReadingScreenBuffer,
|
||||
|
||||
/// <summary>Отправка кода клавиши</summary>
|
||||
SendingKeyCode,
|
||||
|
||||
/// <summary>Ожидание обновления буфера экрана</summary>
|
||||
WaitingScreenBuffer
|
||||
}
|
||||
|
||||
|
||||
#region События и методы для протоколирования
|
||||
|
||||
public event WriteLogEventHandler WriteLog;
|
||||
|
||||
private void LogMessage(string msg)
|
||||
{
|
||||
if (this.WriteLog != null)
|
||||
{
|
||||
this.WriteLog(Importance.Info, msg);
|
||||
}
|
||||
}
|
||||
|
||||
private void LogWarning(string msg)
|
||||
{
|
||||
if (this.WriteLog != null)
|
||||
{
|
||||
this.WriteLog(Importance.Warn, msg);
|
||||
}
|
||||
}
|
||||
|
||||
private void LogError(string msg)
|
||||
{
|
||||
if (this.WriteLog != null)
|
||||
{
|
||||
this.WriteLog(Importance.Error, msg);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public Vkt5ConsoleControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
SetState(State.Disconnected);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Инициализация контрола
|
||||
/// </summary>
|
||||
/// <param name="remoteConsole"></param>
|
||||
/// <param name="networkAddress"></param>
|
||||
public void Initialize(RemoteConsole remoteConsole, int networkAddress)
|
||||
{
|
||||
this.vktConsole = new Vkt5Console(remoteConsole);
|
||||
this.vktConsole.WriteLog += this.WriteLog;
|
||||
this.vktConsole.RequestError += new EventHandler(vktConsole_RequestError);
|
||||
this.vktConsole.NetworkAddress = networkAddress;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Изменилось состояние подключения к удалённому устройству
|
||||
/// </summary>
|
||||
/// <param name="connected"></param>
|
||||
public void ConnectionChanged(bool connected)
|
||||
{
|
||||
if (connected)
|
||||
{
|
||||
SetState(State.WaitingScreenBuffer);
|
||||
|
||||
this.vktConsole.Reset();
|
||||
|
||||
ReadScreenBuffer();
|
||||
}
|
||||
else
|
||||
{
|
||||
SetState(State.Disconnected);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#region Обработчики событий контролов
|
||||
|
||||
private void cursorTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
this.displayCursor = !this.displayCursor;
|
||||
|
||||
RefreshCursor();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Таймер обновления содержимого экрана
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void refreshTimer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
ReadScreenBuffer();
|
||||
}
|
||||
|
||||
void vktConsole_RequestError(object sender, EventArgs e)
|
||||
{
|
||||
// Отменяем чтение
|
||||
SetState(State.Ready);
|
||||
}
|
||||
|
||||
private void btnUp_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeyCode(Vkt5Key.Up);
|
||||
}
|
||||
|
||||
private void btnDown_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeyCode(Vkt5Key.Down);
|
||||
}
|
||||
|
||||
private void btnTab_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeyCode(Vkt5Key.Tab);
|
||||
}
|
||||
|
||||
private void btnBack_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeyCode(Vkt5Key.Back);
|
||||
}
|
||||
|
||||
private void btnRight_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeyCode(Vkt5Key.Right);
|
||||
}
|
||||
|
||||
private void btnLeft_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeyCode(Vkt5Key.Left);
|
||||
}
|
||||
|
||||
private void btnEnter_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendKeyCode(Vkt5Key.Enter);
|
||||
}
|
||||
|
||||
private void btnMenu_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
|
||||
{
|
||||
if (!this.btnMenu.Enabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.isMenuBtnDown = true;
|
||||
this.menuBtnPressTime = DateTime.Now;
|
||||
}
|
||||
|
||||
private void btnMenu_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
|
||||
{
|
||||
if (!this.btnMenu.Enabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.isMenuBtnDown)
|
||||
{
|
||||
this.isMenuBtnDown = false;
|
||||
DateTime now = DateTime.Now;
|
||||
|
||||
int totalMs = (int)(now - this.menuBtnPressTime).TotalMilliseconds;
|
||||
|
||||
if (totalMs >= 3000)
|
||||
{
|
||||
SendKeyCode(Vkt5Key.LongMenuPress);
|
||||
}
|
||||
else
|
||||
{
|
||||
SendKeyCode(Vkt5Key.Menu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
private void ReadScreenBuffer()
|
||||
{
|
||||
if (this.state == State.Ready || this.state == State.WaitingScreenBuffer)
|
||||
{
|
||||
SetState(State.ReadingScreenBuffer);
|
||||
|
||||
this.vktConsole.ReadScreenBuffer(this.ReadScreenBufferCallback);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void ReadScreenBufferCallback(byte[] data)
|
||||
{
|
||||
if (this.state != State.SendingKeyCode)
|
||||
{
|
||||
// Буфер экрана считан. Выставим состояние "Ready", если он пришёл не во время отправки кода клавиши.
|
||||
|
||||
SetState(State.Ready);
|
||||
}
|
||||
|
||||
this.displayLine = Encoding.GetEncoding(866).GetString(data, 0, data.Length - 1);
|
||||
this.cursorPos = data[data.Length - 1];
|
||||
|
||||
RefreshCursor();
|
||||
|
||||
if (!this.cursorTimer.Enabled)
|
||||
{
|
||||
this.cursorTimer.Start();
|
||||
}
|
||||
|
||||
if (!this.refreshTimer.Enabled)
|
||||
{
|
||||
this.refreshTimer.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private void SendKeyCode(Vkt5Key keyCode)
|
||||
{
|
||||
if (this.state == State.Disconnected || this.state == State.SendingKeyCode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SetState(State.SendingKeyCode);
|
||||
this.vktConsole.SendKeyCode(keyCode, SendKeyCodeCallback);
|
||||
}
|
||||
|
||||
private void SendKeyCodeCallback(byte[] data)
|
||||
{
|
||||
SetState(State.WaitingScreenBuffer);
|
||||
|
||||
ReadScreenBuffer();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Устанавливает новое состояние контрола
|
||||
/// </summary>
|
||||
/// <param name="newState"></param>
|
||||
private void SetState(State newState)
|
||||
{
|
||||
if (newState == this.state)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
switch (newState)
|
||||
{
|
||||
case State.Ready:
|
||||
SetReady();
|
||||
break;
|
||||
|
||||
case State.Disconnected:
|
||||
SetDisconnected();
|
||||
break;
|
||||
|
||||
case State.SendingKeyCode:
|
||||
case State.WaitingScreenBuffer:
|
||||
EnableButtons(false);
|
||||
break;
|
||||
|
||||
case State.ReadingScreenBuffer:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
this.state = newState;
|
||||
}
|
||||
|
||||
private void SetReady()
|
||||
{
|
||||
EnableButtons(true);
|
||||
}
|
||||
|
||||
private void SetDisconnected()
|
||||
{
|
||||
this.cursorTimer.Stop();
|
||||
this.displayLine = "";
|
||||
this.cursorPos = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void RefreshCursor()
|
||||
{
|
||||
if (string.IsNullOrEmpty(this.displayLine))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string cursorChar = "\u2588";
|
||||
|
||||
string showLine = this.displayLine;
|
||||
|
||||
if (this.displayCursor)
|
||||
{
|
||||
showLine = showLine.Remove(this.cursorPos, 1);
|
||||
showLine = showLine.Insert(this.cursorPos, cursorChar);
|
||||
}
|
||||
|
||||
this.txtLine1.Text = showLine.Substring(0, 16);
|
||||
this.txtLine2.Text = showLine.Substring(16, 16);
|
||||
}
|
||||
|
||||
private void EnableButtons(bool enable)
|
||||
{
|
||||
this.btnUp.Enabled = enable;
|
||||
this.btnDown.Enabled = enable;
|
||||
this.btnLeft.Enabled = enable;
|
||||
this.btnRight.Enabled = enable;
|
||||
this.btnEnter.Enabled = enable;
|
||||
this.btnBack.Enabled = enable;
|
||||
this.btnMenu.Enabled = enable;
|
||||
this.btnTab.Enabled = enable;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Объект для работы с подключенным ECL 300
|
||||
/// </summary>
|
||||
private Vkt5Console vktConsole = null;
|
||||
|
||||
/// <summary>
|
||||
/// Текущее состояние контрола
|
||||
/// </summary>
|
||||
private State state = State.None;
|
||||
|
||||
private string displayLine = "";
|
||||
private int cursorPos = 0;
|
||||
private bool displayCursor = false;
|
||||
|
||||
private bool isMenuBtnDown = false;
|
||||
private DateTime menuBtnPressTime = DateTime.MinValue;
|
||||
}
|
||||
}
|
866
VKT5_RemoteConsole/Vkt5ConsoleControl.resx
Normal file
@ -0,0 +1,866 @@
|
||||
<?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>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="btnMenu.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
3208vUqMAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnBack.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
8P9abW3/DWbMf1iOz3IqAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnTab.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
SUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnLeft.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnEnter.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnDown.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnUp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
SUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnRight.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="refreshTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="cursorTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>132, 16</value>
|
||||
</metadata>
|
||||
</root>
|
81
VKT5_RemoteConsole/Vkt5RemoteConsoleForm.cs
Normal file
@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Lers;
|
||||
using Lers.UI.Tabs;
|
||||
|
||||
namespace Vkt5_RemoteConsole
|
||||
{
|
||||
class Vkt5RemoteConsoleForm: RemoteConsoleForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public Vkt5RemoteConsoleForm()
|
||||
{
|
||||
this.Load += new EventHandler(Vkt5RemoteConsoleForm_Load);
|
||||
|
||||
// Создаём контрол удалённого пульта и размещаем на пользовательской панели
|
||||
this.vktConsoleControl = new Vkt5ConsoleControl();
|
||||
this.vktConsoleControl.Parent = this.UserArea;
|
||||
this.vktConsoleControl.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
|
||||
// Подписываемся на событие протоколирование контрола удалённого пульта.
|
||||
// Каждый раз когда удалённый пульт будет протоколировать событие, будет вызываться этот метод.
|
||||
this.vktConsoleControl.WriteLog += new WriteLogEventHandler(vktConsoleControl_WriteLog);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Переопределяем инициализацию окна с удалённым пультом ВКТ-5
|
||||
/// </summary>
|
||||
/// <param name="parameters"></param>
|
||||
/// <param name="server"></param>
|
||||
public override void Initialize(RemoteConsoleFormParams parameters, Lers.LersServer server)
|
||||
{
|
||||
base.Initialize(parameters, server);
|
||||
|
||||
// Подписка на события подключения и отключения от удалённого устройства
|
||||
|
||||
this.RemoteConsole.Connected += new EventHandler(RemoteConsole_Connected);
|
||||
this.RemoteConsole.Disconnected += new EventHandler(RemoteConsole_Disconnected);
|
||||
|
||||
int networkAddress = 0;
|
||||
if (parameters.Device.PollSettings.Network != null)
|
||||
{
|
||||
Int32.TryParse(parameters.Device.NetworkAddress, out networkAddress);
|
||||
}
|
||||
|
||||
// Инициализируем контрол с удалённым пультом
|
||||
this.vktConsoleControl.Initialize(this.RemoteConsole, networkAddress);
|
||||
}
|
||||
|
||||
|
||||
void vktConsoleControl_WriteLog(Importance importance, string message)
|
||||
{
|
||||
this.AddLogRecord(importance, DateTime.Now, message);
|
||||
}
|
||||
|
||||
void Vkt5RemoteConsoleForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.vktConsoleControl.Enabled = false;
|
||||
}
|
||||
|
||||
void RemoteConsole_Connected(object sender, EventArgs e)
|
||||
{
|
||||
this.vktConsoleControl.Enabled = true;
|
||||
this.vktConsoleControl.ConnectionChanged(true);
|
||||
}
|
||||
|
||||
void RemoteConsole_Disconnected(object sender, EventArgs e)
|
||||
{
|
||||
this.vktConsoleControl.Enabled = false;
|
||||
this.vktConsoleControl.ConnectionChanged(false);
|
||||
}
|
||||
|
||||
|
||||
private Vkt5ConsoleControl vktConsoleControl = null;
|
||||
}
|
||||
}
|
127
VKT5_RemoteConsole/Vkt5_RemoteConsole.csproj
Normal file
@ -0,0 +1,127 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Vkt5_RemoteConsole</RootNamespace>
|
||||
<AssemblyName>Vkt5_RemoteConsole</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>C:\Program Files\LERS\Common\Plugins\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Lers.Plugins.Attributes">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lers.Plugins">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lers.System">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lers.UI">
|
||||
<Private>False</Private>
|
||||
<EmbedInteropTypes>False</EmbedInteropTypes>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Vkt5Console.cs" />
|
||||
<Compile Include="Vkt5ConsoleControl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Vkt5ConsoleControl.Designer.cs">
|
||||
<DependentUpon>Vkt5ConsoleControl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Vkt5RemoteConsoleForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Plugin.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Vkt5ConsoleControl.resx">
|
||||
<DependentUpon>Vkt5ConsoleControl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\vkt5_icon.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\back.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\up.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\enter.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\left.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\down.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\right.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\menu.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\tab.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\PluginImage.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
28
VKT5_RemoteConsole/Vkt5_RemoteConsole.sln
Normal file
@ -0,0 +1,28 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vkt5_RemoteConsole", "Vkt5_RemoteConsole.csproj", "{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
134
VKT5_RemoteConsole/Vkt5_RemoteConsole_debug.csproj
Normal file
@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Vkt5_RemoteConsole</RootNamespace>
|
||||
<AssemblyName>Vkt5_RemoteConsole</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>C:\Program Files\LERS\Common\Plugins\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Lers.Plugins, Version=3.0.0.0, Culture=neutral, PublicKeyToken=e7c6d6299713498c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Framework\Lers.Plugins\bin\Debug\Lers.Plugins.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lers.Plugins.Attributes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e7c6d6299713498c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Framework\Lers.Plugins.Attributes\bin\Debug\Lers.Plugins.Attributes.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lers.System, Version=3.0.0.0, Culture=neutral, PublicKeyToken=e7c6d6299713498c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Framework\Lers.System\bin\Debug\Lers.System.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lers.UI, Version=3.0.0.0, Culture=neutral, PublicKeyToken=e7c6d6299713498c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Framework\Lers.UI\bin\Debug\Lers.UI.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Vkt5Console.cs" />
|
||||
<Compile Include="Vkt5ConsoleControl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Vkt5ConsoleControl.Designer.cs">
|
||||
<DependentUpon>Vkt5ConsoleControl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Vkt5RemoteConsoleForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Plugin.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Vkt5ConsoleControl.resx">
|
||||
<DependentUpon>Vkt5ConsoleControl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\vkt5_icon.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\back.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\up.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\enter.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\left.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\down.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\right.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\menu.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\tab.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\PluginImage.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
22
VKT5_RemoteConsole/Vkt5_RemoteConsole_debug.sln
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.24720.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vkt5_RemoteConsole_debug", "Vkt5_RemoteConsole_debug.csproj", "{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5622B98C-E274-4C99-BF9B-6FCC2E85EBD8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|