From ec0a9c6ebc4bd129885393b06fb4c87a686f1eac Mon Sep 17 00:00:00 2001 From: liyi Date: Mon, 2 Dec 2024 17:19:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=B0=83=E6=95=B4=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E4=B8=AD=E7=BB=A7=E5=8D=8F=E8=AE=AE=E4=B8=AD=E7=9A=84=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=E7=AD=BE=E5=90=8D=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/login/login/starLock_login_page.dart | 1 - lib/talk/startChart/entity/scp_message.dart | 36 ++++++++++++--------- lib/talk/startChart/start_chart_manage.dart | 3 +- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/lib/login/login/starLock_login_page.dart b/lib/login/login/starLock_login_page.dart index 701eddc9..9c982a13 100755 --- a/lib/login/login/starLock_login_page.dart +++ b/lib/login/login/starLock_login_page.dart @@ -247,7 +247,6 @@ class _StarLockLoginPageState extends State { ToPeerId: '3phX8Ng2cZHz5NtP8xAf6nYy2z1BYytoejgjoHrWMGhH'); }, ), - SizedBox(height: 50.w), Row( mainAxisAlignment: MainAxisAlignment.center, diff --git a/lib/talk/startChart/entity/scp_message.dart b/lib/talk/startChart/entity/scp_message.dart index fe3bd152..68d805b5 100644 --- a/lib/talk/startChart/entity/scp_message.dart +++ b/lib/talk/startChart/entity/scp_message.dart @@ -236,20 +236,25 @@ class ScpMessage { } // Payload (字符串,转换为字节) - if (message.PayloadLength != null && - bytes.length - offset >= message.PayloadLength!) { - message.Payload = - utf8.decode(bytes.sublist(offset, offset + message.PayloadLength!)); - offset += message.PayloadLength!; - } else { - throw FormatException("Invalid Payload or PayloadLength"); - } + // if (message.PayloadLength != null && + // bytes.length - offset >= message.PayloadLength!) { + // message.Payload = + // utf8.decode(bytes.sublist(offset, offset + message.PayloadLength!)); + // offset += message.PayloadLength!; + // } else { + // throw FormatException("Invalid Payload or PayloadLength"); + // } + + // 打印解析后的 PayloadLength + print('Parsed PayloadLength: ${message.PayloadLength}'); // 解析Payload - // 解析Payload - if (message.PayloadType == 110) { // 假设110表示HeartbeatResponse类型 - if (message.PayloadLength != null && bytes.length - offset >= message.PayloadLength!) { - final payloadBytes = bytes.sublist(offset, offset + message.PayloadLength!); + if (message.PayloadType == PayloadTypeConstant.heartbeat) { + // 假设110表示HeartbeatResponse类型 + if (message.PayloadLength != null && + bytes.length - offset >= message.PayloadLength!) { + final payloadBytes = + bytes.sublist(offset, offset + message.PayloadLength!); message.Payload = HeartbeatResponse.deserialize(payloadBytes); offset += message.PayloadLength!; } else { @@ -257,15 +262,16 @@ class ScpMessage { } } else { // 处理其他类型的Payload - if (message.PayloadLength != null && bytes.length - offset >= message.PayloadLength!) { - message.Payload = utf8.decode(bytes.sublist(offset, offset + message.PayloadLength!)); + if (message.PayloadLength != null && + bytes.length - offset >= message.PayloadLength!) { + message.Payload = + utf8.decode(bytes.sublist(offset, offset + message.PayloadLength!)); offset += message.PayloadLength!; } else { throw FormatException("Invalid Payload or PayloadLength"); } } - // 验证PayloadCRC // if (message.Payload != null) { // var crcBytes = List.from(utf8.encode(message.Payload!)); diff --git a/lib/talk/startChart/start_chart_manage.dart b/lib/talk/startChart/start_chart_manage.dart index 9b060557..15efe208 100644 --- a/lib/talk/startChart/start_chart_manage.dart +++ b/lib/talk/startChart/start_chart_manage.dart @@ -139,8 +139,9 @@ class StartChartManage { try { _log(text: '收到消息---> 长度:${dg?.data?.length}, 数据:${dg?.data}'); if (dg?.data != null) { - final deserialize = ScpMessage.deserialize(dg!.data); _log(text: '=============${bytesToHex(dg!.data)}'); + final deserialize = ScpMessage.deserialize(dg!.data); + _log(text: 'Udp收到结构体数据---》$deserialize'); } } catch (e) {