Skip to content

配置网络信息

本文档介绍了网络信息相关的函数接口,并通过demo_nw.c进行测试演示。

注:详细参数请参考yopen_nw.h

网络信息查询

网络选择查询

  • yopen_nw_get_selection(uint8_t nSim, yopen_nw_seclection_info_s *select_info)

功能 : 获取选择的运营商信息,需要等待注网成功

参数

参数 定义 结构体成员 解释
yopen_nw_seclection_info_s nw_selection_mode 运营商选择方式
0 Modem自动选择,MCC和MNC无效。
1 手动选择
mcc[YOPEN_NW_MCC_MAX_LEN+1] 移动设备国家代码
mnc[YOPEN_NW_MNC_MAX_LEN+1] 移动设备网络代码
act 注网制式,详情参考yopen_nw.h

示例

执行代码:

yopen_nw_seclection_info_s select_info = {0};// 初始化用于存储网络选择信息的结构体变量
yopen_nw_get_selection(0, &select_info);// 调用函数获取网络选择信息,传入SIM卡槽编号和结构体指针
DEMO_NW_TRACE("yopen_nw_get_selection mcc %s, mnc %s",  select_info.mcc, select_info.mnc);// 打印查询到的信息

​ 打印结果:

yopen_nw_get_selection mcc 460, mnc 00//查询到的移动设备国家代码为460,移动设备网络代码为00

网络注册状态查询

  • yopen_nw_get_reg_status(uint8_t nSim, yopen_nw_reg_status_info_s *reg_info)

功能 :获取当前网络注册信息。

参数

参数 定义 结构体成员 解释
yopen_nw_reg_status_info_s 注网状态信息结构体 state 注网状态
lac 位置区码
cid 小区全球识别码
act 注网制式,详情参考yopen_nw.h

示例

执行代码:

yopen_nw_reg_status_info_s reg_info = {0};// 初始化用于存储网络注册状态信息的结构体变量
yopen_nw_get_reg_status(0, &reg_info);// 调用函数获取网络注册状态,传入SIM卡槽编号和结构体指针
DEMO_NW_TRACE("data:  state:%d, lac:0x%X, cid:0x%X, act:%d", reg_info.data_reg.state, reg_info.data_reg.lac, reg_info.data_reg.cid, reg_info.data_reg.act);//打印查询到的信息

​ 打印结果:

state:1, lac:0x550B, cid:0x45924CA, act:7//位置区码为0x550B,小区全球识别码为0x45924CA,4G网络

网络频段查询

查询当前工作频段请参考下文物理层状态信息查询或小区信息查询中的参数band

运营商信息查询

  • yopen_nw_get_operator_name(uint8_t nSim, yopen_nw_operator_info_s *oper_info)

功能 :获取当前注网的运营商信息,需要等待注网成功后才可获取到。

参数

参数 定义 结构体成员 解释
yopen_nw_operator_info_s 运营商信息结构体 long_oper_name[YOPEN_NW_LONG_OPER_MAX_LEN+1] 运营商名称全称
short_oper_name[YOPEN_NW_SHORT_OPER_MAX_LEN+1] 运营商名称简称
mcc[YOPEN_NW_MCC_MAX_LEN+1] 移动设备国家代码
mnc[YOPEN_NW_MNC_MAX_LEN+1] 移动设备网络代码

示例

执行代码

yopen_nw_operator_info_s oper_info = {0};// 初始化用于存储运营商信息的结构体变量
yopen_nw_get_operator_name(0, &oper_info);// 调用函数获取运营商信息,传入SIM卡槽编号和结构体
DEMO_NW_TRACE("yopen_nw_get_operator_name, mcc %s, mnc %s",oper_info.mcc, oper_info.mnc);//打印查询信息

​ 打印结果

yopen_nw_get_operator_name, mcc 204C044, mnc 044//查询的移动设备国家代码为204C044,移动设备网络代码044

