19 #include "nrf_assert.h"
57 case PTU_SM_STATE_CONFIGURATION:
61 case PTU_SM_STATE_POWER_SAVE:
69 case PTU_SM_STATE_LOW_POWER:
71 APP_ERROR_CHECK(err_code);
74 APP_ERROR_CHECK(err_code);
77 case PTU_SM_STATE_POWER_TRANSFER:
79 APP_ERROR_CHECK(err_code);
82 APP_ERROR_CHECK(err_code);
85 case PTU_SM_STATE_LOCAL_FAULT:
87 APP_ERROR_CHECK(err_code);
93 case PTU_SM_STATE_LATCH_FAULT:
95 APP_ERROR_CHECK(err_code);
101 APP_ERROR_CHECK(err_code);
123 #if(PTU_CCA_ROGUE_DETECT_ENABLE == true)
126 APP_ERROR_CHECK(err_code);
152 APP_ERROR_CHECK(err_code);
154 APP_ERROR_CHECK(err_code);
167 if(p_reg_item != NULL)
198 static bool m_test_mode =
false;
201 if(p_wpts_c_evt->
gatt_status == BLE_GATT_STATUS_SUCCESS)
204 ASSERT(p_reg_item != NULL);
206 switch (p_wpts_c_evt->
type)
293 APP_ERROR_CHECK(err_code);
305 APP_ERROR_CHECK(err_code);
309 APP_ERROR_CHECK(err_code);
344 APP_ERROR_CHECK(err_code);
347 APP_ERROR_CHECK(err_code);
350 APP_ERROR_CHECK(err_code);
355 APP_ERROR_CHECK(err_code);
358 APP_ERROR_CHECK(err_code);
361 APP_ERROR_CHECK(err_code);
369 APP_ERROR_CHECK(err_code);
371 APP_ERROR_CHECK(err_code);
static void m_services_init(void)
Initialize Client Service.
ble_wpts_c_evt_handler_t evt_handler
static void m_alert_handler(ble_wpts_c_t *p_wpts_c, ble_wpts_c_evt_t *const p_wpts_c_evt)
Handle PRU alert.
#define PTU_MS_FROM_BEACON_STOP_TO_ACTIVATE_DISTANT_LIST
#define PTU_SENSORS_READ_INTERVAL_MS
union ble_wpts_c_evt_t::@1 data
uint8_t wired_charge_detect
WPT Service Client structure. This contains various status information for the service.
uint32_t ptu_sensors_read(void)
Read sensors. This function should typically be called regularly by a timer and can generate events b...
#define PTU_PRU_DYN_READ_INTERVAL_MS
State machine state variables.
void ptu_power_ctrl_adjust(void)
Perform power control adjustments.
#define BLE_WPTS_PRU_DYNAMIC_OPTION_VRECT_MIN_DYN_BITPOS
uint32_t ptu_cm_init(ptu_sm_handler_t sm_handler)
Initialize connection manager.
static ptu_sm_state_vars_t m_state
uint32_t ptu_sensors_init(ptu_sm_handler_t sm_handler)
Initialize PTU Sensors. This function must be called before any other PTU Sensors function can be cal...
bool dfu_check(void)
Needs to be implemented by application. Check if it is OK to jump to the DFU application.
uint8_t ptu_reg_n_entries_get(void)
Get the number of devices currently in registry. This will include all connected devices, as well as all devices which is currently being registered.
ptu_sm_signal_type_t
PTU signal type.
static void m_ptu_pru_dyn_read_timer_handler(void *p_context)
uint32_t ptu_latching_fault_entered(ptu_sm_state_t previous)
Handle the entry of latching fault state.
uint32_t ble_wpts_c_init(const ble_wpts_c_init_t *p_wpts_c_init)
Initialize the WPT Service Client.
void ptu_cm_disconnect_all(void)
Disconnect all PRUs.
void terminate(void)
Needs to be implemented by application. Perform all requried actions before jump to DFU application c...
static void m_ptu_sensor_timer_handler(void *p_context)
Handler of sensor timer.
void ptu_beacons_init(void)
Initialize beacons handling.
#define BLE_WPTS_PRU_DYNAMIC_OPTION_VRECT_SET_DYN_BITPOS
static void m_timers_init(void)
Initialize timers.
ptu_sm_state_t prev_state
Alert field used in both Alert Characteristic and Dynamic Parameters Characteristic.
uint32_t ptu_tmux_poweramp_enable_set(bool enable)
Test wrapper for ptu_hal_poweramp_enable_set().
uint32_t ptu_power_ctrl_set_poweramp_input(uint16_t level)
Perform power control adjustments.
#define PTU_POWERAMP_INPUT_NOMINAL
ptu_tester_command_t tester_command
void ptu_cm_on_ble_evt(ble_evt_t *p_ble_evt)
BLE event handler.
void ptu_start(void)
Start ptu profile. Here "start" means that profile can start generating events through ptu_evt_handle...
uint16_t vrect_high_static
void ptu_power_sharing_temperature_warning_set(bool warning)
Inform power control module that PTU is having a high temperature warning. When this occurs the power...
void ptu_cm_scan_disable(void)
Disable scanning.
void(* app_sm_evt_handler_t)(pru_sm_signal_type_t signal, const pru_sm_state_vars_t *p_state_vars)
ptu_sm_state_t current_state
ble_wpts_c_evt_type_t type
static void m_wpts_evt_handler(ble_wpts_c_t *p_wpts_c, ble_wpts_c_evt_t *const p_wpts_c_evt)
Handle WPT client service event.
#define BLE_WPTS_PRU_INFO_PTU_TEST_MODE_ENABLED_VAL
#define BLE_WPTS_PRU_DYNAMIC_OPTION_VRECT_HIGH_DYN_BITPOS
WPT Service Client init structure. This contains all options and data needed for initialization of th...
pru_static_t prev_pru_static
void ptu_on_ble_evt(ble_evt_t *p_ble_evt)
Dispatches a BLE stack event to PTU.
void ptu_cm_scan_enable(void)
Enable scanning.
uint8_t pru_over_temperature
#define BLE_WPTS_PRU_DYNAMIC_OPTION_VRECT_SET_DYN_BITMSK
WPT Service Client event.
#define BLE_WPTS_PRU_DYNAMIC_OPTION_VRECT_MIN_DYN_BITMSK
uint32_t ptu_dlh_init(ptu_dlh_init_t const *p_init)
Check if device with provided address is in the distant list.
void ble_wpts_c_on_ble_evt(ble_wpts_c_t *p_wpts_c, ble_evt_t *p_ble_evt)
WPT Service Client BLE stack event handler.
uint8_t pending_charge_disable
#define TIMER_START(timer_id, ms, p_ctx)
void ptu_reg_init(void)
Initialize registry database.
ptu_reg_item_t * ptu_reg_item_get_from_conn_handle(uint16_t conn_handle)
Get registry item from connection handle.
void ptu_power_sharing_on_wpt_service_evt(ble_wpts_c_t *p_wpts_c, ble_wpts_c_evt_t *const p_wpts_c_evt)
Handle service events.
void ptu_cm_dynamic_read_all(void)
Issue read request for the PRU dynamic characteristic to all registerred PRUs.
APP_TIMER_DEF(m_pru_dyn_read_timer_id)
uint16_t vrect_min_static
uint32_t ptu_sensors_data_get(const ptu_sensor_data_t **sensors_data)
Get the latest data read from the PTU sensors.
static void m_ptu_sm_execute(ptu_sm_signal_type_t signal)
Used when executing state machine events.
pru_dynamic_t prev_pru_dynamic
void ptu_cm_remove_device(ptu_reg_item_t *reg_item_p)
Disconnect and/or unregister any device.
pru_dynamic_t pru_dynamic
bool ptu_cm_mode_trans_in_progress(void)
Get mode transition status.
uint8_t info_ptu_test_mode
uint32_t ptu_latching_fault_init(ptu_sm_handler_t sm_handler)
Initialize latching fault module.
void ptu_init(app_sm_evt_handler_t sm_evt_handler)
Initialize PTU. This function must be called before any other PTU function can be called...
uint32_t tmux_init(void)
Initialize the PTU's test multiplexer.
#define BLE_WPTS_PRU_DYNAMIC_OPTION_VRECT_HIGH_DYN_BITMSK
void ptu_cm_on_wpt_service_evt(ble_wpts_c_t *p_wpts_c, ble_wpts_c_evt_t *const p_wpts_c_evt)
Handle service events.
uint32_t ptu_power_sharing_init(ptu_sm_handler_t sm_handler)
Initialize power sharing module.
#define BLE_WPTS_BITFIELD_READ(bitfield, msk, pos)
Read bitfield.
void ptu_power_ctrl_set_itx_val(ptu_tester_command_t cmd)
Handle PTU tester power adjustment command.
#define PTU_POWERAMP_INPUT_START
static app_sm_evt_handler_t m_app_sm_evt_handler
PRU Dynamic Parameter structure.
Definition of PTU sensor data.
ptu_sm_state_t ptu_sm_execute(ptu_sm_signal_type_t signal, ptu_sm_state_vars_t *p_state)
State machine input signal handler.
void ptu_beacons_start(void)
Start PTU Beacons.