luat_soc_sdk_2024 V1.0
luat_mobile.h 文件参考
#include "luat_base.h"
#include "lwip/opt.h"
#include "lwip/netif.h"
#include "lwip/inet.h"

浏览该文件的源代码.

结构体

struct  luat_mobile_gsm_service_cell_info
 
struct  luat_mobile_gsm_cell_info
 
struct  luat_mobile_lte_service_cell_info
 
struct  luat_mobile_lte_cell_info
 
struct  luat_mobile_cell_info
 
struct  luat_mobile_gw_signal_strength_info
 
struct  luat_mobile_lte_signal_strength_info
 
struct  luat_mobile_signal_strength_info
 

宏定义

#define LUAT_MOBILE_CELL_MAX_NUM   21
 

类型定义

typedef enum LUAT_MOBILE_SIM_PIN_OP LUAT_MOBILE_SIM_PIN_OP_E
 
typedef struct luat_mobile_gsm_service_cell_info luat_mobile_gsm_service_cell_info_t
 
typedef struct luat_mobile_gsm_cell_info luat_mobile_gsm_cell_info_t
 
typedef struct luat_mobile_lte_service_cell_info luat_mobile_lte_service_cell_info_t
 
typedef struct luat_mobile_lte_cell_info luat_mobile_lte_cell_info_t
 
typedef struct luat_mobile_cell_info luat_mobile_cell_info_t
 
typedef struct luat_mobile_gw_signal_strength_info luat_mobile_gw_signal_strength_info_t
 
typedef struct luat_mobile_lte_signal_strength_info luat_mobile_lte_signal_strength_info_t
 
typedef struct luat_mobile_signal_strength_info luat_mobile_signal_strength_info_t
 
typedef enum LUAT_MOBILE_EVENT LUAT_MOBILE_EVENT_E
 网络状态及相关功能状态发生更换的消息
 
typedef enum LUAT_MOBILE_CFUN_STATUS LUAT_MOBILE_CFUN_STATUS_E
 
typedef enum LUAT_MOBILE_SIM_STATUS LUAT_MOBILE_SIM_STATUS_E
 
typedef enum LUAT_MOBILE_REGISTER_STATUS LUAT_MOBILE_REGISTER_STATUS_E
 
typedef enum LUAT_MOBILE_CELL_INFO_STATUS LUAT_MOBILE_CELL_INFO_STATUS_E
 
typedef enum LUAT_MOBILE_PDP_STATUS LUAT_MOBILE_PDP_STATUS_E
 
typedef enum LUAT_MOBILE_NETIF_STATUS LUAT_MOBILE_NETIF_STATUS_E
 
typedef enum LUAT_MOBILE_BEARER_STATUS LUAT_MOBILE_BEARER_STATUS_E
 
typedef enum LUAT_MOBILE_SMS_STATUS LUAT_MOBILE_SMS_STATUS_E
 
typedef enum LUAT_MOBILE_IMS_REGISTER_STATUS LUAT_MOBILE_IMS_REGISTER_STATUS_E
 
typedef enum LUAT_MOBILE_CC_STATUS LUAT_MOBILE_CC_STATUS_E
 
typedef enum LUAT_MOBILE_CC_MAKE_CALL_RESULT LUAT_MOBILE_CC_MAKE_CALL_RESULT_E
 
typedef enum LUAT_MOBILE_CC_PLAY_IND LUAT_MOBILE_CC_PLAY_IND_E
 
typedef void(* luat_mobile_event_callback_t) (LUAT_MOBILE_EVENT_E event, uint8_t index, uint8_t status)
 网络状态及相关功能状态发生更换时的回调函数,event是消息,index是CID,SIM卡号之类的序号,status是变更后的状态或者更具体的ENUM
 
typedef void(* luat_mobile_sms_event_callback_t) (uint32_t event, void *param)
 底层短信消息回调函数,event是消息,param是具体数据指针,暂时不同的平台需要独自处理
 

枚举

enum  LUAT_MOBILE_SIM_PIN_OP {
  LUAT_SIM_PIN_VERIFY = 0 , LUAT_SIM_PIN_CHANGE , LUAT_SIM_PIN_ENABLE , LUAT_SIM_PIN_DISABLE ,
  LUAT_SIM_PIN_UNBLOCK
}
 
