HardFOC Core
API reference
Loading...
Searching...
No Matches
Classes | Namespaces | Functions | Variables
Pcal95555Handler.cpp File Reference

Implementation of the PCAL95555 GPIO expander handler. More...

#include "Pcal95555Handler.h"
#include "handlers/logger/Logger.h"
#include <cstring>

Classes

struct  anonymous_namespace{Pcal95555Handler.cpp}::NonOwningGpioDeleter
 

Namespaces

namespace  anonymous_namespace{Pcal95555Handler.cpp}
 

Functions

void anonymous_namespace{Pcal95555Handler.cpp}::SyncDeviceAddress (BaseI2c &i2c, uint8_t addr) noexcept
 
std::shared_ptr< BaseGpio > anonymous_namespace{Pcal95555Handler.cpp}::ShareNonOwning (Pcal95555GpioPin *pin) noexcept
 

Variables

volatile uint8_t anonymous_namespace{Pcal95555Handler.cpp}::g_pcal_handler_init_stage {0}
 
volatile uint8_t anonymous_namespace{Pcal95555Handler.cpp}::g_pcal_last_i2c_cmd {0}
 

Detailed Description

Implementation of the PCAL95555 GPIO expander handler.

Implements all three layers defined in Pcal95555Handler.h:

  1. HalI2cPcal95555Comm – CRTP I2C communication adapter
  2. Pcal95555Handler – Main handler (init, GPIO ops, interrupts, factory)
  3. Pcal95555GpioPin – Per-pin BaseGpio wrapper

All driver calls use the PascalCase API of the updated hf-pcal95555-driver (pcal95555::PCAL95555<I2cType>). Error handling follows the driver's error-flag model: individual methods return bool, with accumulated error flags available via GetErrorFlags().

See also
Pcal95555Handler.h for architectural overview and Doxygen documentation.
Author
HardFOC Team
Date
2025