6#ifndef ZEPHYR_INCLUDE_DRIVERS_HL78XX_APIS_H_
7#define ZEPHYR_INCLUDE_DRIVERS_HL78XX_APIS_H_
26#define CSQ_RSSI_UNKNOWN (99)
28#define CESQ_RSRP_UNKNOWN (255)
30#define CESQ_RSRQ_UNKNOWN (255)
37#define CSQ_RSSI_TO_DB(v) (-113 + (2 * (v)))
43#define CESQ_RSRP_TO_DB(v) (-140 + (v))
49#define CESQ_RSRQ_TO_DB(v) (-20 + ((v) / 2))
56#define MDM_MANUFACTURER_LENGTH 20
58#define MDM_MODEL_LENGTH 32
60#define MDM_REVISION_LENGTH 64
62#define MDM_IMEI_LENGTH 16
64#define MDM_IMSI_LENGTH 23
66#define MDM_ICCID_LENGTH 22
68#define MDM_APN_MAX_LENGTH 64
70#define MDM_MAX_CERT_LENGTH 4096
72#define MDM_MAX_HOSTNAME_LEN 128
74#define MDM_SERIAL_NUMBER_LENGTH 32
84#define HL78XX_MONITOR_ACTIVE false
92#define HL78XX_MONITOR_PAUSED true
103#define HL78XX_MONITOR_INITIAL_PAUSED(...) \
104 COND_CODE_1(IS_EMPTY(__VA_ARGS__), (false), (__VA_ARGS__))
116#define HL78XX_EVT_MONITOR(name, _handler, ...) \
117 static STRUCT_SECTION_ITERABLE(hl78xx_evt_monitor_entry, name) = { \
118 .handler = _handler, \
122 .paused = HL78XX_MONITOR_INITIAL_PAUSED(__VA_ARGS__), \
126#define HL78XX_AT_MONITOR_ANY NULL
139#define HL78XX_AT_MONITOR(name, _filter, _handler, ...) \
140 static STRUCT_SECTION_ITERABLE(hl78xx_at_monitor_entry, name) = { \
142 .handler = _handler, \
146 .paused = HL78XX_MONITOR_INITIAL_PAUSED(__VA_ARGS__), \
163#define HL78XX_AT_MONITOR_DIRECT(name, _filter, _handler, ...) \
164 static STRUCT_SECTION_ITERABLE(hl78xx_at_monitor_entry, name) = { \
166 .handler = _handler, \
170 .paused = HL78XX_MONITOR_INITIAL_PAUSED(__VA_ARGS__), \
183#ifdef CONFIG_MODEM_HL78XX_12
186#ifdef CONFIG_MODEM_HL78XX_12_FW_R6
191#ifdef CONFIG_MODEM_HL78XX_AUTORAT
193 HL78XX_RAT_MODE_AUTO,
279#if defined(CONFIG_HL78XX_GNSS_SUPPORT_ASSISTED_MODE) || defined(__DOXYGEN__)
331#ifdef CONFIG_MODEM_HL78XX_LOW_POWER_MODE
332#ifdef CONFIG_MODEM_HL78XX_POWER_DOWN
338enum power_down_event {
340 POWER_DOWN_EVENT_ENTER = 0,
342 POWER_DOWN_EVENT_EXIT,
344 POWER_DOWN_EVENT_NONE,
348#ifdef CONFIG_MODEM_HL78XX_EDRX
354enum hl78xx_edrx_event {
356 HL78XX_EDRX_EVENT_IDLE_EXIT = 0,
358 HL78XX_EDRX_EVENT_IDLE_ENTER,
360 HL78XX_EDRX_EVENT_IDLE_NONE,
363#ifdef CONFIG_MODEM_HL78XX_PSM
369enum hl78xx_psmev_event {
371 HL78XX_PSM_EVENT_EXIT = 0,
373 HL78XX_PSM_EVENT_ENTER,
375 HL78XX_PSM_EVENT_NONE,
424#ifdef CONFIG_HL78XX_GNSS
426 HL78XX_GNSS_ENGINE_READY,
428 HL78XX_GNSS_EVENT_INIT,
430 HL78XX_GNSS_EVENT_START,
432 HL78XX_GNSS_EVENT_STOP,
434 HL78XX_GNSS_EVENT_POSITION,
436 HL78XX_GNSS_EVENT_START_BLOCKED,
438 HL78XX_GNSS_EVENT_SEARCH_TIMEOUT,
440 HL78XX_GNSS_EVENT_MODE_EXITED,
442#ifdef CONFIG_MODEM_HL78XX_LOW_POWER_MODE
443#ifdef CONFIG_MODEM_HL78XX_EDRX
445 HL78XX_EDRX_IDLE_UPDATE,
447#ifdef CONFIG_MODEM_HL78XX_PSM
449 HL78XX_LTE_PSMEV_UPDATE,
451#ifdef CONFIG_MODEM_HL78XX_POWER_DOWN
453 HL78XX_POWER_DOWN_UPDATE,
461#ifdef CONFIG_MODEM_HL78XX_AIRVANTAGE
467enum wdsi_indication {
469 WDSI_BOOTSTRAP_CREDENTIALS_PRESENT = 0,
471 WDSI_USER_AGREEMENT_REQUEST = 1,
473 WDSI_FIRMWARE_DOWNLOAD_REQUEST = 2,
475 WDSI_FIRMWARE_INSTALL_REQUEST = 3,
477 WDSI_AUTHENTICATION_START = 4,
479 WDSI_AUTHENTICATION_FAILED = 5,
481 WDSI_AUTHENTICATION_SUCCESS = 6,
483 WDSI_CONNECTION_DENIED = 7,
485 WDSI_DM_SESSION_CLOSED = 8,
487 WDSI_FIRMWARE_AVAILABLE = 9,
489 WDSI_FIRMWARE_DOWNLOADED = 10,
491 WDSI_FIRMWARE_DOWNLOAD_ISSUE = 11,
493 WDSI_PACKAGE_VERIFIED_CERTIFIED = 12,
495 WDSI_PACKAGE_VERIFIED_NOT_CERTIFIED = 13,
497 WDSI_FIRMWARE_UPDATE_START = 14,
499 WDSI_FIRMWARE_UPDATE_FAILED = 15,
501 WDSI_FIRMWARE_UPDATE_SUCCESS = 16,
503 WDSI_DOWNLOAD_IN_PROGRESS = 18,
505 WDSI_SESSION_STARTED = 23
509#ifdef CONFIG_HL78XX_GNSS
515enum hl78xx_gnss_event_type {
517 HL78XX_GNSSEV_INITIALISATION = 0,
519 HL78XX_GNSSEV_START = 1,
521 HL78XX_GNSSEV_STOP = 2,
523 HL78XX_GNSSEV_POSITION = 3
530enum hl78xx_event_status {
532 HL78XX_STATUS_FAILED = 0,
534 HL78XX_STATUS_SUCCESS = 1
541enum gnss_position_events {
543 GNSS_FIX_LOST_OR_UNAVAILABLE = 0,
545 GNSS_ESTIMATED_POSITION_AVAILABLE = 1,
547 GNSS_2D_POSITION_AVAILABLE = 2,
549 GNSS_3D_POSITION_AVAILABLE = 3,
551 GNSS_FIX_CHANGED_TO_INVALID = 4
571#ifdef CONFIG_MODEM_HL78XX_AIRVANTAGE
573 enum wdsi_indication wdsi_indication;
575#ifdef CONFIG_HL78XX_GNSS
577 enum hl78xx_event_status event_status;
579 enum gnss_position_events position_event;
581#ifdef CONFIG_MODEM_HL78XX_LOW_POWER_MODE
582#ifdef CONFIG_MODEM_HL78XX_PSM
584 enum hl78xx_psmev_event psm_event;
586#ifdef CONFIG_MODEM_HL78XX_EDRX
588 enum hl78xx_edrx_event edrx_event;
590#ifdef CONFIG_MODEM_HL78XX_POWER_DOWN
592 enum power_down_event power_down_event;
604#if defined(CONFIG_HL78XX_GNSS_AUX_DATA_PARSER) || defined(__DOXYGEN__)
725#define GNSS_AUX_DATA_CALLBACK_DEFINE(_dev, _callback) \
726 static const STRUCT_SECTION_ITERABLE(hl78xx_gnss_aux_data_callback, \
727 _hl78xx_gnss_aux_data_callback__##_callback) = { \
729 .callback = _callback, \
737#define GNSS_DT_AUX_DATA_CALLBACK_DEFINE(_node_id, _callback) \
738 static const STRUCT_SECTION_ITERABLE(hl78xx_gnss_aux_data_callback, \
739 _CONCAT_4(_hl78xx_gnss_aux_data_callback_, \
740 DT_DEP_ORD(_node_id), _, _callback)) = { \
741 .dev = DEVICE_DT_GET(_node_id), \
742 .callback = _callback, \
751#define GNSS_AUX_DATA_CALLBACK_DEFINE(_dev, _callback)
758#define GNSS_DT_AUX_DATA_CALLBACK_DEFINE(_node_id, _callback)
1349#ifdef CONFIG_MODEM_HL78XX_AIRVANTAGE
1359int hl78xx_start_airvantage_dm_session(
const struct device *dev);
1369int hl78xx_stop_airvantage_dm_session(
const struct device *dev);
1372#ifdef CONFIG_MODEM_HL78XX_LOW_POWER_MODE
1395int hl78xx_wakeup_modem(
const struct device *dev);
1397#ifdef CONFIG_MODEM_HL78XX_EDRX
1404int hl78xx_edrx_get_time_to_sleep(
const struct device *dev);
1408#ifdef CONFIG_HL78XX_GNSS
1436int hl78xx_enter_gnss_mode(
const struct device *dev);
1458int hl78xx_exit_gnss_mode(
const struct device *dev);
1469int hl78xx_queue_gnss_search(
const struct device *dev);
1487int hl78xx_gnss_set_search_timeout(
const struct device *dev,
uint32_t timeout_ms);
1498int hl78xx_gnss_get_latest_known_fix(
const struct device *dev);
1500#ifdef CONFIG_HL78XX_GNSS_SUPPORT_ASSISTED_MODE
1511int hl78xx_gnss_assist_data_get_status(
const struct device *dev,
1536int hl78xx_gnss_assist_data_delete(
const struct device *dev);
Main header file for cellular modem driver API.
long atomic_t
Atomic integer variable.
Definition atomic_types.h:31
cellular_access_technology
Cellular access technologies (3GPP TS 27.007 AcT).
Definition cellular.h:33
cellular_registration_status
Cellular registration status (3GPP TS 27.007).
Definition cellular.h:109
cellular_signal_type
Cellular signal type.
Definition cellular.h:86
cellular_modem_info_type
Cellular modem info type.
Definition cellular.h:93
static void cmd(uint32_t command)
Execute a display list command by co-processor engine.
Definition ft8xx_reference_api.h:153
#define CESQ_RSRP_UNKNOWN
Unknown RSRP value returned by AT+CESQ command.
Definition hl78xx_apis.h:28
#define CESQ_RSRP_TO_DB(v)
Convert CESQ RSRP value to dBm.
Definition hl78xx_apis.h:43
#define CESQ_RSRQ_TO_DB(v)
Convert CESQ RSRQ value to dB.
Definition hl78xx_apis.h:49
#define CSQ_RSSI_TO_DB(v)
Convert CSQ RSSI value to dBm.
Definition hl78xx_apis.h:37
#define CSQ_RSSI_UNKNOWN
Unknown RSSI value returned by AT+CSQ command.
Definition hl78xx_apis.h:26
#define CESQ_RSRQ_UNKNOWN
Unknown RSRQ value returned by AT+CESQ command.
Definition hl78xx_apis.h:30
#define EINVAL
Invalid argument.
Definition errno.h:60
int(* hl78xx_api_configure_networks)(const struct device *dev, const struct hl78xx_network *networks, uint8_t size)
API function pointer for configuring networks.
Definition hl78xx_apis.h:768
int hl78xx_at_monitor_register(struct hl78xx_at_monitor_entry *mon)
Register an AT monitor.
static int hl78xx_parse_rsrq(uint8_t rsrq, int16_t *value)
Convert raw RSRQ value from the modem to dB.
Definition hl78xx_apis.h:1186
int hl78xx_at_monitor_unregister(struct hl78xx_at_monitor_entry *mon)
Unregister an AT monitor.
static void hl78xx_at_monitor_resume(struct hl78xx_at_monitor_entry *mon)
Resume AT monitor.
Definition hl78xx_apis.h:1237
hl78xx_cell_rat_mode
Cellular radio access technologies.
Definition hl78xx_apis.h:178
@ HL78XX_RAT_MODE_NONE
No RAT mode.
Definition hl78xx_apis.h:196
@ HL78XX_RAT_COUNT
Number of valid RAT modes.
Definition hl78xx_apis.h:198
@ HL78XX_RAT_NB1
NB-IoT radio access technology.
Definition hl78xx_apis.h:182
@ HL78XX_RAT_CAT_M1
LTE Cat-M1 radio access technology.
Definition hl78xx_apis.h:180
hl78xx_phone_functionality
Phone functionality modes.
Definition hl78xx_apis.h:206
@ HL78XX_SIM_POWER_OFF
SIM and modem powered off (minimum functionality).
Definition hl78xx_apis.h:208
@ HL78XX_AIRPLANE
Airplane mode, RF transmitters disabled.
Definition hl78xx_apis.h:212
@ HL78XX_FULLY_FUNCTIONAL
Full functionality, modem operational.
Definition hl78xx_apis.h:210
void(* hl78xx_at_monitor_release_t)(struct hl78xx_at_monitor_entry *mon)
AT monitor release function type.
Definition hl78xx_apis.h:865
int(* hl78xx_api_get_registration_status)(const struct device *dev, enum cellular_access_technology tech, enum cellular_registration_status *status)
API for getting registration status.
Definition hl78xx_apis.h:801
int hl78xx_evt_monitor_register(struct hl78xx_evt_monitor_entry *mon)
Register an event monitor.
int(* hl78xx_api_get_supported_networks)(const struct device *dev, const struct hl78xx_network **networks, uint8_t *size)
API function pointer for getting supported networks.
Definition hl78xx_apis.h:779
void(* hl78xx_evt_monitor_release_t)(struct hl78xx_evt_monitor_entry *mon)
Event monitor release function type.
Definition hl78xx_apis.h:927
int(* hl78xx_api_get_signal)(const struct device *dev, const enum cellular_signal_type type, int16_t *value)
API for getting network signal strength.
Definition hl78xx_apis.h:784
int(* hl78xx_api_set_phone_functionality)(const struct device *dev, enum hl78xx_phone_functionality functionality, bool reset)
API function pointer for setting phone functionality.
Definition hl78xx_apis.h:813
hl78xx_agnss_mode
A-GNSS assistance data validity mode.
Definition hl78xx_apis.h:285
@ HL78XX_AGNSS_MODE_INVALID
Data is not valid (read) / Delete data (write).
Definition hl78xx_apis.h:287
@ HL78XX_AGNSS_MODE_VALID
Data is valid (read) / Download data (write).
Definition hl78xx_apis.h:289
int(* hl78xx_api_send_at_cmd)(const struct device *dev, const char *cmd, uint16_t cmd_size, const struct modem_chat_match *response_matches, uint16_t matches_size)
API for get phone functionality.
Definition hl78xx_apis.h:822
int hl78xx_evt_notif_handler_set(hl78xx_evt_monitor_dispatcher_t handler)
Set the event notification handler for HL78xx modem events.
hl78xx_evt_type
HL78xx event types.
Definition hl78xx_apis.h:413
@ HL78XX_LTE_REGISTRATION_STAT_UPDATE
LTE network registration status changed.
Definition hl78xx_apis.h:417
@ HL78XX_LTE_RAT_UPDATE
LTE Radio Access Technology changed.
Definition hl78xx_apis.h:415
@ HL78XX_EVT_TYPE_COUNT
Event type count.
Definition hl78xx_apis.h:459
@ HL78XX_LTE_FOTA_UPDATE_STATUS
FOTA update status changed.
Definition hl78xx_apis.h:423
@ HL78XX_LTE_MODEM_STARTUP
Modem startup completed.
Definition hl78xx_apis.h:421
@ HL78XX_LTE_SIM_REGISTRATION
SIM registration status changed.
Definition hl78xx_apis.h:419
@ HL78XX_CELLMEAS_UPDATE
Cellular measurement update.
Definition hl78xx_apis.h:457
static int hl78xx_parse_rsrp(uint8_t rsrp, int16_t *value)
Convert raw RSRP value from the modem to dBm.
Definition hl78xx_apis.h:1155
void(* hl78xx_gnss_aux_data_callback_t)(const struct device *dev, const struct hl78xx_gnss_nmea_aux_data *aux_data, uint16_t size)
GNSS auxiliary data callback function type.
Definition hl78xx_apis.h:703
void(* hl78xx_at_monitor_handler_t)(const struct hl78xx_at_notification *notif, struct hl78xx_at_monitor_entry *mon)
AT monitor handler function type.
Definition hl78xx_apis.h:855
static int hl78xx_parse_rssi(uint8_t rssi, int16_t *value)
Convert raw RSSI value from the modem to dBm.
Definition hl78xx_apis.h:1127
void(* hl78xx_evt_monitor_handler_t)(struct hl78xx_evt *notif, struct hl78xx_evt_monitor_entry *mon)
Event monitor handler function type.
Definition hl78xx_apis.h:917
int(* hl78xx_api_get_modem_info)(const struct device *dev, const enum cellular_modem_info_type type, char *info, size_t size)
API function pointer for getting modem information.
Definition hl78xx_apis.h:796
int hl78xx_api_func_set_phone_functionality(const struct device *dev, enum hl78xx_phone_functionality functionality, bool reset)
Set phone functionality mode (internal implementation).
hl78xx_modem_info_type
Cellular modem info type.
Definition hl78xx_apis.h:242
@ HL78XX_MODEM_INFO_CURRENT_BAUD_RATE
Current Baud Rate.
Definition hl78xx_apis.h:252
@ HL78XX_MODEM_INFO_SERIAL_NUMBER
Modem Serial Number.
Definition hl78xx_apis.h:250
@ HL78XX_MODEM_INFO_APN
Access Point Name.
Definition hl78xx_apis.h:244
@ HL78XX_MODEM_INFO_CURRENT_RAT
Current Radio Access Technology.
Definition hl78xx_apis.h:246
@ HL78XX_MODEM_INFO_NETWORK_OPERATOR
Network Operator name.
Definition hl78xx_apis.h:248
static void hl78xx_at_monitor_pause(struct hl78xx_at_monitor_entry *mon)
Pause AT monitor.
Definition hl78xx_apis.h:1225
static void hl78xx_evt_monitor_resume(struct hl78xx_evt_monitor_entry *mon)
Resume monitor.
Definition hl78xx_apis.h:1213
int(* hl78xx_api_get_phone_functionality)(const struct device *dev, enum hl78xx_phone_functionality *functionality)
API for get phone functionality.
Definition hl78xx_apis.h:818
hl78xx_module_status
Module status codes.
Definition hl78xx_apis.h:220
@ HL78XX_MODULE_SIM_NOT_PRESENT
SIM card is not present.
Definition hl78xx_apis.h:226
@ HL78XX_MODULE_READY
Module is ready to receive commands for the TE.
Definition hl78xx_apis.h:222
@ HL78XX_MODULE_UNRECOVERABLE_ERROR
Unrecoverable error.
Definition hl78xx_apis.h:230
@ HL78XX_MODULE_INACTIVE_SIM
Inactive SIM.
Definition hl78xx_apis.h:234
@ HL78XX_MODULE_WAITING_FOR_ACCESS_CODE
Module is waiting for an access code.
Definition hl78xx_apis.h:224
@ HL78XX_MODULE_UNKNOWN_STATE
Unknown state.
Definition hl78xx_apis.h:232
@ HL78XX_MODULE_SIMLOCK
Module is in "SIMlock" state.
Definition hl78xx_apis.h:228
nmea_output_port
NMEA output port options.
Definition hl78xx_apis.h:260
@ NMEA_OUTPUT_CMUX_DLC2
0x06 — NMEA frames are output on CMUX DLC2
Definition hl78xx_apis.h:272
@ NMEA_OUTPUT_CMUX_DLC4
0x08 — NMEA frames are output on CMUX DLC4
Definition hl78xx_apis.h:276
@ NMEA_OUTPUT_SAME_PORT
0x04 — NMEA frames are output on the same port the +GNSSNMEA was received on
Definition hl78xx_apis.h:268
@ NMEA_OUTPUT_NONE
0x00 — NMEA frames are not output
Definition hl78xx_apis.h:262
@ NMEA_OUTPUT_UART1
0x03 — NMEA frames are output on UART1
Definition hl78xx_apis.h:266
@ NMEA_OUTPUT_CMUX_DLC1
0x05 — NMEA frames are output on CMUX DLC1
Definition hl78xx_apis.h:270
@ NMEA_OUTPUT_USB_NMEA_PORT
0x01 — NMEA frames are output on dedicated NMEA port over USB
Definition hl78xx_apis.h:264
@ NMEA_OUTPUT_CMUX_DLC3
0x07 — NMEA frames are output on CMUX DLC3
Definition hl78xx_apis.h:274
static int hl78xx_get_modem_info(const struct device *dev, const enum hl78xx_modem_info_type type, void *info, size_t size)
Get modem info for the device.
Definition hl78xx_apis.h:1042
int hl78xx_api_func_get_phone_functionality(const struct device *dev, enum hl78xx_phone_functionality *functionality)
Get phone functionality mode (internal implementation).
int hl78xx_api_func_get_modem_info_vendor(const struct device *dev, enum hl78xx_modem_info_type type, void *info, size_t size)
Get vendor-specific modem information (internal implementation).
void(* hl78xx_evt_monitor_dispatcher_t)(struct hl78xx_evt *notif)
Event monitor dispatcher function type.
Definition hl78xx_apis.h:907
static void hl78xx_evt_monitor_pause(struct hl78xx_evt_monitor_entry *mon)
Pause monitor.
Definition hl78xx_apis.h:1202
int hl78xx_api_func_modem_dynamic_cmd_send(const struct device *dev, const char *cmd, uint16_t cmd_size, const struct modem_chat_match *response_matches, uint16_t matches_size)
Send dynamic AT command (internal implementation).
int hl78xx_api_func_get_signal(const struct device *dev, const enum cellular_signal_type type, int16_t *value)
Get network signal strength (internal implementation).
static int hl78xx_modem_cmd_send(const struct device *dev, const char *cmd, uint16_t cmd_size, const struct modem_chat_match *response_matches, uint16_t matches_size)
Send an AT command to the modem and wait for a matched response.
Definition hl78xx_apis.h:1106
hl78xx_agnss_days
Number of days of predicted assistance data to download (write command) or number of days before it e...
Definition hl78xx_apis.h:298
@ HL78XX_AGNSS_DAYS_1
Request 1 day of A-GNSS assistance data.
Definition hl78xx_apis.h:300
@ HL78XX_AGNSS_DAYS_3
Request 3 days of A-GNSS assistance data.
Definition hl78xx_apis.h:304
@ HL78XX_AGNSS_DAYS_7
Request 7 days of A-GNSS assistance data.
Definition hl78xx_apis.h:306
@ HL78XX_AGNSS_DAYS_14
Request 14 days of A-GNSS assistance data.
Definition hl78xx_apis.h:308
@ HL78XX_AGNSS_DAYS_28
Request 28 days of A-GNSS assistance data.
Definition hl78xx_apis.h:310
@ HL78XX_AGNSS_DAYS_2
Request 2 days of A-GNSS assistance data.
Definition hl78xx_apis.h:302
static int hl78xx_set_phone_functionality(const struct device *dev, enum hl78xx_phone_functionality functionality, bool reset)
Set the modem phone functionality mode.
Definition hl78xx_apis.h:1063
int hl78xx_evt_monitor_unregister(struct hl78xx_evt_monitor_entry *mon)
Unregister an event monitor.
static int hl78xx_get_phone_functionality(const struct device *dev, enum hl78xx_phone_functionality *functionality)
Get the current phone functionality mode of the modem.
Definition hl78xx_apis.h:1083
enum cellular_access_technology hl78xx_rat_to_access_tech(enum hl78xx_cell_rat_mode rat_mode)
Convert HL78xx RAT mode to standard cellular API.
flags
Definition parser.h:97
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__INT32_TYPE__ int32_t
Definition stdint.h:74
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
__INT64_TYPE__ int64_t
Definition stdint.h:75
__INT16_TYPE__ int16_t
Definition stdint.h:73
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
A-GNSS assistance data status structure.
Definition hl78xx_apis.h:319
uint8_t days
Days remaining before expiry (1-28), valid only when mode=1.
Definition hl78xx_apis.h:323
uint8_t hours
Hours remaining before expiry (0-23), valid only when mode=1.
Definition hl78xx_apis.h:325
uint8_t minutes
Minutes remaining before expiry (0-59), valid only when mode=1.
Definition hl78xx_apis.h:327
enum hl78xx_agnss_mode mode
Validity mode: 0 = invalid/empty, 1 = valid.
Definition hl78xx_apis.h:321
AT monitor entry structure.
Definition hl78xx_apis.h:873
const char * filter
Exact unsolicited AT match pattern to monitor, or NULL for all.
Definition hl78xx_apis.h:875
struct hl78xx_at_monitor_entry * next
Link for runtime list.
Definition hl78xx_apis.h:881
struct hl78xx_at_monitor_entry::@103016176163313070061134333340245207227156107011 flags
Monitor flags.
struct k_work release_work
Work item used to defer release out of unregister/dispatch context.
Definition hl78xx_apis.h:885
uint8_t paused
Monitor is paused.
Definition hl78xx_apis.h:889
const hl78xx_at_monitor_handler_t handler
Monitor callback function.
Definition hl78xx_apis.h:877
atomic_t refcnt
Reference count for list membership and in-flight dispatch snapshots.
Definition hl78xx_apis.h:883
uint8_t direct
Dispatch directly in HL78xx modem RX workqueue context.
Definition hl78xx_apis.h:891
hl78xx_at_monitor_release_t release
Optional callback invoked when the final runtime reference is dropped.
Definition hl78xx_apis.h:879
Parsed unsolicited AT notification payload.
Definition hl78xx_apis.h:833
const char *const * argv
Parsed arguments, where argv[0] is the exact matched token.
Definition hl78xx_apis.h:837
const char * pattern
Canonical unsolicited match pattern from the driver table.
Definition hl78xx_apis.h:835
uint16_t argc
Number of parsed arguments.
Definition hl78xx_apis.h:839
Event monitor entry structure.
Definition hl78xx_apis.h:934
atomic_t refcnt
Reference count for list membership and in-flight dispatch snapshots.
Definition hl78xx_apis.h:942
uint8_t direct
Dispatch in ISR context.
Definition hl78xx_apis.h:950
hl78xx_evt_monitor_release_t release
Optional callback invoked when the final runtime reference is dropped.
Definition hl78xx_apis.h:938
uint8_t paused
Monitor is paused.
Definition hl78xx_apis.h:948
struct hl78xx_evt_monitor_entry * next
Link for runtime list.
Definition hl78xx_apis.h:940
struct k_work release_work
Work item used to defer release callback execution.
Definition hl78xx_apis.h:944
const hl78xx_evt_monitor_handler_t handler
Monitor callback function.
Definition hl78xx_apis.h:936
struct hl78xx_evt_monitor_entry::@057257214263213044053141035213063366342276164211 flags
Monitor flags.
HL78xx event structure.
Definition hl78xx_apis.h:561
enum hl78xx_evt_type type
Event type.
Definition hl78xx_apis.h:563
bool status
Boolean status value.
Definition hl78xx_apis.h:598
struct k_cellmeas_signal_info cellmeas
Cellular measurement event content.
Definition hl78xx_apis.h:596
int value
Integer value.
Definition hl78xx_apis.h:600
enum hl78xx_cell_rat_mode rat_mode
Radio access technology mode (for HL78XX_LTE_RAT_UPDATE).
Definition hl78xx_apis.h:570
union hl78xx_evt::@213261367112170072133125351263244340324115255276 content
Event content (depends on type).
enum cellular_registration_status reg_status
Network registration status (for HL78XX_LTE_REGISTRATION_STAT_UPDATE).
Definition hl78xx_apis.h:568
GNSS auxiliary data callback structure.
Definition hl78xx_apis.h:712
hl78xx_gnss_aux_data_callback_t callback
Callback called when GNSS auxiliary data is published.
Definition hl78xx_apis.h:716
const struct device * dev
Filter callback to GNSS data from this device if not NULL.
Definition hl78xx_apis.h:714
Container for all GNSS auxiliary NMEA data.
Definition hl78xx_apis.h:687
struct nmea_match_epu_data epu
EPU sentence data (HL78xx proprietary position/velocity error).
Definition hl78xx_apis.h:693
struct nmea_match_gsa_data gsa
GSA sentence data (DOP and fix type).
Definition hl78xx_apis.h:689
struct nmea_match_gst_data gst
GST sentence data (pseudorange error statistics).
Definition hl78xx_apis.h:691
Cellular network structure.
Definition hl78xx_apis.h:395
enum hl78xx_cell_rat_mode technology
Cellular access technology.
Definition hl78xx_apis.h:397
uint16_t * bands
List of bands to enable.
Definition hl78xx_apis.h:403
uint16_t size
Size of bands array.
Definition hl78xx_apis.h:405
Cellular measurement signal information.
Definition hl78xx_apis.h:386
int16_t rsrp
Reference Signal Received Power (RSRP) in dBm.
Definition hl78xx_apis.h:388
A structure used to submit work.
Definition kernel.h:4601
Modem chat match.
Definition chat.h:47
Parsed EPU sentence data (HL78xx proprietary position error).
Definition hl78xx_apis.h:656
int64_t vel_east
East velocity error estimate (m/s).
Definition hl78xx_apis.h:674
int64_t vel_hdg
Heading velocity error estimate (m/s).
Definition hl78xx_apis.h:672
int64_t pos_alt
Altitude position error estimate (meters).
Definition hl78xx_apis.h:666
int64_t pos_2d
2D (horizontal) position error estimate (meters)
Definition hl78xx_apis.h:660
int64_t vel_2d
2D (horizontal) velocity error estimate (m/s)
Definition hl78xx_apis.h:670
int64_t vel_north
North velocity error estimate (m/s).
Definition hl78xx_apis.h:676
int64_t pos_lon
Longitude position error estimate (meters).
Definition hl78xx_apis.h:664
int64_t vel_up
Up (vertical) velocity error estimate (m/s).
Definition hl78xx_apis.h:678
int64_t vel_3d
3D velocity error estimate (m/s)
Definition hl78xx_apis.h:668
int64_t pos_3d
3D position error estimate (meters)
Definition hl78xx_apis.h:658
int64_t pos_lat
Latitude position error estimate (meters).
Definition hl78xx_apis.h:662
Parsed GSA sentence data (GNSS DOP and Active Satellites).
Definition hl78xx_apis.h:611
int64_t vdop
Vertical Dilution of Precision (scaled).
Definition hl78xx_apis.h:619
int64_t hdop
Horizontal Dilution of Precision (scaled).
Definition hl78xx_apis.h:617
int64_t pdop
Position Dilution of Precision (scaled).
Definition hl78xx_apis.h:615
int32_t fix_type
Fix type: 1=no fix, 2=2D fix, 3=3D fix.
Definition hl78xx_apis.h:613
Parsed GST sentence data (GNSS Pseudorange Error Statistics).
Definition hl78xx_apis.h:628
int64_t lat_err
Standard deviation of latitude error (meters).
Definition hl78xx_apis.h:642
int64_t alt_err
Standard deviation of altitude error (meters).
Definition hl78xx_apis.h:646
int64_t sd_major
Standard deviation of semi-major axis of error ellipse (meters).
Definition hl78xx_apis.h:636
int64_t lon_err
Standard deviation of longitude error (meters).
Definition hl78xx_apis.h:644
int64_t rms
RMS value of standard deviation of range inputs.
Definition hl78xx_apis.h:634
int64_t orient
Orientation of semi-major axis of error ellipse (degrees from true north).
Definition hl78xx_apis.h:640
uint32_t gst_utc
UTC time of associated position fix (HHMMSS format).
Definition hl78xx_apis.h:632
int64_t sd_minor
Standard deviation of semi-minor axis of error ellipse (meters).
Definition hl78xx_apis.h:638
int32_t i32
Reserved for internal use.
Definition hl78xx_apis.h:630