enum  LUAT_MOBILE_EVENT {
  LUAT_MOBILE_EVENT_CFUN = 0 , LUAT_MOBILE_EVENT_SIM , LUAT_MOBILE_EVENT_REGISTER_STATUS , LUAT_MOBILE_EVENT_CELL_INFO ,
  LUAT_MOBILE_EVENT_PDP , LUAT_MOBILE_EVENT_NETIF , LUAT_MOBILE_EVENT_TIME_SYNC , LUAT_MOBILE_EVENT_CSCON ,
  LUAT_MOBILE_EVENT_BEARER , LUAT_MOBILE_EVENT_SMS , LUAT_MOBILE_EVENT_NAS_ERROR , LUAT_MOBILE_EVENT_IMS_REGISTER_STATUS ,
  LUAT_MOBILE_EVENT_CC , LUAT_MOBILE_EVENT_FATAL_ERROR = 0xff
}
 网络状态及相关功能状态发生更换的消息 更多...
 
enum  LUAT_MOBILE_CFUN_STATUS { LUAT_MOBILE_CFUN_OFF = 0 , LUAT_MOBILE_CFUN_ON , LUAT_MOBILE_CFUN_NO_RF = 4 }
 
enum  LUAT_MOBILE_SIM_STATUS {
  LUAT_MOBILE_SIM_READY = 0 , LUAT_MOBILE_NO_SIM , LUAT_MOBILE_SIM_NEED_PIN , LUAT_MOBILE_SIM_ENTER_PIN_RESULT ,
  LUAT_MOBILE_SIM_NUMBER , LUAT_MOBILE_SIM_WC
}
 
enum  LUAT_MOBILE_REGISTER_STATUS {
  LUAT_MOBILE_STATUS_UNREGISTER , LUAT_MOBILE_STATUS_REGISTERED , LUAT_MOBILE_STATUS_SEARCHING , LUAT_MOBILE_STATUS_DENIED ,
  LUAT_MOBILE_STATUS_UNKNOW , LUAT_MOBILE_STATUS_REGISTERED_ROAMING , LUAT_MOBILE_STATUS_SMS_ONLY_REGISTERED , LUAT_MOBILE_STATUS_SMS_ONLY_REGISTERED_ROAMING ,
  LUAT_MOBILE_STATUS_EMERGENCY_REGISTERED , LUAT_MOBILE_STATUS_CSFB_NOT_PREFERRED_REGISTERED , LUAT_MOBILE_STATUS_CSFB_NOT_PREFERRED_REGISTERED_ROAMING
}
 
enum  LUAT_MOBILE_CELL_INFO_STATUS { LUAT_MOBILE_CELL_INFO_UPDATE = 0 , LUAT_MOBILE_SIGNAL_UPDATE }
 
enum  LUAT_MOBILE_PDP_STATUS { LUAT_MOBILE_PDP_ACTIVED = 0 , LUAT_MOBILE_PDP_DEACTIVING , LUAT_MOBILE_PDP_DEACTIVED }
 
enum  LUAT_MOBILE_NETIF_STATUS { LUAT_MOBILE_NETIF_LINK_ON = 0 , LUAT_MOBILE_NETIF_LINK_OFF , LUAT_MOBILE_NETIF_LINK_OOS }
 
enum  LUAT_MOBILE_BEARER_STATUS {
  LUAT_MOBILE_BEARER_GET_DEFAULT_APN = 0 , LUAT_MOBILE_BEARER_APN_SET_DONE , LUAT_MOBILE_BEARER_AUTH_SET_DONE , LUAT_MOBILE_BEARER_DEL_DONE ,
  LUAT_MOBILE_BEARER_SET_ACT_STATE_DONE
}
 
enum  LUAT_MOBILE_SMS_STATUS { LUAT_MOBILE_SMS_READY = 0 , LUAT_MOBILE_NEW_SMS , LUAT_MOBILE_SMS_SEND_DONE , LUAT_MOBILE_SMS_ACK }
 
enum  LUAT_MOBILE_IMS_REGISTER_STATUS { LUAT_MOBILE_IMS_READY = 0 }
 
enum  LUAT_MOBILE_CC_STATUS {
  LUAT_MOBILE_CC_READY = 0 , LUAT_MOBILE_CC_INCOMINGCALL , LUAT_MOBILE_CC_CALL_NUMBER , LUAT_MOBILE_CC_CONNECTED_NUMBER ,
  LUAT_MOBILE_CC_CONNECTED , LUAT_MOBILE_CC_DISCONNECTED , LUAT_MOBILE_CC_SPEECH_START , LUAT_MOBILE_CC_MAKE_CALL_OK ,
  LUAT_MOBILE_CC_MAKE_CALL_FAILED , LUAT_MOBILE_CC_ANSWER_CALL_DONE , LUAT_MOBILE_CC_HANGUP_CALL_DONE , LUAT_MOBILE_CC_LIST_CALL_RESULT ,
  LUAT_MOBILE_CC_PLAY
}
 