物理层状态信息查询

  • yopen_nw_get_phy_status_info(uint8_t nSim,yopen_nw_phy_status_info_s *phy_status_info)

功能 :获取物理层状态信息。

参数

参数 定义 结构体成员 解释
yopen_nw_phy_status_info_s 物理层状态信息结构体 pci 物理小区标识
snr 信噪比
rssi 接收信号强度指示
rsrp 参考信号接收功率
rsrq 参考信号接收质量
band 频段
其他 详情参考yopen_nw.h

示例

执行代码

yopen_nw_phy_status_info_s phy_status_info = {0};// 初始化用于存储物理层状态信息的结构体变量
yopen_nw_get_phy_status_info(0, &phy_status_info);// 调用函数获取物理层状态信息,传入SIM卡槽编号和结构体
DEMO_NW_TRACE("yopen_nw_get_phy_status_info band:%d, pci:%d,rsrp:%d rsrq %d, rssi %d, snr %d",  phy_status_info.band,phy_status_info.pci,phy_status_info.rsrp,phy_status_info.rsrq,phy_status_info.rssi, phy_status_info.snr);//打印查询信息

​ 打印结果

yopen_nw_get_phy_status_info band:0, pci:0,rsrp:150 rsrq 0, rssi 0, snr -20//查询的频段为0,物理小区标识为0,参考信号接收功率为150,参考信号接收质量为0,接收信号强度指示为-20

小区信息查询

  • yopen_nw_get_cell_info(uint8_t nSim, yopen_nw_cell_info_s *cell_info)

功能 :获取当前服务及邻近小区信息,同步API

参数

参数 定义 结构体成员 解释
yopen_nw_cell_info_s 小区信息结构体 lte_info_valid LTE制式下小区信息是否可用
0 不可用
1 可用
lte_info_num LTE制式下获取到的小区个数
yopen_nw_lte_cell_info_s.flag 小区类别:
0 主小区
1 频间相邻小区
yopen_nw_lte_cell_info_s.cid 小区全球识别码;
0表示未接收到小区全球识别码
yopen_nw_lte_cell_info_s.mcc 移动设备国家代码
yopen_nw_lte_cell_info_s.mnc 移动设备网络代码
yopen_nw_lte_cell_info_s.tac 跟踪区域码
yopen_nw_lte_cell_info_s.pci 物理小区识别码
yopen_nw_lte_cell_info_s.mnc_len 移动设备网络代码长度
yopen_nw_lte_cell_info_s.isTdd 无线网络制式
0:FDD
1:TDD,仅服务小区有效
yopen_nw_lte_cell_info_s.band 小区的频段,仅服务小区有效
yopen_nw_lte_cell_info_s.earfcn E-UTRA绝对射频信道号。范围:0~65535

示例

执行代码

yopen_nw_cell_info_s cell_info = {0};// 初始化用于存储小区信息的结构体变量
ret = yopen_nw_get_cell_info(0, &cell_info);// 调用函数获取小区信息,传入SIM卡槽编号和结构体
DEMO_NW_TRACE("yopen_nw_get_cell_info lte_info_valid:%d, lte_info_num: %d", ret, cell_info.lte_info_valid, cell_info.lte_info_num);//打印查询信息

​ 打印结果

yopen_nw_get_cell_info lte_info_valid:1, lte_info_num: 2//查询到LTE制式下小区信息可用,获取到两个小区

信号质量查询

  • yopen_nw_get_csq(uint8_t nSim, unsigned char *csq)

功能 :获取csq信号强度

参数

参数 说明
csq 用于存储csq信号强度信息的变量

示例

执行代码

unsigned char csq = 0;// 定义用于存储信号质量值的变量
ret = yopen_nw_get_csq(0, &csq);// 调用函数获取信号质量,传入SIM卡槽编号和存储变量
DEMO_NW_TRACE("yopen_nw_get_csq: csq:%d", csq);//打印查询信息

