Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Console log updates #24

Merged
merged 12 commits into from
Jul 17, 2024
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);
BalajiLeninrajan marked this conversation as resolved.
Show resolved Hide resolved
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).');
}

BalajiLeninrajan marked this conversation as resolved.
Show resolved Hide resolved
/// 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