LCOV - code coverage report
Current view: top level - src/AH/Hardware/ExtendedInputOutput - ExtendedInputOutput.hpp (source / functions) Coverage Total Hit
Test: 73449d9b107c772cf65493691543348214e5d5eb Lines: 100.0 % 2 2
Test Date: 2026-06-06 17:44:35 Functions: 100.0 % 1 1
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* ✔ */
       2              : 
       3              : #pragma once
       4              : 
       5              : #include <AH/Hardware/Arduino-Hardware-Types.hpp>
       6              : #include <AH/STL/climits>
       7              : #include <AH/Settings/NamespaceSettings.hpp>
       8              : 
       9              : BEGIN_AH_NAMESPACE
      10              : 
      11              : class ExtendedIOElement;
      12              : 
      13              : /**
      14              :  * @brief   A namespace with alternatives to the standard Arduino IO functions
      15              :  *          that can be used with extended IO pin numbers.
      16              :  */
      17              : namespace ExtIO {
      18              : 
      19              : /// @addtogroup AH_ExtIO
      20              : /// @{
      21              : 
      22              : /// Check if the given pin number is a real Arduino pin number, and not an ExtIO
      23              : /// pin number.
      24          849 : inline bool isNativePin(pin_t pin) {
      25          849 :     return pin.pin < NUM_DIGITAL_PINS + NUM_ANALOG_INPUTS;
      26              : }
      27              : 
      28              : /**
      29              :  * @brief   Find the IO element of a given extended IO pin number. 
      30              :  * 
      31              :  * @param   pin
      32              :  *          The extended IO pin number to find the IO element of.
      33              :  * @return  A pointer to the extended IO element that the given pin belongs to.
      34              :  */
      35              : ExtendedIOElement *getIOElementOfPinOrNull(pin_t pin);
      36              : /// @copydoc getIOElementOfPinOrNull
      37              : /// Throws an error if the element was not found.
      38              : ExtendedIOElement *getIOElementOfPin(pin_t pin);
      39              : 
      40              : /// An ExtIO version of the Arduino function
      41              : /// @see    ExtendedIOElement::pinMode
      42              : void pinMode(pin_t pin, PinMode_t mode);
      43              : /// An ExtIO version of the Arduino function
      44              : /// @see    ExtendedIOElement::digitalWrite
      45              : void digitalWrite(pin_t pin, PinStatus_t val);
      46              : /// An ExtIO version of the Arduino function
      47              : /// @see    ExtendedIOElement::digitalRead
      48              : PinStatus_t digitalRead(pin_t pin);
      49              : 
      50              : /// An ExtIO version of the Arduino function
      51              : /// @see    ExtendedIOElement::analogRead
      52              : analog_t analogRead(pin_t pin);
      53              : /// An ExtIO version of the Arduino function
      54              : /// @see    ExtendedIOElement::analogWrite
      55              : void analogWrite(pin_t pin, analog_t val);
      56              : /// An ExtIO version of the Arduino function
      57              : /// @see    ExtendedIOElement::analogWrite
      58              : void analogWrite(pin_t pin, int val);
      59              : 
      60              : /// An ExtIO version of the Arduino function
      61              : void shiftOut(pin_t dataPin, pin_t clockPin, BitOrder_t bitOrder, uint8_t val);
      62              : 
      63              : /// A buffered ExtIO version of the Arduino function
      64              : /// @see   ExtendedIOElement::pinModeBuffered
      65              : void pinModeBuffered(pin_t pin, PinMode_t mode);
      66              : /// A buffered ExtIO version of the Arduino function
      67              : /// @see   ExtendedIOElement::digitalWriteBuffered
      68              : void digitalWriteBuffered(pin_t pin, PinStatus_t val);
      69              : /// A buffered ExtIO version of the Arduino function
      70              : /// @see   ExtendedIOElement::digitalReadBuffered
      71              : PinStatus_t digitalReadBuffered(pin_t pin);
      72              : 
      73              : /// A buffered ExtIO version of the Arduino function
      74              : /// @see   ExtendedIOElement::analogReadBuffered
      75              : analog_t analogReadBuffered(pin_t pin);
      76              : /// A buffered ExtIO version of the Arduino function
      77              : /// @see   ExtendedIOElement::analogWriteBuffered
      78              : void analogWriteBuffered(pin_t pin, analog_t val);
      79              : /// A buffered ExtIO version of the Arduino function
      80              : /// @see   ExtendedIOElement::analogWriteBuffered
      81              : void analogWriteBuffered(pin_t pin, int val);
      82              : 
      83              : /// @}
      84              : 
      85              : } // namespace ExtIO
      86              : 
      87              : END_AH_NAMESPACE
        

Generated by: LCOV version 2.4-beta