diff options
Diffstat (limited to 'lib/data/data_providers')
-rw-r--r-- | lib/data/data_providers/app_provider.dart | 4 | ||||
-rw-r--r-- | lib/data/data_providers/hybrid_notifier.dart | 45 |
2 files changed, 19 insertions, 30 deletions
diff --git a/lib/data/data_providers/app_provider.dart b/lib/data/data_providers/app_provider.dart index f6fb1ad..fb0a447 100644 --- a/lib/data/data_providers/app_provider.dart +++ b/lib/data/data_providers/app_provider.dart @@ -54,7 +54,8 @@ final usersProvider = StateNotifierProvider<UsersNotifier, Users>((ref) { return UsersNotifier(Users.initial()); }); -final hybridtateProvider = StateNotifierProvider<HybridNotifier, Hybrid>((ref) { +final hybridStateProvider = + StateNotifierProvider<HybridNotifier, Hybrid>((ref) { return HybridNotifier(const Hybrid.initial()); }); @@ -62,3 +63,4 @@ final currentTimeProvider = StateNotifierProvider<CurrentTimeNotifier, DateTime>((ref) { return CurrentTimeNotifier(); }); + diff --git a/lib/data/data_providers/hybrid_notifier.dart b/lib/data/data_providers/hybrid_notifier.dart index fd16a68..3668f61 100644 --- a/lib/data/data_providers/hybrid_notifier.dart +++ b/lib/data/data_providers/hybrid_notifier.dart @@ -43,7 +43,7 @@ class HybridNotifier extends StateNotifier<Hybrid> { state = state.copyWith(hybridState: hybridState); } - void updateHybridState() { + void updateHybridState(double speed, double engineSpeed, bool brake) { // Variable to store the current state HybridState currentState = state.hybridState; @@ -56,38 +56,25 @@ class HybridNotifier extends StateNotifier<Hybrid> { // Variable for storing the average value of RPM double avgRpm = 0.0; - // Variable to store the brake value state - bool brake = false; - - // Collect 10 samples - for (int i = 0; i < 10; i++) { - // Get the current values for speed, engine rpm and brake status - - // speed = vehicleProvider(); - // rpm = _rpmFromServer(); - // brake = _brakeFromServer(); - - // Calculate the average speed value - // avgSpeed = (avgSpeed * (i + 1) + speed) / (i + 2); - - // Calculate the average engine rpm - // avgRpm = (avgRpm * (i + 1) + rpm) / (i + 2); + + if (speed == 0 && engineSpeed == 0) { + // Set idle state. + currentState = HybridState.idle; + } else if (engineSpeed > 0 && speed > 0) { + // Set stan na engine output state.. + currentState = HybridState.engineOutput; + } else if (speed < 0 && brake) { + // Set regenerative breaking state + currentState = HybridState.regenerativeBreaking; + } else if (speed > 0 && engineSpeed <= 0) { + // Set battery output state + currentState = HybridState.baterryOutput; } - // define new state - // if (avgSpeed == 0 && avgRpm == 0) { - // currentState = HybridState.idle; - // } else if (avgRpm > 0 && avgSpeed > 0) { - // currentState = HybridState.engineOutput; - // } else if (avgRpm == 0 && brake) { - // currentState = HybridState.regenerativeBreaking; - // } else if (avgSpeed > 0 && avgRpm <= avgSpeed) { - // currentState = HybridState.baterryOutput; - // } - // Update hybrid state if (currentState != previousState) { - state = state.copyWith(hybridState: currentState); + //state = state.copyWith(hybridState: currentState); + setHybridState(currentState); } } } |