#0022: MC软件新增速度监控;中间件新增调试模式

This commit is contained in:
zhengxuan.zhang
2025-03-03 16:42:10 +08:00
parent f8cea5d5ce
commit 3925b2c3df
17 changed files with 571 additions and 73 deletions
+53 -48
View File
@@ -117,7 +117,7 @@ HSI_Motion::HSI_Motion()
g_IsClose = false; //用于DoEvents()的退出,而不异常
setLightFlag = false;
m_bISUseMoreLights = 0; //更多灯光
m_Jog_Auto_Focus = 1; //变焦使用的速度
m_Jog_Auto_Focus = 1.0; //变焦使用的速度,默认为1.0mm/s, 仅限Z轴
m_StartInputPort = 1; //外部输入按钮启动程序
iaxisNum = 0;
iScanMotionType = 0;
@@ -245,13 +245,19 @@ HSI_Motion::HSI_Motion()
g_pLogger->SendAndFlushWithTime(L"\n");
g_pLogger->SendAndFlushWithTime(L"==========================================================\n");
// CLMS 授权验证
if (!CheckLicense())
//读取配置文件
IS_DEBUG = GetPrivateProfileInt(L"EF3", L"ACS_PORT", 0, m_AppPath + _T("\\Config\\EF3_Config.ini"));
g_pLogger->SendAndFlushWithTime(L"ACS_PORT = %d\n", IS_DEBUG);
if (IS_DEBUG != 500) //非调试模式
{
//弹窗提示
AfxMessageBox(_T("[Check License] Acs-Metus Middleware No Authorization Found, Please Contact the Corresponding Sales"), MB_ICONWARNING | MB_OK);
g_pLogger->SendAndFlushWithTime(L"[Check License] Acs-Metus Middleware No Authorization Found, Please Contact the Corresponding Sales\n");
return;
// CLMS 授权验证
if (!CheckLicense())
{
//弹窗提示
AfxMessageBox(_T("[Check License] Acs-Metus Middleware No Authorization Found, Please Contact the Corresponding Sales"), MB_ICONWARNING | MB_OK);
g_pLogger->SendAndFlushWithTime(L"[Check License] Acs-Metus Middleware No Authorization Found, Please Contact the Corresponding Sales\n");
return;
}
}
g_pLogger->SendAndFlushWithTime(L"[Check License] Acs Middleware Check License OK\n");
@@ -420,12 +426,15 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
hWnd = _hWnd;
bOfflineOnly = _bOfflineOnly;
// CLMS 授权验证
if (!CheckLicense())
if (IS_DEBUG != 500)
{
// 授权验证失败
g_pLogger->SendAndFlushWithTime(L"[Check License] Acs-Metus Middleware No Authorization Found, Please Contact the Corresponding Sales\n");
return HSI_STATUS_FAILED; // 返回适当的错误状态
// CLMS 授权验证
if (!CheckLicense())
{
// 授权验证失败
g_pLogger->SendAndFlushWithTime(L"[Check License] Acs-Metus Middleware No Authorization Found, Please Contact the Corresponding Sales\n");
return HSI_STATUS_FAILED; // 返回适当的错误状态
}
}
if (!bOfflineOnly)
@@ -4149,8 +4158,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
csAppPath);
}
}
m_Jog_Auto_Focus = m_JogDriveSpeed[3][4]; //3轴4档位速度
g_pLogger->SendAndFlushWithTime(L"[Load_EF3_Motion_Inifile] m_Jog_Auto_Focus: %d\n", m_Jog_Auto_Focus); //记录自动对焦速度
m_Home_Machine_Axis[1] = GetPrivateProfileInt(L"HOME", L"HOME_MACHINE_AXIS_1", 1, csAppPath);
m_Home_Machine_Axis[2] = GetPrivateProfileInt(L"HOME", L"HOME_MACHINE_AXIS_2", 1, csAppPath);
m_Home_Machine_Axis[3] = GetPrivateProfileInt(L"HOME", L"HOME_MACHINE_AXIS_3", 1, csAppPath);
@@ -7930,19 +7938,22 @@ HSI_STATUS HSI_Motion::SetSpeedXyz(double Speed)
HSI_STATUS HSI_Motion::GetFocusSpeed(double& Speed)
{
g_pLogger->SendAndFlushWithTime(L"[GetFocusSpeed] In\n");
auto rStatus = HSI_STATUS_NORMAL;
if (1 == m_iSpeedType)
{
//Speed = m_JogDriveSpeed[3][4] * (m_Resolution[3] * 50);
Speed = m_JogDriveSpeed[3][4];
}
else
{
Speed = m_JogDriveSpeed[3][4];
}
g_pLogger->SendAndFlushWithTime(L"[GetFocusSpeed] Speed = %d, m_Jog_Auto_Focus = %d\n", Speed, m_Jog_Auto_Focus);
g_pLogger->SendAndFlushWithTime(L"[GetFocusSpeed] Out\n");
// 方式1
//Speed = m_Jog_Auto_Focus;
g_pLogger->SendAndFlushWithTime(L"[GetFocusSpeed] m_Jog_Auto_Focus = %f\n", m_Jog_Auto_Focus);
// 方式2,从底层查询
// 正常这里要读取z轴的速度,但是这里直接返回m_Jog_Auto_Focus
double getMotionParam[5] = { 0 };
GetSingleAxisParam(ACSAxisNumbers[2], getMotionParam); //获取单轴运动参数
g_pLogger->SendAndFlushWithTime(
L"[GetFocusSpeed] Axis= %d, Velocity = %.2f, Acceleration= %.2f, Deceleration= %.2f, KillDeceleration= %.2f, Jerk= %.2f\n",
ACSAxisNumbers[2], getMotionParam[0], getMotionParam[1], getMotionParam[2], getMotionParam[3], getMotionParam[4]);
Speed = getMotionParam[0]; //从getMotionParam[0]中获取速度
g_pLogger->SendAndFlushWithTime(L"[GetFocusSpeed] AxisNum = %d, Speed=%.2f\n", ACSAxisNumbers[2], Speed);
return rStatus;
}
@@ -7968,31 +7979,25 @@ HSI_STATUS HSI_Motion::GetFocusSpeed(double& Speed)
HSI_STATUS HSI_Motion::SetFocusSpeed(double Speed)
{
auto rStatus = HSI_STATUS_NORMAL;
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] In\n");
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] In \n");
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] Speed = %f\n", Speed);
if (Speed >= -1 && Speed <= 0)
{
m_JogDriveSpeed[3][4] = static_cast<int>(fabs(Speed * m_Jog_Auto_Focus));
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] m_Jog_SpeedZ[3][4] = %d\n", m_JogDriveSpeed[3][4]);
}
else
{
if (1 == m_iSpeedType)
{
//m_JogDriveSpeed[3][4] = Speed / (m_Resolution[3] * 50);
m_JogDriveSpeed[3][4] = Speed;
m_Jog_Auto_Focus = Speed;
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] m_Jog_Auto_Focus= %f\n", m_Jog_Auto_Focus);
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] m_iSpeedType=1, m_Jog_SpeedZ[3][4] = %d\n", m_JogDriveSpeed[3][4]);
}
else
{
m_JogDriveSpeed[3][4] = Speed;
// 正常这里要设置z轴的速度
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] 设置Z轴定位速度 %f\n", m_Jog_Auto_Focus);
double Z_SetmotionParam[5] = {
m_Jog_Auto_Focus, //速度
m_Jog_Auto_Focus * 10 ,//加速度
m_Jog_Auto_Focus * 10, //减速度
m_Jog_Auto_Focus * 100,//加加速度
m_Jog_Auto_Focus * 100 //减减速度
};
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] m_JogDriveSpeed[3][4] = %d\n", m_JogDriveSpeed[3][4]);
}
}
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] Out\n");
SetSingleAxisMotionParams(ACSAxisNumbers[2], Z_SetmotionParam);//设置Z轴定位速度
m_SetPotion_DriveSpeed[ACSAxisNumbers[2]] = Z_SetmotionParam[0]; //记录Z轴速度
g_pLogger->SendAndFlushWithTime(L"[SetFocusSpeed] Out \n");
return rStatus;
}
+6 -1
View File
@@ -420,7 +420,7 @@ public:
int m_JogDecLine[5][5];
int m_JogAccCurve[5][5];
int m_JogDecCurve[5][5];
int m_Jog_Auto_Focus; //变焦使用的速度
double m_Jog_Auto_Focus; //变焦使用的速度
int m_LogIsOpen[5]; //是否打开记录,0为打开,非0为关闭
unsigned int m_precisionCount[5]; //回家误差脉冲个数
@@ -579,6 +579,11 @@ public:
CPSerial m_SO7_Serial;
DWORD m_WriteByte;
int IS_DEBUG; //是否启用调试模式
BOOL Send_Command(int com, const char* _SendData, DWORD _SendDataLength);
BOOL Send_Command(int com, const char* _SendData, DWORD SendDataLength, int expectType);// 带期望返回值的发送命令
BOOL Receive_Data();
+2 -2
View File
@@ -12,5 +12,5 @@
#define HSI_VERSION_REVNUM
#define HSI_VERSION_BUILD_DATE _T(__DATE__ )
#define HSI_VERSION_BUILD_TIME _T(__TIME__ )
#define HSI_FILE_DESCRIPTION "2025.02.20 / 16:04 "
#define HSI_FILE_CSDESCRIPTION _T("2025.02.20 / 16:04 ")
#define HSI_FILE_DESCRIPTION "2025.03.03 / 15:05 "
#define HSI_FILE_CSDESCRIPTION _T("2025.03.03 / 15:05 ")
+10
View File
@@ -203,6 +203,12 @@
<Compile Include="MainFrom.Designer.cs">
<DependentUpon>MainFrom.cs</DependentUpon>
</Compile>
<Compile Include="Motion\MonitorForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Motion\MonitorForm.Designer.cs">
<DependentUpon>MonitorForm.cs</DependentUpon>
</Compile>
<Compile Include="Motion\DemoShow.cs">
<SubType>Form</SubType>
</Compile>
@@ -235,6 +241,9 @@
<SubType>Designer</SubType>
<LastGenOutput>MainFrom1.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Motion\MonitorForm.resx">
<DependentUpon>MonitorForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Motion\DemoShow.resx">
<DependentUpon>DemoShow.cs</DependentUpon>
</EmbeddedResource>
@@ -308,6 +317,7 @@
<None Include="Resources\home.png" />
<None Include="Resources\etalon.png" />
<None Include="Resources\start.png" />
<None Include="Resources\speed.png" />
<Content Include="SharpGL.ico" />
<Content Include="SharpGL.png" />
</ItemGroup>
+22 -1
View File
@@ -62,6 +62,8 @@
this.rtb_stop = new Telerik.WinControls.UI.RadButtonElement();
this.radRibbonBarGroup9 = new Telerik.WinControls.UI.RadRibbonBarGroup();
this.rtb_etalon = new Telerik.WinControls.UI.RadButtonElement();
this.radRibbonBarGroup10 = new Telerik.WinControls.UI.RadRibbonBarGroup();
this.rtb_monitor = new Telerik.WinControls.UI.RadButtonElement();
this.ribbonTab2 = new Telerik.WinControls.UI.RibbonTab();
this.radRibbonBarGroup2 = new Telerik.WinControls.UI.RadRibbonBarGroup();
this.rtb_about = new Telerik.WinControls.UI.RadButtonElement();
@@ -221,7 +223,8 @@
this.radRibbonBarGroup6,
this.radRibbonBarGroup8,
this.radRibbonBarGroup7,
this.radRibbonBarGroup9});
this.radRibbonBarGroup9,
this.radRibbonBarGroup10});
this.ribbonTab1.Name = "ribbonTab1";
this.ribbonTab1.Text = "常用";
this.ribbonTab1.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault;
@@ -450,6 +453,22 @@
this.rtb_etalon.Text = "";
this.rtb_etalon.Click += new System.EventHandler(this.rtb_etalon_Click);
//
// radRibbonBarGroup10
//
this.radRibbonBarGroup10.Items.AddRange(new Telerik.WinControls.RadItem[] {
this.rtb_monitor});
this.radRibbonBarGroup10.Name = "radRibbonBarGroup10";
this.radRibbonBarGroup10.Text = "速度监控";
//
// rtb_monitor
//
this.rtb_monitor.AutoSize = false;
this.rtb_monitor.Bounds = new System.Drawing.Rectangle(0, 0, 66, 75);
this.rtb_monitor.Image = global::HexcalMC.Properties.Resources.speed;
this.rtb_monitor.Name = "rtb_monitor";
this.rtb_monitor.Text = "";
this.rtb_monitor.Click += new System.EventHandler(this.rtb_monitor_Click);
//
// ribbonTab2
//
this.ribbonTab2.AutoEllipsis = false;
@@ -1525,5 +1544,7 @@
private Telerik.WinControls.UI.RadButtonElement rtb_etalon;
private System.Windows.Forms.RadioButton rdoTCP;
private System.Windows.Forms.RadioButton rdoSimu;
private Telerik.WinControls.UI.RadRibbonBarGroup radRibbonBarGroup10;
private Telerik.WinControls.UI.RadButtonElement rtb_monitor;
}
}
+29 -3
View File
@@ -1542,11 +1542,37 @@ namespace HexcalMC
}
}
#endregion ACS平台相关
private void rtb_monitor_Click(object sender, EventArgs e)
{
DebugDfn.AddLogText("监控界面");
//判断通讯对象是否存在
if (_acs == null || !_acs.IsConnected)
{
DebugDfn.AddLogText("未建立与运动平台通讯,请在主界面先建立通讯");
#region
// 在合适的位置调用 MessageBox.Show() 方法
MessageBox.Show(
"未建立与运动平台通讯,请在主界面先建立通讯",
"提示",
MessageBoxButtons.OK,
MessageBoxIcon.Information
);
private void btn_motion_Click(object sender, EventArgs e)
return;
}
else
{
MonitorForm monitorForm = new MonitorForm(this);
monitorForm.Show();
}
}
#endregion ACS平台相关
#region
private void btn_motion_Click(object sender, EventArgs e)
{
//判断通讯对象是否存在
if (_acs == null || !_acs.IsConnected)
+95
View File
@@ -0,0 +1,95 @@
namespace HexcalMC
{
partial class MonitorForm
{
/// <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(MonitorForm));
this.formsPlot1 = new ScottPlot.FormsPlot();
this.btn_etalon_import = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.dataTimer = new System.Windows.Forms.Timer(this.components);
this.SuspendLayout();
//
// formsPlot1
//
this.formsPlot1.Location = new System.Drawing.Point(134, 29);
this.formsPlot1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.formsPlot1.Name = "formsPlot1";
this.formsPlot1.Size = new System.Drawing.Size(863, 580);
this.formsPlot1.TabIndex = 0;
//
// btn_etalon_import
//
this.btn_etalon_import.Location = new System.Drawing.Point(12, 92);
this.btn_etalon_import.Name = "btn_etalon_import";
this.btn_etalon_import.Size = new System.Drawing.Size(102, 30);
this.btn_etalon_import.TabIndex = 44;
this.btn_etalon_import.Text = "开始监控";
this.btn_etalon_import.UseVisualStyleBackColor = true;
this.btn_etalon_import.Click += new System.EventHandler(this.btn_etalon_import_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(12, 156);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(102, 30);
this.button1.TabIndex = 45;
this.button1.Text = "停止监控";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// dataTimer
//
this.dataTimer.Interval = 500;
this.dataTimer.Tick += new System.EventHandler(this.dataTimer_Tick);
//
// MonitorForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1018, 620);
this.Controls.Add(this.button1);
this.Controls.Add(this.btn_etalon_import);
this.Controls.Add(this.formsPlot1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "MonitorForm";
this.Text = "状态监控";
this.ResumeLayout(false);
}
#endregion
private ScottPlot.FormsPlot formsPlot1;
private System.Windows.Forms.Button btn_etalon_import;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Timer dataTimer;
}
}
+120
View File
@@ -0,0 +1,120 @@
using ACS.SPiiPlusNET;
using HexcalMC.Base;
using ScottPlot.Renderable;
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.Timers;
using System.Windows.Forms;
using System.Windows.Markup;
using Telerik.WinControls.UI;
using static ScottPlot.Generate;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Rebar;
namespace HexcalMC
{
public partial class MonitorForm : System.Windows.Forms.Form
{
private readonly MainFrom mainFrom;
private readonly Api _acs; //ACS控制器
private double[] dataX; // X轴数据(时间戳)
private double[] dataY; // Y轴数据(动态值)
private int dataLength = 200; // 显示的数据点数量‌:ml-citation{ref="4,5" data="citationList"}
private Random rand = new Random();
public MonitorForm(MainFrom _mainFrom)
{
InitializeComponent();
mainFrom = _mainFrom;
this._acs = _mainFrom._acs;
this.MaximizeBox = false;
this.MinimizeBox = false;
InitializePlot();
}
// 初始化图表
private void InitializePlot()
{
// 初始化数据数组
dataX = new double[dataLength];
dataY = new double[dataLength];
// 填充初始数据(示例为随机值)
for (int i = 0; i < dataLength; i++)
{
dataX[i] = System.DateTime.Now.AddSeconds(-dataLength + i).ToOADate();
dataY[i] = rand.NextDouble() * 100;
}
// 绘制初始曲线
formsPlot1.Plot.AddScatter(dataX, dataY);
formsPlot1.Plot.XAxis.DateTimeFormat(true); // X轴显示为时间格式‌:ml-citation{ref="3" data="citationList"}
formsPlot1.Plot.XLabel("时间");
formsPlot1.Plot.YLabel("数值");
formsPlot1.Plot.Title("Z轴速度-实时动态图");
formsPlot1.Refresh();
}
// 定时器事件:更新数据并刷新图表
private void dataTimer_Tick(object sender, EventArgs e)
{
// 生成新数据(模拟实时数据)
//double newValue = rand.NextDouble() * 100;
double newValue = GetSpeed(8);
DebugDfn.AddLogText("newValue:" + newValue);
// 数据滚动更新:移除旧数据,添加新数据‌:ml-citation{ref="4,5" data="citationList"}
Array.Copy(dataY, 1, dataY, 0, dataY.Length - 1);
dataY[dataY.Length - 1] = newValue;
// 更新时间戳
Array.Copy(dataX, 1, dataX, 0, dataX.Length - 1);
dataX[dataX.Length - 1] = System.DateTime.Now.ToOADate();
// 在UI线程中更新图表
formsPlot1.Invoke((MethodInvoker)delegate
{
formsPlot1.Plot.Clear();
formsPlot1.Plot.AddScatter(dataX, dataY);
formsPlot1.Refresh();
});
}
private double GetSpeed(int axis)
{
//判断对象是否为空
if (_acs == null)
{
return 0;
}
// 获取当前速度
return _acs.GetRVelocity((ACS.SPiiPlusNET.Axis)axis);
}
private void btn_etalon_import_Click(object sender, EventArgs e)
{
//启动定时器刷新
dataTimer.Start();
}
private void button1_Click(object sender, EventArgs e)
{
//停止定时器刷新
dataTimer.Stop();
}
}
}
+203
View File
@@ -0,0 +1,203 @@
<?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="dataTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</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>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z
uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y
u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY
urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA
AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA
AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ
pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4
ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/
dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7
bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy
Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW
CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC
df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW
CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL
jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp
OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL
jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC
df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC
dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC
dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA
AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om
Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA
AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B
fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW
CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY
uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW
CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY
uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865
YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb
Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC
df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch
Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE
fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/
b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA
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
f//wAH///AB///+Af///wH///+B////4f/8=
</value>
</data>
</root>
+10
View File
@@ -210,6 +210,16 @@ namespace HexcalMC.Properties {
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap speed {
get {
object obj = ResourceManager.GetObject("speed", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
+18 -15
View File
@@ -118,6 +118,9 @@
<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="stop" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\stop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="about" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\about.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -130,11 +133,11 @@
<data name="On" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\On.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="HexagonNew" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\HexagonNew.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="demo_show" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\demo_show.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="quick_location_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\quick_location_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="start" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\start.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mothion_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\mothion_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -142,9 +145,6 @@
<data name="Hexagon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Hexagon.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="help" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\help.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="quick_location" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\quick_location.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -154,19 +154,22 @@
<data name="demo_show_128" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\demo_show_128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Off" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Off.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="HexagonNew" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\HexagonNew.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="stop" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\stop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="quick_location_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\quick_location_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="home" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\home.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="demo_show" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\demo_show.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="help" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\help.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="start" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\start.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="Off" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Off.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="speed" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\speed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
+1 -1
View File
@@ -21,7 +21,7 @@
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>o9GBKbn6bHl5Tbw9WSRdf0fjMgTcBKZwOi2zbjSGZL8=</dsig:DigestValue>
<dsig:DigestValue>kw+hFfwnop75FYiMm+CkPl/Ui8EpkT8BuDrRnaok1W0=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
Binary file not shown.
+2 -2
View File
@@ -55,14 +55,14 @@
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="HexcalMC.exe" size="512000">
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="HexcalMC.exe" size="521216">
<assemblyIdentity name="HexcalMC" version="0.0.3.0" language="neutral" processorArchitecture="amd64" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>f9lPz4efLHPXDVjq6WbZBlYqubnq7d52jUr55F7l9wk=</dsig:DigestValue>
<dsig:DigestValue>5H0iiPDRd1YOihJPwyJD4tzIp7TNDn1eXdVNt91nqVg=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
Binary file not shown.
Binary file not shown.