From a008a7114cba5f078273b2edb79156096790d396 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Wed, 28 May 2025 17:18:22 +0530 Subject: [PATCH] Resolving health status color issue --- app/Services/TelemetryService.php | 60 ++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 12 deletions(-) diff --git a/app/Services/TelemetryService.php b/app/Services/TelemetryService.php index 80eecdc..07da039 100644 --- a/app/Services/TelemetryService.php +++ b/app/Services/TelemetryService.php @@ -24,28 +24,64 @@ class TelemetryService { $hasRed = false; $hasOrange = false; + $hasBlue = false; foreach ($values as $value) { - if ($value['key_name'] == 'PowerLoss_value') { - if ($value['value'] > 5 && $value['value'] < 10) { - $hasRed = true; + $key = $value['key_name']; + $val = $value['value']; + + switch ($key) { + case 'PowerLoss_value': + if ($val > 5 && $val < 10) { + return 'red'; + } elseif ($val > 2.5 && $val < 6) { + $hasOrange = true; + } break; - } elseif ($value['value'] > 2.5 && $value['value'] < 5) { - $hasOrange = true; - } - } else { - if ($value['value'] > 0 && $value['value'] < 31) { - $hasRed = true; + + case 'GlobalLevel_value': + if ($val > 6 && $val < 10) { + return 'red'; + } elseif ($val > 3 && $val < 7) { + $hasOrange = true; + } + break; + + case 'PropellerEfficiency_value': + if ($val > 5 && $val < 10) { + return 'red'; + } elseif ($val > 3 && $val < 6) { + $hasOrange = true; + } + break; + + case 'OT': + case 'AT': + $val > 50 ? $hasBlue = true : $hasRed = true; + break; + + case 'TDN': + if ($val > 0 && $val < 401) { + return 'red'; + } elseif ($val < 701) { + $hasOrange = true; + } + break; + + default: + if ($val > 0 && $val < 31) { + return 'red'; + } elseif ($val < 71) { + $hasOrange = true; + } break; - } elseif ($value['value'] < 71) { - $hasOrange = true; - } } } return $hasRed ? 'red' : ($hasOrange ? 'orange' : 'green'); } + public function getAssetHealth(array $deviceHealthStatuses): string { if (in_array('red', $deviceHealthStatuses)) {