Zephyr API Documentation 4.0.0-rc2
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
hl7800.h File Reference

HL7800 modem public API header file. More...

#include <zephyr/types.h>
#include <time.h>

Go to the source code of this file.

Data Structures

struct  mdm_hl7800_apn
 
struct  mdm_hl7800_site_survey
 
struct  mdm_hl7800_compound_event
 
struct  mdm_hl7800_polte_registration_event_data
 
struct  mdm_hl7800_polte_location_data
 
struct  mdm_hl7800_callback_agent
 

Macros

#define MDM_HL7800_REVISION_MAX_SIZE   29
 
#define MDM_HL7800_REVISION_MAX_STRLEN   (MDM_HL7800_REVISION_MAX_SIZE - 1)
 
#define MDM_HL7800_IMEI_SIZE   16
 
#define MDM_HL7800_IMEI_STRLEN   (MDM_HL7800_IMEI_SIZE - 1)
 
#define MDM_HL7800_ICCID_MAX_SIZE   21
 
#define MDM_HL7800_ICCID_MAX_STRLEN   (MDM_HL7800_ICCID_MAX_SIZE - 1)
 
#define MDM_HL7800_SERIAL_NUMBER_SIZE   15
 
#define MDM_HL7800_SERIAL_NUMBER_STRLEN   (MDM_HL7800_SERIAL_NUMBER_SIZE - 1)
 
#define MDM_HL7800_APN_MAX_SIZE   64
 
#define MDM_HL7800_APN_USERNAME_MAX_SIZE   65
 
#define MDM_HL7800_APN_PASSWORD_MAX_SIZE   65
 
#define MDM_HL7800_APN_MAX_STRLEN   (MDM_HL7800_APN_MAX_SIZE - 1)
 
#define MDM_HL7800_APN_USERNAME_MAX_STRLEN    (MDM_HL7800_APN_USERNAME_MAX_SIZE - 1)
 
#define MDM_HL7800_APN_PASSWORD_MAX_STRLEN    (MDM_HL7800_APN_PASSWORD_MAX_SIZE - 1)
 
#define MDM_HL7800_APN_CMD_MAX_SIZE
 
#define MDM_HL7800_APN_CMD_MAX_STRLEN   (MDM_HL7800_APN_CMD_MAX_SIZE - 1)
 
#define MDM_HL7800_LTE_BAND_STR_SIZE   21
 
#define MDM_HL7800_LTE_BAND_STRLEN   (MDM_HL7800_LTE_BAND_STR_SIZE - 1)
 
#define MDM_HL7800_OPERATOR_INDEX_SIZE   3
 
#define MDM_HL7800_OPERATOR_INDEX_STRLEN   (MDM_HL7800_OPERATOR_INDEX_SIZE - 1)
 
#define MDM_HL7800_IMSI_MIN_STR_SIZE   15
 
#define MDM_HL7800_IMSI_MAX_STR_SIZE   16
 
#define MDM_HL7800_IMSI_MAX_STRLEN   (MDM_HL7800_IMSI_MAX_STR_SIZE - 1)
 
#define MDM_HL7800_MODEM_FUNCTIONALITY_SIZE   2
 
#define MDM_HL7800_MODEM_FUNCTIONALITY_STRLEN    (MDM_HL7800_MODEM_FUNCTIONALITY_SIZE - 1)
 
#define MDM_HL7800_MAX_GPS_STR_SIZE   33
 
#define MDM_HL7800_MAX_POLTE_USER_ID_SIZE   16
 
#define MDM_HL7800_MAX_POLTE_PASSWORD_SIZE   16
 
#define MDM_HL7800_MAX_POLTE_LOCATION_STR_SIZE   33
 
#define MDM_HL7800_POLTE_SERVER_ERROR   10
 
#define MDM_HL7800_SET_POLTE_USER_AND_PASSWORD_FMT_STR   "AT%%POLTECMD=\"SERVERAUTH\",\"%s\",\"%s\""
 

Typedefs