enum  LUAT_MOBILE_CC_MAKE_CALL_RESULT { LUAT_MOBILE_CC_MAKE_CALL_RESULT_OK = 0 , LUAT_MOBILE_CC_MAKE_CALL_RESULT_NO_CARRIER , LUAT_MOBILE_CC_MAKE_CALL_RESULT_BUSY , LUAT_MOBILE_CC_MAKE_CALL_RESULT_ERROR }
 
enum  LUAT_MOBILE_CC_PLAY_IND {
  LUAT_MOBILE_CC_PLAY_STOP , LUAT_MOBILE_CC_PLAY_DIAL_TONE , LUAT_MOBILE_CC_PLAY_RINGING_TONE , LUAT_MOBILE_CC_PLAY_CONGESTION_TONE ,
  LUAT_MOBILE_CC_PLAY_BUSY_TONE , LUAT_MOBILE_CC_PLAY_CALL_WAITING_TONE , LUAT_MOBILE_CC_PLAY_MULTI_CALL_PROMPT_TONE , LUAT_MOBILE_CC_PLAY_CALL_INCOMINGCALL_RINGING
}
 
enum  {
  MOBILE_CONF_RESELTOWEAKNCELL = 1 , MOBILE_CONF_STATICCONFIG , MOBILE_CONF_QUALITYFIRST , MOBILE_CONF_USERDRXCYCLE ,
  MOBILE_CONF_T3324MAXVALUE , MOBILE_CONF_PSM_MODE , MOBILE_CONF_CE_MODE , MOBILE_CONF_SIM_WC_MODE ,
  MOBILE_CONF_FAKE_CELL_BARTIME , MOBILE_CONF_RESET_TO_FACTORY
}
 
enum  {
  LUAT_MOBILE_ISP_UNKNOW , LUAT_MOBILE_ISP_CMCC , LUAT_MOBILE_ISP_CTCC , LUAT_MOBILE_ISP_CUCC ,
  LUAT_MOBILE_ISP_CRCC
}
 

函数

int luat_mobile_get_imei (int sim_id, char *buff, size_t buf_len)
 获取IMEI
 
int luat_mobile_get_sn (char *buff, size_t buf_len)
 获取SN,如果用户没有调用luat_mobile_set_sn接口写过SN,默认值为空
 
int luat_mobile_set_sn (char *buff, uint8_t buf_len)
 设置SN
 
int luat_mobile_get_muid (char *buff, size_t buf_len)
 获取MUID,并不一定存在
 
int luat_mobile_get_iccid (int sim_id, char *buff, size_t buf_len)
 获取SIM卡的ICCID
 
int luat_mobile_get_imsi (int sim_id, char *buff, size_t buf_len)
 获取SIM卡的IMSI
 
int luat_mobile_get_sim_number (int sim_id, char *buff, size_t buf_len)
 当前使用的SIM卡的手机号,注意,只有写入了手机号才能读出,因此有可能读出来是空的
 
int luat_mobile_get_sim_id (int *id)
 当前使用的SIM卡的位置,并不一定支持
 
int luat_mobile_set_sim_id (int id)
 改变使用的SIM卡的位置,并不一定支持
 
int luat_mobile_set_sim_pin (int id, uint8_t operation, char pin1[9], char pin2[9])
 对SIM卡的pin码做操作
 
uint8_t luat_mobile_get_sim_ready (int id)
 检查SIM卡是否准备好
 
void luat_mobile_set_sim_detect_sim0_first (void)
 在自动选择模式时,开机后优先用sim0
 
void luat_mobile_set_default_pdn_ipv6 (uint8_t onoff)
 设置默认PDN激活时是否要IPV6网络,现在默认情况下不开
 
uint8_t luat_mobile_get_default_pdn_ipv6 (void)
 返回默认PDN激活时是否要IPV6网络
 
int luat_mobile_get_apn (int sim_id, int cid, char *buff, size_t buf_len)
 获取配置的apn name,并不一定支持
 
void luat_mobile_user_ctrl_apn (void)
 用户控制APN激活过程。只有使用了本函数后,才能通过手动激活用户的APN并加装网卡。只有EC618/EC7XX支持
 
void luat_mobile_user_ctrl_apn_stop (void)
 解除用户控制APN激活过程
 
int luat_mobile_set_apn_base_info (int sim_id, int cid, uint8_t type, uint8_t *apn_name, uint8_t name_len)
 手动设置APN激活所需的最小信息,如果需要更详细的设置,可以自行修改本函数。,只有EC618/EC7XX支持
 
