Skip to content

Commit

Permalink
Updates are now logged to console
Browse files Browse the repository at this point in the history
  • Loading branch information
TheFJcurve authored Jul 17, 2024
1 parent fe57eb9 commit e5f051a
Show file tree
Hide file tree
Showing 7 changed files with 68 additions and 38 deletions.
4 changes: 2 additions & 2 deletions flutter_app/.metadata
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@ migration:
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'
- "lib/main.dart"
- "ios/Runner.xcodeproj/project.pbxproj"
20 changes: 20 additions & 0 deletions flutter_app/lib/modules/change_drone_mode.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
import 'package:dart_mavlink/dialects/common.dart';
import 'package:imacs/modules/mavlink_communication.dart';
import 'package:imacs/command_constructors/set_mode_constructor.dart';
import 'dart:developer';

const String moduleName = "Change Drone Mode";

/// Define the MavMode constants and their string representations.
const Map<int, String> mavModes = {
mavModePreflight: "Preflight",
mavModeManualDisarmed: "Manual Disarmed",
mavModeTestDisarmed: "Test Disarmed",
mavModeStabilizeDisarmed: "Stabilize Disarmed",
mavModeGuidedDisarmed: "Guided Disarmed",
mavModeAutoDisarmed: "Auto Disarmed",
mavModeManualArmed: "Manual Armed",
mavModeTestArmed: "Test Armed",
mavModeStabilizeArmed: "Stabilize Armed",
mavModeGuidedArmed: "Guided Armed",
mavModeAutoArmed: "Auto Armed",
};

class ChangeDroneMode {
final MavlinkCommunication comm;
Expand All @@ -15,5 +33,7 @@ class ChangeDroneMode {
var frame = setMode(comm.sequence, systemID, componentID, baseMode);
comm.sequence++;
comm.write(frame);

log('[$moduleName]: ${mavModes[baseMode]} mode set.');
}
}
10 changes: 10 additions & 0 deletions flutter_app/lib/modules/mavlink_communication.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import 'dart:typed_data';
import 'dart:io';
import 'dart:developer';
import 'dart:async';
import 'package:flutter_libserialport/flutter_libserialport.dart';
import 'package:dart_mavlink/mavlink.dart';
import 'package:dart_mavlink/dialects/common.dart';

const String moduleName = "Mavlink Communication";