typedef void(* mdm_hl7800_event_callback_t) (enum mdm_hl7800_event event, void *event_data)
 event - The type of event event_data - Pointer to event specific data structure HL7800_EVENT_NETWORK_STATE_CHANGE - compound event HL7800_EVENT_APN_UPDATE - struct mdm_hl7800_apn HL7800_EVENT_RSSI - int HL7800_EVENT_SINR - int HL7800_EVENT_STARTUP_STATE_CHANGE - compound event HL7800_EVENT_SLEEP_STATE_CHANGE - compound event HL7800_EVENT_RAT - int HL7800_EVENT_BANDS - string HL7800_EVENT_ACTIVE_BANDS - string HL7800_EVENT_FOTA_STATE - compound event HL7800_EVENT_FOTA_COUNT - uint32_t HL7800_EVENT_REVISION - string HL7800_EVENT_GPS - compound event HL7800_EVENT_GPS_POSITION_STATUS int HL7800_EVENT_POLTE_REGISTRATION mdm_hl7800_polte_registration_event_data HL7800_EVENT_POLTE mdm_hl7800_polte_location_data HL7800_EVENT_POLTE_LOCATE_STATUS int HL7800_EVENT_SITE_SURVEY mdm_hl7800_site_survey
 

Enumerations

enum  mdm_hl7800_radio_mode { MDM_RAT_CAT_M1 = 0 , MDM_RAT_CAT_NB1 }
 
enum  mdm_hl7800_event {
  HL7800_EVENT_RESERVED = 0 , HL7800_EVENT_NETWORK_STATE_CHANGE , HL7800_EVENT_APN_UPDATE , HL7800_EVENT_RSSI ,
  HL7800_EVENT_SINR , HL7800_EVENT_STARTUP_STATE_CHANGE , HL7800_EVENT_SLEEP_STATE_CHANGE , HL7800_EVENT_RAT ,
  HL7800_EVENT_BANDS , HL7800_EVENT_ACTIVE_BANDS , HL7800_EVENT_FOTA_STATE , HL7800_EVENT_FOTA_COUNT ,
  HL7800_EVENT_REVISION , HL7800_EVENT_GPS , HL7800_EVENT_GPS_POSITION_STATUS , HL7800_EVENT_POLTE_REGISTRATION ,
  HL7800_EVENT_POLTE_LOCATE_STATUS , HL7800_EVENT_POLTE , HL7800_EVENT_SITE_SURVEY
}
 
enum  mdm_hl7800_startup_state {
  HL7800_STARTUP_STATE_READY = 0 , HL7800_STARTUP_STATE_WAITING_FOR_ACCESS_CODE , HL7800_STARTUP_STATE_SIM_NOT_PRESENT , HL7800_STARTUP_STATE_SIMLOCK ,
  HL7800_STARTUP_STATE_UNRECOVERABLE_ERROR , HL7800_STARTUP_STATE_UNKNOWN , HL7800_STARTUP_STATE_INACTIVE_SIM
}
 
enum  mdm_hl7800_network_state {
  HL7800_NOT_REGISTERED = 0 , HL7800_HOME_NETWORK , HL7800_SEARCHING , HL7800_REGISTRATION_DENIED ,
  HL7800_OUT_OF_COVERAGE , HL7800_ROAMING , HL7800_EMERGENCY = 8 , HL7800_UNABLE_TO_CONFIGURE = 0xf0
}
 
enum  mdm_hl7800_sleep {
  HL7800_SLEEP_UNINITIALIZED = 0 , HL7800_SLEEP_HIBERNATE , HL7800_SLEEP_AWAKE , HL7800_SLEEP_LITE_HIBERNATE ,
  HL7800_SLEEP_SLEEP
}
 
enum  mdm_hl7800_fota_state {
  HL7800_FOTA_IDLE , HL7800_FOTA_START , HL7800_FOTA_WIP , HL7800_FOTA_PAD ,
  HL7800_FOTA_SEND_EOT , HL7800_FOTA_FILE_ERROR , HL7800_FOTA_INSTALL , HL7800_FOTA_REBOOT_AND_RECONFIGURE ,
  HL7800_FOTA_COMPLETE
}
 
