diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs
index 49d6ec0..cbd00b6 100644
--- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs
+++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs
@@ -58,6 +58,7 @@ namespace JoyD.Windows.CS.Toprie
this.imageModeToolStripMenuItem,
this.colorModeToolStripMenuItem,
this.toolStripSeparator1,
+ this.saveTemperatureToolStripMenuItem,
this.pauseDetectionToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(161, 100);
@@ -102,6 +103,13 @@ namespace JoyD.Windows.CS.Toprie
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(157, 6);
//
+ // saveTemperatureToolStripMenuItem
+ //
+ this.saveTemperatureToolStripMenuItem.Name = "saveTemperatureToolStripMenuItem";
+ this.saveTemperatureToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
+ this.saveTemperatureToolStripMenuItem.Text = "保存温度";
+ this.saveTemperatureToolStripMenuItem.Click += new System.EventHandler(this.SaveTemperatureToolStripMenuItem_Click);
+ //
// pauseDetectionToolStripMenuItem
//
this.pauseDetectionToolStripMenuItem.Name = "pauseDetectionToolStripMenuItem";
@@ -208,5 +216,6 @@ namespace JoyD.Windows.CS.Toprie
private System.Windows.Forms.ToolStripMenuItem fusionMode3ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem fusionMode4ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem fusionMode5ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem saveTemperatureToolStripMenuItem;
}
}
diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs
index da78af7..eaf39cf 100644
--- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs
+++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs
@@ -1685,5 +1685,85 @@ namespace JoyD.Windows.CS.Toprie
}
base.Dispose(disposing);
}
+
+ ///
+ /// 保存温度菜单项点击事件处理程序
+ ///
+ /// 事件发送者
+ /// 事件参数
+ private void SaveTemperatureToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ // 检查设备管理器是否初始化且设备是否已连接
+ if (_deviceManager == null || _deviceManager.ConnectionStatus != ConnectionStatus.Connected)
+ {
+ MessageBox.Show("设备未连接,请先连接设备后再保存温度数据。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+
+ // 使用SaveFileDialog让用户选择保存路径
+ SaveFileDialog saveFileDialog = new SaveFileDialog
+ {
+ Title = "保存温度数据",
+ Filter = "CSV文件 (*.csv)|*.csv|文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*",
+ DefaultExt = "csv",
+ FileName = $"温度数据_{DateTime.Now:yyyyMMdd_HHmmss}"
+ };
+
+ // 如果用户选择了文件路径
+ if (saveFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ // 获取当前温度数据
+ TemperatureData temperatureData = _deviceManager.GetCurrentTemperatureData();
+
+ if (temperatureData == null)
+ {
+ MessageBox.Show("未能获取温度数据,请稍后再试。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ // 保存温度数据到文件
+ using (StreamWriter writer = new StreamWriter(saveFileDialog.FileName))
+ {
+ // 写入文件头部信息
+ writer.WriteLine("# 温度数据文件");
+ writer.WriteLine($"# 生成时间: {DateTime.Now:yyyy-MM-dd HH:mm:ss}");
+ writer.WriteLine($"# 分辨率: {temperatureData.Width} x {temperatureData.Height}");
+ writer.WriteLine($"# 最高温度: {temperatureData.MaxTemperature:F2} °C");
+ writer.WriteLine($"# 最低温度: {temperatureData.MinTemperature:F2} °C");
+ writer.WriteLine($"# 平均温度: {temperatureData.AverageTemperature:F2} °C");
+ writer.WriteLine();
+ writer.WriteLine("# 温度数据矩阵 (单位: °C)");
+ writer.WriteLine();
+
+ // 写入温度数据矩阵
+ for (int i = 0; i < temperatureData.Height; i++)
+ {
+ StringBuilder lineBuilder = new StringBuilder();
+ for (int j = 0; j < temperatureData.Width; j++)
+ {
+ // 添加温度值,使用逗号分隔
+ lineBuilder.Append($"{temperatureData.Data[i, j]:F2}");
+ if (j < temperatureData.Width - 1)
+ {
+ lineBuilder.Append(",");
+ }
+ }
+ writer.WriteLine(lineBuilder.ToString());
+ }
+ }
+
+ // 显示保存成功消息
+ MessageBox.Show($"温度数据已成功保存到:\n{saveFileDialog.FileName}", "保存成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ catch (Exception ex)
+ {
+ // 显示错误消息
+ MessageBox.Show($"保存温度数据时发生错误:\n{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ Console.WriteLine($"保存温度数据异常: {ex.Message}\n{ex.StackTrace}");
+ }
+ }
}
}