enum MavlinkCommunicationType {
tcp,
serial,
Expand All @@ -28,9 +31,11 @@ class MavlinkCommunication {
: _connectionType = connectionType {
switch (_connectionType) {
case MavlinkCommunicationType.tcp:
log('[$moduleName] Trying to start TCP connection');
_startupTcpPort(connectionAddress, tcpPort);
break;
case MavlinkCommunicationType.serial:
log('[$moduleName] Trying to start Serial connection');
_startupSerialPort(connectionAddress);
break;
}
Expand All @@ -40,6 +45,7 @@ class MavlinkCommunication {
// Connect to the socket
_tcpSocket = await Socket.connect(connectionAddress, tcpPort);
_tcpSocketInitializationFlag.complete();
log('[$moduleName] TCP Port successfully initialized!');
}

_startupSerialPort(String connectionAddress) {
Expand All @@ -51,10 +57,14 @@ class MavlinkCommunication {

_writeToTcpPort(MavlinkFrame frame) {
_tcpSocket.write(frame.serialize());
log('[$moduleName] Wrote a message to TCP Port. Frame ID: ${frame.componentId}');
log('[$moduleName] Message: ${frame.message}');
}

_writeToSerialPort(MavlinkFrame frame) {
_serialPort.write(frame.serialize());
log('[$moduleName] Wrote a message to Serial Port. Frame ID: ${frame.componentId}');
log('[$moduleName] Message: ${frame.message}');
}

// Send MAVLink messages
Expand Down
8 changes: 8 additions & 0 deletions flutter_app/lib/modules/queue_waypoints.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ import 'package:dart_mavlink/mavlink.dart';
import 'package:imacs/modules/mavlink_communication.dart';
import 'package:imacs/command_constructors/create_waypoint_constructor.dart';
import 'package:dart_mavlink/dialects/common.dart';
import 'dart:developer';

const String moduleName = "Queue Waypoints";

class QueueWaypoints {
final MavlinkCommunication comm;
Expand All @@ -23,6 +26,8 @@ class QueueWaypoints {
newWaypoint.targetComponent, newWaypoint);
comm.sequence++;
comm.write(frame);

log('[$moduleName] Added a waypoint at (Latitude: $latitude, Longitude: $longitude, Altitude: $altitude).');
}

/// Queues a waypoint to be sent.
Expand All @@ -33,6 +38,8 @@ class QueueWaypoints {
comm.sequence, systemID, componentID, latitude, longitude, altitude);
comm.sequence++;
waypointQueue.add(newWaypoint);

log('[$moduleName] Queued a waypoint to be sent at (Latitude: $latitude, Longitude: $longitude, Altitude: $altitude).');
}

/// Takes first waypoint in the queue and send its to the drone
Expand All @@ -46,6 +53,7 @@ class QueueWaypoints {
var frame = MavlinkFrame.v2(waypoint.seq, waypoint.targetSystem,
waypoint.targetComponent, waypoint);
comm.write(frame);
log('[$moduleName] Sent waypoint to the drone from the queue (Latitude: ${waypoint.x}, Longitude: ${waypoint.y}, Altitude: ${waypoint.z}).');
}
}
}
28 changes: 10 additions & 18 deletions flutter_app/lib/widgets/change_mode_widget.dart
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
import 'dart:developer';

import 'package:flutter/material.dart';
import 'package:dart_mavlink/dialects/common.dart';
import 'package:imacs/modules/change_drone_mode.dart';

/// Define the MavMode constants and their string representations.
const Map<int, String> mavModes = {
mavModePreflight: "Preflight",
mavModeManualDisarmed: "Manual Disarmed",
mavModeTestDisarmed: "Test Disarmed",
mavModeStabilizeDisarmed: "Stabilize Disarmed",
mavModeGuidedDisarmed: "Guided Disarmed",
mavModeAutoDisarmed: "Auto Disarmed",
mavModeManualArmed: "Manual Armed",
mavModeTestArmed: "Test Armed",
mavModeStabilizeArmed: "Stabilize Armed",
mavModeGuidedArmed: "Guided Armed",
mavModeAutoArmed: "Auto Armed",
};
const String widgetName = "Change Drone Mode Widget";

/// Widget to change the mode of a drone using MAVLink communication.
///
Expand Down Expand Up @@ -63,11 +52,14 @@ class DroneModeChangerState extends State<DroneModeChanger> {
widget.componentId,
_selectedMode!,
);
setState(() {
_confirmedMode = _selectedMode;
});
setState(
() {
_confirmedMode = _selectedMode;
},
);
log("[$widgetName] ${mavModes[_selectedMode]} mode selected.");
} else {
print('No mode selected');
log('[$widgetName] ERROR: No mode selected.');
}
}

Expand Down
4 changes: 2 additions & 2 deletions flutter_app/lib/widgets/drone_information_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ class DroneInformation extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
height: 500,
width: 400,
height: 400,
width: 500,
decoration: BoxDecoration(
border: Border.all(
color: Colors.black,
Expand Down
32 changes: 16 additions & 16 deletions flutter_app/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -216,18 +216,18 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.dev"
source: hosted
version: "10.0.4"
version: "10.0.5"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.dev"
source: hosted
version: "3.0.3"
version: "3.0.5"
leak_tracker_testing:
dependency: transitive
description:
Expand Down Expand Up @@ -272,18 +272,18 @@ packages:
dependency: transitive
description:
name: material_color_utilities
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.8.0"
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev"
source: hosted
version: "1.12.0"
version: "1.15.0"
mime:
dependency: transitive
description:
Expand Down Expand Up @@ -437,26 +437,26 @@ packages:
dependency: "direct dev"
description:
name: test
sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073"
sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e"
url: "https://pub.dev"
source: hosted
version: "1.25.2"
version: "1.25.7"
test_api:
dependency: transitive
description:
name: test_api
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
url: "https://pub.dev"
source: hosted
version: "0.7.0"
version: "0.7.2"
test_core:
dependency: transitive
description:
name: test_core
sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4"
sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
version: "0.6.4"
typed_data:
dependency: transitive
description:
Expand All @@ -477,10 +477,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
url: "https://pub.dev"
source: hosted
version: "14.2.1"
version: "14.2.4"
watcher:
dependency: transitive
description:
Expand Down

0 comments on commit e5f051a

Please sign in to comment.