enum  mdm_hl7800_functionality { HL7800_FUNCTIONALITY_MINIMUM = 0 , HL7800_FUNCTIONALITY_FULL = 1 , HL7800_FUNCTIONALITY_AIRPLANE = 4 }
 
enum  mdm_hl7800_gnss_event {
  HL7800_GNSS_EVENT_INVALID = -1 , HL7800_GNSS_EVENT_INIT , HL7800_GNSS_EVENT_START , HL7800_GNSS_EVENT_STOP ,
  HL7800_GNSS_EVENT_POSITION
}
 
enum  mdm_hl7800_gnss_status { HL7800_GNSS_STATUS_INVALID = -1 , HL7800_GNSS_STATUS_FAILURE , HL7800_GNSS_STATUS_SUCCESS }
 
enum  mdm_hl7800_gnss_position_event {
  HL7800_GNSS_POSITION_EVENT_INVALID = -1 , HL7800_GNSS_POSITION_EVENT_LOST_OR_NOT_AVAILABLE_YET , HL7800_GNSS_POSITION_EVENT_PREDICTION_AVAILABLE , HL7800_GNSS_POSITION_EVENT_2D_AVAILABLE ,
  HL7800_GNSS_POSITION_EVENT_3D_AVAILABLE , HL7800_GNSS_POSITION_EVENT_FIXED_TO_INVALID
}
 
enum  mdm_hl7800_gps_string_types {
  HL7800_GPS_STR_LATITUDE , HL7800_GPS_STR_LONGITUDE , HL7800_GPS_STR_GPS_TIME , HL7800_GPS_STR_FIX_TYPE ,
  HL7800_GPS_STR_HEPE , HL7800_GPS_STR_ALTITUDE , HL7800_GPS_STR_ALT_UNC , HL7800_GPS_STR_DIRECTION ,
  HL7800_GPS_STR_HOR_SPEED , HL7800_GPS_STR_VER_SPEED
}
 

Functions

int32_t mdm_hl7800_power_off (void)
 Power off the HL7800.
 
int32_t mdm_hl7800_reset (void)
 Reset the HL7800 (and allow it to reconfigure).
 
void mdm_hl7800_wakeup (bool awake)
 Control the wake signals to the HL7800.
 
int32_t mdm_hl7800_send_at_cmd (const uint8_t *data)
 Send an AT command to the HL7800.
 
void mdm_hl7800_get_signal_quality (int *rsrp, int *sinr)
 Get the signal quality of the HL7800.
 
char * mdm_hl7800_get_iccid (void)
 Get the SIM card ICCID.
 
char * mdm_hl7800_get_sn (void)
 Get the HL7800 serial number.
 
char * mdm_hl7800_get_imei (void)
 Get the HL7800 IMEI.
 
char * mdm_hl7800_get_fw_version (void)
 Get the HL7800 firmware version.
 
char * mdm_hl7800_get_imsi (void)
 Get the IMSI.
 
int32_t mdm_hl7800_update_apn (char *access_point_name)
 Update the Access Point Name in the modem.
 
int32_t mdm_hl7800_update_rat (enum mdm_hl7800_radio_mode value)
 Update the Radio Access Technology (mode).
 
bool mdm_hl7800_valid_rat (uint8_t value)
 
int mdm_hl7800_register_event_callback (struct mdm_hl7800_callback_agent *agent)
 Register a function that is called when a modem event occurs.
 
int mdm_hl7800_unregister_event_callback (struct mdm_hl7800_callback_agent *agent)
 Unregister a callback event function.
 
void mdm_hl7800_generate_status_events (void)
 Force modem module to generate status events.
 
int32_t mdm_hl7800_get_local_time (struct tm *tm, int32_t *offset)
 Get the local time from the modem's real time clock.
 
int32_t mdm_hl7800_get_operator_index (void)
 Read the operator index from the modem.
 
int32_t mdm_hl7800_get_functionality (void)
 Get modem functionality.
 
int32_t mdm_hl7800_set_functionality (enum mdm_hl7800_functionality mode)
 Set airplane, normal, or reduced functionality mode.
 
