diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs
index 8837758..a95b8be 100644
--- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs
+++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs
@@ -76,14 +76,14 @@ namespace JoyD.Windows.CS.Toprie
this.thermalModeToolStripMenuItem.Name = "thermalModeToolStripMenuItem";
this.thermalModeToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.thermalModeToolStripMenuItem.Text = "红外模式";
- this.thermalModeToolStripMenuItem.Click += new System.EventHandler(this.thermalModeToolStripMenuItem_Click);
+ this.thermalModeToolStripMenuItem.Click += new System.EventHandler(this.ThermalModeToolStripMenuItem_Click);
//
// visibleModeToolStripMenuItem
//
this.visibleModeToolStripMenuItem.Name = "visibleModeToolStripMenuItem";
this.visibleModeToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.visibleModeToolStripMenuItem.Text = "自然模式";
- this.visibleModeToolStripMenuItem.Click += new System.EventHandler(this.visibleModeToolStripMenuItem_Click);
+ this.visibleModeToolStripMenuItem.Click += new System.EventHandler(this.VisibleModeToolStripMenuItem_Click);
//
// colorModeToolStripMenuItem
//
@@ -107,7 +107,7 @@ namespace JoyD.Windows.CS.Toprie
this.pauseImageUpdateToolStripMenuItem.Name = "pauseImageUpdateToolStripMenuItem";
this.pauseImageUpdateToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
this.pauseImageUpdateToolStripMenuItem.Text = "暂停图像更新";
- this.pauseImageUpdateToolStripMenuItem.Click += new System.EventHandler(this.pauseImageUpdateToolStripMenuItem_Click);
+ this.pauseImageUpdateToolStripMenuItem.Click += new System.EventHandler(this.PauseImageUpdateToolStripMenuItem_Click);
this.colorModeToolStripMenuItem.Name = "colorModeToolStripMenuItem";
this.colorModeToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
this.colorModeToolStripMenuItem.Text = "色彩模式";
@@ -117,56 +117,56 @@ namespace JoyD.Windows.CS.Toprie
this.rainbowToolStripMenuItem.Name = "rainbowToolStripMenuItem";
this.rainbowToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.rainbowToolStripMenuItem.Text = "彩虹";
- this.rainbowToolStripMenuItem.Click += new System.EventHandler(this.rainbowToolStripMenuItem_Click);
+ this.rainbowToolStripMenuItem.Click += new System.EventHandler(this.RainbowToolStripMenuItem_Click);
//
// ironRedToolStripMenuItem
//
this.ironRedToolStripMenuItem.Name = "ironRedToolStripMenuItem";
this.ironRedToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.ironRedToolStripMenuItem.Text = "铁红";
- this.ironRedToolStripMenuItem.Click += new System.EventHandler(this.ironRedToolStripMenuItem_Click);
+ this.ironRedToolStripMenuItem.Click += new System.EventHandler(this.IronRedToolStripMenuItem_Click);
//
// lavaToolStripMenuItem
//
this.lavaToolStripMenuItem.Name = "lavaToolStripMenuItem";
this.lavaToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.lavaToolStripMenuItem.Text = "熔岩";
- this.lavaToolStripMenuItem.Click += new System.EventHandler(this.lavaToolStripMenuItem_Click);
+ this.lavaToolStripMenuItem.Click += new System.EventHandler(this.LavaToolStripMenuItem_Click);
//
// ironGrayToolStripMenuItem
//
this.ironGrayToolStripMenuItem.Name = "ironGrayToolStripMenuItem";
this.ironGrayToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.ironGrayToolStripMenuItem.Text = "铁灰";
- this.ironGrayToolStripMenuItem.Click += new System.EventHandler(this.ironGrayToolStripMenuItem_Click);
+ this.ironGrayToolStripMenuItem.Click += new System.EventHandler(this.IronGrayToolStripMenuItem_Click);
//
// redHotToolStripMenuItem
//
this.redHotToolStripMenuItem.Name = "redHotToolStripMenuItem";
this.redHotToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.redHotToolStripMenuItem.Text = "红热";
- this.redHotToolStripMenuItem.Click += new System.EventHandler(this.redHotToolStripMenuItem_Click);
+ this.redHotToolStripMenuItem.Click += new System.EventHandler(this.RedHotToolStripMenuItem_Click);
//
// rainbow2ToolStripMenuItem
//
this.rainbow2ToolStripMenuItem.Name = "rainbow2ToolStripMenuItem";
this.rainbow2ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.rainbow2ToolStripMenuItem.Text = "彩虹2";
- this.rainbow2ToolStripMenuItem.Click += new System.EventHandler(this.rainbow2ToolStripMenuItem_Click);
+ this.rainbow2ToolStripMenuItem.Click += new System.EventHandler(this.Rainbow2ToolStripMenuItem_Click);
//
// whiteHotToolStripMenuItem
//
this.whiteHotToolStripMenuItem.Name = "whiteHotToolStripMenuItem";
this.whiteHotToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.whiteHotToolStripMenuItem.Text = "白热";
- this.whiteHotToolStripMenuItem.Click += new System.EventHandler(this.whiteHotToolStripMenuItem_Click);
+ this.whiteHotToolStripMenuItem.Click += new System.EventHandler(this.WhiteHotToolStripMenuItem_Click);
//
// blackHotToolStripMenuItem
//
this.blackHotToolStripMenuItem.Name = "blackHotToolStripMenuItem";
this.blackHotToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.blackHotToolStripMenuItem.Text = "黑热";
- this.blackHotToolStripMenuItem.Click += new System.EventHandler(this.blackHotToolStripMenuItem_Click);
+ this.blackHotToolStripMenuItem.Click += new System.EventHandler(this.BlackHotToolStripMenuItem_Click);
//
// 已移除蓝红菜单项(不在SDK的8种标准色板中)
//
diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs
index cfe5736..5150128 100644
--- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs
+++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs
@@ -19,6 +19,9 @@ namespace JoyD.Windows.CS.Toprie
// 是否正在接收图像
private bool _isReceivingImage = false;
+ // 是否暂停图像更新
+ private bool _isImageUpdatePaused = false;
+
// 项目路径,用于数据文件的存取
private string _projectPath = "";
@@ -30,18 +33,18 @@ namespace JoyD.Windows.CS.Toprie
[DefaultValue("")]
public string ProjectPath
{
- get { return _projectPath; }
+ get { return _projectPath; }
set
{
// 只有当值发生变化时才进行同步
if (_projectPath != value)
- {
- _projectPath = value;
+ {
+ _projectPath = value;
// 如果DeviceManager已经初始化,则同步更新其ProjectPath属性
- if (_deviceManager != null)
- {
- _deviceManager.ProjectPath = _projectPath;
- }
+ if (_deviceManager != null)
+ {
+ _deviceManager.ProjectPath = _projectPath;
+ }
}
}
}
@@ -57,6 +60,44 @@ namespace JoyD.Windows.CS.Toprie
DeviceManager.IsDesignMode = DesignMode;
Console.WriteLine($"相机控件设计模式状态已更新: {DesignMode}");
}
+
+ ///
+ /// 暂停/恢复图像更新菜单项点击事件处理
+ ///
+ private void PauseImageUpdateToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (DesignMode) return;
+
+ try
+ {
+ // 切换暂停状态
+ _isImageUpdatePaused = !_isImageUpdatePaused;
+
+ if (_isImageUpdatePaused)
+ {
+ pauseImageUpdateToolStripMenuItem.Text = "恢复图像更新";
+ pauseImageUpdateToolStripMenuItem.Checked = true;
+ Console.WriteLine("图像更新已暂停");
+ }
+ else
+ {
+ pauseImageUpdateToolStripMenuItem.Text = "暂停图像更新";
+ pauseImageUpdateToolStripMenuItem.Checked = false;
+ Console.WriteLine("图像更新已恢复");
+
+ // 恢复时,立即停止并重新开始图像接收,确保获取最新图像
+ if (_isReceivingImage && _deviceManager != null)
+ {
+ _deviceManager.StopImageReceiving();
+ _deviceManager.StartImageReceiving();
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine($"处理暂停/恢复图像更新时出错: {ex.Message}");
+ }
+ }
public Camera()
{
@@ -287,6 +328,9 @@ namespace JoyD.Windows.CS.Toprie
///
private void DeviceManager_ImageReceived(object sender, ImageReceivedEventArgs e)
{
+ // 如果图像更新已暂停,则不更新UI
+ if (_isImageUpdatePaused)
+ return;
if (DesignMode) return;
Image image = null;
try
@@ -1018,6 +1062,17 @@ namespace JoyD.Windows.CS.Toprie
///
private void ContextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{
+ // 更新暂停菜单项的文本和状态
+ if (_isImageUpdatePaused)
+ {
+ pauseImageUpdateToolStripMenuItem.Text = "恢复图像更新";
+ pauseImageUpdateToolStripMenuItem.Checked = true;
+ }
+ else
+ {
+ pauseImageUpdateToolStripMenuItem.Text = "暂停图像更新";
+ pauseImageUpdateToolStripMenuItem.Checked = false;
+ }
if (DesignMode) return;
try
{
@@ -1047,7 +1102,7 @@ namespace JoyD.Windows.CS.Toprie
rainbow2ToolStripMenuItem.Checked = false;
// 尝试获取当前色彩模式并更新对应菜单项的选中状态
- if (_deviceManager != null && _deviceManager.ConnectionStatus == ConnectionStatus.Connected)
+ if (!_isImageUpdatePaused && _deviceManager != null && _deviceManager.ConnectionStatus == ConnectionStatus.Connected)
{
try
{
@@ -1113,7 +1168,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 白热色彩模式
///
- private void whiteHotToolStripMenuItem_Click(object sender, EventArgs e)
+ private void WhiteHotToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1132,7 +1187,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 黑热色彩模式
///
- private void blackHotToolStripMenuItem_Click(object sender, EventArgs e)
+ private void BlackHotToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1151,7 +1206,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 铁红色彩模式
///
- private void ironRedToolStripMenuItem_Click(object sender, EventArgs e)
+ private void IronRedToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1170,7 +1225,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 熔岩色彩模式
///
- private void lavaToolStripMenuItem_Click(object sender, EventArgs e)
+ private void LavaToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1189,7 +1244,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 彩虹色彩模式
///
- private void rainbowToolStripMenuItem_Click(object sender, EventArgs e)
+ private void RainbowToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1208,7 +1263,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 铁灰色彩模式
///
- private void ironGrayToolStripMenuItem_Click(object sender, EventArgs e)
+ private void IronGrayToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1227,7 +1282,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 红热色彩模式
///
- private void redHotToolStripMenuItem_Click(object sender, EventArgs e)
+ private void RedHotToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1246,7 +1301,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 彩虹2色彩模式
///
- private void rainbow2ToolStripMenuItem_Click(object sender, EventArgs e)
+ private void Rainbow2ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1269,7 +1324,7 @@ namespace JoyD.Windows.CS.Toprie
///
/// 红外模式
///
- private void thermalModeToolStripMenuItem_Click(object sender, EventArgs e)
+ private void ThermalModeToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@@ -1282,7 +1337,7 @@ namespace JoyD.Windows.CS.Toprie
}
}
- private void visibleModeToolStripMenuItem_Click(object sender, EventArgs e)
+ private void VisibleModeToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{