#include "GPIO_Navigator.h" uint8_t GPIO_Navigator::read(uint8_t pin) { if (pinAllowed(pin)) { return GPIO_RPI::read(pin); } if (hal.rcout->supports_gpio()) { return (uint8_t)hal.rcout->read(pin - 1); } return 0; } void GPIO_Navigator::write(uint8_t pin, uint8_t value) { if (pinAllowed(pin)) { GPIO_RPI::write(pin, value); return; } if (hal.rcout->supports_gpio()) { hal.rcout->write_gpio(pin - 1, value); } } void GPIO_Navigator::pinMode(uint8_t pin, uint8_t output) { if (pinAllowed(pin)) { GPIO_RPI::pinMode(pin, output); } } void GPIO_Navigator::pinMode(uint8_t pin, uint8_t output, uint8_t alt) { if (pinAllowed(pin)) { GPIO_RPI::pinMode(pin, output, alt); } } bool GPIO_Navigator::pinAllowed(uint8_t pin) { for (const auto &gpio : AllowedGPIOS) { if (pin == gpio) { return true; } } return false; }