int32_t mdm_hl7800_set_gps_rate (uint32_t rate)
 When rate is non-zero: Put modem into Airplane mode.
 
int32_t mdm_hl7800_polte_register (void)
 Register modem/SIM with polte.io.
 
int32_t mdm_hl7800_polte_enable (char *user, char *password)
 Enable PoLTE.
 
int32_t mdm_hl7800_polte_locate (void)
 Locate device using PoLTE.
 
int32_t mdm_hl7800_perform_site_survey (void)
 Perform a site survey.
 
int mdm_hl7800_set_desired_sleep_level (enum mdm_hl7800_sleep level)
 Set desired sleep level.
 
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.
 
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_cts_callback (void(*func)(int state))
 Allows mapping of UART1_CTS signal to a user accessible test point on the development board.
 
int32_t mdm_hl7800_set_bands (const char *bands)
 Set the bands available for the LTE connection.
 
uint32_t mdm_hl7800_log_filter_set (uint32_t level)
 Set the log level for the modem.
 

Detailed Description

HL7800 modem public API header file.

Allows an application to control the HL7800 modem.

Copyright (c) 2020 Laird Connectivity

SPDX-License-Identifier: Apache-2.0

Macro Definition Documentation

◆ MDM_HL7800_APN_CMD_MAX_SIZE

#define MDM_HL7800_APN_CMD_MAX_SIZE
Value:
#define MDM_HL7800_APN_PASSWORD_MAX_STRLEN
Definition hl7800.h:42
#define MDM_HL7800_APN_USERNAME_MAX_STRLEN
Definition hl7800.h:40

◆ MDM_HL7800_APN_CMD_MAX_STRLEN

#define MDM_HL7800_APN_CMD_MAX_STRLEN   (MDM_HL7800_APN_CMD_MAX_SIZE - 1)

◆ MDM_HL7800_APN_MAX_SIZE

#define MDM_HL7800_APN_MAX_SIZE   64

◆ MDM_HL7800_APN_MAX_STRLEN

#define MDM_HL7800_APN_MAX_STRLEN   (MDM_HL7800_APN_MAX_SIZE - 1)

◆ MDM_HL7800_APN_PASSWORD_MAX_SIZE

#define MDM_HL7800_APN_PASSWORD_MAX_SIZE   65

◆ MDM_HL7800_APN_PASSWORD_MAX_STRLEN

#define MDM_HL7800_APN_PASSWORD_MAX_STRLEN    (MDM_HL7800_APN_PASSWORD_MAX_SIZE - 1)

◆ MDM_HL7800_APN_USERNAME_MAX_SIZE

#define MDM_HL7800_APN_USERNAME_MAX_SIZE   65

◆ MDM_HL7800_APN_USERNAME_MAX_STRLEN

#define MDM_HL7800_APN_USERNAME_MAX_STRLEN    (MDM_HL7800_APN_USERNAME_MAX_SIZE - 1)

◆ MDM_HL7800_ICCID_MAX_SIZE

#define MDM_HL7800_ICCID_MAX_SIZE   21

◆ MDM_HL7800_ICCID_MAX_STRLEN

#define MDM_HL7800_ICCID_MAX_STRLEN   (MDM_HL7800_ICCID_MAX_SIZE - 1)

◆ MDM_HL7800_IMEI_SIZE

#define MDM_HL7800_IMEI_SIZE   16

◆ MDM_HL7800_IMEI_STRLEN

#define MDM_HL7800_IMEI_STRLEN   (MDM_HL7800_IMEI_SIZE - 1)

◆ MDM_HL7800_IMSI_MAX_STR_SIZE

#define MDM_HL7800_IMSI_MAX_STR_SIZE   16

◆ MDM_HL7800_IMSI_MAX_STRLEN

#define MDM_HL7800_IMSI_MAX_STRLEN   (MDM_HL7800_IMSI_MAX_STR_SIZE - 1)

◆ MDM_HL7800_IMSI_MIN_STR_SIZE

#define MDM_HL7800_IMSI_MIN_STR_SIZE   15

◆ MDM_HL7800_LTE_BAND_STR_SIZE

#define MDM_HL7800_LTE_BAND_STR_SIZE   21

