11#ifndef ZEPHYR_INCLUDE_DRIVERS_MODEM_HL7800_H_
12#define ZEPHYR_INCLUDE_DRIVERS_MODEM_HL7800_H_
23#define MDM_HL7800_REVISION_MAX_SIZE 29
24#define MDM_HL7800_REVISION_MAX_STRLEN (MDM_HL7800_REVISION_MAX_SIZE - 1)
26#define MDM_HL7800_IMEI_SIZE 16
27#define MDM_HL7800_IMEI_STRLEN (MDM_HL7800_IMEI_SIZE - 1)
29#define MDM_HL7800_ICCID_SIZE 21
30#define MDM_HL7800_ICCID_STRLEN (MDM_HL7800_ICCID_SIZE - 1)
32#define MDM_HL7800_SERIAL_NUMBER_SIZE 15
33#define MDM_HL7800_SERIAL_NUMBER_STRLEN (MDM_HL7800_SERIAL_NUMBER_SIZE - 1)
35#define MDM_HL7800_APN_MAX_SIZE 64
36#define MDM_HL7800_APN_USERNAME_MAX_SIZE 65
37#define MDM_HL7800_APN_PASSWORD_MAX_SIZE 65
39#define MDM_HL7800_APN_MAX_STRLEN (MDM_HL7800_APN_MAX_SIZE - 1)
40#define MDM_HL7800_APN_USERNAME_MAX_STRLEN \
41 (MDM_HL7800_APN_USERNAME_MAX_SIZE - 1)
42#define MDM_HL7800_APN_PASSWORD_MAX_STRLEN \
43 (MDM_HL7800_APN_PASSWORD_MAX_SIZE - 1)
45#define MDM_HL7800_APN_CMD_MAX_SIZE \
46 (32 + MDM_HL7800_APN_USERNAME_MAX_STRLEN + \
47 MDM_HL7800_APN_PASSWORD_MAX_STRLEN)
49#define MDM_HL7800_APN_CMD_MAX_STRLEN (MDM_HL7800_APN_CMD_MAX_SIZE - 1)
57#define MDM_HL7800_LTE_BAND_STR_SIZE 21
58#define MDM_HL7800_LTE_BAND_STRLEN (MDM_HL7800_LTE_BAND_STR_SIZE - 1)
60#define MDM_HL7800_OPERATOR_INDEX_SIZE 3
61#define MDM_HL7800_OPERATOR_INDEX_STRLEN (MDM_HL7800_OPERATOR_INDEX_SIZE - 1)
63#define MDM_HL7800_IMSI_MIN_STR_SIZE 15
64#define MDM_HL7800_IMSI_MAX_STR_SIZE 16
65#define MDM_HL7800_IMSI_MAX_STRLEN (MDM_HL7800_IMSI_MAX_STR_SIZE - 1)
67#define MDM_HL7800_MODEM_FUNCTIONALITY_SIZE 2
68#define MDM_HL7800_MODEM_FUNCTIONALITY_STRLEN \
69 (MDM_HL7800_MODEM_FUNCTIONALITY_SIZE - 1)
71#define MDM_HL7800_MAX_GPS_STR_SIZE 33
73#define MDM_HL7800_MAX_POLTE_USER_ID_SIZE 16
74#define MDM_HL7800_MAX_POLTE_PASSWORD_SIZE 16
75#define MDM_HL7800_MAX_POLTE_LOCATION_STR_SIZE 33
81#define MDM_HL7800_POLTE_SERVER_ERROR 10
83#define MDM_HL7800_SET_POLTE_USER_AND_PASSWORD_FMT_STR "AT%%POLTECMD=\"SERVERAUTH\",\"%s\",\"%s\""
365#ifdef CONFIG_MODEM_HL7800_FW_UPDATE
374int32_t mdm_hl7800_update_fw(
char *file_path);
#define MDM_HL7800_MAX_POLTE_LOCATION_STR_SIZE
Definition: hl7800.h:75
bool mdm_hl7800_valid_rat(uint8_t value)
int32_t mdm_hl7800_polte_locate(void)
Locate device using PoLTE.
int32_t mdm_hl7800_set_functionality(enum mdm_hl7800_functionality mode)
Set airplane, normal, or reduced functionality mode. Airplane mode persists when reset.
char * mdm_hl7800_get_sn(void)
Get the HL7800 serial number.
int32_t mdm_hl7800_polte_enable(char *user, char *password)
Enable PoLTE.
int32_t mdm_hl7800_set_gps_rate(uint32_t rate)
When rate is non-zero: Put modem into Airplane mode. Enable GPS and generate HL7800_EVENT_GPS events....
int32_t mdm_hl7800_get_operator_index(void)
Read the operator index from the modem.
mdm_hl7800_radio_mode
Definition: hl7800.h:92
@ MDM_RAT_CAT_NB1
Definition: hl7800.h:92
@ MDM_RAT_CAT_M1
Definition: hl7800.h:92
int32_t mdm_hl7800_get_functionality(void)
Get modem functionality.
int32_t mdm_hl7800_update_apn(char *access_point_name)
Update the Access Point Name in the modem.
mdm_hl7800_event
Definition: hl7800.h:94
@ HL7800_EVENT_NETWORK_STATE_CHANGE
Definition: hl7800.h:96
@ HL7800_EVENT_GPS_POSITION_STATUS
Definition: hl7800.h:109
@ HL7800_EVENT_STARTUP_STATE_CHANGE
Definition: hl7800.h:100
@ HL7800_EVENT_POLTE
Definition: hl7800.h:112
@ HL7800_EVENT_BANDS
Definition: hl7800.h:103
@ HL7800_EVENT_SITE_SURVEY
Definition: hl7800.h:113
@ HL7800_EVENT_FOTA_COUNT
Definition: hl7800.h:106
@ HL7800_EVENT_APN_UPDATE
Definition: hl7800.h:97
@ HL7800_EVENT_RESERVED
Definition: hl7800.h:95
@ HL7800_EVENT_SLEEP_STATE_CHANGE
Definition: hl7800.h:101
@ HL7800_EVENT_POLTE_LOCATE_STATUS
Definition: hl7800.h:111
@ HL7800_EVENT_REVISION
Definition: hl7800.h:107
@ HL7800_EVENT_ACTIVE_BANDS
Definition: hl7800.h:104
@ HL7800_EVENT_RSSI
Definition: hl7800.h:98
@ HL7800_EVENT_RAT
Definition: hl7800.h:102
@ HL7800_EVENT_SINR
Definition: hl7800.h:99
@ HL7800_EVENT_POLTE_REGISTRATION
Definition: hl7800.h:110
@ HL7800_EVENT_FOTA_STATE
Definition: hl7800.h:105
@ HL7800_EVENT_GPS
Definition: hl7800.h:108
char * mdm_hl7800_get_imei(void)
Get the HL7800 IMEI.
void mdm_hl7800_wakeup(bool awake)
Control the wake signals to the HL7800.
mdm_hl7800_gps_string_types
Definition: hl7800.h:193
@ HL7800_GPS_STR_GPS_TIME
Definition: hl7800.h:196
@ HL7800_GPS_STR_ALTITUDE
Definition: hl7800.h:199
@ HL7800_GPS_STR_ALT_UNC
Definition: hl7800.h:200
@ HL7800_GPS_STR_VER_SPEED
Definition: hl7800.h:203
@ HL7800_GPS_STR_LONGITUDE
Definition: hl7800.h:195
@ HL7800_GPS_STR_LATITUDE
Definition: hl7800.h:194
@ HL7800_GPS_STR_FIX_TYPE
Definition: hl7800.h:197
@ HL7800_GPS_STR_HOR_SPEED
Definition: hl7800.h:202
@ HL7800_GPS_STR_HEPE
Definition: hl7800.h:198
@ HL7800_GPS_STR_DIRECTION
Definition: hl7800.h:201
void mdm_hl7800_register_event_callback(mdm_hl7800_event_callback_t cb)
Register a function that is called when a modem event occurs.
mdm_hl7800_gnss_status
Definition: hl7800.h:178
@ HL7800_GNSS_STATUS_FAILURE
Definition: hl7800.h:180
@ HL7800_GNSS_STATUS_INVALID
Definition: hl7800.h:179
@ HL7800_GNSS_STATUS_SUCCESS
Definition: hl7800.h:181
char * mdm_hl7800_get_imsi(void)
Get the IMSI.
mdm_hl7800_gnss_event
Definition: hl7800.h:170
@ HL7800_GNSS_EVENT_POSITION
Definition: hl7800.h:175
@ HL7800_GNSS_EVENT_INVALID
Definition: hl7800.h:171
@ HL7800_GNSS_EVENT_INIT
Definition: hl7800.h:172
@ HL7800_GNSS_EVENT_START
Definition: hl7800.h:173
@ HL7800_GNSS_EVENT_STOP
Definition: hl7800.h:174
#define MDM_HL7800_APN_MAX_SIZE
Definition: hl7800.h:35
mdm_hl7800_network_state
Definition: hl7800.h:126
@ HL7800_EMERGENCY
Definition: hl7800.h:133
@ HL7800_SEARCHING
Definition: hl7800.h:129
@ HL7800_UNABLE_TO_CONFIGURE
Definition: hl7800.h:135
@ HL7800_REGISTRATION_DENIED
Definition: hl7800.h:130
@ HL7800_HOME_NETWORK
Definition: hl7800.h:128
@ HL7800_NOT_REGISTERED
Definition: hl7800.h:127
@ HL7800_ROAMING
Definition: hl7800.h:132
@ HL7800_OUT_OF_COVERAGE
Definition: hl7800.h:131
int32_t mdm_hl7800_send_at_cmd(const uint8_t *data)
Send an AT command to the HL7800.
int32_t mdm_hl7800_polte_register(void)
Register modem/SIM with polte.io.
mdm_hl7800_fota_state
Definition: hl7800.h:144
@ HL7800_FOTA_PAD
Definition: hl7800.h:148
@ HL7800_FOTA_REBOOT_AND_RECONFIGURE
Definition: hl7800.h:152
@ HL7800_FOTA_INSTALL
Definition: hl7800.h:151
@ HL7800_FOTA_WIP
Definition: hl7800.h:147
@ HL7800_FOTA_SEND_EOT
Definition: hl7800.h:149
@ HL7800_FOTA_FILE_ERROR
Definition: hl7800.h:150
@ HL7800_FOTA_IDLE
Definition: hl7800.h:145
@ HL7800_FOTA_COMPLETE
Definition: hl7800.h:153
@ HL7800_FOTA_START
Definition: hl7800.h:146
int32_t mdm_hl7800_reset(void)
Reset the HL7800 (and allow it to reconfigure).
int32_t mdm_hl7800_perform_site_survey(void)
Perform a site survey. This command may return different values each time it is run (depending on wha...
int32_t mdm_hl7800_update_rat(enum mdm_hl7800_radio_mode value)
Update the Radio Access Technology (mode).
mdm_hl7800_sleep_state
Definition: hl7800.h:138
@ HL7800_SLEEP_STATE_UNINITIALIZED
Definition: hl7800.h:139
@ HL7800_SLEEP_STATE_AWAKE
Definition: hl7800.h:141
@ HL7800_SLEEP_STATE_ASLEEP
Definition: hl7800.h:140
void mdm_hl7800_generate_status_events(void)
Force modem module to generate status events.
#define MDM_HL7800_APN_PASSWORD_MAX_SIZE
Definition: hl7800.h:37
char * mdm_hl7800_get_fw_version(void)
Get the HL7800 firmware version.
#define MDM_HL7800_APN_USERNAME_MAX_SIZE
Definition: hl7800.h:36
void mdm_hl7800_get_signal_quality(int *rsrp, int *sinr)
Get the signal quality of the HL7800.
int32_t mdm_hl7800_power_off(void)
Power off the HL7800.
mdm_hl7800_gnss_position_event
Definition: hl7800.h:184
@ HL7800_GNSS_POSITION_EVENT_2D_AVAILABLE
Definition: hl7800.h:188
@ HL7800_GNSS_POSITION_EVENT_3D_AVAILABLE
Definition: hl7800.h:189
@ HL7800_GNSS_POSITION_EVENT_FIXED_TO_INVALID
Definition: hl7800.h:190
@ HL7800_GNSS_POSITION_EVENT_INVALID
Definition: hl7800.h:185
@ HL7800_GNSS_POSITION_EVENT_LOST_OR_NOT_AVAILABLE_YET
Definition: hl7800.h:186
@ HL7800_GNSS_POSITION_EVENT_PREDICTION_AVAILABLE
Definition: hl7800.h:187
mdm_hl7800_startup_state
Definition: hl7800.h:116
@ HL7800_STARTUP_STATE_SIMLOCK
Definition: hl7800.h:120
@ HL7800_STARTUP_STATE_UNRECOVERABLE_ERROR
Definition: hl7800.h:121
@ HL7800_STARTUP_STATE_WAITING_FOR_ACCESS_CODE
Definition: hl7800.h:118
@ HL7800_STARTUP_STATE_SIM_NOT_PRESENT
Definition: hl7800.h:119
@ HL7800_STARTUP_STATE_INACTIVE_SIM
Definition: hl7800.h:123
@ HL7800_STARTUP_STATE_UNKNOWN
Definition: hl7800.h:122
@ HL7800_STARTUP_STATE_READY
Definition: hl7800.h:117
char * mdm_hl7800_get_iccid(void)
Get the SIM card ICCID.
mdm_hl7800_functionality
Definition: hl7800.h:156
@ HL7800_FUNCTIONALITY_AIRPLANE
Definition: hl7800.h:159
@ HL7800_FUNCTIONALITY_FULL
Definition: hl7800.h:158
@ HL7800_FUNCTIONALITY_MINIMUM
Definition: hl7800.h:157
void(* mdm_hl7800_event_callback_t)(enum mdm_hl7800_event event, void *event_data)
Definition: hl7800.h:248
int32_t mdm_hl7800_get_local_time(struct tm *tm, int32_t *offset)
Get the local time from the modem's real time clock.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__INT32_TYPE__ int32_t
Definition: stdint.h:44
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
char value[64]
Definition: hl7800.h:52
char password[65]
Definition: hl7800.h:54
char username[65]
Definition: hl7800.h:53
char * string
Definition: hl7800.h:167
uint8_t code
Definition: hl7800.h:166
int status
Definition: hl7800.h:220
char confidence_in_meters[33]
Definition: hl7800.h:223
char longitude[33]
Definition: hl7800.h:222
uint32_t timestamp
Definition: hl7800.h:219
char latitude[33]
Definition: hl7800.h:221
int status
Definition: hl7800.h:210
char * password
Definition: hl7800.h:212
char * user
Definition: hl7800.h:211
int rsrq
Definition: hl7800.h:89
int rsrp
Definition: hl7800.h:88
uint32_t cell_id
Definition: hl7800.h:87
uint32_t earfcn
Definition: hl7800.h:86
static fdata_t data[2]
Definition: test_fifo_contexts.c:15