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

Simcom SIM7080 modem public API header file. More...

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

Go to the source code of this file.

Data Structures

struct  sim7080_gnss_data
 Sim7080 gnss data structure. More...
struct  sim7080_sms
 Buffer structure for sms. More...
struct  sim7080_sms_buffer
 Buffer structure for sms reads. More...
struct  sim7080_ue_sys_info_gsm
 Sim7080 ue system information structure for gsm. More...
struct  sim7080_ue_sys_info_lte
 Sim7080 ue system information structure for LTE. More...
struct  sim7080_ue_sys_info
 Sim7080 ue system information structure. More...

Macros

#define SIM7080_GNSS_DATA_UTC_LEN   20
 Maximum Length of GNSS UTC data.
#define SIM7080_SMS_MAX_LEN   160
 Maximum SMS length.
#define SIM7080_UE_SYS_INFO_BAND_SIZE   32
 Maximum UE system information band size.
#define SIM7080_DNS_MAX_RECOUNT   10
 Maximum number of DNS retries.
#define SIM7080_DNS_MAX_TIMEOUT_MS   60000
 Maximum timeout for DNS queries in milliseconds.
#define SIM7080_LTE_CHANNEL_MASK_NB1   0x7BEFFU
 Channel Mask for NB-IoT.
#define SIM7080_LTE_CHANNEL_MASK_M1   0x5FFFFU
 Channel Mask for CAT-M1.
#define SIM7080_NUM_LTE_CHANNELS   19U
 Number of LTE channels supported by the modem.

Enumerations

enum  sim7080_state {
  SIM7080_STATE_INIT = 0 , SIM7080_STATE_IDLE , SIM7080_STATE_NETWORKING , SIM7080_STATE_GNSS ,
  SIM7080_STATE_OFF
}
 Sim7080 modem state. More...
enum  sim7080_rat { SIM7080_RAT_LTE_NB1 , SIM7080_RAT_LTE_M1 , SIM7080_RAT_LTE_AUTO , SIM7080_RAT_GSM }
 Modem radio access technology. More...
enum  sim7080_lte_chan {
  SIM7080_LTE_CHAN_B1 = BIT(0) , SIM7080_LTE_CHAN_B2 = BIT(1) , SIM7080_LTE_CHAN_B3 = BIT(2) , SIM7080_LTE_CHAN_B4 = BIT(3) ,
  SIM7080_LTE_CHAN_B5 = BIT(4) , SIM7080_LTE_CHAN_B8 = BIT(5) , SIM7080_LTE_CHAN_B12 = BIT(6) , SIM7080_LTE_CHAN_B13 = BIT(7) ,
  SIM7080_LTE_CHAN_B14 = BIT(8) , SIM7080_LTE_CHAN_B18 = BIT(9) , SIM7080_LTE_CHAN_B19 = BIT(10) , SIM7080_LTE_CHAN_B20 = BIT(11) ,
  SIM7080_LTE_CHAN_B25 = BIT(12) , SIM7080_LTE_CHAN_B26 = BIT(13) , SIM7080_LTE_CHAN_B27 = BIT(14) , SIM7080_LTE_CHAN_B28 = BIT(15) ,
  SIM7080_LTE_CHAN_B66 = BIT(16) , SIM7080_LTE_CHAN_B71 = BIT(17) , SIM7080_LTE_CHAN_B85 = BIT(18)
}
 Supported LTE channels. More...
enum  sim7080_sms_stat {
  SIM7080_SMS_STAT_REC_UNREAD = 0 , SIM7080_SMS_STAT_REC_READ , SIM7080_SMS_STAT_STO_UNSENT , SIM7080_SMS_STAT_STO_SENT ,
  SIM7080_SMS_STAT_ALL
}
 Possible sms states in memory. More...
enum  sim7080_ftp_rc { SIM7080_FTP_RC_OK = 0 , SIM7080_FTP_RC_FINISHED , SIM7080_FTP_RC_ERROR }
 Possible ftp return codes. More...