int luat_mobile_set_apn_auth_info (int sim_id, int cid, uint8_t protocol, uint8_t *user_name, uint8_t user_name_len, uint8_t *password, uint8_t password_len)
 手动设置APN激活所需的加密信息,如果需要更详细的设置,可以自行修改本函数。大部分情况下不需要加密信息,定向卡可能需要。只有EC618/EC7XX支持
 
int luat_mobile_active_apn (int sim_id, int cid, uint8_t state)
 手动激活/去激活APN。只有EC618/EC7XX支持
 
int luat_mobile_active_netif (int sim_id, int cid)
 手动激活网卡。只有EC618支持
 
void luat_mobile_user_apn_auto_active (int sim_id, uint8_t cid, uint8_t ip_type, uint8_t protocol_type, uint8_t *apn_name, uint8_t apn_name_len, uint8_t *user, uint8_t user_len, uint8_t *password, uint8_t password_len)
 用户设置APN的基本信息,并且自动激活,注意不能和上述手动操作APN的API共用,专网卡如果不能用公网apn激活默认承载的必须用这个
 
int luat_mobile_get_default_apn (int sim_id, char *buff, size_t buf_len)
 获取默认CID的apn name,并不一定支持
 
int luat_mobile_del_apn (int sim_id, uint8_t cid, uint8_t is_dedicated)
 删除定义好的apn
 
int luat_mobile_set_flymode (int index, int mode)
 进出飞行模式
 
int luat_mobile_get_flymode (int index)
 飞行模式当前状态
 
int luat_mobile_get_local_ip (int sim_id, int cid, ip_addr_t *ip_v4, ip_addr_t *ip_v6)
 获取已激活承载分配的本地ip地址
 
int luat_mobile_get_cell_info (luat_mobile_cell_info_t *info)
 立刻搜索一次周围小区基站信息,并同步返回结果
 
int luat_mobile_get_cell_info_async (uint8_t max_time)
 立刻搜索一次周围小区基站信息,通过LUAT_MOBILE_CELL_INFO_UPDATE返回搜索完成消息,luat_mobile_get_last_notify_cell_info获取详细信息
 
int luat_mobile_get_cell_info_async_with_sim_id (uint8_t sim_id)
 双卡双待设备,立刻搜索一次周围小区基站信息,通过LUAT_MOBILE_CELL_INFO_UPDATE返回搜索完成消息,luat_mobile_get_last_notify_cell_info获取详细信息
 
int luat_mobile_get_last_notify_cell_info (luat_mobile_cell_info_t *info)
 获取上一次异步搜索周围小区基站信息,包括周期性搜索和异步搜索,在LUAT_MOBILE_CELL_INFO_UPDATE到来后用本函数获取信息
 
int luat_mobile_get_last_notify_cell_info_with_sim_id (uint8_t sim_id, luat_mobile_cell_info_t *info)
 双卡双待设备,获取上一次异步搜索周围小区基站信息,包括周期性搜索和异步搜索,在LUAT_MOBILE_CELL_INFO_UPDATE到来后用本函数获取信息
 
void luat_mobile_print_last_notify_cell_info_with_sim_id (uint8_t sim_id)
 打印指定sim卡槽搜索到的详细基站信息,与平台有关
 
uint8_t luat_mobile_rssi_to_csq (int8_t rssi)
 从RSSI转换到CSQ,RSSI只能作为天线口状态的一个参考,而不能作为LTE网络信号状态的参考
 
int luat_mobile_get_signal_strength_info (luat_mobile_signal_strength_info_t *info)
 获取当前移动网络信号状态详细信息
 
int luat_mobile_get_signal_strength (uint8_t *csq)
 获取CSQ值 CSQ从RSSI转换而来,只能作为天线口状态的一个参考,而不能作为LTE网络信号状态的参考
 
int luat_mobile_get_last_notify_signal_strength_info (luat_mobile_signal_strength_info_t *info)
 获取最近一次网络信号状态更新通知后的网络信号状态详细信息
 
int luat_mobile_get_last_notify_signal_strength (uint8_t *csq)
 获取最近一次网络信号状态更新通知后的CSQ值
 
int luat_mobile_get_service_cell_identifier (uint32_t *eci)
 获取当前服务小区的ECI
 
int luat_mobile_get_service_tac_or_lac (uint16_t *tac)
 获取当前服务小区的TAC或LAC
 
LUAT_MOBILE_SIM_STATUS_E luat_mobile_get_sim_status (void)
 
LUAT_MOBILE_REGISTER_STATUS_E luat_mobile_get_register_status (void)
 
int luat_mobile_event_register_handler (luat_mobile_event_callback_t callback_fun)
 注册网络状态及相关功能状态发生更换时的回调函数
 
