From d10115ae5c791e2a679386b5e7793f29c709edc9 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 1 May 2021 15:40:27 -0400 Subject: [PATCH] h64 more better error handling --- .../hellen64_miataNA6_94/connectors/main.yaml | 15 ++++++++------- .../hellen/hellen72/connectors/main.yaml | 5 +++++ java_tools/ConfigDefinition.jar | Bin 1823921 -> 1824197 bytes .../src/com/rusefi/ConfigDefinition.java | 11 ++++++++--- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/firmware/config/boards/hellen/hellen64_miataNA6_94/connectors/main.yaml b/firmware/config/boards/hellen/hellen64_miataNA6_94/connectors/main.yaml index d123a8c0cd..ce37e5a8f9 100644 --- a/firmware/config/boards/hellen/hellen64_miataNA6_94/connectors/main.yaml +++ b/firmware/config/boards/hellen/hellen64_miataNA6_94/connectors/main.yaml @@ -1,5 +1,6 @@ # # open issues: knock do we need to do anything? +# todo: we've inhecrited dual mode on A/C etc from H72 needs to be addressed # pins: @@ -76,7 +77,7 @@ pins: - pin: 1Q id: [GPIOB_0, EFI_ADC_8] - class: switch_inputs + class: [switch_inputs, analog_inputs] function: A/C switch input type: din @@ -96,7 +97,7 @@ pins: - pin: 1V id: [GPIOC_5, EFI_ADC_15] - class: switch_inputs + class: [switch_inputs, analog_inputs] ts_name: Clutch_Switch function: Clutch switch input type: din @@ -121,8 +122,8 @@ pins: color: white - pin: 3E - id: [GPIOB_1, EFI_ADC_9] - class: [event_inputs] + id: GPIOB_1 + class: event_inputs ts_name: 3E - CRANK function: Crankshaft Sensor @@ -132,8 +133,8 @@ pins: color: white - pin: 3G - id: [GPIOA_6, EFI_ADC_6] - class: [event_inputs] + id: GPIOA_6 + class: event_inputs ts_name: 3G - CAM function: Camshaft Sensor @@ -185,7 +186,7 @@ pins: type: ls - pin: 3N - ID: EFI_ADC_0 + id: EFI_ADC_0 class: analog_inputs ts_name: 3N - O2S function: External Wideband signal diff --git a/firmware/config/boards/hellen/hellen72/connectors/main.yaml b/firmware/config/boards/hellen/hellen72/connectors/main.yaml index 39234399a7..a01be94d59 100644 --- a/firmware/config/boards/hellen/hellen72/connectors/main.yaml +++ b/firmware/config/boards/hellen/hellen72/connectors/main.yaml @@ -1,3 +1,8 @@ +# +# todo: what's the deal with dual mode A/C switch? +# todo: what's the deal with dual mode Power Steering Switch? and a few others? +# + pins: - pin: 2A id: GPIOG_7 diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index 6d4cba4eb25b5b9bf34b725bbfc37cdcf5ba0100..3f59740f1777b553ee83e7320e442ed0418b1a99 100644 GIT binary patch delta 50676 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 diff --git a/java_tools/configuration_definition/src/com/rusefi/ConfigDefinition.java b/java_tools/configuration_definition/src/com/rusefi/ConfigDefinition.java index 6a9f28eebe..38cab26e4f 100644 --- a/java_tools/configuration_definition/src/com/rusefi/ConfigDefinition.java +++ b/java_tools/configuration_definition/src/com/rusefi/ConfigDefinition.java @@ -349,10 +349,15 @@ public class ConfigDefinition { Objects.requireNonNull(data, "data"); for (Map pin : data) { if (pin.get("id") instanceof ArrayList) { - for (int i = 0; i < ((ArrayList) pin.get("id")).size(); i++) { - findMatchingEnum((String) ((ArrayList) pin.get("id")).get(i), + ArrayList IDs = (ArrayList) pin.get("id"); + for (int i = 0; i < IDs.size(); i++) { + String id = (String) IDs.get(i); + Object classes = pin.get("class"); + if (!(classes instanceof ArrayList)) + throw new IllegalStateException("Expected multiple classes for " + IDs); + findMatchingEnum(id, (String) pin.get("ts_name"), - (String) ((ArrayList) pin.get("class")).get(i), + (String) ((ArrayList) classes).get(i), state, listOutputs, listAnalogInputs, listEventInputs, listSwitchInputs); } } else if (pin.get("id") instanceof String ) {