enum  sim7080_ue_sys_mode { SIM7080_UE_SYS_MODE_NO_SERVICE , SIM7080_UE_SYS_MODE_GSM , SIM7080_UE_SYS_MODE_LTE_CAT_M1 , SIM7080_UE_SYS_MODE_LTE_NB_IOT }
 UE system mode. More...
enum  sim7080_ue_op_mode {
  SIM7080_UE_OP_MODE_ONLINE , SIM7080_UE_OP_MODE_OFFLINE , SIM7080_UE_OP_MODE_FACTORY_TEST_MODE , SIM7080_UE_OP_MODE_RESET ,
  SIM7080_UE_OP_MODE_LOW_POWER_MODE
}
 UE operating mode. More...

Functions

enum sim7080_state mdm_sim7080_get_state (void)
 Get the current state of the modem.
int mdm_sim7080_power_on (void)
 Power on the Sim7080.
int mdm_sim7080_power_off (void)
 Power off the Sim7080.
void mdm_sim7080_force_reset (void)
 Forcefully reset the modem by pulling pwrkey for 15 seconds.
int mdm_sim7080_start_network (void)
 Activates the network operation mode of the modem.
int mdm_sim7080_stop_network (void)
 Stops the networking operation mode of the modem.
int mdm_sim7080_start_gnss (void)
 Starts the modem in gnss operation mode.
int mdm_sim7080_start_gnss_xtra (void)
 Starts the modem in gnss operation mode with xtra functionality.
int mdm_sim7080_stop_gnss (void)
 Stops the modem gnss operation mode.
int mdm_sim7080_download_xtra (uint8_t server_id, const char *f_name)
 Download the XTRA file for assisted gnss.
int mdm_sim7080_query_xtra_validity (int16_t *diff_h, int16_t *duration_h, struct tm *inject)
 Query the validity of the XTRA file.
int mdm_sim7080_query_gnss (struct sim7080_gnss_data *data)
 Query gnss position form the modem.
const char * mdm_sim7080_get_manufacturer (void)
 Get the sim7080 manufacturer.
const char * mdm_sim7080_get_model (void)
 Get the sim7080 model information.
const char * mdm_sim7080_get_revision (void)
 Get the sim7080 revision.
const char * mdm_sim7080_get_imei (void)
 Get the sim7080 imei number.
const char * mdm_sim7080_get_iccid (void)
 Get the sim7080 iccid number.
int mdm_sim7080_read_sms (struct sim7080_sms_buffer *buffer)
 Read sms from sim module.
int mdm_sim7080_delete_sms (uint16_t index)
 Delete a sms at a given index.
int mdm_sim7080_set_gpio (int gpio, int level)
 Set the level of one of the module's GPIO pins.
int mdm_sim7080_ftp_get_start (const char *server, const char *user, const char *passwd, const char *file, const char *path)
 Start a ftp get session.
int mdm_sim7080_ftp_get_read (char *dst, size_t *size)
 Read data from a ftp get session.
int mdm_sim7080_get_battery_charge (uint8_t *bcs, uint8_t *bcl, uint16_t *voltage)
 Read voltage, charge status and battery connection level.
int mdm_sim7080_get_ue_sys_info (struct sim7080_ue_sys_info *info)
 Read the ue system information.
int mdm_sim7080_get_local_time (struct tm *t)
 Get the local time of the modem.
int mdm_sim7080_dns_set_lookup_params (uint8_t recount, uint16_t timeout)
 Set the dns query lookup parameters.
void mdm_sim7080_dns_get_lookup_params (uint8_t *recount, uint16_t *timeout)
 Get the dns query lookup parameters.
void mdm_sim7080_get_rat (enum sim7080_rat *rat)
 Get the currently selected radio technology.
int mdm_sim7080_set_rat (enum sim7080_rat rat)
 Set the radio technology.
void mdm_sim7080_get_lte_bands (uint32_t *nb1, uint32_t *m1)
 Get the currently used LTE bands.
int mdm_sim7080_set_lte_bands (uint32_t nb1, uint32_t m1)
 Set the LTE bands to use.

Detailed Description

Simcom SIM7080 modem public API header file.

Copyright (C) 2021 metraTec GmbH

SPDX-License-Identifier: Apache-2.0