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_MAX_SIZE 21 
   30#define MDM_HL7800_ICCID_MAX_STRLEN (MDM_HL7800_ICCID_MAX_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\"" 
  388#ifdef CONFIG_MODEM_HL7800_FW_UPDATE 
  397int32_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)
 
void mdm_hl7800_register_gpio6_callback(void(*func)(int state))
Allows mapping of P1.12_GPIO6 signal to a user accessible test point on the development board.
 
void mdm_hl7800_register_wake_test_point_callback(void(*func)(int state))
Allows mapping of WAKE_UP signal to a user accessible test point on the development board.
 
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.
 
int mdm_hl7800_set_desired_sleep_level(enum mdm_hl7800_sleep level)
Set desired sleep level. Requires MODEM_HL7800_LOW_POWER_MODE.
 
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.
 
mdm_hl7800_sleep
Definition: hl7800.h:138
 
@ HL7800_SLEEP_SLEEP
Definition: hl7800.h:143
 
@ HL7800_SLEEP_LITE_HIBERNATE
Definition: hl7800.h:142
 
@ HL7800_SLEEP_AWAKE
Definition: hl7800.h:141
 
@ HL7800_SLEEP_HIBERNATE
Definition: hl7800.h:140
 
@ HL7800_SLEEP_UNINITIALIZED
Definition: hl7800.h:139
 
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:195
 
@ HL7800_GPS_STR_GPS_TIME
Definition: hl7800.h:198
 
@ HL7800_GPS_STR_ALTITUDE
Definition: hl7800.h:201
 
@ HL7800_GPS_STR_ALT_UNC
Definition: hl7800.h:202
 
@ HL7800_GPS_STR_VER_SPEED
Definition: hl7800.h:205
 
@ HL7800_GPS_STR_LONGITUDE
Definition: hl7800.h:197
 
@ HL7800_GPS_STR_LATITUDE
Definition: hl7800.h:196
 
@ HL7800_GPS_STR_FIX_TYPE
Definition: hl7800.h:199
 
@ HL7800_GPS_STR_HOR_SPEED
Definition: hl7800.h:204
 
@ HL7800_GPS_STR_HEPE
Definition: hl7800.h:200
 
@ HL7800_GPS_STR_DIRECTION
Definition: hl7800.h:203
 
mdm_hl7800_gnss_status
Definition: hl7800.h:180
 
@ HL7800_GNSS_STATUS_FAILURE
Definition: hl7800.h:182
 
@ HL7800_GNSS_STATUS_INVALID
Definition: hl7800.h:181
 
@ HL7800_GNSS_STATUS_SUCCESS
Definition: hl7800.h:183
 
char * mdm_hl7800_get_imsi(void)
Get the IMSI.
 
mdm_hl7800_gnss_event
Definition: hl7800.h:172
 
@ HL7800_GNSS_EVENT_POSITION
Definition: hl7800.h:177
 
@ HL7800_GNSS_EVENT_INVALID
Definition: hl7800.h:173
 
@ HL7800_GNSS_EVENT_INIT
Definition: hl7800.h:174
 
@ HL7800_GNSS_EVENT_START
Definition: hl7800.h:175
 
@ HL7800_GNSS_EVENT_STOP
Definition: hl7800.h:176
 
#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.
 
uint32_t mdm_hl7800_log_filter_set(uint32_t level)
Set the log level for the modem.
 
int32_t mdm_hl7800_polte_register(void)
Register modem/SIM with polte.io.
 
mdm_hl7800_fota_state
Definition: hl7800.h:146
 
@ HL7800_FOTA_PAD
Definition: hl7800.h:150
 
@ HL7800_FOTA_REBOOT_AND_RECONFIGURE
Definition: hl7800.h:154
 
@ HL7800_FOTA_INSTALL
Definition: hl7800.h:153
 
@ HL7800_FOTA_WIP
Definition: hl7800.h:149
 
@ HL7800_FOTA_SEND_EOT
Definition: hl7800.h:151
 
@ HL7800_FOTA_FILE_ERROR
Definition: hl7800.h:152
 
@ HL7800_FOTA_IDLE
Definition: hl7800.h:147
 
@ HL7800_FOTA_COMPLETE
Definition: hl7800.h:155
 
@ HL7800_FOTA_START
Definition: hl7800.h:148
 
int32_t mdm_hl7800_set_bands(const char *bands)
Set the bands available for the LTE connection. NOTE: This will cause the modem to reboot....
 
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).
 
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. If CONFIG_MODEM_HL7800_RSSI_RATE_SECONDS is non-zero,...
 
int mdm_hl7800_unregister_event_callback(struct mdm_hl7800_callback_agent *agent)
Unregister a callback event function.
 
int32_t mdm_hl7800_power_off(void)
Power off the HL7800.
 
void mdm_hl7800_register_cts_callback(void(*func)(int state))
Allows mapping of UART1_CTS signal to a user accessible test point on the development board.
 
mdm_hl7800_gnss_position_event
Definition: hl7800.h:186
 
@ HL7800_GNSS_POSITION_EVENT_2D_AVAILABLE
Definition: hl7800.h:190
 
@ HL7800_GNSS_POSITION_EVENT_3D_AVAILABLE
Definition: hl7800.h:191
 
@ HL7800_GNSS_POSITION_EVENT_FIXED_TO_INVALID
Definition: hl7800.h:192
 
@ HL7800_GNSS_POSITION_EVENT_INVALID
Definition: hl7800.h:187
 
@ HL7800_GNSS_POSITION_EVENT_LOST_OR_NOT_AVAILABLE_YET
Definition: hl7800.h:188
 
@ HL7800_GNSS_POSITION_EVENT_PREDICTION_AVAILABLE
Definition: hl7800.h:189
 
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:158
 
@ HL7800_FUNCTIONALITY_AIRPLANE
Definition: hl7800.h:161
 
@ HL7800_FUNCTIONALITY_FULL
Definition: hl7800.h:160
 
@ HL7800_FUNCTIONALITY_MINIMUM
Definition: hl7800.h:159
 
void(* mdm_hl7800_event_callback_t)(enum mdm_hl7800_event event, void *event_data)
Definition: hl7800.h:250
 
int32_t mdm_hl7800_get_local_time(struct tm *tm, int32_t *offset)
Get the local time from the modem's real time clock.
 
int mdm_hl7800_register_event_callback(struct mdm_hl7800_callback_agent *agent)
Register a function that is called when a modem event occurs. Multiple users registering for callback...
 
state
Definition: parser_state.h:29
 
struct _snode sys_snode_t
Definition: slist.h:33
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
__INT32_TYPE__ int32_t
Definition: stdint.h:74
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
char value[64]
Definition: hl7800.h:52
 
char password[65]
Definition: hl7800.h:54
 
char username[65]
Definition: hl7800.h:53
 
sys_snode_t node
Definition: hl7800.h:254
 
mdm_hl7800_event_callback_t event_callback
Definition: hl7800.h:255
 
char * string
Definition: hl7800.h:169
 
uint8_t code
Definition: hl7800.h:168
 
int status
Definition: hl7800.h:222
 
char confidence_in_meters[33]
Definition: hl7800.h:225
 
char longitude[33]
Definition: hl7800.h:224
 
uint32_t timestamp
Definition: hl7800.h:221
 
char latitude[33]
Definition: hl7800.h:223
 
int status
Definition: hl7800.h:212
 
char * password
Definition: hl7800.h:214
 
char * user
Definition: hl7800.h:213
 
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