h64 more better error handling

This commit is contained in:
rusefillc 2021-05-01 15:40:27 -04:00
parent a843588861
commit d10115ae5c
4 changed files with 21 additions and 10 deletions

View File

@ -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

View File

@ -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

Binary file not shown.

View File

@ -349,10 +349,15 @@ public class ConfigDefinition {
Objects.requireNonNull(data, "data");
for (Map<String, Object> 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 ) {