Wirepas SDK
poslib_measurement.h
Go to the documentation of this file.
1 
7 #ifndef _POSLIB_MEASUREMENT_H_
8 #define _POSLIB_MEASUREMENT_H_
9 
15 typedef enum
16 {
32 
34 #define MAX_PAYLOAD 102
35 
37 #define MAX_BEACONS 16
38 
39 #define NODE_ADDRESS_LENGTH 4
40 #define DEFAULT_MEASUREMENT_TYPE_TAG POSLIB_MEAS_RSS_SR_4BYTE_ADDR
41 #define DEFAULT_MEASUREMENT_TYPE_ANCHOR POSLIB_MEAS_RSS_SR_ANCHOR_4BYTE_ADDR
42 
43 
45 #define PACKED_STRUCT struct __attribute__((__packed__))
46 
48 {
49  uint16_t sequence;
51 
56 {
57  uint32_t address;
58  uint8_t norm_rss;
60 
65 {
66  uint8_t type;
67  uint8_t length;
69 
74 {
76  uint16_t voltage;
78 
80 #define POSLIB_NODE_INFO_FEATURES_VERSION 0
81 
84 typedef enum
85 {
97 
102 {
104  uint32_t update_s;
106  uint32_t features;
108  uint8_t node_mode;
110  uint8_t node_class;
112 
113 typedef enum
114 {
117 
118 typedef struct poslib_measurement
119 {
121  uint32_t max_duration_us; //maximum scan duration [us], (if 0 then scan default time is used)
122 } poslib_scan_ctrl_t;
123 
124 
130 bool PosLibMeas_startScan(poslib_scan_ctrl_t * scan_ctrl);
131 
132 bool PosLibMeas_opportunisticScan(bool enable);
133 
138 uint8_t PosLibMeas_getBeaconNum(void);
139 
143 void PosLibMeas_stop(void);
144 
145 bool PosLibMeas_getPayload(uint8_t * bytes, uint8_t max_len, uint8_t sequence,
146  poslib_measurements_e meas_type, bool add_voltage,
147  poslib_meas_record_node_info_t * node_info,
148  uint8_t * bytes_len, uint8_t * num_meas);
149 
155 void PosLibMeas_clearMeas(void);
156 #endif
poslib_meas_record_node_info_t::features
uint32_t features
Definition: poslib_measurement.h:106
POSLIB_NODE_INFO_FLAG_EDDYSTONE_ON
@ POSLIB_NODE_INFO_FLAG_EDDYSTONE_ON
Definition: poslib_measurement.h:93
poslib_measurement
Definition: poslib_measurement.h:118
poslib_meas_record_node_info_t::node_class
uint8_t node_class
Definition: poslib_measurement.h:110
PACKED_STRUCT
#define PACKED_STRUCT
Definition: poslib_measurement.h:45
poslib_meas_record_voltage_t::voltage
uint16_t voltage
Definition: poslib_measurement.h:76
poslib_meas_record_header_t
Measurement record header.
Definition: poslib_measurement.h:64
poslib_meas_message_header_t
Definition: poslib_measurement.h:47
POSLIB_MEAS_VOLTAGE
@ POSLIB_MEAS_VOLTAGE
Definition: poslib_measurement.h:22
POSLIB_MEAS_TIME
@ POSLIB_MEAS_TIME
Definition: poslib_measurement.h:20
poslib_node_info_features_e
poslib_node_info_features_e
Node active features (.
Definition: poslib_measurement.h:84
POSLIB_MEAS_RSS_SR_ANCHOR
@ POSLIB_MEAS_RSS_SR_ANCHOR
Definition: poslib_measurement.h:29
POSLIB_NODE_INFO_FLAG_IBEACON_ON
@ POSLIB_NODE_INFO_FLAG_IBEACON_ON
Definition: poslib_measurement.h:95
poslib_measurement::mode
poslib_scan_mode_e mode
Definition: poslib_measurement.h:120
poslib_measurement::max_duration_us
uint32_t max_duration_us
Definition: poslib_measurement.h:121
poslib_meas_record_node_info_t::node_mode
uint8_t node_mode
Definition: poslib_measurement.h:108
POSLIB_NODE_INFO_FLAG_MOTION_EN
@ POSLIB_NODE_INFO_FLAG_MOTION_EN
Definition: poslib_measurement.h:89
POSLIB_MEAS_RSS_HR
@ POSLIB_MEAS_RSS_HR
Definition: poslib_measurement.h:19
PosLibMeas_getBeaconNum
uint8_t PosLibMeas_getBeaconNum(void)
Get the number of beacons available.
POSLIB_MEAS_SPACE
@ POSLIB_MEAS_SPACE
Definition: poslib_measurement.h:21
poslib_meas_record_voltage_t
Voltage record (header + payload)
Definition: poslib_measurement.h:73
poslib_scan_mode_e
poslib_scan_mode_e
Definition: poslib_measurement.h:113
PosLibMeas_clearMeas
void PosLibMeas_clearMeas(void)
Clears measurement table.
PosLibMeas_startScan
bool PosLibMeas_startScan(poslib_scan_ctrl_t *scan_ctrl)
Starts new scan.
POSLIB_NODE_INFO_FLAG_IS_STATIC
@ POSLIB_NODE_INFO_FLAG_IS_STATIC
Definition: poslib_measurement.h:91
poslib_meas_record_header_t::length
uint8_t length
Definition: poslib_measurement.h:67
poslib_meas_rss_data_t::norm_rss
uint8_t norm_rss
Definition: poslib_measurement.h:58
poslib_meas_rss_data_t
RSS measurement structure.
Definition: poslib_measurement.h:55
poslib_measurements_e
poslib_measurements_e
defines the device's positioning mode. The type is matched against the WPE proto definition.
Definition: poslib_measurement.h:15
POSLIB_MEAS_RSS_SR_4BYTE_ADDR
@ POSLIB_MEAS_RSS_SR_4BYTE_ADDR
Definition: poslib_measurement.h:23
POSLIB_MEAS_RSS_SR_ANCHOR_4BYTE_ADDR
@ POSLIB_MEAS_RSS_SR_ANCHOR_4BYTE_ADDR
Definition: poslib_measurement.h:30
PosLibMeas_opportunisticScan
bool PosLibMeas_opportunisticScan(bool enable)
POSLIB_MEAS_NODE_INFO
@ POSLIB_MEAS_NODE_INFO
Definition: poslib_measurement.h:24
poslib_meas_rss_data_t::address
uint32_t address
Definition: poslib_measurement.h:57
poslib_meas_record_node_info_t
Node info record.
Definition: poslib_measurement.h:101
SCAN_MODE_STANDARD
@ SCAN_MODE_STANDARD
Definition: poslib_measurement.h:115
POSLIB_MEAS_RSS_SR
@ POSLIB_MEAS_RSS_SR
Definition: poslib_measurement.h:18
POSLIB_NODE_INFO_MASK_VERSION
@ POSLIB_NODE_INFO_MASK_VERSION
Definition: poslib_measurement.h:87
PosLibMeas_stop
void PosLibMeas_stop(void)
Stops the measurement module. Callbacks are removed.
PosLibMeas_getPayload
bool PosLibMeas_getPayload(uint8_t *bytes, uint8_t max_len, uint8_t sequence, poslib_measurements_e meas_type, bool add_voltage, poslib_meas_record_node_info_t *node_info, uint8_t *bytes_len, uint8_t *num_meas)
poslib_meas_record_voltage_t::header
poslib_meas_record_header_t header
Definition: poslib_measurement.h:75
poslib_meas_record_header_t::type
uint8_t type
Definition: poslib_measurement.h:66
poslib_meas_record_node_info_t::update_s
uint32_t update_s
Definition: poslib_measurement.h:104
poslib_meas_message_header_t::sequence
uint16_t sequence
Definition: poslib_measurement.h:49