smartdof 2.0.0.0
smartdof.h
Go to the documentation of this file.
1/*
2 * MikroSDK - MikroE Software Development Kit
3 * Copyright© 2020 MikroElektronika d.o.o.
4 *
5 * Permission is hereby granted, free of charge, to any person
6 * obtaining a copy of this software and associated documentation
7 * files (the "Software"), to deal in the Software without restriction,
8 * including without limitation the rights to use, copy, modify, merge,
9 * publish, distribute, sublicense, and/or sell copies of the Software,
10 * and to permit persons to whom the Software is furnished to do so,
11 * subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be
14 * included in all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
22 * OR OTHER DEALINGS IN THE SOFTWARE.
23 */
24
33// ----------------------------------------------------------------------------
34
35#ifndef SMARTDOF_H
36#define SMARTDOF_H
37
42#ifdef PREINIT_SUPPORTED
43#include "preinit.h"
44#endif
45
46#ifdef MikroCCoreVersion
47 #if MikroCCoreVersion >= 1
48 #include "delays.h"
49 #endif
50#endif
51
52#include "drv_digital_out.h"
53#include "drv_digital_in.h"
54#include "drv_i2c_master.h"
55
56// -------------------------------------------------------------- PUBLIC MACROS
66#define SMARTDOF_MAP_MIKROBUS( cfg, mikrobus ) \
67 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
68 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
69 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
70 cfg.bt = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
71 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
78#define SMARTDOF_RETVAL uint8_t
79
80#define SMARTDOF_OK 0x00
81#define SMARTDOF_INIT_ERROR 0xFF
88#define SLAVE_ADDRESS 0x4A
95#define SMARTDOF_BMODE_FW_UPDATE 0x00
96#define SMARTDOF_BMODE_NORMAL 0x01
103#define SMARTDOF_QPOINT_RAW_ACCEL 0
104#define SMARTDOF_QPOINT_ACCEL 8
105#define SMARTDOF_QPOINT_LINEAR_ACCEL 8
106#define SMARTDOF_QPOINT_GRAVITY 8
107#define SMARTDOF_QPOINT_RAW_GYRO 0
108#define SMARTDOF_QPOINT_GYRO_CALIB 9
109#define SMARTDOF_QPOINT_GYRO_UNCALIB 9
110#define SMARTDOF_QPOINT_RAW_MAGNETO 0
111#define SMARTDOF_QPOINT_MAGNET_CALIB 4
112#define SMARTDOF_QPOINT_MAGNET_UNCALIB 4
113#define SMARTDOF_QPOINT_ROT_VECT 14
114#define SMARTDOF_QPOINT_GAME_ROT_VECT 14
115#define SMARTDOF_QPOINT_GEOMAG_ROT_VECT 14
116#define SMARTDOF_QPOINT_TAP_DETECT 0
117#define SMARTDOF_QPOINT_STEP_DETECT 0
118#define SMARTDOF_QPOINT_STEP_COUNT 0
119#define SMARTDOF_QPOINT_SIG_MOTION 0
120#define SMARTDOF_QPOINT_STABIL_CLASS 0
121#define SMARTDOF_QPOINT_SHAKE_DETECT 0
122#define SMARTDOF_QPOINT_STABIL_DETECT 0
123#define SMARTDOF_QPOINT_PERS_ACT_CLASS 0
124#define SMARTDOF_QPOINT_ARVR_STABIL_ROT_VECT 14
125#define SMARTDOF_QPOINT_ARVR_STABIL_GAME_ROT_VECT 14
126#define SMARTDOF_QPOINT_GYRO_INT_ROT_VECT 14
133#define SMARTDOF_CHAN_CMD 0
134#define SMARTDOF_CHAN_EXE 1
135#define SMARTDOF_CHAN_CTRL 2
136#define SMARTDOF_CHAN_INPUT_REP 3
137#define SMARTDOF_CHAN_WAKE_REP 4
138#define SMARTDOF_CHAN_GYRO_ROT_VECT 5
145#define SMARTDOF_CMD_ERR 0x01
146#define SMARTDOF_CMD_COUNT 0x02
147#define SMARTDOF_CMD_TARE 0x03
148#define SMARTDOF_CMD_INIT 0x04
149#define SMARTDOF_CMD_UNS_INIT 0x84
150#define SMARTDOF_CMD_SAVE_DCD 0x06
151#define SMARTDOF_CMD_ME_CALIB 0x07
152#define SMARTDOF_CMD_DCD_PERIOD_SAVE 0x09
153#define SMARTDOF_CMD_OSCIL 0x0A
154#define SMARTDOF_CMD_CLEAR_DCD 0x0B
161#define SMARTDOF_CMD_CTR_SCMD_GET_CNT 0x00
162#define SMARTDOF_CMD_CTR_SCMD_CLEAR_CNT 0x01
163#define SMARTDOF_CMD_TARE_SCMD_TARE_NOW 0x00
164#define SMARTDOF_CMD_TARE_SCMD_PERS_TARE 0x01
165#define SMARTDOF_CMD_TARE_SCMD_SET_REORIENT 0x02
166#define SMARTDOF_CMD_INIT_SCMD_NO_OP 0x00
167#define SMARTDOF_CMD_INIT_SCMD_ENT_SENS_HUB 0x01
174#define SMARTDOF_REP_ID_GET_FEAT_REQ 0xFE
175#define SMARTDOF_REP_ID_SET_FEAT_CMD 0xFD
176#define SMARTDOF_REP_ID_GET_FEAT_RESP 0xFC
177#define SMARTDOF_REP_ID_PROD_ID_REQ 0xF9
178#define SMARTDOF_REP_ID_PROD_ID_RESP 0xF8
179#define SMARTDOF_REP_ID_FRS_WR_REQ 0xF7
180#define SMARTDOF_REP_ID_FRS_WR_DATA 0xF6
181#define SMARTDOF_REP_ID_FRS_WR_RESP 0xF5
182#define SMARTDOF_REP_ID_FRS_RD_REQ 0xF4
183#define SMARTDOF_REP_ID_FRS_RD_RESP 0xF3
184#define SMARTDOF_REP_ID_CMD_REQ 0xF2
185#define SMARTDOF_REP_ID_CMD_RESP 0xF1
186#define SMARTDOF_FEAT_REP_ID_BASE_TIMESTAMP 0xFB
187#define SMARTDOF_FEAT_REP_ID_TIMESTAMP_REBASE 0xFA
188#define SMARTDOF_FEAT_REP_ID_ACCEL 0x01
189#define SMARTDOF_FEAT_REP_ID_GYRO 0x02
190#define SMARTDOF_FEAT_REP_ID_MAGNET 0x03
191#define SMARTDOF_FEAT_REP_ID_LINEAR_ACCEL 0x04
192#define SMARTDOF_FEAT_REP_ID_ROT_VECTOR 0x05
193#define SMARTDOF_FEAT_REP_ID_GRAVITY 0x06
194#define SMARTDOF_FEAT_REP_ID_UNCALIB_GYRO 0x07
195#define SMARTDOF_FEAT_REP_ID_GAME_ROT_VECTOR 0x08
196#define SMARTDOF_FEAT_REP_ID_GEOMAG_ROT_VECTOR 0x09
197#define SMARTDOF_FEAT_REP_ID_PRESSURE 0x0A
198#define SMARTDOF_FEAT_REP_ID_AMBI_LIGHT 0x0B
199#define SMARTDOF_FEAT_REP_ID_HIMIDITY 0x0C
200#define SMARTDOF_FEAT_REP_ID_PROXY 0x0D
201#define SMARTDOF_FEAT_REP_ID_TEMPERATURE 0x0E
202#define SMARTDOF_FEAT_REP_ID_UNCALIB_MAG_FIELD 0x0F
203#define SMARTDOF_FEAT_REP_ID_TAP_DETECT 0x10
204#define SMARTDOF_FEAT_REP_ID_STEP_COUNT 0x11
205#define SMARTDOF_FEAT_REP_ID_SIG_MOTION 0x12
206#define SMARTDOF_FEAT_REP_ID_STABIL_CLASS 0x13
207#define SMARTDOF_FEAT_REP_ID_RAW_ACCEL 0x14
208#define SMARTDOF_FEAT_REP_ID_RAW_GYRO 0x15
209#define SMARTDOF_FEAT_REP_ID_RAW_MAGNETO 0x16
210#define SMARTDOF_FEAT_REP_ID_SAR 0x17
211#define SMARTDOF_FEAT_REP_ID_STEP_DETECT 0x18
212#define SMARTDOF_FEAT_REP_ID_SHAKE_DETECT 0x19
213#define SMARTDOF_FEAT_REP_ID_FLIP_DETECT 0x1A
214#define SMARTDOF_FEAT_REP_ID_PICKUP_DETECT 0x1B
215#define SMARTDOF_FEAT_REP_ID_STABIL_DETECT 0x1C
216#define SMARTDOF_FEAT_REP_ID_PERS_ACT_CLASS 0x1E
217#define SMARTDOF_FEAT_REP_ID_SLEEP_DETECT 0x1F
218#define SMARTDOF_FEAT_REP_ID_TILT_DETECT 0x20
219#define SMARTDOF_FEAT_REP_ID_POCKET_DETECT 0x21
220#define SMARTDOF_FEAT_REP_ID_CIRCLE_DETECT 0x22
221#define SMARTDOF_FEAT_REP_ID_HART_RATE_MONITOR 0x23
222#define SMARTDOF_FEAT_REP_ID_ARVR_STABIL_ROT_VECT 0x28
223#define SMARTDOF_FEAT_REP_ID_ARVR_GAME_STABIL_ROT_VECT 0x29
230#define SMARTDOF_FRS_REP_ID_STATIC_CALIB_AGM 0x7979
231#define SMARTDOF_FRS_REP_ID_NOMINAL_CALIB_AGM 0x4D4D
232#define SMARTDOF_FRS_REP_ID_STATIC_CALIB_SRA 0x8A8A
233#define SMARTDOF_FRS_REP_ID_NOMINAL_CALIB_SRA 0x4E4E
234#define SMARTDOF_FRS_REP_ID_DYNAMIC_CALIB 0x1F1F
235#define SMARTDOF_FRS_REP_ID_MOTION_ENG_POW_MGMT 0xD3E2
236#define SMARTDOF_FRS_REP_ID_SYS_ORIENT 0x2D3E
237#define SMARTDOF_FRS_REP_ID_PRIM_ACCEL_ORIENT 0x2D41
238#define SMARTDOF_FRS_REP_ID_SCREEN_ROT_ACCEL_ORIENT 0x2D43
239#define SMARTDOF_FRS_REP_ID_GYRO_ORIENT 0x2D46
240#define SMARTDOF_FRS_REP_ID_MAGNETO_ORIENT 0x2D4C
241#define SMARTDOF_FRS_REP_ID_ARVR_STABIL_ROT_VEC 0x3E2D
242#define SMARTDOF_FRS_REP_ID_ARVR_STABIL_GAME_ROT_VEC 0x3E2E
243#define SMARTDOF_FRS_REP_ID_SIG_MOTION_DETECT_CFG 0xC274
244#define SMARTDOF_FRS_REP_ID_SHAKE_DETECT_CFG 0x7D7D
245#define SMARTDOF_FRS_REP_ID_MAX_FUSION_PERIOD 0xD7D7
246#define SMARTDOF_FRS_REP_ID_SERIAL_NUM 0x4B4B
247#define SMARTDOF_FRS_REP_ID_ENVIRO_SENS_PRESS 0x39AF
248#define SMARTDOF_FRS_REP_ID_ENVIRO_SENS_TEMP 0x4D20
249#define SMARTDOF_FRS_REP_ID_ENVIRO_SENS_HUMI 0x1AC9
250#define SMARTDOF_FRS_REP_ID_ENVIRO_SENS_AMBI 0x39B1
251#define SMARTDOF_FRS_REP_ID_ENVIRO_SENS_PROXI 0x4DA2
252#define SMARTDOF_FRS_REP_ID_ALS_CALIB 0xD401
253#define SMARTDOF_FRS_REP_ID_PROXI_SENS_CALIB 0xD402
254#define SMARTDOF_FRS_REP_ID_PICKUP_DETECT_CFG 0x1B2A
255#define SMARTDOF_FRS_REP_ID_FLIP_DETECT_CFG 0xFC94
256#define SMARTDOF_FRS_REP_ID_STAB_DETECT_CFG 0xED85
257#define SMARTDOF_FRS_REP_ID_ACT_TRACK_CFG 0xED88
258#define SMARTDOF_FRS_REP_ID_SLEEP_DETECT_CFG 0xED87
259#define SMARTDOF_FRS_REP_ID_TILT_DETECT_CFG 0xED89
260#define SMARTDOF_FRS_REP_ID_POCK_DETECT_CFG 0xEF27
261#define SMARTDOF_FRS_REP_ID_CIRC_DETECT_CFG 0xEE51
262#define SMARTDOF_FRS_REP_ID_USER_REC 0x74B4
263#define SMARTDOF_FRS_REP_ID_MOTION_ENG_TIME_SRC_SEL 0xD403
264#define SMARTDOF_FRS_REP_ID_UART_OUT_FORMAT_SEL 0xA1A1
265#define SMARTDOF_FRS_REP_ID_GYROINT_ROT_VEC_CFG 0xA1A2
266#define SMARTDOF_FRS_REP_ID_FUSION_CTRL_FLAGS 0xA1A3
273#define SMARTDOF_FRS_REP_ID_RAW_ACCEL 0xE301
274#define SMARTDOF_FRS_REP_ID_ACCEL 0xE302
275#define SMARTDOF_FRS_REP_ID_LINEAR_ACCEL 0xE303
276#define SMARTDOF_FRS_REP_ID_GRAVITY 0xE304
277#define SMARTDOF_FRS_REP_ID_RAW_GYRO 0xE305
278#define SMARTDOF_FRS_REP_ID_GYRO_CALIB 0xE306
279#define SMARTDOF_FRS_REP_ID_GYRO_UNCALIB 0xE307
280#define SMARTDOF_FRS_REP_ID_RAW_MAGNETO 0xE308
281#define SMARTDOF_FRS_REP_ID_MAGNETO_CALIB 0xE309
282#define SMARTDOF_FRS_REP_ID_MAGNETO_UNCALIB 0xE30A
283#define SMARTDOF_FRS_REP_ID_ROT_VECTOR 0xE30B
284#define SMARTDOF_FRS_REP_ID_GAME_ROT_VECTOR 0xE30C
285#define SMARTDOF_FRS_REP_ID_GEO_ROT_VECTOR 0xE30D
286#define SMARTDOF_FRS_REP_ID_PRESSURE 0xE30E
287#define SMARTDOF_FRS_REP_ID_AMBIENT_LIGHT 0xE30F
288#define SMARTDOF_FRS_REP_ID_HUMIDITY 0xE310
289#define SMARTDOF_FRS_REP_ID_PROXY 0xE311
290#define SMARTDOF_FRS_REP_ID_TEMPERATURE 0xE312
291#define SMARTDOF_FRS_REP_ID_TAP_DETECT 0xE313
292#define SMARTDOF_FRS_REP_ID_STEP_DETECT 0xE314
293#define SMARTDOF_FRS_REP_ID_STEP_COUNT 0xE315
294#define SMARTDOF_FRS_REP_ID_SIG_MOTION 0xE316
295#define SMARTDOF_FRS_REP_ID_STABIL_CLASS 0xE317
296#define SMARTDOF_FRS_REP_ID_SHAKE_DETECT 0xE318
297#define SMARTDOF_FRS_REP_ID_FLIP_DETECT 0xE319
298#define SMARTDOF_FRS_REP_ID_PICK_DETECT 0xE31A
299#define SMARTDOF_FRS_REP_ID_STABIL_DETECT 0xE31B
300#define SMARTDOF_FRS_REP_ID_PERS_ACT_CLASS 0xE31C
301#define SMARTDOF_FRS_REP_ID_SLEEP_DETECT 0xE31D
302#define SMARTDOF_FRS_REP_ID_TILT_DETECT 0xE31E
303#define SMARTDOF_FRS_REP_ID_POCKET_DETECT 0xE31F
304#define SMARTDOF_FRS_REP_ID_CIRCLE_DETECT 0xE320
305#define SMARTDOF_FRS_REP_ID_HEART_RATE_MON 0xE321
306#define SMARTDOF_FRS_REP_ID_ARVR_STABIL_ROT_VECTOR 0xE322
307#define SMARTDOF_FRS_REP_ID_ARVR_STABIL_GAME_ROT_VECTOR 0xE323
308#define SMARTDOF_FRS_REP_ID_GYRO_INTEG_ROT_VEC 0xE324
311 // End group macro
312// --------------------------------------------------------------- PUBLIC TYPES
321typedef struct
322{
323 // Output pins
324
325 digital_out_t rst;
326 digital_out_t bt;
327
328 // Input pins
329
330 digital_in_t int_pin;
331
332 // Modules
333
334 i2c_master_t i2c;
335
336 // ctx variable
337
339
340 uint8_t shtp_header[ 4 ];
341 uint8_t send_data_buf[ 21 ];
342 uint8_t rec_data_buf[ 1024 ];
343 uint16_t data_len;
344
345} smartdof_t;
346
350typedef struct
351{
352 // Communication gpio pins
353
354 pin_name_t scl;
355 pin_name_t sda;
356
357 // Additional gpio pins
358
359 pin_name_t rst;
360 pin_name_t bt;
361 pin_name_t int_pin;
362
363 // Static variable
364
365 uint32_t i2c_speed;
366 uint8_t i2c_address;
367
369
373typedef struct
374{
375 // Variables
376 uint8_t *reset_cause;
377 uint16_t *sw_version;
378 uint32_t *sw_part_number;
379 uint32_t *sw_build_number;
381
383
387typedef struct
388{
389 // Variables
390 uint8_t *data_length;
391 uint8_t *read_status;
392 uint16_t *data_offset;
393 uint32_t *data_buffer;
394 uint16_t *frs_type;
395
397
401typedef struct
402{
403 // Variables
408 uint32_t batch_interval;
410
412
413 // End types group
414// ----------------------------------------------- PUBLIC FUNCTION DECLARATIONS
415
421#ifdef __cplusplus
422extern "C"{
423#endif
424
434
444
453
463void smartdof_i2c_write ( smartdof_t *ctx, uint8_t *write_data, uint16_t n_bytes );
464
474void smartdof_i2c_read ( smartdof_t *ctx, uint8_t *read_data, uint16_t n_bytes );
475
486
498void smartdof_rst_set ( smartdof_t *ctx, uint8_t pin_state );
499
511void smartdof_bt_set ( smartdof_t *ctx, uint8_t pin_state );
512
521void smartdof_device_reset ( smartdof_t *ctx, uint8_t boot_mode );
522
537float smartdof_q_point_to_float ( int16_t sensor_data, uint8_t sensor_q_point );
538
553void smartdof_send_packet ( smartdof_t *ctx, uint8_t channel_number, uint16_t data_length, uint8_t *packet_data );
554
576uint8_t smartdof_receive_packet ( smartdof_t *ctx, uint32_t n_cycles_timeout );
577
591void smartdof_get_data ( smartdof_t *ctx, uint8_t *data_header, uint16_t *data_length, uint8_t *data_buffer );
592
601
602
631
642void smartdof_frs_write_request ( smartdof_t *ctx, uint16_t data_length, uint16_t frs_type );
643
654void smartdof_frs_write_data_request ( smartdof_t *ctx, uint16_t data_offset, uint32_t *data_buffer );
655
676uint8_t smartdof_frs_write_response ( smartdof_t *ctx, uint8_t *frs_status, uint16_t *data_offset );
677
689void smartdof_frs_read_request ( smartdof_t *ctx, uint16_t data_offset, uint16_t frs_type, uint16_t data_size );
690
722
733void smartdof_command_request ( smartdof_t *ctx, uint8_t command_type, uint8_t *command_parameters );
734
754uint8_t smartdof_command_response ( smartdof_t *ctx, uint8_t *response_parameters );
755
764void smartdof_get_feature_request ( smartdof_t *ctx, uint8_t feature_report_id );
765
787
819
829void smartdof_force_sensor_flush ( smartdof_t *ctx, uint8_t sensor_id );
830
849uint8_t smartdof_flush_completed ( smartdof_t *ctx, uint8_t * sensor_id );
850
851#ifdef __cplusplus
852}
853#endif
854#endif // _SMARTDOF_H_
855
856 // End public_function group
858
859// ------------------------------------------------------------------------- END
#define SMARTDOF_RETVAL
Definition smartdof.h:78
void smartdof_send_packet(smartdof_t *ctx, uint8_t channel_number, uint16_t data_length, uint8_t *packet_data)
Sending data packet.
void smartdof_set_feature_command(smartdof_t *ctx, smartdof_sfc_t *sfc)
Requesting set feature command.
void smartdof_cfg_setup(smartdof_cfg_t *cfg)
Config Object Initialization function.
uint8_t smartdof_command_response(smartdof_t *ctx, uint8_t *response_parameters)
Receiving command response.
float smartdof_q_point_to_float(int16_t sensor_data, uint8_t sensor_q_point)
Q point (fixed point) value to float conversion.
void smartdof_i2c_write(smartdof_t *ctx, uint8_t *write_data, uint16_t n_bytes)
Sending data bytes via I2C.
void smartdof_frs_read_request(smartdof_t *ctx, uint16_t data_offset, uint16_t frs_type, uint16_t data_size)
Requesting FRS read.
void smartdof_bt_set(smartdof_t *ctx, uint8_t pin_state)
Setting BT pin state.
void smartdof_device_reset(smartdof_t *ctx, uint8_t boot_mode)
Device reset.
void smartdof_rst_set(smartdof_t *ctx, uint8_t pin_state)
Setting RST pin state.
void smartdof_frs_write_request(smartdof_t *ctx, uint16_t data_length, uint16_t frs_type)
Requesting FRS write.
void smartdof_get_feature_request(smartdof_t *ctx, uint8_t feature_report_id)
Requesting get feature request.
uint8_t smartdof_receive_packet(smartdof_t *ctx, uint32_t n_cycles_timeout)
Receiving data packet.
void smartdof_get_data(smartdof_t *ctx, uint8_t *data_header, uint16_t *data_length, uint8_t *data_buffer)
Getting received data.
void smartdof_force_sensor_flush(smartdof_t *ctx, uint8_t sensor_id)
Requesting force sensor flush.
uint8_t smartdof_product_id_response(smartdof_t *ctx, smartdof_pir_t *pir)
Receiving product id response.
void smartdof_frs_write_data_request(smartdof_t *ctx, uint16_t data_offset, uint32_t *data_buffer)
Requesting FRS write data.
uint8_t smartdof_default_cfg(smartdof_t *ctx)
Click Default Configuration function.
void smartdof_i2c_read(smartdof_t *ctx, uint8_t *read_data, uint16_t n_bytes)
Receiving data bytes via I2C.
uint8_t smartdof_flush_completed(smartdof_t *ctx, uint8_t *sensor_id)
Receiving flush completed response.
uint8_t smartdof_frs_write_response(smartdof_t *ctx, uint8_t *frs_status, uint16_t *data_offset)
Receiving FRS write response.
uint8_t smartdof_int_get(smartdof_t *ctx)
Getting state of INT pin.
uint8_t smartdof_frs_read_response(smartdof_t *ctx, smartdof_rr_t *rr)
Receiving FRS read response.
void smartdof_product_id_request(smartdof_t *ctx)
Requesting product id.
void smartdof_command_request(smartdof_t *ctx, uint8_t command_type, uint8_t *command_parameters)
Requesting command.
uint8_t smartdof_get_feature_response(smartdof_t *ctx, smartdof_sfc_t *sfc)
Receiving get feature response.
SMARTDOF_RETVAL smartdof_init(smartdof_t *ctx, smartdof_cfg_t *cfg)
Initialization function.
Click configuration structure definition.
Definition smartdof.h:351
uint32_t i2c_speed
Definition smartdof.h:365
pin_name_t bt
Definition smartdof.h:360
pin_name_t scl
Definition smartdof.h:354
pin_name_t int_pin
Definition smartdof.h:361
pin_name_t sda
Definition smartdof.h:355
pin_name_t rst
Definition smartdof.h:359
uint8_t i2c_address
Definition smartdof.h:366
Click product id response definition.
Definition smartdof.h:374
uint32_t * sw_part_number
Definition smartdof.h:378
uint8_t * reset_cause
Definition smartdof.h:376
uint32_t * sw_build_number
Definition smartdof.h:379
uint16_t * sw_version_patch
Definition smartdof.h:380
uint16_t * sw_version
Definition smartdof.h:377
Click FRS read response definition.
Definition smartdof.h:388
uint8_t * read_status
Definition smartdof.h:391
uint8_t * data_length
Definition smartdof.h:390
uint16_t * frs_type
Definition smartdof.h:394
uint32_t * data_buffer
Definition smartdof.h:393
uint16_t * data_offset
Definition smartdof.h:392
Click set feature command definition.
Definition smartdof.h:402
uint16_t change_sensitivity
Definition smartdof.h:406
uint32_t sensor_specific_config
Definition smartdof.h:409
uint32_t report_interval
Definition smartdof.h:407
uint32_t batch_interval
Definition smartdof.h:408
uint8_t feature_flags
Definition smartdof.h:405
uint8_t feature_report_id
Definition smartdof.h:404
Click ctx object definition.
Definition smartdof.h:322
digital_in_t int_pin
Definition smartdof.h:330
i2c_master_t i2c
Definition smartdof.h:334
digital_out_t rst
Definition smartdof.h:325
uint8_t slave_address
Definition smartdof.h:338
uint16_t data_len
Definition smartdof.h:343
digital_out_t bt
Definition smartdof.h:326