Skip to content

Commit

Permalink
RSDK-6122: getAccuracy (#170)
Browse files Browse the repository at this point in the history
* all flutter changes

* typealias

* comments
  • Loading branch information
susmitaSanyal authored Jan 23, 2024
1 parent 6bde1a7 commit f9276a6
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 11 deletions.
5 changes: 2 additions & 3 deletions lib/src/components/movement_sensor/client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,11 @@ class MovementSensorClient extends MovementSensor implements ResourceRPCClient {
}

@override
Future<Map<String, double>> accuracy({Map<String, dynamic>? extra}) async {
Future<Accuracy> accuracy({Map<String, dynamic>? 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
Expand Down
3 changes: 2 additions & 1 deletion lib/src/components/movement_sensor/movement_sensor.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -42,7 +43,7 @@ abstract class MovementSensor extends Resource {
Future<Properties> properties({Map<String, dynamic>? extra});

/// Get the accuracy of the various sensors
Future<Map<String, double>> accuracy({Map<String, dynamic>? extra});
Future<Accuracy> accuracy({Map<String, dynamic>? extra});

/// Get the [ResourceName] for this [MovementSensor] with the given [name]
static ResourceName getResourceName(String name) {
Expand Down
3 changes: 1 addition & 2 deletions lib/src/components/movement_sensor/service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@ class MovementSensorService extends MovementSensorServiceBase {
@override
Future<GetAccuracyResponse> 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
Expand Down
17 changes: 12 additions & 5 deletions test/unit_test/components/movement_sensor_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,11 @@ class FakeMovementSensor extends MovementSensor {
}

@override
Future<Map<String, double>> accuracy({Map<String, dynamic>? extra}) async {
Future<Accuracy> accuracy({Map<String, dynamic>? extra}) async {
this.extra = extra;
return {'accuracy': 0};
return Accuracy()
..positionHdop = 0.0
..positionVdop = 0.0;
}

@override
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit f9276a6

Please sign in to comment.