Skip to content

Commit 45ef9ef

Browse files
committed
Handle differences in declaration of digitalWrite
as per arduino/ArduinoCore-API#25
1 parent cb91cb0 commit 45ef9ef

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

.arduino-ci.yml

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
compile:
22
platforms:
3+
- uno
34
- nano_every
45

56
libraries:
@@ -8,6 +9,7 @@ compile:
89

910
unittest:
1011
platforms:
12+
- uno
1113
- nano_every
1214

1315
# nano_every definition isn't yet in a released arduino_ci version

src/DashMessage.h

+24
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,21 @@ typedef struct DashMessage {
109109
for (unsigned int i = 0; i < WIRE_PROTOCOL_MESSAGE_LENGTH; ++i) setByte(i, 0);
110110
}
111111

112+
// read payload from digital input pins
113+
void setFromPins(int (*myDigitalRead)(pin_size_t)) {
114+
setBit(MasterSignal::Values::boostWarning, myDigitalRead(MasterPin::Values::boostWarning ));
115+
setBit(MasterSignal::Values::boostCritical, myDigitalRead(MasterPin::Values::boostCritical ));
116+
setBit(MasterSignal::Values::acOn, myDigitalRead(MasterPin::Values::acOn ));
117+
setBit(MasterSignal::Values::heatedRearWindowOn, myDigitalRead(MasterPin::Values::heatedRearWindowOn ));
118+
setBit(MasterSignal::Values::hazardOff, myDigitalRead(MasterPin::Values::hazardOff ));
119+
setBit(MasterSignal::Values::rearFoggerOn, myDigitalRead(MasterPin::Values::rearFoggerOn ));
120+
setBit(MasterSignal::Values::scrollCAN, myDigitalRead(MasterPin::Values::scrollCAN ));
121+
setBit(MasterSignal::Values::scrollPresetColours, myDigitalRead(MasterPin::Values::scrollPresetColours ));
122+
setBit(MasterSignal::Values::scrollRainbowEffects, myDigitalRead(MasterPin::Values::scrollRainbowEffects));
123+
setBit(MasterSignal::Values::scrollBrightness, myDigitalRead(MasterPin::Values::scrollBrightness ));
124+
}
125+
126+
#ifdef PinStatus
112127
// read payload from digital input pins
113128
void setFromPins(PinStatus (*myDigitalRead)(pin_size_t)) {
114129
setBit(MasterSignal::Values::boostWarning, myDigitalRead(MasterPin::Values::boostWarning ));
@@ -122,6 +137,7 @@ typedef struct DashMessage {
122137
setBit(MasterSignal::Values::scrollRainbowEffects, myDigitalRead(MasterPin::Values::scrollRainbowEffects));
123138
setBit(MasterSignal::Values::scrollBrightness, myDigitalRead(MasterPin::Values::scrollBrightness ));
124139
}
140+
#endif
125141

126142
// read input from I2C
127143
void setFromWire(TwoWire &wire) {
@@ -158,11 +174,19 @@ typedef struct DashMessage {
158174
}
159175
}
160176

177+
// construct from arduino inputs
178+
DashMessage(int (*myDigitalRead)(pin_size_t)) {
179+
initFrames();
180+
setFromPins(myDigitalRead);
181+
}
182+
183+
#ifdef PinStatus
161184
// construct from arduino inputs
162185
DashMessage(PinStatus (*myDigitalRead)(pin_size_t)) {
163186
initFrames();
164187
setFromPins(myDigitalRead);
165188
}
189+
#endif
166190

167191
// construct from the wire
168192
DashMessage(TwoWire wire) {

src/DashState.h

+4
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,11 @@ const unsigned int NUM_DASH_LEDS = DASH_LED_MAX + 1;
9191
typedef struct DashSupport {
9292
void (*pinMode)(pin_size_t, int);
9393
int (*analogRead)(unsigned char);
94+
#ifdef PinStatus
9495
PinStatus (*digitalRead)(unsigned char);
96+
#else
97+
int (*digitalRead)(unsigned char);
98+
#endif
9599
void (*digitalWrite)(pin_size_t, int);
96100
CFastLED* fastLed;
97101
} DashSupport;

0 commit comments

Comments
 (0)