Nordic Semiconductor nRF5 AirFuel SDK  version 2.2.0
ptu_registry.h
Go to the documentation of this file.
1 /* Copyright (c) Nordic Semiconductor. All Rights Reserved.
2  *
3  * The information contained herein is property of Nordic Semiconductor ASA.
4  * Terms and conditions of usage are described in detail in NORDIC
5  * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
6  *
7  * Licensees are granted free, non-transferable use of the information. NO
8  * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
9  * the file.
10  *
11  */
12 
20 #ifndef __PTU_REGISTRY_H__
21 #define __PTU_REGISTRY_H__
22 
23 #include <stdbool.h>
24 #include <stdint.h>
25 
26 #include "ble_wpts_c.h"
27 #include "ptu_config.h"
28 #include "app_timer.h"
29 
31 typedef enum
32 {
45 
47 typedef struct
48 {
50  uint8_t adv_flags;
51  ble_gap_addr_t address;
56  app_timer_id_t timer_id;
58  uint8_t age;
59  uint8_t pre_connect_cnt;
60  uint32_t p_adj_time;
62  uint8_t active_p_adj_cooldown:1;
63  uint8_t adjusted_power:1;
64  uint8_t pending_dyn_read:1;
65  uint8_t pending_ctl_write:1;
66  uint8_t charged:1;
67  uint8_t pending_charge_disable:1;
68  uint8_t link_encrypted:1;
69  uint8_t p_adj_disabled:1;
70  uint8_t reconnect:1;
72 
74 typedef struct
75 {
76  uint8_t n_entries;
78 } ptu_reg_t;
79 
80 /******************************************************************************/
83 /******************************************************************************/
84 
87 void ptu_reg_init(void);
88 
94 uint8_t ptu_reg_registered_devices_get(ptu_reg_item_t** registered_devices);
95 
101 uint8_t ptu_reg_n_entries_get(void);
102 
109 uint32_t ptu_reg_item_get_from_index(uint8_t index, ptu_reg_item_t ** item_p);
110 
116 ptu_reg_item_t * ptu_reg_item_get_from_conn_handle(uint16_t conn_handle);
117 
123 ptu_reg_item_t * ptu_reg_item_get_from_address(ble_gap_addr_t * address);
124 
131 
138 ptu_reg_item_t * ptu_reg_item_add(ble_gap_evt_adv_report_t * p_adv_report, ptu_reg_item_state_t init_state);
139 
147 uint32_t ptu_reg_set_device_waiting_to_connect(ptu_reg_item_t * reg_item_p, uint8_t * address);
148 
153 
157 bool ptu_reg_all_charged(void);
158 
161 #endif /* __PTU_H__ */
162 
pru_control_t prev_ctl
Definition: ptu_registry.h:55
void ptu_reg_item_delete(ptu_reg_item_t *item)
Delete item that has previoulsy been added to registry.
Definition: ptu_registry.c:220
uint8_t n_entries
Definition: ptu_registry.h:76
Registry item.
Definition: ptu_registry.h:47
ptu_reg_item_t * ptu_reg_item_add(ble_gap_evt_adv_report_t *p_adv_report, ptu_reg_item_state_t init_state)
Initiate registration of new device.
Definition: ptu_registry.c:187
WPT Service Client structure. This contains various status information for the service.
Definition: ble_wpts_c.h:57
uint8_t ptu_reg_registered_devices_get(ptu_reg_item_t **registered_devices)
Get handles for all registered devices.
Definition: ptu_registry.c:254
PRU Control structure.
Definition: wpt.h:79
ble_wpts_c_t ble_wpts_c
Definition: ptu_registry.h:52
ptu_reg_item_t * ptu_reg_item_get_from_address(ble_gap_addr_t *address)
Get registry item from GAP address.
Definition: ptu_registry.c:153
uint32_t ptu_reg_item_get_from_index(uint8_t index, ptu_reg_item_t **item_p)
Get registry item from index in database. Index must be < PTU_MAX_CONNECTIONS.
Definition: ptu_registry.c:126
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.
Definition: ptu_registry.c:268
uint8_t adv_flags
Definition: ptu_registry.h:50
ctl_adj_power_t prev_adj_power
Definition: ptu_registry.h:57
Registry.
Definition: ptu_registry.h:74
ptu_reg_item_state_t
Registry item status.
Definition: ptu_registry.h:31
int32_t p_rect_before_p_adj
Definition: ptu_registry.h:61
ble_gap_addr_t address
Definition: ptu_registry.h:51
PRU Static Parameter structure.
Definition: wpt.h:89
pru_static_t prev_pru_static
Definition: ptu_registry.h:53
uint8_t pre_connect_cnt
Definition: ptu_registry.h:59
bool ptu_reg_all_charged(void)
Function returning true if all items in registry are charged or there are not items in registry...
Definition: ptu_registry.c:273
uint32_t ptu_reg_set_device_waiting_to_connect(ptu_reg_item_t *reg_item_p, uint8_t *address)
Set the state of registry item to "ready to connect" state. Associates the address with the registry ...
Definition: ptu_registry.c:287
ptu_reg_item_t * ptu_reg_item_oldest_get(ptu_reg_item_state_t state)
Get oldest registry item having a specific state.
Definition: ptu_registry.c:169
void ptu_reg_init(void)
Initialize registry database.
Definition: ptu_registry.c:91
ptu_reg_item_t * ptu_reg_item_get_from_conn_handle(uint16_t conn_handle)
Get registry item from connection handle.
Definition: ptu_registry.c:137
uint32_t p_adj_time
Definition: ptu_registry.h:60
app_timer_id_t timer_id
Definition: ptu_registry.h:56
ctl_adj_power_t
Power adjust settings in control packet.
Definition: wpt.h:42
pru_dynamic_t prev_pru_dynamic
Definition: ptu_registry.h:54
#define PTU_MAX_CONNECTIONS
Definition: ptu_config.h:29
ptu_reg_item_state_t state
Definition: ptu_registry.h:49
PRU Dynamic Parameter structure.
Definition: wpt.h:164