| .. | .. |
|---|
| 11 | 11 | import 'package:path_provider/path_provider.dart' as pp; |
|---|
| 12 | 12 | import 'package:mqtt_client/mqtt_client.dart'; |
|---|
| 13 | 13 | import 'package:mqtt_client/mqtt_server_client.dart'; |
|---|
| 14 | +import 'package:typed_data/typed_data.dart'; |
|---|
| 14 | 15 | import 'package:shared_preferences/shared_preferences.dart'; |
|---|
| 15 | 16 | import 'package:uuid/uuid.dart'; |
|---|
| 16 | 17 | |
|---|
| .. | .. |
|---|
| 665 | 666 | /// Current timestamp in milliseconds. |
|---|
| 666 | 667 | int _now() => DateTime.now().millisecondsSinceEpoch; |
|---|
| 667 | 668 | |
|---|
| 669 | + /// Publish raw bytes to a topic. Used by TraceService for log streaming. |
|---|
| 670 | + void publishRaw(String topic, Uint8Buffer payload, MqttQos qos) { |
|---|
| 671 | + final client = _client; |
|---|
| 672 | + if (client == null || client.connectionStatus?.state != MqttConnectionState.connected) return; |
|---|
| 673 | + try { |
|---|
| 674 | + client.publishMessage(topic, qos, payload); |
|---|
| 675 | + } catch (_) {} |
|---|
| 676 | + } |
|---|
| 677 | + |
|---|
| 668 | 678 | /// Publish a JSON payload to an MQTT topic. |
|---|
| 669 | 679 | void _publish(String topic, Map<String, dynamic> payload, MqttQos qos) { |
|---|
| 670 | 680 | final client = _client; |
|---|