diff --git a/lib/src/components/movement_sensor/client.dart b/lib/src/components/movement_sensor/client.dart index 55746f97b8..9323dbf32a 100644 --- a/lib/src/components/movement_sensor/client.dart +++ b/lib/src/components/movement_sensor/client.dart @@ -92,12 +92,11 @@ class MovementSensorClient extends MovementSensor implements ResourceRPCClient { } @override - Future> accuracy({Map? extra}) async { + Future accuracy({Map? extra}) async { final request = GetAccuracyRequest() ..name = name ..extra = extra?.toStruct() ?? Struct(); - final response = await client.getAccuracy(request); - return response.accuracy; + return await client.getAccuracy(request); } @override diff --git a/lib/src/components/movement_sensor/movement_sensor.dart b/lib/src/components/movement_sensor/movement_sensor.dart index 96e8a632c1..c6904471e7 100644 --- a/lib/src/components/movement_sensor/movement_sensor.dart +++ b/lib/src/components/movement_sensor/movement_sensor.dart @@ -11,6 +11,7 @@ class Position { } typedef Properties = GetPropertiesResponse; +typedef Accuracy = GetAccuracyResponse; /// MovementSensor reports information about the robot's direction, position and speed. abstract class MovementSensor extends Resource { @@ -42,7 +43,7 @@ abstract class MovementSensor extends Resource { Future properties({Map? extra}); /// Get the accuracy of the various sensors - Future> accuracy({Map? extra}); + Future accuracy({Map? extra}); /// Get the [ResourceName] for this [MovementSensor] with the given [name] static ResourceName getResourceName(String name) { diff --git a/lib/src/components/movement_sensor/service.dart b/lib/src/components/movement_sensor/service.dart index 02e6a49af1..d4446f1b4b 100644 --- a/lib/src/components/movement_sensor/service.dart +++ b/lib/src/components/movement_sensor/service.dart @@ -37,8 +37,7 @@ class MovementSensorService extends MovementSensorServiceBase { @override Future getAccuracy(ServiceCall call, GetAccuracyRequest request) async { final movementSensor = _fromManager(request.name); - final accuracy = await movementSensor.accuracy(extra: request.extra.toMap()); - return GetAccuracyResponse()..accuracy.addAll(accuracy); + return movementSensor.accuracy(extra: request.extra.toMap()); } @override diff --git a/test/unit_test/components/movement_sensor_test.dart b/test/unit_test/components/movement_sensor_test.dart index d1d4f8c1c4..f780d526e7 100644 --- a/test/unit_test/components/movement_sensor_test.dart +++ b/test/unit_test/components/movement_sensor_test.dart @@ -29,9 +29,11 @@ class FakeMovementSensor extends MovementSensor { } @override - Future> accuracy({Map? extra}) async { + Future accuracy({Map? extra}) async { this.extra = extra; - return {'accuracy': 0}; + return Accuracy() + ..positionHdop = 0.0 + ..positionVdop = 0.0; } @override @@ -94,7 +96,7 @@ void main() { test('accuracy', () async { final result = await movementSensor.accuracy(); - expect(result, {'accuracy': 0}); + expect(result.positionHdop, 0.0); }); test('angularVelocity', () async { @@ -176,7 +178,12 @@ void main() { test('accuracy', () async { final client = MovementSensorServiceClient(channel); final result = await client.getAccuracy(GetAccuracyRequest()..name = name); - expect(result.accuracy, {'accuracy': 0}); + + expect(result.accuracy, {}); + expect(result.positionHdop, 0.0); + expect(result.positionVdop, 0.0); + expect(result.positionNmeaGgaFix, 0); + expect(result.compassDegreesError, 0.0); }); test('angularVelocity', () async { @@ -245,7 +252,7 @@ void main() { test('accuracy', () async { final client = MovementSensorClient(name, channel); final result = await client.accuracy(); - expect(result, {'accuracy': 0}); + expect(result.positionVdop, 0.0); }); test('angularVelocity', () async {