From 129dc170365fa6417d1d35150c5bbd0d66962360 Mon Sep 17 00:00:00 2001 From: zqm Date: Wed, 29 Oct 2025 14:47:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=8F=AF=E8=A7=81=E5=85=89?= =?UTF-8?q?=E5=9B=BE=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Toprie/Toprie/Camera.Designer.cs | 42 +---- .../CS/Framework4.0/Toprie/Toprie/Camera.cs | 146 +----------------- .../Toprie/Toprie/DeviceManager.cs | 5 +- 3 files changed, 11 insertions(+), 182 deletions(-) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs index 12526d9..0e05154 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs @@ -62,12 +62,7 @@ namespace JoyD.Windows.CS.Toprie // this.imageModeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.thermalModeToolStripMenuItem, - this.visibleModeToolStripMenuItem, - this.fusionMode1ToolStripMenuItem, - this.fusionMode2ToolStripMenuItem, - this.fusionMode3ToolStripMenuItem, - this.fusionMode4ToolStripMenuItem, - this.fusionMode5ToolStripMenuItem}); + this.visibleModeToolStripMenuItem}); this.imageModeToolStripMenuItem.Name = "imageModeToolStripMenuItem"; this.imageModeToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.imageModeToolStripMenuItem.Text = "图像模式"; @@ -86,41 +81,6 @@ namespace JoyD.Windows.CS.Toprie this.visibleModeToolStripMenuItem.Text = "自然模式"; this.visibleModeToolStripMenuItem.Click += new System.EventHandler(this.visibleModeToolStripMenuItem_Click); // - // fusionMode1ToolStripMenuItem - // - this.fusionMode1ToolStripMenuItem.Name = "fusionMode1ToolStripMenuItem"; - this.fusionMode1ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.fusionMode1ToolStripMenuItem.Text = "融合模式1"; - this.fusionMode1ToolStripMenuItem.Click += new System.EventHandler(this.fusionMode1ToolStripMenuItem_Click); - // - // fusionMode2ToolStripMenuItem - // - this.fusionMode2ToolStripMenuItem.Name = "fusionMode2ToolStripMenuItem"; - this.fusionMode2ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.fusionMode2ToolStripMenuItem.Text = "融合模式2"; - this.fusionMode2ToolStripMenuItem.Click += new System.EventHandler(this.fusionMode2ToolStripMenuItem_Click); - // - // fusionMode3ToolStripMenuItem - // - this.fusionMode3ToolStripMenuItem.Name = "fusionMode3ToolStripMenuItem"; - this.fusionMode3ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.fusionMode3ToolStripMenuItem.Text = "融合模式3"; - this.fusionMode3ToolStripMenuItem.Click += new System.EventHandler(this.fusionMode3ToolStripMenuItem_Click); - // - // fusionMode4ToolStripMenuItem - // - this.fusionMode4ToolStripMenuItem.Name = "fusionMode4ToolStripMenuItem"; - this.fusionMode4ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.fusionMode4ToolStripMenuItem.Text = "融合模式4"; - this.fusionMode4ToolStripMenuItem.Click += new System.EventHandler(this.fusionMode4ToolStripMenuItem_Click); - // - // fusionMode5ToolStripMenuItem - // - this.fusionMode5ToolStripMenuItem.Name = "fusionMode5ToolStripMenuItem"; - this.fusionMode5ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.fusionMode5ToolStripMenuItem.Text = "融合模式5"; - this.fusionMode5ToolStripMenuItem.Click += new System.EventHandler(this.fusionMode5ToolStripMenuItem_Click); - // // colorModeToolStripMenuItem // this.colorModeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs index 1e6c7a2..aa49ab3 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs @@ -1031,35 +1031,14 @@ namespace JoyD.Windows.CS.Toprie // 更新视频模式菜单项的选中状态 try { - var currentMode = _deviceManager.CurrentVideoMode; - switch (currentMode) - { - case VideoMode.Infrared: - thermalModeToolStripMenuItem.Checked = true; - break; - case VideoMode.VisibleLight: - visibleModeToolStripMenuItem.Checked = true; - break; - case VideoMode.Fusion1: - fusionMode1ToolStripMenuItem.Checked = true; - break; - case VideoMode.Fusion2: - fusionMode2ToolStripMenuItem.Checked = true; - break; - case VideoMode.Fusion3: - fusionMode3ToolStripMenuItem.Checked = true; - break; - case VideoMode.Fusion4: - fusionMode4ToolStripMenuItem.Checked = true; - break; - case VideoMode.Fusion5: - fusionMode5ToolStripMenuItem.Checked = true; - break; - } + // 更改为使用ImageMode枚举 + var currentImageMode = _deviceManager.CurrentImageMode; + thermalModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Infrared; + visibleModeToolStripMenuItem.Checked = currentImageMode == ImageMode.Natural; } catch (Exception ex) { - Console.WriteLine("获取当前视频模式失败: " + ex.Message); + Console.WriteLine("获取当前图像模式失败: " + ex.Message); } } } @@ -1234,11 +1213,7 @@ namespace JoyD.Windows.CS.Toprie { try { - if (_deviceManager != null) - { - Console.WriteLine("切换到红外模式"); - _deviceManager.SetVideoMode(VideoMode.Infrared); - } + _deviceManager.SetImageMode(ImageMode.Infrared); } catch (Exception ex) { @@ -1247,18 +1222,11 @@ namespace JoyD.Windows.CS.Toprie } } - /// - /// 自然模式 - /// private void visibleModeToolStripMenuItem_Click(object sender, EventArgs e) { try { - if (_deviceManager != null) - { - Console.WriteLine("切换到自然模式"); - _deviceManager.SetVideoMode(VideoMode.VisibleLight); - } + _deviceManager.SetImageMode(ImageMode.Natural); } catch (Exception ex) { @@ -1267,106 +1235,6 @@ namespace JoyD.Windows.CS.Toprie } } - /// - /// 融合模式1 - /// - private void fusionMode1ToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - if (_deviceManager != null) - { - Console.WriteLine("切换到融合模式1"); - _deviceManager.SetVideoMode(VideoMode.Fusion1); - } - } - catch (Exception ex) - { - Console.WriteLine("切换到融合模式1失败: " + ex.Message); - ShowError("切换到融合模式1失败"); - } - } - - /// - /// 融合模式2 - /// - private void fusionMode2ToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - if (_deviceManager != null) - { - Console.WriteLine("切换到融合模式2"); - _deviceManager.SetVideoMode(VideoMode.Fusion2); - } - } - catch (Exception ex) - { - Console.WriteLine("切换到融合模式2失败: " + ex.Message); - ShowError("切换到融合模式2失败"); - } - } - - /// - /// 融合模式3 - /// - private void fusionMode3ToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - if (_deviceManager != null) - { - Console.WriteLine("切换到融合模式3"); - _deviceManager.SetVideoMode(VideoMode.Fusion3); - } - } - catch (Exception ex) - { - Console.WriteLine("切换到融合模式3失败: " + ex.Message); - ShowError("切换到融合模式3失败"); - } - } - - /// - /// 融合模式4 - /// - private void fusionMode4ToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - if (_deviceManager != null) - { - Console.WriteLine("切换到融合模式4"); - _deviceManager.SetVideoMode(VideoMode.Fusion4); - } - } - catch (Exception ex) - { - Console.WriteLine("切换到融合模式4失败: " + ex.Message); - ShowError("切换到融合模式4失败"); - } - } - - /// - /// 融合模式5 - /// - private void fusionMode5ToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - if (_deviceManager != null) - { - Console.WriteLine("切换到融合模式5"); - _deviceManager.SetVideoMode(VideoMode.Fusion5); - } - } - catch (Exception ex) - { - Console.WriteLine("切换到融合模式5失败: " + ex.Message); - ShowError("切换到融合模式5失败"); - } - } - #endregion /// diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/DeviceManager.cs b/Windows/CS/Framework4.0/Toprie/Toprie/DeviceManager.cs index 0decf21..127a96e 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/DeviceManager.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/DeviceManager.cs @@ -262,7 +262,7 @@ namespace JoyD.Windows.CS.Toprie } } private TcpClient _imageTcpClient; - private bool _isInfraredMode = true; + // 使用CurrentImageMode代替_isInfraredMode private static readonly object _logLock = new object(); #region 私有方法 @@ -1768,7 +1768,6 @@ namespace JoyD.Windows.CS.Toprie Console.WriteLine($"图像接收线程启动: 使用HTTP请求获取图像数据"); try { - string url = string.Format("http://{0}:8080{1}", DeviceIp, _isInfraredMode ? "/video/infrared.jpg" : "/video/optical.jpg"); while (_isReceivingImages) { // 确保连接状态正常 @@ -1778,6 +1777,8 @@ namespace JoyD.Windows.CS.Toprie Thread.Sleep(500); continue; } + // 根据当前图像模式构建URL,确保模式更改能实时生效 + string url = string.Format("http://{0}:8080{1}", DeviceIp, CurrentImageMode == ImageMode.Infrared ? "/video/infrared.jpg" : "/video/optical.jpg"); // 添加时间戳避免缓存 string timestampUrl = url + "?t=" + DateTime.Now.Ticks; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(timestampUrl);