21 #include "nrf_error.h"
22 #include "nrf_assert.h"
45 memset(&m_pru_sensor_data,0,
sizeof(m_pru_sensor_data));
53 #ifndef STATIC_POWER_ADJUSTED_BIT
54 static uint16_t nof_calls_since_power_adjusted_set = 0;
56 uint32_t err_code = NRF_SUCCESS;
57 uint16_t vrect, irect, vout, iout;
62 bool last_power_adjusted;
66 APP_ERROR_CHECK(err_code);
67 m_pru_sensor_data.
vrect = vrect;
70 APP_ERROR_CHECK(err_code);
71 m_pru_sensor_data.
irect = irect;
74 APP_ERROR_CHECK(err_code);
75 m_pru_sensor_data.
vout = vout;
78 APP_ERROR_CHECK(err_code);
79 m_pru_sensor_data.
iout = iout;
82 APP_ERROR_CHECK(err_code);
86 APP_ERROR_CHECK(err_code);
90 APP_ERROR_CHECK(err_code);
94 APP_ERROR_CHECK(err_code);
98 APP_ERROR_CHECK(err_code);
100 #ifndef STATIC_POWER_ADJUSTED_BIT
103 nof_calls_since_power_adjusted_set++;
109 nof_calls_since_power_adjusted_set = 0;
112 else if(last_power_adjusted)
117 APP_ERROR_CHECK(err_code);
120 nof_calls_since_power_adjusted_set = 0;
140 #ifdef USE_BOARD_SPECIFIC_SENSORS
142 APP_ERROR_CHECK(err_code);
153 ASSERT(p_pru_alert != NULL);
154 ASSERT(new_alert_occured != NULL);
156 if((p_pru_alert != NULL) && (new_alert_occured != NULL))
171 (memcmp(&m_prev_alerts, p_pru_alert,
sizeof(
pru_alert_t) != 0)))
173 *new_alert_occured =
true;
177 *new_alert_occured =
false;
180 memcpy(&m_prev_alerts, p_pru_alert,
sizeof(
pru_alert_t));
186 return NRF_ERROR_NULL;
static pru_sensor_data_t m_pru_sensor_data
uint32_t pru_sensors_board_read_all(pru_sensor_data_t *p_sensor_data)
Read PRU HW specific sensors.
#define PRU_VRECT_HIGH_SUSTAIN_MS
uint8_t wired_charge_detect
void pru_sensors_gen_evts(void)
Generate PRU state machine events from sensor data.
#define PRU_SENSORS_TIMER_PERIOD_MS
void pru_sensors_read_all(void)
Read PRU sensors.
uint32_t pru_tmux_power_adjusted_get(bool *adjusted)
Test wrapper for pru_hal_power_adjusted_get().
uint32_t pru_tmux_vrect_get(uint16_t *p_vrect)
Test wrapper for pru_hal_vrect_get().
PRU Alert Parameter structure.
uint32_t pru_tmux_irect_get(uint16_t *p_irect)
Test wrapper for pru_hal_irect_get().
void pru_sensors_init(pru_sm_handler_t sm_handler)
Initialize sensors and read default values.
static uint32_t m_hv_counter
const pru_sensor_data_t * pru_sensors_data_get(void)
Get the latest data from the PRU sensors.
uint32_t pru_tmux_vout_enable_get(bool *enable)
Test wrapper for pru_hal_vout_enable_get().
static pru_alert_t m_prev_alerts
Definition of PRU reporting data.
uint32_t pru_tmux_temperature_get(int16_t *p_temperature)
Test wrapper for pru_hal_temperature_get().
#define PRU_RESET_POWER_ADJUSTED_MS
void(* pru_sm_handler_t)(pru_sm_signal_type_t evt)
uint8_t pru_over_temperature
uint32_t pru_tmux_power_adjusted_set(bool adjusted)
Test wrapper for pru_hal_power_adjusted_set().
uint32_t pru_tmux_wired_charge_detect_status_get(bool *p_wired)
Test wrapper for pru_hal_wired_charge_detect_status_get().
uint32_t pru_tmux_iout_get(uint16_t *p_iout)
Test wrapper for pru_hal_iout_get().
uint32_t pru_tmux_vout_get(uint16_t *p_vout)
Test wrapper for pru_hal_vout_get().
uint8_t wired_charge_detect
#define BLE_WPTS_PRU_ALERT_NO_SELF_PROTECTION_VAL
uint8_t pru_self_protection
uint32_t pru_tmux_charge_complete_status_get(bool *p_charge_complete)
Test wrapper for pru_hal_charge_complete_status_get().
uint32_t pru_sensor_alerts_get(bool *new_alert_occured, pru_alert_t *p_pru_alert)
Extract alerts from the latest data read from PRU sensors.
uint8_t sustained_high_voltage
static pru_sm_handler_t m_signal_handler