Skip to content

Drv::Ina219Manager

The INA219 Manager component interfaces with the INA219 current/power monitor to provide voltage, current, and power measurements.

Usage Examples

The INA219 Manager component is designed to be called periodically to collect and return sensor data. It operates as a passive component that responds to manager calls.

Typical Usage

  1. The component is instantiated and initialized during system startup
  2. A manager calls any of the input ports: VoltageGet, CurrentGet, or PowerGet
  3. On each call, the component:
  4. Fetches fresh sensor samples from the sensor
  5. Converts sensor data to double precision floating point
  6. Writes telemetry data
  7. Returns data in SI units

Class Diagram

classDiagram
    namespace Drv {
        class Ina219ManagerComponentBase {
            <<Auto-generated>>
        }
        class Ina219Manager {
            - m_dev: const struct device*
            + Ina219Manager(const char* compName)
            + ~Ina219Manager()
            + configure(const struct device* dev)
            - voltageGet_handler(const FwIndexType portNum): F64
            - currentGet_handler(const FwIndexType portNum): F64
            - powerGet_handler(const FwIndexType portNum): F64
        }
    }
    Ina219ManagerComponentBase <|-- Ina219Manager : inherits

Port Descriptions

Name Type Description
VoltageGet sync input Triggers voltage data collection and returns voltage in volts
CurrentGet sync input Triggers current data collection and returns current in amps
PowerGet sync input Triggers power data collection and returns power in watts

Sequence Diagrams

VoltageGet

sequenceDiagram
    participant Manager
    participant INA219 Manager
    participant Zephyr Sensor API
    participant INA219 Sensor

    Manager-->>INA219 Manager: Call VoltageGet synchronous input port
    INA219 Manager->>Zephyr Sensor API: Fetch sensor data
    Zephyr Sensor API->>INA219 Sensor: Read sensor
    INA219 Sensor->>Zephyr Sensor API: Return sensor data
    Zephyr Sensor API->>INA219 Manager: Return voltage sensor_value struct
    INA219 Manager->>INA219 Manager: Write telemetry
    INA219 Manager-->>Manager: Return F64 voltage in volts

CurrentGet

sequenceDiagram
    participant Manager
    participant INA219 Manager
    participant Zephyr Sensor API
    participant INA219 Sensor

    Manager-->>INA219 Manager: Call CurrentGet synchronous input port
    INA219 Manager->>Zephyr Sensor API: Fetch sensor data
    Zephyr Sensor API->>INA219 Sensor: Read sensor
    INA219 Sensor->>Zephyr Sensor API: Return sensor data
    Zephyr Sensor API->>INA219 Manager: Return current sensor_value struct
    INA219 Manager->>INA219 Manager: Write telemetry
    INA219 Manager-->>Manager: Return F64 current in amps

PowerGet

sequenceDiagram
    participant Manager
    participant INA219 Manager
    participant Zephyr Sensor API
    participant INA219 Sensor

    Manager-->>INA219 Manager: Call PowerGet synchronous input port
    INA219 Manager->>Zephyr Sensor API: Fetch sensor data
    Zephyr Sensor API->>INA219 Sensor: Read sensor
    INA219 Sensor->>Zephyr Sensor API: Return sensor data
    Zephyr Sensor API->>INA219 Manager: Return power sensor_value struct
    INA219 Manager->>INA219 Manager: Write telemetry
    INA219 Manager-->>Manager: Return F64 power in watts

Requirements

Name Description Validation
VoltageGet Port The component shall provide access to voltage sensor data and return in volts Integration test
CurrentGet Port The component shall provide access to current sensor data and return in amps Integration test
PowerGet Port The component shall provide access to power sensor data and return in watts Integration test
DeviceNotReady Event The component shall emit a throttled warning event when the device is not ready Verify event is emitted and throttled to 5 occurrences

Change Log

Date Description
2025-11-03 Initial INA219 Manager component