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
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 - mdm_hl7800_compound_event HL7800_EVENT_APN_UPDATE - struct mdm_hl7800_apn HL7800_EVENT_RSSI - int HL7800_EVENT_SINR - int HL7800_EVENT_STARTUP_STATE_CHANGE - mdm_hl7800_compound_event HL7800_EVENT_SLEEP_STATE_CHANGE - mdm_hl7800_compound_event HL7800_EVENT_RAT - int HL7800_EVENT_BANDS - string HL7800_EVENT_ACTIVE_BANDS - string HL7800_EVENT_FOTA_STATE - mdm_hl7800_compound_event HL7800_EVENT_FOTA_COUNT - uint32_t HL7800_EVENT_REVISION - string HL7800_EVENT_GPS - mdm_hl7800_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 HL7800_EVENT_STATE mdm_hl7800_compound_event

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 , HL7800_EVENT_STATE
}
enum  mdm_hl7800_state { HL7800_STATE_NOT_READY = 0 , HL7800_STATE_INITIALIZED }
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, 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)
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