移除DeviceManager.cs中不必要的温度数据传输开始命令,优化TCP连接后的数据接收逻辑

This commit is contained in:
zqm
2025-11-04 10:46:16 +08:00
parent 43d77686c6
commit b47a8fd600
2 changed files with 14 additions and 47 deletions

View File

@@ -1224,12 +1224,8 @@ namespace JoyD.Windows.CS.Toprie
// 温度数据接收状态更新代码已移除,因为未被使用
// 发送开始温度数据传输的命令 - 修改为热像仪可能接受的格式
// 根据常见热像仪协议,尝试使用简单的命令格式
byte[] startCommand = Encoding.ASCII.GetBytes("start\r\n");
localStream.Write(startCommand, 0, startCommand.Length);
localStream.Flush();
Log("已发送开始温度数据传输命令: 'start\r\n'");
// 根据SDK文档建立TCP连接后不需要发送任何开始命令
Log("TCP连接已建立等待接收温度数据...");
}
catch (Exception ex)
{
@@ -1337,47 +1333,11 @@ namespace JoyD.Windows.CS.Toprie
// 跳出内层循环,回到外层循环重新建立连接
break;
}
// 如果连接有效但数据传输可能已停止,尝试重新发送开始命令
// 这是为了解决暂停后恢复时DataAvailable始终为false的问题
try
// 根据SDK文档建立TCP连接后不需要发送任何开始命令
// 从暂停状态恢复时,只需继续监听数据流即可
if (lastPaused && !isPaused)
{
// 发送开始温度数据传输的命令
byte[] startCommand = Encoding.ASCII.GetBytes("start_temp_transfer\r\n");
localStream.Write(startCommand, 0, startCommand.Length);
localStream.Flush();
// 只有在从暂停状态恢复时状态从true变为false的瞬间才记录日志
lock (_lockObject)
{
if (lastPaused && !_isTemperatureReceivingPaused)
{
Log("从暂停状态恢复,重新发送开始温度数据传输命令");
}
}
}
catch (Exception ex)
{
Log($"重新发送开始命令失败: {ex.Message}");
// 发送失败,可能连接已断开,需要重建连接
try
{
if (localStream != null)
{
localStream.Close();
localStream = null;
}
if (localTcpClient != null)
{
localTcpClient.Close();
localTcpClient = null;
}
}
catch (Exception closeEx)
{
Log($"关闭失败连接时发生异常: {closeEx.Message}");
}
// 跳出内层循环,回到外层循环重新建立连接
break;
Log("从暂停状态恢复,继续接收温度数据");
}
}