移除DeviceManager.cs中不必要的温度数据传输开始命令,优化TCP连接后的数据接收逻辑
This commit is contained in:
@@ -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("从暂停状态恢复,继续接收温度数据");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user