@@ -66,20 +66,28 @@ void Wippersnapper_DigitalGPIO::initDigitalPin(
6666 wippersnapper_pin_v1_ConfigurePinRequest_Direction_DIRECTION_OUTPUT) {
6767
6868#ifdef STATUS_LED_PIN
69+ #if !defined(ARDUINO_ARDUINO_NESSO_N1)
70+ // if (String("D") + pinName == STATUS_LED_PIN.pin)
71+ // #else
6972 // deinit status led, use it as a dio component instead
7073 if (pinName == STATUS_LED_PIN)
7174 releaseStatusLED ();
75+ #endif
7276#endif
7377 pinMode (pinName, OUTPUT);
7478
7579 WS_DEBUG_PRINT (" Configured digital output pin on D" );
7680 WS_DEBUG_PRINTLN (pinName);
7781
7882// Initialize LOW
79- #if defined(ARDUINO_ESP8266_ADAFRUIT_HUZZAH) || defined(STATUS_LED_INVERTED)
80- // The Adafruit Feather ESP8266's built-in LED is reverse wired so setting
81- // the pin LOW will turn the LED on.
82- digitalWrite (STATUS_LED_PIN, !0 );
83+ #if defined(ARDUINO_ESP8266_ADAFRUIT_HUZZAH) // not until we support ExpanderPins || defined(STATUS_LED_INVERTED)
84+ if (pinName == STATUS_LED_PIN) {
85+ // The Adafruit Feather ESP8266's built-in LED is reverse wired so setting
86+ // the pin LOW will turn the LED on.
87+ digitalWrite (STATUS_LED_PIN, !0 );
88+ } else {
89+ digitalWrite (pinName, LOW);
90+ }
8391#else
8492 pinMode (pinName, OUTPUT);
8593 digitalWrite (pinName, LOW); // initialize LOW
@@ -155,9 +163,11 @@ void Wippersnapper_DigitalGPIO::deinitDigitalPin(
155163
156164// if prv. in-use by DIO, release pin back to application
157165#ifdef STATUS_LED_PIN
166+ #if !defined(ARDUINO_ARDUINO_NESSO_N1) // not until we support ExpanderPins
158167 if (pinName == STATUS_LED_PIN)
159168 initStatusLED ();
160169#endif
170+ #endif
161171}
162172
163173/* *******************************************************************/
@@ -175,6 +185,40 @@ int Wippersnapper_DigitalGPIO::digitalReadSvc(int pinName) {
175185 return pinVal;
176186}
177187
188+ #if defined(ARDUINO_ARDUINO_NESSO_N1)
189+ /* *******************************************************************/
190+ /* !
191+ @brief High-level digitalRead service impl. which performs a
192+ digitalRead.
193+ @param pin
194+ The ExpanderPin instance
195+ @returns The pin's value.
196+ */
197+ /* *******************************************************************/
198+ int Wippersnapper_DigitalGPIO::digitalReadSvc (ExpanderPin pin) {
199+ // Service using arduino `digitalRead`
200+ int pinVal = digitalRead (pin);
201+ return pinVal;
202+ }
203+
204+ /* ******************************************************************************/
205+ /* !
206+ @brief Writes a value to a pin.
207+ @param pinName
208+ The pin's name.
209+ @param pinValue
210+ The pin's value.
211+ */
212+ /* ******************************************************************************/
213+ void Wippersnapper_DigitalGPIO::digitalWriteSvc (ExpanderPin pin, int pinValue) {
214+ WS_DEBUG_PRINT (" Digital Pin Event: Set " );
215+ WS_DEBUG_PRINT (pin.pin );
216+ WS_DEBUG_PRINT (" to " );
217+ WS_DEBUG_PRINTLN (pinValue);
218+ digitalWrite (pin, pinValue);
219+ }
220+ #endif
221+
178222/* ******************************************************************************/
179223/* !
180224 @brief Writes a value to a pin.
0 commit comments