◆ MDM_HL7800_LTE_BAND_STRLEN

#define MDM_HL7800_LTE_BAND_STRLEN   (MDM_HL7800_LTE_BAND_STR_SIZE - 1)

◆ MDM_HL7800_MAX_GPS_STR_SIZE

#define MDM_HL7800_MAX_GPS_STR_SIZE   33

◆ MDM_HL7800_MAX_POLTE_LOCATION_STR_SIZE

#define MDM_HL7800_MAX_POLTE_LOCATION_STR_SIZE   33

◆ MDM_HL7800_MAX_POLTE_PASSWORD_SIZE

#define MDM_HL7800_MAX_POLTE_PASSWORD_SIZE   16

◆ MDM_HL7800_MAX_POLTE_USER_ID_SIZE

#define MDM_HL7800_MAX_POLTE_USER_ID_SIZE   16

◆ MDM_HL7800_MODEM_FUNCTIONALITY_SIZE

#define MDM_HL7800_MODEM_FUNCTIONALITY_SIZE   2

◆ MDM_HL7800_MODEM_FUNCTIONALITY_STRLEN

#define MDM_HL7800_MODEM_FUNCTIONALITY_STRLEN    (MDM_HL7800_MODEM_FUNCTIONALITY_SIZE - 1)

◆ MDM_HL7800_OPERATOR_INDEX_SIZE

#define MDM_HL7800_OPERATOR_INDEX_SIZE   3

◆ MDM_HL7800_OPERATOR_INDEX_STRLEN

#define MDM_HL7800_OPERATOR_INDEX_STRLEN   (MDM_HL7800_OPERATOR_INDEX_SIZE - 1)

◆ MDM_HL7800_POLTE_SERVER_ERROR

#define MDM_HL7800_POLTE_SERVER_ERROR   10

◆ MDM_HL7800_REVISION_MAX_SIZE

#define MDM_HL7800_REVISION_MAX_SIZE   29

◆ MDM_HL7800_REVISION_MAX_STRLEN

#define MDM_HL7800_REVISION_MAX_STRLEN   (MDM_HL7800_REVISION_MAX_SIZE - 1)

◆ MDM_HL7800_SERIAL_NUMBER_SIZE

#define MDM_HL7800_SERIAL_NUMBER_SIZE   15

◆ MDM_HL7800_SERIAL_NUMBER_STRLEN

#define MDM_HL7800_SERIAL_NUMBER_STRLEN   (MDM_HL7800_SERIAL_NUMBER_SIZE - 1)

◆ MDM_HL7800_SET_POLTE_USER_AND_PASSWORD_FMT_STR

#define MDM_HL7800_SET_POLTE_USER_AND_PASSWORD_FMT_STR   "AT%%POLTECMD=\"SERVERAUTH\",\"%s\",\"%s\""

Typedef Documentation

◆ mdm_hl7800_event_callback_t

typedef void(* mdm_hl7800_event_callback_t) (enum mdm_hl7800_event event, void *event_data)

event - The type of event event_data - Pointer to event specific data structure HL7800_EVENT_NETWORK_STATE_CHANGE - compound event HL7800_EVENT_APN_UPDATE - struct mdm_hl7800_apn HL7800_EVENT_RSSI - int HL7800_EVENT_SINR - int HL7800_EVENT_STARTUP_STATE_CHANGE - compound event HL7800_EVENT_SLEEP_STATE_CHANGE - compound event HL7800_EVENT_RAT - int HL7800_EVENT_BANDS - string HL7800_EVENT_ACTIVE_BANDS - string HL7800_EVENT_FOTA_STATE - compound event HL7800_EVENT_FOTA_COUNT - uint32_t HL7800_EVENT_REVISION - string HL7800_EVENT_GPS - compound event HL7800_EVENT_GPS_POSITION_STATUS int HL7800_EVENT_POLTE_REGISTRATION mdm_hl7800_polte_registration_event_data HL7800_EVENT_POLTE mdm_hl7800_polte_location_data HL7800_EVENT_POLTE_LOCATE_STATUS int HL7800_EVENT_SITE_SURVEY mdm_hl7800_site_survey