​ 打印结果

yopen_nw_get_csq: csq:27//查询的csq强度为27

网络时间信息查询

  • yopen_nw_get_nitz_time_info(yopen_nw_nitz_time_info_s *nitz_info)

功能 :获取当前基站时间,此时间只在注网成功的那一刻更新,需要当地网络支持。

参数

参数 定义 结构体成员 解释
yopen_nw_nitz_time_info_s 当前网络时间信息结构体 nitz_time[32] 本地时间。格式为:YY/MM/DD HH:MM:SS '+/-'TZ DSTB
TZ:本地时区(以15分钟为单位显示本地时间和GMT时间的差异)
DST:夏令时调整时间。例如:20/10/21 09:17:43 +32 00
abs_time 从1970-1-1,00:00:00(UTC时间)到现在的总秒数。0表示不可用

示例

执行代码

yopen_nw_nitz_time_info_s nitz_info = {0};// 初始化用于存储网络时间信息的结构体变量
ret = yopen_nw_get_nitz_time_info(&nitz_info);// 调用函数获取网络时间信息,传入结构体变量
DEMO_NW_TRACE("yopen_nw_get_nitz_time_info nitz_time:%s, abs_time:%ld", nitz_info.nitz_time, nitz_info.abs_time);//打印查询信息

​ 打印结果

yopen_nw_get_nitz_time_info nitz_time:25/05/15 08:30:30+32 00, abs_time:0//查询到的基站时间

网络信息设置

网络选择设置

  • yopen_nw_set_selection(uint8_t nSim, yopen_nw_seclection_info_s *select_info)

功能 :设置运营商的选择,同步API

参数

参数 定义 结构体成员 解释
yopen_nw_seclection_info_s 用于存储选择的运营商信息的结构体 nw_selection_mode 运营商选择方式
0 Modem自动选择,MCC和MNC无效。
1 手动选择
mcc[YOPEN_NW_MCC_MAX_LEN+1] 移动设备国家代码
mnc[YOPEN_NW_MNC_MAX_LEN+1] 移动设备网络代码
act 注网制式,详情参考yopen_nw.h

示例

执行代码

memset(&select_info, 0, sizeof(select_info));
select_info.act = YOPEN_NW_ACCESS_TECH_E_UTRAN; // 设置接入技术
sprintf((char *)&select_info.mcc, "%s", "460"); // 设置 MCC,例如中国移动为 460
sprintf((char *)&select_info.mnc, "%s", "01");  // 设置 MNC,例如中国移动的一个 MNC 为 01
select_info.nw_selection_mode = 1; // 设置网络选择模式
ret=yopen_nw_set_selection(0, &select_info);//调用函数设置运营商,传入SIM卡槽编号和结构体,返回值ret为0表示成功
DEMO_NW_TRACE("set_selection ret%d,", ret);//通过返回值ret判断是否执行成功

​ 打印结果

set_selection ret0//执行成功

网络频段设置

  • yopen_nw_set_band(uint8_t band_num, uint8_t *band_arr)

功能 :设置网络频段

参数

参数 说明
band_num 用于存储当前支持的频段数量的变量
band_arr 用于存储当前支持的频段数组

示例

执行代码

uint8_t custom_band[] = {2,4,7};// 定义要设置的频段列表
int ret = yopen_nw_set_band(sizeof(custom_band)/custom_band[0], custom_band);// 调用函数设置频段,传入频段数量和频段列表,返回值ret为0表示成功
DEMO_NW_TRACE("set_band ret%d,", ret);//通过返回值ret判断是否执行成功

​ 打印结果

set_band ret0//执行成功

举例演示

demo_nw.c 通过调用以上接口能够设置指定频段与所有支持频段,并获取已设频段信息,持续查询并通过日志打印输出网络注册状态、信号强度、NITZ 时间、运营商名称、信号强度详细信息、物理层状态、小区信息及网络选择信息等。