diff --git a/HSI_HexagonMI_EF3/HSI_Motion.cpp b/HSI_HexagonMI_EF3/HSI_Motion.cpp index f063a50..dfaf460 100644 --- a/HSI_HexagonMI_EF3/HSI_Motion.cpp +++ b/HSI_HexagonMI_EF3/HSI_Motion.cpp @@ -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(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; } diff --git a/HSI_HexagonMI_EF3/HSI_Motion.h b/HSI_HexagonMI_EF3/HSI_Motion.h index 1682aa9..754daa4 100644 --- a/HSI_HexagonMI_EF3/HSI_Motion.h +++ b/HSI_HexagonMI_EF3/HSI_Motion.h @@ -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(); diff --git a/HSI_HexagonMI_EF3/version.h b/HSI_HexagonMI_EF3/version.h index c1d5524..30a4db2 100644 --- a/HSI_HexagonMI_EF3/version.h +++ b/HSI_HexagonMI_EF3/version.h @@ -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 ") diff --git a/HSI_SEVENOCEAN_EF1_CsTest/bin/Debug/Config/EF3_Config.ini b/HSI_SEVENOCEAN_EF1_CsTest/bin/Debug/Config/EF3_Config.ini index 7e81bcf..b316dc1 100644 Binary files a/HSI_SEVENOCEAN_EF1_CsTest/bin/Debug/Config/EF3_Config.ini and b/HSI_SEVENOCEAN_EF1_CsTest/bin/Debug/Config/EF3_Config.ini differ diff --git a/HexcalMC/HexcalMC.csproj b/HexcalMC/HexcalMC.csproj index 9f7e1f7..dfff1eb 100644 --- a/HexcalMC/HexcalMC.csproj +++ b/HexcalMC/HexcalMC.csproj @@ -203,6 +203,12 @@ MainFrom.cs + + Form + + + MonitorForm.cs + Form @@ -235,6 +241,9 @@ Designer MainFrom1.Designer.cs + + MonitorForm.cs + DemoShow.cs @@ -308,6 +317,7 @@ + diff --git a/HexcalMC/MainFrom.Designer.cs b/HexcalMC/MainFrom.Designer.cs index 9149ec4..19eb2b3 100644 --- a/HexcalMC/MainFrom.Designer.cs +++ b/HexcalMC/MainFrom.Designer.cs @@ -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; } } diff --git a/HexcalMC/MainFrom.cs b/HexcalMC/MainFrom.cs index 08cfaab..28bc916 100644 --- a/HexcalMC/MainFrom.cs +++ b/HexcalMC/MainFrom.cs @@ -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) diff --git a/HexcalMC/Motion/MonitorForm.Designer.cs b/HexcalMC/Motion/MonitorForm.Designer.cs new file mode 100644 index 0000000..59b360d --- /dev/null +++ b/HexcalMC/Motion/MonitorForm.Designer.cs @@ -0,0 +1,95 @@ +namespace HexcalMC +{ + partial class MonitorForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + 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; + } +} \ No newline at end of file diff --git a/HexcalMC/Motion/MonitorForm.cs b/HexcalMC/Motion/MonitorForm.cs new file mode 100644 index 0000000..9cf9ad8 --- /dev/null +++ b/HexcalMC/Motion/MonitorForm.cs @@ -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(); + } + } +} \ No newline at end of file diff --git a/HexcalMC/Motion/MonitorForm.resx b/HexcalMC/Motion/MonitorForm.resx new file mode 100644 index 0000000..77a04ef --- /dev/null +++ b/HexcalMC/Motion/MonitorForm.resx @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 25 + + + + + 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= + + + \ No newline at end of file diff --git a/HexcalMC/Properties/Resources.Designer.cs b/HexcalMC/Properties/Resources.Designer.cs index 5370ee5..90b6da6 100644 --- a/HexcalMC/Properties/Resources.Designer.cs +++ b/HexcalMC/Properties/Resources.Designer.cs @@ -210,6 +210,16 @@ namespace HexcalMC.Properties { } } + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap speed { + get { + object obj = ResourceManager.GetObject("speed", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// diff --git a/HexcalMC/Properties/Resources.resx b/HexcalMC/Properties/Resources.resx index de6a0d2..70d8ea0 100644 --- a/HexcalMC/Properties/Resources.resx +++ b/HexcalMC/Properties/Resources.resx @@ -118,6 +118,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\stop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\about.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -130,11 +133,11 @@ ..\Images\On.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Images\HexagonNew.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\demo_show.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\quick_location_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\start.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\mothion_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -142,9 +145,6 @@ ..\Resources\Hexagon.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\help.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\quick_location.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -154,19 +154,22 @@ ..\Resources\demo_show_128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Images\Off.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Images\HexagonNew.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\stop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\quick_location_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\home.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\demo_show.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\help.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\start.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Images\Off.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\speed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/HexcalMC/bin/x64/Debug/HexcalMC.application b/HexcalMC/bin/x64/Debug/HexcalMC.application index 32c78f9..9d97852 100644 --- a/HexcalMC/bin/x64/Debug/HexcalMC.application +++ b/HexcalMC/bin/x64/Debug/HexcalMC.application @@ -21,7 +21,7 @@ - o9GBKbn6bHl5Tbw9WSRdf0fjMgTcBKZwOi2zbjSGZL8= + kw+hFfwnop75FYiMm+CkPl/Ui8EpkT8BuDrRnaok1W0= diff --git a/HexcalMC/bin/x64/Debug/HexcalMC.exe b/HexcalMC/bin/x64/Debug/HexcalMC.exe index 3c34584..18f02ff 100644 Binary files a/HexcalMC/bin/x64/Debug/HexcalMC.exe and b/HexcalMC/bin/x64/Debug/HexcalMC.exe differ diff --git a/HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest b/HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest index 43ede51..b169e22 100644 --- a/HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest +++ b/HexcalMC/bin/x64/Debug/HexcalMC.exe.manifest @@ -55,14 +55,14 @@ - + - f9lPz4efLHPXDVjq6WbZBlYqubnq7d52jUr55F7l9wk= + 5H0iiPDRd1YOihJPwyJD4tzIp7TNDn1eXdVNt91nqVg= diff --git a/HexcalMC/bin/x64/Debug/HexcalMC.pdb b/HexcalMC/bin/x64/Debug/HexcalMC.pdb index 6f0b378..59e4f5e 100644 Binary files a/HexcalMC/bin/x64/Debug/HexcalMC.pdb and b/HexcalMC/bin/x64/Debug/HexcalMC.pdb differ diff --git a/HexcalMC/bin/x64/Debug/app.publish/HexcalMC.exe b/HexcalMC/bin/x64/Debug/app.publish/HexcalMC.exe index 6f393c5..7ec9d39 100644 Binary files a/HexcalMC/bin/x64/Debug/app.publish/HexcalMC.exe and b/HexcalMC/bin/x64/Debug/app.publish/HexcalMC.exe differ