Enumeration Type Documentation

◆ mdm_hl7800_event

Enumerator
HL7800_EVENT_RESERVED 
HL7800_EVENT_NETWORK_STATE_CHANGE 
HL7800_EVENT_APN_UPDATE 
HL7800_EVENT_RSSI 
HL7800_EVENT_SINR 
HL7800_EVENT_STARTUP_STATE_CHANGE 
HL7800_EVENT_SLEEP_STATE_CHANGE 
HL7800_EVENT_RAT 
HL7800_EVENT_BANDS 
HL7800_EVENT_ACTIVE_BANDS 
HL7800_EVENT_FOTA_STATE 
HL7800_EVENT_FOTA_COUNT 
HL7800_EVENT_REVISION 
HL7800_EVENT_GPS 
HL7800_EVENT_GPS_POSITION_STATUS 
HL7800_EVENT_POLTE_REGISTRATION 
HL7800_EVENT_POLTE_LOCATE_STATUS 
HL7800_EVENT_POLTE 
HL7800_EVENT_SITE_SURVEY 

◆ mdm_hl7800_fota_state

Enumerator
HL7800_FOTA_IDLE 
HL7800_FOTA_START 
HL7800_FOTA_WIP 
HL7800_FOTA_PAD 
HL7800_FOTA_SEND_EOT 
HL7800_FOTA_FILE_ERROR 
HL7800_FOTA_INSTALL 
HL7800_FOTA_REBOOT_AND_RECONFIGURE 
HL7800_FOTA_COMPLETE 

◆ mdm_hl7800_functionality

Enumerator
HL7800_FUNCTIONALITY_MINIMUM 
HL7800_FUNCTIONALITY_FULL 
HL7800_FUNCTIONALITY_AIRPLANE 

◆ mdm_hl7800_gnss_event

Enumerator
HL7800_GNSS_EVENT_INVALID 
HL7800_GNSS_EVENT_INIT 
HL7800_GNSS_EVENT_START 
HL7800_GNSS_EVENT_STOP 
HL7800_GNSS_EVENT_POSITION 

◆ mdm_hl7800_gnss_position_event

Enumerator
HL7800_GNSS_POSITION_EVENT_INVALID 
HL7800_GNSS_POSITION_EVENT_LOST_OR_NOT_AVAILABLE_YET 
HL7800_GNSS_POSITION_EVENT_PREDICTION_AVAILABLE 
HL7800_GNSS_POSITION_EVENT_2D_AVAILABLE 
HL7800_GNSS_POSITION_EVENT_3D_AVAILABLE 
HL7800_GNSS_POSITION_EVENT_FIXED_TO_INVALID 

◆ mdm_hl7800_gnss_status

Enumerator
HL7800_GNSS_STATUS_INVALID 
HL7800_GNSS_STATUS_FAILURE 
HL7800_GNSS_STATUS_SUCCESS 

◆ mdm_hl7800_gps_string_types

Enumerator
HL7800_GPS_STR_LATITUDE 
HL7800_GPS_STR_LONGITUDE 
HL7800_GPS_STR_GPS_TIME 
HL7800_GPS_STR_FIX_TYPE 
HL7800_GPS_STR_HEPE 
HL7800_GPS_STR_ALTITUDE 
HL7800_GPS_STR_ALT_UNC 
HL7800_GPS_STR_DIRECTION 
HL7800_GPS_STR_HOR_SPEED 
HL7800_GPS_STR_VER_SPEED 

◆ mdm_hl7800_network_state

Enumerator
HL7800_NOT_REGISTERED 
HL7800_HOME_NETWORK 
HL7800_SEARCHING 
HL7800_REGISTRATION_DENIED 
HL7800_OUT_OF_COVERAGE 
HL7800_ROAMING 
HL7800_EMERGENCY 
HL7800_UNABLE_TO_CONFIGURE 

◆ mdm_hl7800_radio_mode

Enumerator
MDM_RAT_CAT_M1 
MDM_RAT_CAT_NB1 

◆ mdm_hl7800_sleep

