Skip to content

Commit

Permalink
Add enums and fromMap for ESenseConfig
Browse files Browse the repository at this point in the history
  • Loading branch information
cryeprecision committed Jan 2, 2023
1 parent b7d0e74 commit c44c6a4
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 2 deletions.
83 changes: 82 additions & 1 deletion packages/esense_flutter/lib/esense_config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,87 @@

part of esense;

enum AccLowPass {
BW_460,
BW_184,
BW_92,
BW_41,
BW_20,
BW_10,
BW_5,
DISABLED,
}

enum GyroLowPass {
BW_250,
BW_184,
BW_92,
BW_41,
BW_20,
BW_10,
BW_5,
BW_3600,
DISABLED
}

enum AccRange { G_2, G_4, G_8, G_16 }

extension AccSensitivityFactorExtension on AccRange {
double get sensitivityFactor {
switch (this) {
case AccRange.G_2:
return 16384;
case AccRange.G_4:
return 8192;
case AccRange.G_8:
return 4096;
case AccRange.G_16:
return 2048;
}
}
}

enum GyroRange { DEG_250, DEG_500, DEG_1000, DEG_2000 }

extension GyroSensitivityFactorExtension on GyroRange {
double get sensitivityFactor {
switch (this) {
case GyroRange.DEG_250:
return 131;
case GyroRange.DEG_500:
return 65.5;
case GyroRange.DEG_1000:
return 32.8;
case GyroRange.DEG_2000:
return 16.4;
}
}
}

class ESenseConfig {
Map<String, dynamic> toMap() => {};
AccLowPass? accLowPass;
GyroLowPass? gyroLowPass;
AccRange? accRange;
GyroRange? gyroRange;

Map<String, dynamic> toMap() {
// still not implemented
return {};
}

ESenseConfig();
factory ESenseConfig.fromMap(Map<dynamic, dynamic> map) {
return ESenseConfig()
..accLowPass =
AccLowPass.values.firstWhere((e) => e.name == map['accLowPass'])
..gyroLowPass =
GyroLowPass.values.firstWhere((e) => e.name == map['gyroLowPass'])
..accRange = AccRange.values.firstWhere((e) => e.name == map['accRange'])
..gyroRange =
GyroRange.values.firstWhere((e) => e.name == map['gyroRange']);
}

@override
String toString() =>
'accLowPass: $accLowPass, gyroLowPass: $gyroLowPass, accRange: $accRange, gyroRange: $gyroRange';
}
2 changes: 1 addition & 1 deletion packages/esense_flutter/lib/esense_events.dart
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ class SensorConfigRead extends ESenseEvent {

SensorConfigRead() : super();
factory SensorConfigRead.fromMap(Map<dynamic, dynamic> map) =>
SensorConfigRead()..config = ESenseConfig();
SensorConfigRead()..config = ESenseConfig.fromMap(map);

@override
String toString() => '$runtimeType - config: $config';
Expand Down

0 comments on commit c44c6a4

Please sign in to comment.