添加保存温度菜单项及事件处理功能
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1685,5 +1685,85 @@ namespace JoyD.Windows.CS.Toprie
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存温度菜单项点击事件处理程序
|
||||
/// </summary>
|
||||
/// <param name="sender">事件发送者</param>
|
||||
/// <param name="e">事件参数</param>
|
||||
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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user