Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

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
 Access Point Name configuration. More...
struct  mdm_hl7800_site_survey
 Site survey result. More...
struct  mdm_hl7800_compound_event
 Event data made of a code and a string. More...
struct  mdm_hl7800_polte_registration_event_data
 PoLTE registration result. More...
struct  mdm_hl7800_polte_location_data
 PoLTE location response. More...
struct  mdm_hl7800_callback_agent
 Event callback registration. More...

Macros

#define MDM_HL7800_REVISION_MAX_SIZE   29
 Size of a firmware revision string, including the terminating NUL.
#define MDM_HL7800_REVISION_MAX_STRLEN   (MDM_HL7800_REVISION_MAX_SIZE - 1)
 Maximum length of a firmware revision string.
#define MDM_HL7800_IMEI_SIZE   16
 Size of an IMEI string, including the terminating NUL.
#define MDM_HL7800_IMEI_STRLEN   (MDM_HL7800_IMEI_SIZE - 1)
 Length of an IMEI string.
#define MDM_HL7800_ICCID_MAX_SIZE   21
 Size of an ICCID string, including the terminating NUL.
#define MDM_HL7800_ICCID_MAX_STRLEN   (MDM_HL7800_ICCID_MAX_SIZE - 1)
 Maximum length of an ICCID string.
#define MDM_HL7800_SERIAL_NUMBER_SIZE   15
 Size of a serial number string, including the terminating NUL.
#define MDM_HL7800_SERIAL_NUMBER_STRLEN   (MDM_HL7800_SERIAL_NUMBER_SIZE - 1)
 Length of a serial number string.
#define MDM_HL7800_APN_MAX_SIZE   64
 Size of an Access Point Name, including the terminating NUL.
#define MDM_HL7800_APN_USERNAME_MAX_SIZE   65
 Size of an APN username, including the terminating NUL.
#define MDM_HL7800_APN_PASSWORD_MAX_SIZE   65
 Size of an APN password, including the terminating NUL.
#define MDM_HL7800_APN_MAX_STRLEN   (MDM_HL7800_APN_MAX_SIZE - 1)
 Maximum length of an Access Point Name.
#define MDM_HL7800_APN_USERNAME_MAX_STRLEN   (MDM_HL7800_APN_USERNAME_MAX_SIZE - 1)
 Maximum length of an APN username.
#define MDM_HL7800_APN_PASSWORD_MAX_STRLEN   (MDM_HL7800_APN_PASSWORD_MAX_SIZE - 1)
 Maximum length of an APN password.
#define MDM_HL7800_LTE_BAND_STR_SIZE   21
 Size of an LTE band configuration string, including the terminating NUL.
#define MDM_HL7800_LTE_BAND_STRLEN   (MDM_HL7800_LTE_BAND_STR_SIZE - 1)
 Maximum length of an LTE band configuration string.
#define MDM_HL7800_IMSI_MIN_STR_SIZE   15
 Minimum size of an IMSI string, including the terminating NUL.
#define MDM_HL7800_IMSI_MAX_STR_SIZE   16
 Maximum size of an IMSI string, including the terminating NUL.
#define MDM_HL7800_IMSI_MAX_STRLEN   (MDM_HL7800_IMSI_MAX_STR_SIZE - 1)
 Maximum length of an IMSI string.
#define MDM_HL7800_MAX_GPS_STR_SIZE   33
 Size of a GPS string, including the terminating NUL.
#define MDM_HL7800_MAX_POLTE_USER_ID_SIZE   16
 Size of a PoLTE user ID string, including the terminating NUL.
#define MDM_HL7800_MAX_POLTE_PASSWORD_SIZE   16
 Size of a PoLTE password string, including the terminating NUL.
#define MDM_HL7800_MAX_POLTE_LOCATION_STR_SIZE   33
 Size of a PoLTE location string, including the terminating NUL.
#define MDM_HL7800_POLTE_SERVER_ERROR   10
 Status reported by HL7800_EVENT_POLTE when the PoLTE server could not be reached.

Typedefs

typedef void(* mdm_hl7800_event_callback_t) (enum mdm_hl7800_event event, void *event_data)
 Event callback.

Enumerations

enum  mdm_hl7800_radio_mode { MDM_RAT_CAT_M1 = 0 , MDM_RAT_CAT_NB1 }
 Radio Access Technology. More...
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 , HL7800_EVENT_STATE
}
 Event type reported to a mdm_hl7800_event_callback_t. More...
enum  mdm_hl7800_state { HL7800_STATE_NOT_READY = 0 , HL7800_STATE_INITIALIZED }
 Driver state. More...
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
}
 Modem startup state. More...
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
}
 Network registration state. More...
enum  mdm_hl7800_sleep {
  HL7800_SLEEP_UNINITIALIZED = 0 , HL7800_SLEEP_HIBERNATE , HL7800_SLEEP_AWAKE , HL7800_SLEEP_LITE_HIBERNATE ,
  HL7800_SLEEP_SLEEP
}
 Sleep state. More...
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
}
 Firmware update state. More...
enum  mdm_hl7800_functionality { HL7800_FUNCTIONALITY_MINIMUM = 0 , HL7800_FUNCTIONALITY_FULL = 1 , HL7800_FUNCTIONALITY_AIRPLANE = 4 }
 Modem functionality level, follows the +CFUN values. More...
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
}
 GNSS event reported by the modem. More...
enum  mdm_hl7800_gnss_status { HL7800_GNSS_STATUS_INVALID = -1 , HL7800_GNSS_STATUS_FAILURE , HL7800_GNSS_STATUS_SUCCESS }
 Status of a GNSS event. More...
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
}
 Position fix status reported by HL7800_EVENT_GPS_POSITION_STATUS. More...
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
}
 Type of GPS string reported by HL7800_EVENT_GPS. More...

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, uint8_t resp_timeout, char *resp, uint16_t *resp_len)
 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)
 Check if a Radio Access Technology value is valid.
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_update_fw (char *file_path)
 Update the HL7800 via XMODEM protocol.
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