#ifndef I2C_PI_TARGET_H #define I2C_PI_TARGET_H #include #include #include "src/battery_data/battery.h" // I2C command codes #define CMD_GET_BATTERY_STATUS 0x01 // Request battery state #define CMD_GET_BATTERY_DATA 0x02 // Request battery data #define CMD_SET_BATTERY_LIMIT 0x03 // SET min/max voltage, cutoff current limits typedef struct __attribute__((packed)){ uint16_t voltage; int16_t current; uint16_t temperature; uint8_t cycle_number; BatteryChargingState cycle_state; } BatteryData; typedef struct __attribute__((packed)){ uint16_t min_voltage; uint16_t max_voltage; uint8_t cut_off_current; uint16_t capacitance; uint8_t charge_fraction; //uint8_t previous_cycle_number; } BatteryLimitMsg; void dynamic_gpio_addressing(); void pi_i2c_mcu(); #endif