nRF Connect SDK API 3.4.99
Loading...
Searching...
No Matches
dult.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#ifndef _DULT_DULT_H_
8#define _DULT_DULT_H_
9
10#include <stdbool.h>
11#include <stdint.h>
12#include <stddef.h>
13
14#include <zephyr/sys/slist.h>
15
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
36#define DULT_PRODUCT_DATA_LEN 8
37
45
60
64 uint16_t major;
65
67 uint8_t minor;
68
70 uint8_t revision;
71};
72
74struct dult_user {
78 const uint8_t *product_data;
79
81 const char *manufacturer_name;
82
84 const char *model_name;
85
88
91
97
100
109};
110
132int dult_user_register(const struct dult_user *user);
133
143int dult_user_unregister(const struct dult_user *user);
144
181int dult_battery_level_set(const struct dult_user *user, uint8_t percentage_level);
182
198 int (*payload_get)(uint8_t *buf, size_t *len);
199
206 void (*exited)(void);
207};
208
226 const struct dult_id_read_state_cb *cb);
227
237int dult_id_read_state_enter(const struct dult_user *user);
238
242#define DULT_SOUND_DURATION_BT_GATT_MIN_MS (5000U)
243
257
271 void (*sound_start)(enum dult_sound_src src);
272
284 void (*sound_stop)(enum dult_sound_src src);
285};
286
304int dult_sound_cb_register(const struct dult_user *user, const struct dult_sound_cb *cb);
305
322
348int dult_sound_state_update(const struct dult_user *user,
349 const struct dult_sound_state_param *param);
350
364 void (*start)(void);
365
379 bool (*period_expired)(void);
380
388 void (*stop)(void);
389};
390
412 const struct dult_motion_detector_cb *cb);
413
425
447
471int dult_enable(const struct dult_user *user);
472
503int dult_reset(const struct dult_user *user);
504
519bool dult_user_is_associated(const struct dult_user *user);
520
526
527#ifdef __cplusplus
528}
529#endif
530
534
535#endif /* _DULT_DULT_H_ */
dult_network_id
Definition dult.h:41
@ DULT_NETWORK_ID_APPLE
Definition dult.h:42
@ DULT_NETWORK_ID_GOOGLE
Definition dult.h:43
int dult_motion_detector_cb_register(const struct dult_user *user, const struct dult_motion_detector_cb *cb)
Register motion detector callbacks.
dult_near_owner_state_mode
Definition dult.h:415
@ DULT_NEAR_OWNER_STATE_MODE_COUNT
Definition dult.h:423
@ DULT_NEAR_OWNER_STATE_MODE_NEAR_OWNER
Definition dult.h:420
@ DULT_NEAR_OWNER_STATE_MODE_SEPARATED
Definition dult.h:417
int dult_sound_state_update(const struct dult_user *user, const struct dult_sound_state_param *param)
Update the sound state.
bool dult_user_is_associated(const struct dult_user *user)
Check if the DULT user is the associated user.
bool dult_is_any_associated(void)
Check whether any DULT user is currently associated.
dult_accessory_capability
Definition dult.h:47
@ DULT_ACCESSORY_CAPABILITY_MOTION_DETECTOR_UT_BIT_POS
Definition dult.h:52
@ DULT_ACCESSORY_CAPABILITY_ID_LOOKUP_BLE_BIT_POS
Definition dult.h:58
@ DULT_ACCESSORY_CAPABILITY_ID_LOOKUP_NFC_BIT_POS
Definition dult.h:55
@ DULT_ACCESSORY_CAPABILITY_PLAY_SOUND_BIT_POS
Definition dult.h:49
int dult_near_owner_state_set(const struct dult_user *user, enum dult_near_owner_state_mode mode)
Set the mode of the DULT near-owner state.
dult_sound_src
Definition dult.h:245
@ DULT_SOUND_SRC_MOTION_DETECTOR
Definition dult.h:252
@ DULT_SOUND_SRC_BT_GATT
Definition dult.h:247
@ DULT_SOUND_SRC_EXTERNAL
Definition dult.h:255
int dult_user_unregister(const struct dult_user *user)
Unregister a DULT user.
int dult_sound_cb_register(const struct dult_user *user, const struct dult_sound_cb *cb)
Register DULT sound callback structure.
int dult_user_register(const struct dult_user *user)
Register DULT user.
int dult_enable(const struct dult_user *user)
Enable DULT.
int dult_id_read_state_enter(const struct dult_user *user)
Enter DULT identifier read state.
int dult_id_read_state_cb_register(const struct dult_user *user, const struct dult_id_read_state_cb *cb)
Register DULT identifier read state callback structure.
int dult_battery_level_set(const struct dult_user *user, uint8_t percentage_level)
Set the current battery level.
int dult_reset(const struct dult_user *user)
Reset DULT.
void(* exited)(void)
Identifier read state exited.
Definition dult.h:206
int(* payload_get)(uint8_t *buf, size_t *len)
Get identifier payload.
Definition dult.h:198
Definition dult.h:184
void(* start)(void)
Request the user to start the motion detector.
Definition dult.h:364
bool(* period_expired)(void)
Notify the user that the motion detector period has expired.
Definition dult.h:379
void(* stop)(void)
Notify the user that the motion detector can be stopped.
Definition dult.h:388
Motion detector callback structure.
Definition dult.h:355
void(* sound_stop)(enum dult_sound_src src)
Request the user to stop the sound action.
Definition dult.h:284
void(* sound_start)(enum dult_sound_src src)
Request the user to start the sound action.
Definition dult.h:271
Definition dult.h:259
enum dult_sound_src src
Definition dult.h:320
bool active
Definition dult.h:312
Definition dult.h:307
uint8_t accessory_category
Definition dult.h:87
enum dult_network_id network_id
Definition dult.h:96
const struct dult_version * network_version
Definition dult.h:108
struct dult_version firmware_version
Definition dult.h:99
const char * model_name
Definition dult.h:84
uint32_t accessory_capabilities
Definition dult.h:90
const char * manufacturer_name
Definition dult.h:81
const uint8_t * product_data
Definition dult.h:78
Definition dult.h:74
uint8_t minor
Definition dult.h:67
uint16_t major
Definition dult.h:64
uint8_t revision
Definition dult.h:70
Definition dult.h:62