Enumerator
HL7800_SLEEP_UNINITIALIZED 
HL7800_SLEEP_HIBERNATE 
HL7800_SLEEP_AWAKE 
HL7800_SLEEP_LITE_HIBERNATE 
HL7800_SLEEP_SLEEP 

◆ mdm_hl7800_startup_state

Enumerator
HL7800_STARTUP_STATE_READY 
HL7800_STARTUP_STATE_WAITING_FOR_ACCESS_CODE 
HL7800_STARTUP_STATE_SIM_NOT_PRESENT 
HL7800_STARTUP_STATE_SIMLOCK 
HL7800_STARTUP_STATE_UNRECOVERABLE_ERROR 
HL7800_STARTUP_STATE_UNKNOWN 
HL7800_STARTUP_STATE_INACTIVE_SIM 

Function Documentation

◆ mdm_hl7800_generate_status_events()

void mdm_hl7800_generate_status_events ( void )

Force modem module to generate status events.

Note
This can be used to get the current state when a module initializes later than the modem.

◆ mdm_hl7800_get_functionality()

int32_t mdm_hl7800_get_functionality ( void )

Get modem functionality.

Returns
int32_t negative errno on failure, else mdm_hl7800_functionality

◆ mdm_hl7800_get_fw_version()

char * mdm_hl7800_get_fw_version ( void )

Get the HL7800 firmware version.

◆ mdm_hl7800_get_iccid()

char * mdm_hl7800_get_iccid ( void )

Get the SIM card ICCID.

◆ mdm_hl7800_get_imei()

char * mdm_hl7800_get_imei ( void )

Get the HL7800 IMEI.

◆ mdm_hl7800_get_imsi()

char * mdm_hl7800_get_imsi ( void )

Get the IMSI.

◆ mdm_hl7800_get_local_time()

int32_t mdm_hl7800_get_local_time ( struct tm * tm,
int32_t * offset )

Get the local time from the modem's real time clock.

Parameters
tmtime structure
offsetThe amount the local time is offset from GMT/UTC in seconds.
Returns
int32_t 0 if successful

◆ mdm_hl7800_get_operator_index()

int32_t mdm_hl7800_get_operator_index ( void )

Read the operator index from the modem.

Return values
negativeerror code, 0 on success

◆ mdm_hl7800_get_signal_quality()

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, then this function returns the value from the last periodic read. If CONFIG_MODEM_HL7800_RSSI_RATE_SECONDS is 0, then this may cause the modem to be woken so that the values can be queried.

Parameters
rsrpReference Signals Received Power (dBm) Range = -140 dBm to -44 dBm
sinrSignal to Interference plus Noise Ratio (dB) Range = -128 dB to 40 dB

◆ mdm_hl7800_get_sn()

char * mdm_hl7800_get_sn ( void )

Get the HL7800 serial number.

◆ mdm_hl7800_log_filter_set()

uint32_t mdm_hl7800_log_filter_set ( uint32_t level)

Set the log level for the modem.

Note
It cannot be set higher than CONFIG_MODEM_LOG_LEVEL. If debug level is desired, then it must be compiled with that level.
Parameters
level0 (None) - 4 (Debug)
Return values
newlog level

◆ mdm_hl7800_perform_site_survey()

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 what is in range).

HL7800_EVENT_SITE_SURVEY is generated for each response received from modem.

Return values
negativeerror code, 0 on success

◆ mdm_hl7800_polte_enable()

int32_t mdm_hl7800_polte_enable ( char * user,
char * password )

Enable PoLTE.

Parameters
userfrom polte.io or register command callback
passwordfrom polte.io register command callback
Returns
int32_t negative errno, 0 on success

◆ mdm_hl7800_polte_locate()

int32_t mdm_hl7800_polte_locate ( void )

Locate device using PoLTE.

Note
The first HL7800_EVENT_POLTE_LOCATE_STATUS event indicates the status of issuing the locate command. The second event requires 20-120 seconds to be generated and it contains the location information (or indicates server failure).
Returns
int32_t negative errno, 0 on success

◆ mdm_hl7800_polte_register()

