feat(device): TX/RX 日志附加完整 JSON 字符串
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user