int luat_mobile_event_deregister_handler (void)
 注销网络状态及相关功能状态发生更换时的回调函数
 
int luat_mobile_sms_sdk_event_register_handler (luat_mobile_sms_event_callback_t callback_fun)
 注册底层短信消息回调函数,后续改为统一消息处理
 
int luat_mobile_sms_event_register_handler (luat_mobile_sms_event_callback_t callback_fun)
 注册底层短信消息回调函数,后续改为统一消息处理(和luat_mobile_sms_sdk_event_register_handler一样,只是为了兼容老的BSP)
 
void luat_mobile_set_rrc_auto_release_time (uint8_t s)
 设置RRC自动释放时间,在RRC active(见LUAT_MOBILE_EVENT_CSCON)后经过一段时间在适当的时机释放RRC
 
void luat_mobile_rrc_auto_release_pause (uint8_t onoff)
 RRC自动释放暂停/恢复
 
void luat_mobile_rrc_release_once (void)
 RRC立刻释放一次,不能在luat_mobile_event_callback里使用
 
int luat_mobile_reset_stack (void)
 重新底层网络协议栈,本质是快速的进出飞行模式,注意和设置飞行模式是冲突的,一定时间内只能用一个。
 
void luat_mobile_fatal_error_auto_reset_stack (uint8_t onoff)
 遇到网络严重错误时允许自动重启协议栈
 
int luat_mobile_set_period_work (uint32_t get_cell_period, uint32_t check_sim_period, uint8_t search_cell_time)
 设置周期性辅助工作,包括周期性搜索小区基站,SIM卡短时间脱离卡槽后周期性尝试恢复,这个功能和luat_mobile_reset_stack是有可能冲突的。所有功能默认都是关闭的
 
int luat_mobile_set_check_sim (uint32_t check_sim_period)
 设置SIM卡短时间脱离卡槽后周期性尝试恢复,luat_mobile_set_period_work的简化版本
 
void luat_mobile_set_check_network_period (uint32_t period)
 设置定时检测网络是否正常并且在检测到长时间无网时通过重启协议栈来恢复,但是不能保证一定成功,这个功能和luat_mobile_reset_stack是有可能冲突的。所有功能默认都是关闭的
 
void luat_mobile_get_ip_data_traffic (uint64_t *uplink, uint64_t *downlink)
 获取累计的IP流量数据
 
void luat_mobile_clear_ip_data_traffic (uint8_t clear_uplink, uint8_t clear_downlink)
 清除IP流量数据
 
int luat_mobile_get_support_band (uint8_t *band, uint8_t *total_num)
 获取模块能支持的频段
 
int luat_mobile_get_band (uint8_t *band, uint8_t *total_num)
 获取模块当前设置使用的频段
 
int luat_mobile_set_band (uint8_t *band, uint8_t total_num)
 设置模块使用的频段
 
int luat_mobile_config (uint8_t item, uint32_t value)
 LTE协议栈功能特殊配置
 
void luat_mobile_rf_test_mode (uint8_t uart_id, uint8_t on_off)
 RF测试模式
 
void luat_mobile_rf_test_input (char *data, uint32_t data_len)
 RF测试的指令或者数据输入
 
uint32_t luat_mobile_sim_write_counter (void)
 
int luat_mobile_get_isp_from_plmn (uint16_t mcc, uint8_t mnc)
 通过PLMN判断运营商,目前只支持国内三大运营商及广电
 
int luat_mobile_get_plmn_from_imsi (char *imsi, uint16_t *mcc, uint8_t *mnc)
 通过IMSI提取PLMN
 
void luat_mobile_get_last_call_num (char *buf, uint8_t buf_len)
 获取最近一次来电号码
 
int luat_mobile_make_call (uint8_t sim_id, char *number, uint8_t len)
 主动拨打打电话
 
void luat_mobile_hangup_call (uint8_t sim_id)
 主动挂断电话
 
int luat_mobile_answer_call (uint8_t sim_id)
 接听电话
 
int luat_mobile_speech_init (uint8_t multimedia_id, void *callback)
 初始化电话功能
 
int luat_mobile_speech_upload (uint8_t *data, uint32_t len)
 上行通话数据
 
void luat_mobile_set_sync_time (uint8_t on_off)
 是否允许基站时间同步给本地时间
 
uint8_t luat_mobile_get_sync_time (void)
 查看当前是否允许基站时间同步给本地时间
 
int luat_mobile_softsim_onoff (uint8_t on_off)
 
int luat_mobile_sim_detect_onoff (uint8_t on_off)