feat(device): TX/RX 日志附加完整 JSON 字符串

This commit is contained in:
Developer
2026-06-04 13:38:46 +08:00
parent 819889684f
commit e311d09d31
6 changed files with 368 additions and 7 deletions

View File

@@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:typed_data';
import 'serial_port_service.dart';
import 'device_log.dart';
import 'device_message.dart';
import 'json_protocol.dart';
@@ -77,10 +78,18 @@ class DeviceMessageService {
_emitError('写入失败:${message.type.wireName}');
return false;
}
DeviceLog.info(
'TX ${message.type.wireName} '
'id=${message.messageId} '
'ack=${message.ack ?? "-"} '
'needAck=${message.needAck} '
'data=${DeviceLog.summarizeData(message.data)}\n'
' json=${message.encode()}',
);
_messageCtrl.add(message);
return true;
} catch (e) {
_emitError('编码异常: $e');
_emitError('编码异常: $e', error: e);
return false;
}
}
@@ -104,7 +113,7 @@ class DeviceMessageService {
_stateSub?.cancel();
_rxSub = _serial.onData.listen(_onData);
_errorSub = _serial.onError.listen(_emitError);
_errorSub = _serial.onError.listen((msg) => _emitError(msg));
_stateSub = _serial.connectionStateChanges.listen((s) {
if (s == SerialConnectionState.disconnected) {
_protocol.reset();
@@ -129,6 +138,13 @@ class DeviceMessageService {
}
void _dispatch(DeviceMessage msg) {
DeviceLog.info(
'RX ${msg.type.wireName} '
'id=${msg.messageId} '
'ack=${msg.ack ?? "-"} '
'data=${DeviceLog.summarizeData(msg.data)}\n'
' json=${msg.encode()}',
);
_messageCtrl.add(msg);
final list = _handlers[msg.type];
if (list == null) return;
@@ -136,12 +152,18 @@ class DeviceMessageService {
try {
handler(msg);
} catch (e) {
_emitError('消息处理异常 (${msg.type.wireName}): $e');
_emitError('消息处理异常 (${msg.type.wireName}): $e', error: e);
DeviceLog.severe('消息处理异常 (${msg.type.wireName})', error: e);
}
}
}
void _emitError(String message) {
void _emitError(String message, {Object? error}) {
if (error != null) {
DeviceLog.warn(message, error: error);
} else {
DeviceLog.warn(message);
}
if (!_errorCtrl.isClosed) _errorCtrl.add(message);
}
}