diff --git a/app/lib/interfaces/screens/track_mqtt_screen.dart b/app/lib/interfaces/screens/track_mqtt_screen.dart index 1fa0bd8..99aaae6 100644 --- a/app/lib/interfaces/screens/track_mqtt_screen.dart +++ b/app/lib/interfaces/screens/track_mqtt_screen.dart @@ -41,14 +41,40 @@ class _TrackMQTTScreenState extends State { 'CONNECTED: ${widget.client.connectionStatus!.state == MqttConnectionState.connected}'), Text( 'MESSAGES: ${widget.client.connectionStatus!.state == MqttConnectionState.connected}'), - StreamBuilder( + StreamBuilder( stream: widget.client.published, builder: (context, snapshot) { + MqttPublishMessage? message = snapshot.data; + + String messageTopic = message?.variableHeader?.topicName ?? ''; + + print(message?.variableHeader?.topicName); + + ///PARSING INFO + if (messageTopic == widget.mqttService.topicsDevice[0]) { + debugPrint(widget.mqttService.topicsDevice[0]); + print(String.fromCharCodes(snapshot.data!.payload.message)); + } else if (messageTopic == widget.mqttService.topicsDevice[1]) { + debugPrint(widget.mqttService.topicsDevice[1]); + print(String.fromCharCodes(snapshot.data!.payload.message)); + } else if (messageTopic == widget.mqttService.topicsDevice[2]) { + debugPrint(widget.mqttService.topicsDevice[2]); + print(String.fromCharCodes(snapshot.data!.payload.message)); + } else if (messageTopic == widget.mqttService.topicsDevice[3]) { + debugPrint(widget.mqttService.topicsDevice[3]); + print(String.fromCharCodes(snapshot.data!.payload.message)); + } else if (messageTopic == widget.mqttService.topicsDevice[4]) { + debugPrint(widget.mqttService.topicsDevice[4]); + print(String.fromCharCodes(snapshot.data!.payload.message)); + } else { + debugPrint("NOT FOUND MATCHING!"); + } + return Column( children: [ Text( 'Topic: ${snapshot.data?.variableHeader?.topicName}\nMessage: ${snapshot.data?.payload.message != null ? String.fromCharCodes(snapshot.data!.payload.message) : 'ND'}\n'), - Row( + /* Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ GestureDetector( @@ -101,7 +127,7 @@ class _TrackMQTTScreenState extends State { ), ), ], - ), + ),*/ ], ); }), @@ -111,6 +137,8 @@ class _TrackMQTTScreenState extends State { widget.mqttService.unsubscribeToAllTopic(); widget.mqttService.disconnect(); + + Navigator.of(context).pop(); }), ], ); diff --git a/app/lib/interfaces/screens/track_screen.dart b/app/lib/interfaces/screens/track_screen.dart index ca6f93c..3f72500 100644 --- a/app/lib/interfaces/screens/track_screen.dart +++ b/app/lib/interfaces/screens/track_screen.dart @@ -337,6 +337,8 @@ class _TrackScreenState extends State { child: CupertinoButton.filled( child: const Text('CONNECT TO MQTT'), onPressed: () async { + EasyLoading.show(); + client = MqttServerClient(serverController.text, ''); mqttService = MQTTService(client, deviceIdController.text); @@ -354,6 +356,8 @@ class _TrackScreenState extends State { mqttService.subscribeToAllTopic(); } + EasyLoading.dismiss(); + await UnitsSystem.loadFromSettings().then( (unitsSystem) => Navigator.of(context).push( MaterialPageRoute(builder: (context) { diff --git a/app/lib/services/mqtt_service.dart b/app/lib/services/mqtt_service.dart index b5cfad6..14029cb 100644 --- a/app/lib/services/mqtt_service.dart +++ b/app/lib/services/mqtt_service.dart @@ -1,26 +1,18 @@ import 'imports.dart'; -enum TopicDevice { - SYSTEM, - GPS_POSITION, - GPS_NAVIGATION, - MPU_ACCELERATION, - MPU_GYROSCOPE -} - class MQTTService { final MqttServerClient client; final String deviceId; MQTTService(this.client, this.deviceId); ///TOPICS - late List topicsDevice = [ - '$deviceId/SYSTEM', - '$deviceId/GPS_POSITION', - '$deviceId/GPS_NAVIGATION', - '$deviceId/MPU_ACCELERATION', - '$deviceId/MPU_GYROSCOPE' - ]; + List get topicsDevice => [ + '$deviceId/SYSTEM', + '$deviceId/GPS_POSITION', + '$deviceId/GPS_NAVIGATION', + '$deviceId/MPU_ACCELERATION', + '$deviceId/MPU_GYROSCOPE' + ]; String topicsPath(String topic) => '$deviceId/$topic'; diff --git a/app/pubspec.yaml b/app/pubspec.yaml index ffe5017..62347d8 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -17,7 +17,7 @@ dependencies: provider: ^6.0.5 path_provider: ^2.0.12 uuid: ^3.0.7 - syncfusion_flutter_maps: ^20.4.50 + syncfusion_flutter_maps: ^20.4.51 file_picker: ^5.2.5 http: ^0.13.5 flutter_libserialport: ^0.3.0