From 70ec8a79a121471a004e7e4c23157d10157e136f Mon Sep 17 00:00:00 2001 From: Lisandro Pérez Meyer Date: Tue, 14 Nov 2023 17:20:58 -0300 Subject: Initial cleanup push. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on agldemo2024 on commit 2a5dc04d801134338150c3f6afc67eaa65599763 Disable device preview. Disable Lottie animation. The original commit was b3c493c340fcb4bb0a937692838fc830bec3e9ea but I am just keeping this change, because the json did not really needed to change. I think. Signed-off-by: Lisandro Pérez Meyer --- lib/data/data_providers/hybrid_notifier.dart | 91 ++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 lib/data/data_providers/hybrid_notifier.dart (limited to 'lib/data/data_providers/hybrid_notifier.dart') diff --git a/lib/data/data_providers/hybrid_notifier.dart b/lib/data/data_providers/hybrid_notifier.dart new file mode 100644 index 0000000..a19bf58 --- /dev/null +++ b/lib/data/data_providers/hybrid_notifier.dart @@ -0,0 +1,91 @@ +import '../../export.dart'; + +class HybridNotifier extends StateNotifier { + HybridNotifier(super.state); + + void setHybridState(HybridState hybridState) { + switch (hybridState) { + case HybridState.idle: + state = state.copyWith( + topArrowState: ArrowState.blue, + leftArrowState: ArrowState.blue, + rightArrowState: ArrowState.blue, + batteryState: BatteryState.white, + ); + break; + case HybridState.engineOutput: + state = state.copyWith( + topArrowState: ArrowState.red, + leftArrowState: ArrowState.red, + rightArrowState: ArrowState.blue, + batteryState: BatteryState.red, + ); + break; + case HybridState.regenerativeBreaking: + state = state.copyWith( + topArrowState: ArrowState.blue, + leftArrowState: ArrowState.blue, + rightArrowState: ArrowState.green, + batteryState: BatteryState.green); + + break; + case HybridState.baterryOutput: + state = state.copyWith( + topArrowState: ArrowState.blue, + leftArrowState: ArrowState.blue, + rightArrowState: ArrowState.yellow, + batteryState: BatteryState.yellow); + break; + default: + } + state = state.copyWith(hybridState: hybridState); + } + + void updateHybridState() { + // Variable to store the current state + HybridState currentState = state.hybridState; + + // Variable to store the previous state + HybridState previousState = currentState; + + // Variable to store the average speed value + double avgSpeed = 0.0; + + // 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); + } + + // 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; + // } + + // Zaktualizuj stan + if (currentState != previousState) { + state = state.copyWith(hybridState: currentState); + } + } +} -- cgit 1.2.3-korg