From 396bde57b3e58733495f91fa6fe834080d04ce87 Mon Sep 17 00:00:00 2001 From: buchmann Date: Tue, 9 Jun 2026 15:59:20 +0200 Subject: [PATCH 1/2] Treat AWG parameters specially Fixes #1351 --- src/Services/InfoProviderSystem/DTOs/ParameterDTO.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Services/InfoProviderSystem/DTOs/ParameterDTO.php b/src/Services/InfoProviderSystem/DTOs/ParameterDTO.php index f5868039e..0145fdd24 100644 --- a/src/Services/InfoProviderSystem/DTOs/ParameterDTO.php +++ b/src/Services/InfoProviderSystem/DTOs/ParameterDTO.php @@ -94,6 +94,13 @@ public static function parseValueField(string $name, string|float $value, ?strin //If both parts have the same unit and both values are numerical, we'll save it as range if ($unit === $unit2 && is_numeric($number) && is_numeric($number2)) { + //If the parameter contains AWG in name or unit and min/max order is "wrong", swap it + if (preg_match('/AWG/', $name . $unit) === 1 && $number > $number2) { + $tmp = $number; + $number = $number2; + $number2 = $tmp; + } + return new self(name: $name, value_text: $value_text2, value_min: (float) $number, value_max: (float) $number2, unit: $unit, symbol: $symbol, group: $group); } From 5fa167b944fe0613cda1807a914dd840cd6d1314 Mon Sep 17 00:00:00 2001 From: buchmann Date: Tue, 9 Jun 2026 16:04:29 +0200 Subject: [PATCH 2/2] Add test --- .../InfoProviderSystem/DTOs/ParameterDTOTest.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/Services/InfoProviderSystem/DTOs/ParameterDTOTest.php b/tests/Services/InfoProviderSystem/DTOs/ParameterDTOTest.php index 6361dc100..0d47906c4 100644 --- a/tests/Services/InfoProviderSystem/DTOs/ParameterDTOTest.php +++ b/tests/Services/InfoProviderSystem/DTOs/ParameterDTOTest.php @@ -81,6 +81,16 @@ public static function parseValueFieldDataProvider(): \Generator 'test' ]; + //Test inverse AWG range + yield [ + new ParameterDTO('test', value_min: 14, value_max: 22, unit: 'AWG', symbol: 'm', group: 'test'), + 'test', + '22..14', + 'AWG', + 'm', + 'test' + ]; + //Test ranges with tilde yield [ new ParameterDTO('test', value_min: -1.0, value_max: 2.0, unit: 'kg', symbol: 'm', group: 'test'),