int32_t mdm_hl7800_polte_register ( void )

Register modem/SIM with polte.io.

Note
It takes around 30 seconds for HL7800_EVENT_POLTE_REGISTRATION to be generated. If the applications saves the user and password information into non-volatile memory, then this command only needs to be run once.
Returns
int32_t negative errno, 0 on success

◆ mdm_hl7800_power_off()

int32_t mdm_hl7800_power_off ( void )

Power off the HL7800.

Returns
int32_t 0 for success

◆ mdm_hl7800_register_cts_callback()

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.

Parameters
functo be called when CTS state changes if sleep level is sleep. The state parameter of the callback follows gpio_pin_get definitions, but will default low if there is an error reading pin

◆ mdm_hl7800_register_event_callback()

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 callbacks is supported.

Parameters
agentevent callback agent
Return values
0on success, negative on failure

◆ mdm_hl7800_register_gpio6_callback()

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.

Parameters
functo be called when modem wakes/sleeps is sleep level is hibernate or lite hibernate. The state parameter of the callback follows gpio_pin_get definitions, but will default high if there is an error reading pin

◆ mdm_hl7800_register_wake_test_point_callback()

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.

Parameters
functo be called when application requests modem wake/sleep. The state parameter of the callback is 1 when modem should stay awake, 0 when modem can sleep

◆ mdm_hl7800_reset()

int32_t mdm_hl7800_reset ( void )

Reset the HL7800 (and allow it to reconfigure).

Returns
int32_t 0 for success

◆ mdm_hl7800_send_at_cmd()

int32_t mdm_hl7800_send_at_cmd ( const uint8_t * data)

Send an AT command to the HL7800.

Note
this API should only be used for debug purposes.
Parameters
dataAT command string
Returns
int32_t 0 for success

◆ mdm_hl7800_set_bands()

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. This call returns before the reboot.

Parameters
bandsBand bitmap in hexadecimal format without the 0x prefix. Leading 0's for the value can be omitted.
Returns
int32_t negative errno, 0 on success

◆ mdm_hl7800_set_desired_sleep_level()

int mdm_hl7800_set_desired_sleep_level ( enum mdm_hl7800_sleep level)

Set desired sleep level.

Requires MODEM_HL7800_LOW_POWER_MODE

Parameters
level(sleep, lite hibernate, or hibernate)
Returns
int negative errno, 0 on success

◆ mdm_hl7800_set_functionality()

int32_t mdm_hl7800_set_functionality ( enum mdm_hl7800_functionality mode)

Set airplane, normal, or reduced functionality mode.

Airplane mode persists when reset.

Note
Boot functionality is also controlled by Kconfig MODEM_HL7800_BOOT_IN_AIRPLANE_MODE.
Parameters
mode
Returns
int32_t negative errno, 0 on success

◆ mdm_hl7800_set_gps_rate()

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. When zero: Disable GPS and put modem into normal mode.

Note
Airplane mode isn't cleared when the modem is reset.
Parameters
ratein seconds to query location
Returns
int32_t negative errno, 0 on success

◆ mdm_hl7800_unregister_event_callback()

int mdm_hl7800_unregister_event_callback ( struct mdm_hl7800_callback_agent * agent)

Unregister a callback event function.

Parameters
agentevent callback agent
Return values
0on success, negative on failure

◆ mdm_hl7800_update_apn()

int32_t mdm_hl7800_update_apn ( char * access_point_name)

Update the Access Point Name in the modem.

Return values
0on success, negative on failure.

◆ mdm_hl7800_update_rat()

int32_t mdm_hl7800_update_rat ( enum mdm_hl7800_radio_mode value)

Update the Radio Access Technology (mode).

Return values
0on success, negative on failure.

◆ mdm_hl7800_valid_rat()

bool mdm_hl7800_valid_rat ( uint8_t value)
Return values
trueif RAT value is valid

◆ mdm_hl7800_wakeup()

void mdm_hl7800_wakeup ( bool awake)

Control the wake signals to the HL7800.

Note
this API should only be used for debug purposes.
Parameters
awakeTrue to keep the HL7800 awake, False to allow sleep