# 蜂窝网络 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- # 基础知识 ## 蜂窝网络概述 蜂窝网络(Cellular Network)是一种 **基于蜂窝状基站覆盖结构** 的移动通信网络,核心是将地理区域划分为多个六边形的 “蜂窝小区”,每个小区由一个基站提供信号覆盖,通过频率复用技术提升频谱利用率,实现大范围、高密度的通信。其主要服务于手机、物联网终端等设备,是现代移动通信的核心基础设施。 ## APN ### 什么是APN APN(Access Point Name,接入点名称)指一种网络接入技术,是终端入网时必须配置的一个参数,它决定了终端通过哪种接入方式来访问网络。 对于用户来说,可以访问的外部网络类型有很多,例如:[Internet]()、[WAP网站]()、集团企业内部网络、行业内部专用网络。而不同的接入点所能访问的范围以及接入的方式是不同的,网络侧如何知道终端激活以后要访问哪个网络从而分配哪个网段的IP呢,这就要靠APN来区分了,即APN决定了用户的终端通过哪种接入方式来访问什么样的网络 。 所有运营商都使用特定的APN(Access Point Name,接入点名称),通常是您的SIM卡预先配置的,但必要时,您需手动进行调整。 ### 确认用什么APN 所有运营商都有自己的APN,一般普通的SIM卡(也叫公网卡),其APN都是公开的,可以在网络上查询到,或者直接联系对应运营商咨询。而对于物联网卡或者其他一些专网卡,需要用户联系对应运营商去确认应该使用什么APN。 ## CFUN CFUN(Cellular Functionality,蜂窝功能)指移动终端的功能模式。我们在提到CFUN时,一般都是指使用 `net` 模块的相关方法或者 `AT+CFUN` 这个AT命令,来设置或者查询移动终端的功能模式。关于如何查询和设置CFUN,请参考《蜂窝网络函数定义》章节。移动终端通常有如下几种功能模式: - 最小功能模式:该模式下,整个射频网络协议栈全部关闭,SIM卡模块停止供电。这种模式下,终端设备功耗是不关机情况下最低的。 - 全功能模式:该模式下,终端设备的无线射频功能全都是开启的,设备可以执行网络相关操作。 - 飞行模式:该模式下,会禁用终端设备的无线射频功能,即禁止设备发送和接收RF信号,但是SIM卡模块依然是正常供电,并且可以正常识别到SIM卡的。 ## MCC/MNC MCC(Mobile Country Code)和 MNC(Mobile Network Code)是在移动通信网络中用来唯一标识一个移动网络运营商的。 - MCC:移动国家码。MCC是由3位数字组成的,用于标识移动设备所在的国家或地区。例如,中国的MCC是460。 - MNC:移动网络码。MNC是由2位或3位数字组成的,用于在一个特定国家或地区内标识具体的移动网络运营商。例如,中国移动的MNC是00或02,中国联通的MNC是01,中国电信的MNC是03或05。 将MCC和MNC组合在一起,就形成了一个全球唯一的代码,用于标识世界上每一个移动网络运营商。我们将由MCC和MNC组合起来的标识称为PLMN(Public Land Mobile Network)。 ## 小区 在移动网络中,小区(Cell)代表的是基站覆盖的特定地理区域。每一个小区都由一个基站来覆盖并为其提供网络服务。各个小区的大小并不是统一的,会根据需求和环境进行调整。 对于UE来说,小区还分为服务小区(Serving Cell)和邻区(Neighbouring Cell)。 - 服务小区:是指当前为移动设备提供服务的小区。也就是说,这个设备目前正与这个小区的基站进行通信,所有的呼叫、数据传输等活动都通过这个小区进行。 - 邻区:是指那些与服务小区相邻,并且可能在移动设备移动时成为新的服务小区的小区。移动设备会周期性地测量邻区的信号质量,以便在必要时进行小区切换。 ## 信号质量 ### 概述 在蜂窝移动网络中,信号质量是由不同的测量值来确定的,并不是只看某个参数的测量值。在不同的网络制式中,用来衡量信号质量的参数以及参数范围一般也都不同。下面是一些常见的测量值: - RSSI - CSQ - RSRP - RSRQ - RSCP - SINR ### 影响信号质量的因素 影响信号强度和信号质量的因素有很多,比如: - 和基站的距离:移动设备与基站之间的距离越远,信号强度就越弱,信号质量也可能下降。这是因为信号在传播过程中会衰减。 - 遮挡物:建筑物、树木、山丘等遮挡物可以阻碍信号的传播,导致信号强度下降和信号质量降低。这种影响在室内尤其明显。 - 天线性能:设备和基站的天线性能也会影响信号强度和信号质量。 - 干扰:其他设备发出的信号可能会与目标信号冲突,导致信号质量下降。这种情况在频繁使用无线设备的地方(例如公共WIFI区域)尤其常见。 - 多路径效应:信号可能会在到达接收器之前反射、折射或散射,导致多个信号路径。这些不同路径的信号可能会相互干扰,导致信号质量下降。 - 天气条件:某些天气条件,如雨、雾、雪等,也可能对无线信号产生影响,降低信号强度和质量。 - 网络拥塞:在网络使用量大的时段,如高峰时段,大量用户可能会导致网络拥塞,进而影响信号质量。 - 基站负载:同一个基站在某时间段内承载了太多的用户或者很大的数据流量,也可能会影响到信号质量。 - 功率控制:移动通信系统通常采用功率控制机制来优化信号强度,避免过强的信号导致的干扰和过弱的信号导致的服务质量下降。 我们在衡量信号强度和信号质量时,不能片面的认为信号强度值很好或者信号质量好,就表示蜂窝移动通信数据传输就一定是非常快和稳定的。比如用户所在地方,RSSI的值很大,说明信号强度很好,但是用户使用时,由于网络拥塞或者基站负载过重,导致用户设备此时的通信质量并不是很好。 ### RSSI RSSI(Received Signal Strength Indicator)指接收的所有信号的总功率(单位dBm),包括导频信号、数据信号、邻区干扰信号和底噪信号等。RSSI的参数范围在不同的网络制式中有所不同,但是值越大,表示信号强度越好。 RSSI通常是一个相对值,它的测量和接收设备有很大的关系。因此对于不同设备,其RSSI的衡量标准并不是完全统一的,因此下面我们提供的RSSI衡量标准仅作为一个参考: **衡量标准** | **RSSI(dBm)** | **信号强度** | **描述** | | --- | --- | --- | | RSSI < -100 | 差 | 信号非常弱,无法进行正常通信。 | | -100 <= RSSI < -90 | 一般 | 信号较弱,可能会有丢包或延迟等问题。 | | -90 <= RSSI < -80 | 良好 | 信号良好,可以支持大部分应用。 | | -80 <= RSSI < -70 | 好 | 信号很好,适合高清视频、实时语音等应用。 | | RSSI > -70 | 非常好 | 信号非常好,适合高速数据传输和对网络质量要求较高的应用场景。 | 一般RSSI的值小于-90dBm,说明网络信号比较差了,模组可能就无法进行正常的网络通信。 ### CSQ CSQ表示信号强度,是用来指示RSSI强度的参数,取值范围是0~31,数值越大表示信号强度越好。若CSQ值小于6,终端基本无法进行网络通信。CSQ和RSSI之间的对应关系如下: | **CSQ** | **RSSI(dBm)** | | --- | --- | | 0 | -113 | | 1 | -111 | | 2~30 | -109 ~ -53 | | 31 | >= -51 | | 99 | 未知或者不可检测等异常 | ### RSRP RSRP(Reference Signal Received Power)指参考信号接收功率。是在某个符号内承载参考信号的所有RE(资源粒子)上接收到的信号功率的平均值。反映的是当前信道的路径损耗强度,用于小区覆盖的测量和小区的选择以及重选。RSRP的取值范围是-140 dBm ~ -44 dBm,值越大越好。 需要注意的是,RSRP是在LTE中才引入的概念,也就是说RSRP是用来衡量LTE网络信号强度的参数。相当于WCDMA网络中的RSCP参数。下面提供的RSRP参数衡量标准仅作为一个参考: **衡量标准** | **RSRP(dBm)** | **强度级别** | **描述** | | --- | --- | --- | | RSRP <= -105 | 6 | 覆盖很差,基本无法进行业务。 | | -105 < RSRP <= -95 | 5 | 覆盖差,室外语音业务能够起呼,但是呼叫成功率低,掉话率高;室内基本无法发起业务。 | | -95 < RSRP <= -85 | 4 | 覆盖一般,室外能够发起各种业务,可获得低速率的数据业务;室内呼叫成功率低,掉话率高。 | | -85 < RSRP <= -75 | 3 | 覆盖较好,室外能够发起各种业务,可获得中等速率的数据业务;室内能发起各种业务,可获得低速率数据业务。 | | -75 -65 | 1 | 覆盖非常好。 | ### RSRQ RSRQ(Reference Signal Received Quality)指参考信号接收质量。表示当前信道质量的信噪比和干扰水平。其取值范围是-20 dB ~ -3 dB,值越大越好。RSRQ是在LTE中才引入的概念,也就是说RSRQ是用来衡量LTE网络信号强度的参数。 RSRQ是RSRP和RSSI的比值,但是因为两者测量所基于的带宽可能不同,会用一个系数来调整,即 RSRQ = N*RSRP/RSSI。 下面提供的RSRQ参数衡量标准仅作为一个参考: **衡量标准** | **RSRQ(dB)** | **信号质量** | **说明** | | --- | --- | --- | | -20 <= RSRQ < -15 | 差 | 信号质量很差,基本不能正常通信。 | | -15 <= RSRQ < -10 | 一般 | 信号质量一般,通信可能会收到干扰。 | | -10 <= RSRQ < -7 | 良好 | 信号质量较好,可以正常通信。 | | -7 <= RSRQ <= -3 | 好 | 信号质量很好,数据通信速度快。 | ### RSCP RSCP(Receive Signal CodePower)指接收信号码功率。它是UMTS网络系统中的概念,表示接收器在特定物理信道上测量的功率。它在下行链路功率控制中用作信号强度的指示、切换标准以及计算路径损耗。RSCP的取值范围通常在-120 dBm到-25 dBm之间。 下面提供的RSCP参数衡量标准仅作为一个参考: | **RSCP(dBm)** | **信号强度** | **描述** | | --- | --- | --- | | RSCP < -110 | 很差 | 信号非常差,基本无法保持稳定的通话和数据传输。 | | -110 <= RSCP < -100 | 较差 | 信号较差,难以保持稳定的通话和数据传输。 | | -100 <= RSCP < -85 | 一般 | 信号一般,可能会影响通话和数据传输的质量。 | | -85 <= RSCP < -75 | 良好 | 信号较好,通常能够保持高质量的通话和数据传输。 | | RSCP >= -75 | 好 | 信号非常好,通常可以保持最高质量的通话和数据传输。 | ### SINR SINR(Signal to Interference plus Noise Ratio)指信号与干扰加噪声比,即接收到的有用信号的强度和接收到的干扰信号强度的比值。它是用来表示移动网络通信中信号质量的重要参数。SINR的单位是dB,范围一般是-10 dB到40 dB。 下面提供的SINR参数衡量标准仅作为一个参考: | **SINR(dB)** | **信号质量** | **说明** | | --- | --- | --- | | SINR < 3 | 非常差 | 通常无法建立连接或维持通信。 | | 3 <= SINR < 10 | 差 | 通信不稳定,可能会出现高丢包率和低数据速率。 | | 11 <= SINR < 15 | 一般 | 通信较为稳定,但数据速率可能受限。 | | 16 <= SINR < 25 | 好 | 通信稳定,数据速率较高。 | | SINR >= 25 | 非常好 | 通信非常稳定,可获得高数据传输速率。 | ## BAND 移动通信中的 **band**(也叫 **频段**),指的是移动通信系统使用的 **特定无线电频率范围**,不同的band对应不同的频率区间,且会被划分给2G、3G、4G、5G等不同代际的移动通信技术使用。 简单来说,无线电频率是移动通信的 “通道”,而band就是给不同通信技术划分的 “专属通道”,这样可以避免不同系统之间的信号干扰,同时实现信号的高效传输。 ### 核心特点 1. **有明确的编号和频率范围。** 国际电信联盟(ITU)和 3GPP 等组织会给每个移动频段分配统一编号,比如4G中常见的 **Band 3**(1800MHz)、**Band 40**(2300MHz),5G 中常见的 **n78**(3500MHz)、**n41**(2600MHz)。不同编号的band对应固定的上行(手机发信号给基站)和下行(基站发信号给手机)频率区间。 2. **不同 band 的覆盖与速率差异** - 低频段(如700 MHz、800 MHz):波长较长,**覆盖范围广**,穿墙能力强,适合农村、郊区等广域覆盖,但传输速率相对偏低。 - 中频段(如1.8 GHz、2.6 GHz):覆盖和速率兼顾,是4G/5G主流的覆盖频段。 - 高频段(如26 GHz、28 GHz,也叫毫米波):波长极短,**传输速率极高**,但覆盖范围小、穿墙能力弱,适合城市热点区域(如商场、写字楼)的高速率需求。 ## 网络制式 网络制式(Radio Access Technology,简称RAT),也叫无线接入技术,是指移动设备如何通过无线电信号连接到网络的技术。比如我们通常说的GSM、GPRS、WCDMA、CDMA2000、LTE等都是网络制式。 ## 网络技术 网络技术可以理解为使得设备能够连接到移动网络并且进行通信的一系列技术。通常指的是用于在设备和网络之间建立和管理连接的一组技术或协议。 例如: COMPACT是一种针对GSM网络的优化技术,它通过改变控制通道的处理方式,来提高网络的频谱效率和容量。因此我们也将其归类为GSM网络技术的一种。 eMTC(Enhanced Machine-Type Communication)是指增强型机器类通信。这是一种LTE技术,旨在提高网络对大量低功耗设备的支持。因此我们也将其归类为LTE网络技术的一种。 ## 默认承载 在介绍默认承载之前,我们先来说明什么是承载。承载(Bearer)也叫EPS承载,是LTE中才引入的术语,它是一种逻辑上的概念。指的是LTE无线网络中传递信息的通道。如果将承载比喻为一条交通道路的话,那信息就像是路上来回的车辆。 在LTE无线网络中,承载一般分为默认承载(Default Bearer)和专用承载(Dedicated Bearer)。 - 默认承载:在UE初始附着过程中按照用户签约的默认QoS等级建立一个承载,叫默认承载。在PDN连接业务存在期间会始终保持这个默认承载,给UE提供一个“永久在线”的IP连接。其实可以将其理解为一种提供尽力而为的IP连接的承载。 - 专用承载:连接到相同的PDN的其他EPS承载称为专用承载。也就是在默认承载基础上,为了提供某种特定的QoS传输需求而建立的,比如VoLTE功能就需要专门建立一路承载。 ## 基站时间 基站时间通常指的是无线基站的内部时钟,这个时钟为移动通信网络提供了一个精确的时间参考。在无线通信系统中,发送和接收数据需要在准确的时间窗口内进行。例如,数据传输需要准确地与基站的时间同步,否则可能会导致数据丢失或错误。因此,基站需要有一个精确的内部时钟,以便控制这些时间敏感的操作。 此外,基站时间还有一个很常见的用处,即一些移动设备可能会通过基站时间来自动校准它们的本地时间,尤其是当移动设备在不同的时区之间移动时。而这个过程就是通过NITZ(Network Identity and Time Zone)来实现的。 # API说明 ## 头文件 *qosa_network.h* ## 函数列表 | **函数** | **描述** | | --- | --- | | *qosa_nw_get_current_rat()* | 获取当前服务小区的制式 | | *qosa_nw_get_rat_mode_from_nv()* | 从NV获取当前配置的制式模式,表示当前配置的制式模式,用于网络选择 | | *qosa_nw_get_supported_rat_mode()* | 获取可配置的制式模式组合 | | *qosa_nw_set_rat_mode()* | 配置制式模式 | | *qosa_nw_get_rat_order()* | 获取网络选择过程中RAT的顺序 | | *qosa_nw_set_rat_order()* | 设置网络选择过程中RAT的顺序 | | *qosa_nw_get_scell_info()* | 获取服务小区信息 | | *qosa_nw_get_ncell_basic()* | 获取邻区信息 | | *qosa_nw_get_ncell_ext()* | 用于在无卡或空闲状态下(解码SIB消息)获取邻区信息 | | *qosa_nw_trigger_freq_scan()* | 触发频点扫描 | | *qosa_nw_get_reg_status()* | 获取CS域和PS域注册状态 | | *qosa_nw_get_oper_name()* | 获取当前注册的网络PLMN信息 | | *qosa_nw_get_cfg_oper_name()* | 获取ME配置的运营商名称信息,需要指定PLMN | | *qosa_nw_query_supp_operator()* | 进行PLMN扫描,获取支持的运营商信息 | | *qosa_nw_auto_register()* | 进行自动网络搜索 | | *qosa_nw_manual_register()* | 进行手动网络搜索 | | *qosa_nw_deregister()* | 进行网络注销,CS和PS域都被注销 | | *qosa_nw_get_cfg_band()* | 获取当前配置的频段信息 | | *qosa_nw_get_support_band()* | 获取支持的频段信息 | | *qosa_nw_set_cfg_band()* | 配置频段 | | *qosa_nw_freq_lock()* | 设置频率锁定和解锁 | | *qosa_nw_get_freq_lock_config()* | 获取频率锁定的配置 | | *qosa_nw_get_srv_domain()* | 查询分组域/电路域注册模式 | | *qosa_nw_set_srv_domain()* | 设置分组域/电路域注册模式 | | *qosa_nw_get_voice_domain()* | 获取语音域注册模式信息 | | *qosa_nw_set_voice_domain()* | 设置语音域注册模式 | | *qosa_nw_get_ue_usage_setting()* | 获取UE的使用设置 | | *qosa_nw_set_ue_usage_setting()* | 设置UE的使用设置 | | *qosa_nw_get_roaming_pref()* | 获取漫游偏好设置 | | *qosa_nw_set_roaming_pref()* | 设置漫游偏好设置 | | *qosa_nw_nssai_set_default_config()* | 设置默认配置的NSSAI | | *qosa_nw_nssai_get_default_config()* | 获取默认配置的NSSAI | | *qosa_nw_nssai_clear_default_config()* | 清除默认配置的NSSAI | | *qosa_nw_nssai_get_nssai()* | 获取NSSAI配置 | | *qosa_nw_get_rrc_conn_info()* | 获取RRC连接信息 | | *qosa_nw_set_rrc_fast_release()* | 设置RRC快速释放配置 | | *qosa_nw_get_rrc_fast_release()* | 获取RRC快速释放配置 | | *qosa_nw_rrc_fast_release()* | 一次性RRC快速释放 | | *qosa_nw_set_jamm_detect_func()* | 设置干扰检测功能 | | *qosa_nw_get_jamm_detect_func()* | 获取干扰检测功能 | | *qosa_nw_set_jamm_detect_param()* | 设置干扰检测参数 | | *qosa_nw_get_jamm_detect_param()* | 获取干扰检测参数 | ## 函数详解 ### 网络制式 #### qosa_nw_get_rat_mode_from_nv ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_rat_mode_from_nv(qosa_uint8_t simid, qosa_uint8_t *rat_mode); ``` ##### 功能描述 从NV获取当前配置的制式模式组合,表示当前配置的制式模式,用于网络选择 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | rat_mode | qosa_uint8_t * | 是 | 无 | 获取的制式模式组合 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_supported_rat_mode ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_supported_rat_mode(qosa_uint8_t simid, qosa_uint8_t *rat_mode_ability); ``` ##### 功能描述 获取可配置的制式模式组合 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | rat_mode_ability | qosa_uint8_t * | 是 | 无 | 获取的支持的制式模式组合 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_current_rat ##### 函数原型 ```c qosa_nw_rat_e qosa_nw_get_current_rat(qosa_uint8_t simid); ``` ##### 功能描述 获取当前服务小区的制式 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | ##### 返回值说明 当前的制式,参考 `qosa_nw_rat_e` ,如果未注册,则返回 `QOSA_NW_RAT_UNKNOWN` #### qosa_nw_set_rat_mode ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_rat_mode(qosa_uint8_t simid, qosa_uint8_t rat_mode, qosa_bool_t effect, nw_callback_t cb, void *ctx); ``` ##### 功能描述 配置制式模式 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | rat_mode | qosa_uint8_t | 是 | 无 | 设置的RAT组合,2G + 4G组合方式为 `QOSA_NW_RAT_2G`\|`QOSA_NW_RAT_4G`;此外,`QOSA_NW_RAT_ALL` 可以用于表示当前模组的所有RAT功能 | | effect | qosa_bool_t | 是 | True or false | 是否立即生效 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_set_rat_order ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_rat_order(qosa_uint8_t simid, qosa_nw_rat_e *rat_order, qosa_bool_t effect, nw_callback_t cb, void *ctx); ``` ##### 功能描述 设置网络选择过程中RAT的顺序 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | rat_order | qosa_nw_rat_e * | 是 | 无 | RAT顺序 | | effect | qosa_bool_t | 是 | True or false | 是否立即生效 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_rat_order ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_rat_order(qosa_uint8_t simid, qosa_nw_rat_e *rat_order); ``` ##### 功能描述 获取网络选择过程中RAT的顺序 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | rat_order | qosa_nw_rat_e * | 是 | 参考 `qosa_nw_rat_e` | RAT顺序 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` ### 小区信息获取 #### qosa_nw_get_scell_info ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_scell_info(qosa_uint8_t simid, qosa_nw_scell_info_t *scell); ``` ##### 功能描述 获取服务小区信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | scell | `qosa_nw_scell_info_t *` | 是 | 无 | 服务小区信息 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_ncell_basic ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_ncell_basic(qosa_uint8_t simid, qosa_nw_ncell_info_t *ncell); ``` ##### 功能描述 获取邻区信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | ncell | `qosa_nw_ncell_info_t *` | 是 | 无 | 获取的邻区信息 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_ncell_ext ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_ncell_ext(qosa_uint8_t simid, qosa_nw_ncell_ext_config_t *config, nw_callback_t cb, void *ctx); ``` ##### 功能描述 用于在无卡或空闲状态下(解码SIB消息)获取邻区信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | config | `qosa_nw_ncell_ext_config_t *` | 是 | 无 | 获取的扩展邻区信息 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_trigger_freq_scan ##### 函数原型 ```c qosa_nw_err_e qosa_nw_trigger_freq_scan(qosa_uint8_t simid, qosa_nw_freq_scan_t *config, nw_callback_t cb, void *ctx); ``` ##### 功能描述 触发频点扫描 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | config | `qosa_nw_freq_scan_t *` | 是 | 无 | 扫描配置参数 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` ### 选网、注网管理 #### qosa_nw_get_reg_status ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_reg_status(qosa_uint8_t simid, qosa_uint8_t *cs_status, qosa_uint8_t *ps_status); ``` ##### 功能描述 获取CS域和PS域注册状态 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | cs_status | qosa_uint8_t * | 否 | 参考 `qosa_nw_reg_status_e` | CS域注册状态 | | ps_status | qosa_uint8_t * | 否 | 参考 `qosa_nw_reg_status_e` | PS域注册状态 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_oper_name ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_oper_name(qosa_uint8_t simid, qosa_nw_oper_name_t *long_name, qosa_nw_oper_name_t *short_name); ``` ##### 功能描述 获取当前注册的网络PLMN信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | long_name | qosa_nw_oper_name_t * | 是 | 无 | 长网络运营商名称 | | short_name | qosa_nw_oper_name_t * | 是 | 无 | 短网络运营商名称 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_cfg_oper_name ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_cfg_oper_name(qosa_plmn_t *plmn, qosa_nw_oper_name_t *long_name, qosa_nw_oper_name_t *short_name); ``` ##### 功能描述 获取ME配置的运营商名称信息,需要指定PLMN ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | plmn | qosa_plmn_t * | 是 | 无 | 要查询的运营商PLMN信息,详见 [*qosa_plmn_t*](#qosaplmnt) | | long_name | qosa_nw_oper_name_t * | 是 | 无 | 长网络运营商名称 | | short_name | qosa_nw_oper_name_t * | 是 | 无 | 短网络运营商名称 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_query_supp_operator ##### 函数原型 ```c qosa_nw_err_e qosa_nw_query_supp_operator(qosa_uint8_t simid, nw_callback_t cb, void *ctx); ``` ##### 功能描述 获取支持的运营商信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_auto_register ##### 函数原型 ```c qosa_nw_err_e qosa_nw_auto_register(qosa_uint8_t simid, nw_callback_t cb, void *ctx); ``` ##### 功能描述 进行自动网络搜索 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_manual_register ##### 函数原型 ```c qosa_nw_err_e qosa_nw_manual_register( qosa_uint8_t simid, qosa_nw_oper_name_format_e format, char *plmn_str, qosa_nw_act_e act, qosa_bool_t fail_to_auto, nw_callback_t cb, void *ctx ); ``` ##### 功能描述 进行手动网络搜索 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | format | `qosa_nw_oper_name_format_e` | 是 | 参考 `qosa_nw_oper_name_format_e` | 运营商字符串的格式 | | plmn_str | char* | 是 | 无 | 运营商字符串 | | act | qosa_nw_act_e | 是 | 参考qosa_nw_act_e | 网络制式 | | fail_to_auto | qosa_bool_t | 是 | True or false | 手动选网失败后, 是否切换到自动模式再重新尝试 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void* | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_deregister ##### 函数原型 ```c qosa_nw_err_e qosa_nw_deregister(qosa_uint8_t simid, nw_callback_t cb, void *ctx); ``` ##### 功能描述 进行网络注销,CS和PS域都被注销 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` ### 频点、小区、频段管理 #### qosa_nw_get_cfg_band ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_cfg_band(qosa_uint8_t simid, qosa_nw_band_t *cfg_band); ``` ##### 功能描述 获取当前配置的频段信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | cfg_band | qosa_nw_band_t * | 是 | 无 | 配置的band信息 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_support_band ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_support_band(qosa_uint8_t simid, qosa_nw_band_t *support_band); ``` ##### 功能描述 获取支持的频段信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | support_band | qosa_nw_band_t * | 是 | 无 | 支持的band列表 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_set_cfg_band ##### 函数原型 ```cpp qosa_nw_err_e qosa_nw_set_cfg_band(qosa_uint8_t simid, const qosa_nw_band_t *cfg_band, qosa_bool_t effect, nw_callback_t cb, void *ctx); ``` ##### 功能描述 配置频段 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | cfg_band | const qosa_nw_band_t * | 是 | 无 | 用户配置的band信息 | | effect | qosa_bool_t | 是 | True or false | 是否立即生效 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_freq_lock ##### 函数原型 ```c qosa_nw_err_e qosa_nw_freq_lock(qosa_uint8_t simid, qosa_uint8_t rat, qosa_uint8_t opcode, qosa_nw_freq_lock_list_t *freq_lock, nw_callback_t cb, void *ctx); ``` ##### 功能描述 设置频率锁定和解锁 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | rat | qosa_uint8_t | 是 | 无 | 锁频操作的RAT类型 | | opcode | qosa_uint8_t | 是 | 参考 `qosa_nw_freq_lock_opcode_e` | 锁定的模式,锁频点或者锁小区 | | freq_lock | qosa_nw_freq_lock_list_t * | 是 | 无 | 频点锁定列表 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_freq_lock_config ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_freq_lock_config(qosa_uint8_t simid, qosa_uint8_t rat, qosa_nw_freq_lock_list_t *lock_freq); ``` ##### 功能描述 获取频率锁定的配置 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | rat | qosa_uint8_t * | 是 | 无 | 锁频操作的RAT类型 | | lock_freq | qosa_nw_freq_lock_list_t * | 是 | 无 | 频点锁定列表 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` ### 网络偏好管理 #### qosa_nw_get_srv_domain ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_srv_domain(qosa_uint8_t simid, qosa_uint8_t *domain); ``` ##### 功能描述 查询分组域/电路域注册模式 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | domain | qosa_uint8_t * | 是 | 参考 `qosa_nw_srv_domain_e` | 分组域/电路域注册模式 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_set_srv_domain ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_srv_domain(qosa_uint8_t simid, qosa_uint8_t domain, nw_callback_t cb, void *ctx); ``` ##### 功能描述 设置分组域/电路域注册模式 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | domain | qosa_uint8_t * | 是 | 参考 `qosa_nw_srv_domain_e` | 分组域/电路域注册模式参数 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM,QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_voice_domain ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_voice_domain(qosa_uint8_t simid, qosa_uint8_t *domain); ``` ##### 功能描述 获取语音域注册模式信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | domain | qosa_uint8_t * | 是 | 参考 `qosa_nw_voice_domain_e` | 语音域注册模式参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_set_voice_domain ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_voice_domain(qosa_uint8_t simid, qosa_uint8_t domain, nw_callback_t cb, void *ctx); ``` ##### 功能描述 设置语音域注册模式 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | domain | qosa_uint8_t | 是 | 参考 `qosa_nw_voice_domain_e` | 语音域注册模式参数 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_ue_usage_setting ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_ue_usage_setting(qosa_uint8_t simid, qosa_uint8_t *setting); ``` ##### 功能描述 获取UE的使用设置 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | setting | qosa_uint8_t * | 是 | 参考 `qosa_nw_ue_usage_setting_e` | 获取的UE使用模式配置 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_set_ue_usage_setting ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_ue_usage_setting(qosa_uint8_t simid, qosa_uint8_t setting, nw_callback_t cb, void *ctx); ``` ##### 功能描述 设置UE的使用设置 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | setting | qosa_uint8_t | 是 | 参考 `qosa_nw_ue_usage_setting_e` | 设置的UE使用模式配置 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_roaming_pref ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_roaming_pref(qosa_uint8_t simid, qosa_uint8_t *setting); ``` ##### 功能描述 获取漫游偏好设置 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | setting | qosa_uint8_t * | 是 | 参考 `qosa_nw_roaming_pref_e` | 漫游偏好设置 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_set_roaming_pref ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_roaming_pref(qosa_uint8_t simid, qosa_uint8_t setting, qosa_uint8_t effect, nw_callback_t cb, void *ctx); ``` ##### 功能描述 设置漫游偏好 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | setting | qosa_uint8_t * | 是 | 参数参考 `qosa_nw_roaming_pref_e` | 漫游偏好设置 | | effect | qosa_uint8_t | 是 | 0~1 | 生效方式,0-重启后生效,1-立即生效 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_nssai_set_default_config ##### 函数原型 ```c qosa_nw_err_e qosa_nw_nssai_set_default_config(qosa_uint8_t simid, qosa_uint8_t length, const char *nssai_data); ``` ##### 功能描述 设置默认配置的NSSAI ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | length | qosa_uint8_t | 是 | 无 | NSSAI 的长度 | | nssai_data | const char * | 是 | 无 | NSSAI 配置数据(字符串形式,多个 S-NSSAI 以冒号 ':' 分隔) | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_nssai_get_default_config ##### 函数原型 ```c qosa_nw_err_e qosa_nw_nssai_get_default_config(qosa_uint8_t simid, qosa_uint8_t *length, char *nssai_data); ``` ##### 功能描述 获取默认配置的NSSAI ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | length | qosa_uint8_t * | 是 | 无 | 当前配置的 NSSAI 长度(数量) | | nssai_data | char * | 是 | 无 | 当前配置的 NSSAI 数据(调用者需分配缓冲区,缓冲区大小应不小于 `QOSA_NSSAI_MAX_LEN` | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_nssai_clear_default_config ##### 函数原型 ```c qosa_nw_err_e qosa_nw_nssai_clear_default_config(qosa_uint8_t simid); ``` ##### 功能描述 清除默认配置的NSSAI ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_nssai_get_nssai ##### 函数原型 ```c qosa_nw_err_e qosa_nw_nssai_get_nssai(qosa_uint8_t simid, qosa_nw_nssai_type_e type, qosa_plmn_t *plmn, qosa_nw_nssai_list_t *list); ``` ##### 功能描述 获取NSSAI配置 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | type | qosa_nw_nssai_type_e | 是 | 参考 `qosa_nw_nssai_type_e` | NSSAI 配置类型 | | plmn | qosa_plmn_t * | 是 | 无 | 指定的PLMN, 如果为 `QOSA_NULL`, 表示无PLMN信息 | | list | qosa_nw_nssai_list_t * | 是 | 无 | 返回的 NSSAI 配置列表 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` ### RRC管理 #### qosa_nw_get_rrc_conn_info ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_rrc_conn_info(qosa_uint8_t simid, qosa_nw_rrc_conn_info_t *conn_info); ``` ##### 功能描述 获取RRC连接信息 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | conn_info | qosa_nw_rrc_conn_info_t * | 是 | 无 | RRC连接信息 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_set_rrc_fast_release ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_rrc_fast_release(qosa_uint8_t simid, qosa_nw_rrc_fast_release_t *fast_release, nw_callback_t cb, void *ctx); ``` ##### 功能描述 设置RRC快速释放配置 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | fast_release | qosa_nw_rrc_fast_release_t * | 是 | 无 | RRC快速释放配置 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void * | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_rrc_fast_release ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_rrc_fast_release(qosa_uint8_t simid, qosa_nw_rrc_fast_release_t *fast_release); ``` ##### 功能描述 获取RRC快速释放配置 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | fast_release | qosa_nw_rrc_fast_release_t * | 是 | 无 | RRC快速释放配置 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_rrc_fast_release ##### 函数原型 ```c qosa_nw_err_e qosa_nw_rrc_fast_release(qosa_uint8_t simid); ``` ##### 功能描述 一次性RRC快速释放 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` ### 干扰检测 #### qosa_nw_set_jamm_detect_func ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_jamm_detect_func(qosa_uint8_t simid, qosa_nw_jamm_detect_setting_param_t *jdc_func, nw_callback_t cb, void* ctx); ``` ##### 功能描述 设置干扰检测功能 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | jdc_func | `qosa_nw_jamm_detect_setting_param_t *` | 是 | 无 | 设置的干扰检测功能 | | cb | nw_callback_t | 是 | 无 | 异步回调函数 | | ctx | void* | 否 | 无 | 异步回调函数上下文参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_jamm_detect_func ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_jamm_detect_func(qosa_uint8_t simid, qosa_nw_jamm_detect_setting_param_t *jdc_func); ``` ##### 功能描述 获取干扰检测功能 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | jdc_func | `qosa_nw_jamm_detect_setting_param_t *` | 是 | 无 | 获取的干扰检测功能 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_set_jamm_detect_param ##### 函数原型 ```c qosa_nw_err_e qosa_nw_set_jamm_detect_param(qosa_uint8_t simid, qosa_nw_jamm_detect_setting_param_t *jdc_config); ``` ##### 功能描述 设置干扰检测参数 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | jdc_config | `qosa_nw_jamm_detect_setting_param_t *` | 是 | 无 | 配置的干扰检测参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` #### qosa_nw_get_jamm_detect_param ##### 函数原型 ```c qosa_nw_err_e qosa_nw_get_jamm_detect_param(qosa_uint8_t simid, qosa_nw_jamm_detect_setting_param_t *all_param); ``` ##### 功能描述 获取干扰检测参数 ##### 参数说明 | **参数名** | **类型** | **是否必填** | **范围/单位** | **说明** | | --- | --- | --- | --- | --- | | simid | qosa_uint8_t | 是 | 0~1 | SIM卡ID | | all_param | `qosa_nw_jamm_detect_setting_param_t *` | 是 | 无 | 获取的干扰检测的参数 | ##### 返回值说明 成功返回 `QOSA_NW_ERR_OK`,失败返回其他错误码:如 `QOSA_NW_ERR_INVALID_PARAM`,`QOSA_NW_ERR_OPERATION_NOT_SUPPORTED` ## 数据结构定义 ### qosa_nw_scell_info_t ```c typedef struct { qosa_nw_act_e act; /*!< Network RAT */ union { qosa_nw_nr5g_param_t nr5g; /*!< 5G NR parameters */ qosa_nw_lte_param_t lte; /*!< LTE parameters */ qosa_nw_wcdma_param_t wcdma; /*!< WCDMA parameters */ qosa_nw_gsm_param_t gsm; /*!< GSM parameters */ }; } qosa_nw_scell_info_t; ``` ### qosa_nw_ncell_info_t ```c typedef struct { qosa_nw_rat_e rat; /*!< Network RAT */ #ifdef CONFIG_QOSA_NW_NR_SUPPORT qosa_uint8_t nr5g_num; /*!< 5G NR neighbor cell count */ qosa_nw_nr5g_param_t nr5g[QOSA_NW_CELL_INFO_NUM_MAX]; /*!< 5G NR neighbor cell information set */ #endif qosa_uint8_t lte_num; /*!< LTE neighbor cell count */ qosa_nw_lte_param_t lte[QOSA_NW_CELL_INFO_NUM_MAX * 2]; /*!< LTE neighbor cell information set */ #ifdef CONFIG_QOSA_NW_WCDMA_SUPPORT qosa_uint8_t wcdma_num; /*!< WCDMA neighbor cell count */ qosa_nw_wcdma_param_t wcdma[QOSA_NW_CELL_INFO_NUM_MAX]; /*!< WCDMA neighbor cell information set */ #endif #ifdef CONFIG_QOSA_NW_GSM_SUPPORT qosa_uint8_t gsm_num; /*!< GSM neighbor cell count */ qosa_nw_gsm_param_t gsm[QOSA_NW_CELL_INFO_NUM_MAX]; /*!< GSM neighbor cell information set */ #endif } qosa_nw_ncell_info_t; ``` ### qosa_nw_ncell_ext_config_t ```c typedef struct { qosa_uint32_t opcode; /*!< Operation code, available options refer to OSA_NW_NCELL_EXT_OP series macros */ qosa_nw_band_t scan_band; /*!< Neighbor cell scan specified band, opcode specifies whether there is specified band scan behavior, if not specified, this parameter is invalid */ qosa_uint32_t reserved; /*!< Reserved parameter */ } qosa_nw_ncell_ext_config_t; ``` ### qosa_nw_freq_scan_t ```c typedef struct { qosa_uint32_t opcode; /*!< Operation code, available options refer to OSA_NW_FREQ_SCAN_OP series macros */ qosa_nw_band_t scan_band; /*!< Frequency scan specified band, opcode specifies whether there is specified band scan behavior, if not specified, this parameter is invalid */ qosa_uint32_t reserved; /*!< Reserved parameter */ } qosa_nw_freq_scan_t; ``` ### qosa_nw_oper_name_t ```c typedef struct nw_network_name { qosa_uint8_t length; /*!< Length of operator name */ qosa_uint8_t charset; /*!< Reserved for character set representation */ char name[QOSA_NW_NETWORK_NAME_LEN_MAX]; /*!< Operator name */ } qosa_nw_oper_name_t; //TODO: character set ``` ### qosa_nw_band_t ```c typedef struct nw_band { qosa_uint32_t opt; /*!< Reserved */ qosa_uint32_t gwbandval; /*!< bit0: GSM 900; bit1: 1800; bit2:850; ... bit4: WCDMA2100; bit5:WCDMA1900; ... */ qosa_uint32_t ltebandval[8]; /*!< First element stores LTE band 1 to 32; Second element stores LTE band 33 to 64; Third element stores LTE band 65 to 96 */ qosa_uint32_t nrbandval[32]; /*!< First element stores NR band 1 to 32; Second element stores NR band 33 to 64; Third element stores NR band 65 to 96 */ qosa_uint32_t reserve; /*!< Reserved */ } qosa_nw_band_t; ``` ### qosa_nw_freq_scan_t ```c typedef struct { qosa_uint32_t opcode; /*!< Operation code, available options refer to OSA_NW_FREQ_SCAN_OP series macros */ qosa_nw_band_t scan_band; /*!< Frequency scan specified band, opcode specifies whether there is specified band scan behavior, if not specified, this parameter is invalid */ qosa_uint32_t reserved; /*!< Reserved parameter */ } qosa_nw_freq_scan_t; ``` ### qosa_nw_rrc_fast_release_t ```c typedef struct { qosa_uint32_t mode; /*!< Whether rrc fast release function is enabled, 0: disabled, 1: enabled */ qosa_uint32_t idle_time; /*!< Time for the module to enter sleep state after sending data, range 1~50, unit: second */ qosa_uint32_t retry_time; /*!< Time to restore enhanced sleep mode if an exception occurs, range 1~600, unit: second */ } qosa_nw_rrc_fast_release_t; ``` ### qosa_nw_freq_lock_list_t ```c typedef struct { qosa_uint32_t num; /*!< Number of frequency locks, range: 0~QOSA_NW_LOCK_FREQ_NUM_MAX */ qosa_nw_lock_freq_t lock[QOSA_NW_LOCK_FREQ_NUM_MAX]; /*!< Frequency lock information array, each element contains frequency, PCI and other lock parameters */ } qosa_nw_freq_lock_list_t; ``` ### qosa_nw_jamm_detect_setting_param_t ```c typedef struct { qosa_nw_jamm_detect_set_param_t param; qosa_uint8_t cmd_str[20]; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_int32_t def; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT32 */ qosa_int32_t minval; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT32 */ qosa_int32_t maxval; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT32 */ } qosa_nw_jamm_detect_setting_param_t; ``` ### qosa_nw_jamm_detect_set_param_t ```c typedef struct { qosa_nw_jdcfg_type_e qjdcfg_enum; qosa_int32_t value; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT32 */ } qosa_nw_jamm_detect_set_param_t; ``` ### qosa_nw_lte_param_t ```c typedef struct { qosa_uint32_t cellid; /*!< CellIdentity; BIT STRING (SIZE (28)); invalid value: QOSA_NW_PI_UINT32 */ qosa_plmn_t plmn; /*!< plmn id (MCC, MNC): refers to the struct of plmn; example: "46001" (mcc=460, mnc=01, mnc_digit_num=2); invalid value: 0xFFFF,0xFFFF,0xFF */ qosa_uint16_t tac; /*!< tracking area code; BIT STRING (SIZE (16)); invalid value: QOSA_NW_PI_UINT16 */ qosa_uint16_t pcid; /*!< physical cell identity(PhysCellId); 0..503; invalid value: QOSA_NW_PI_UINT16 */ qosa_uint32_t earfcn; /*!< E-UTRA carrier frequency(maxEARFCN2); 0..262143; invalid value: QOSA_NW_PI_UINT32 */ qosa_uint16_t band; /*!< band; invalid value: QOSA_NW_PI_UINT16 */ qosa_bool_t is_tdd; /*!< Whether it is TDD or FDD band, OSA_TRUE means it is TDD */ qosa_uint8_t ul_bandwidth; /*!< Uplink bandwidth configuration value, parameter value: 0 - 1.4 M, 1 - 3 M, 2 - 5 M, 3 - 10 M, 4 - 15 M, 5 - 20 M */ qosa_uint8_t dl_bandwidth; /*!< Downlink bandwidth configuration value, parameter value: 0 - 1.4 M, 1 - 3 M, 2 - 5 M, 3 - 10 M, 4 - 15 M, 5 - 20 M */ qosa_rssi_t rssi; /*!< Received signal strength indicator; unit: dBm; measurement value*100, range: -10000 ~ -2500; invalid value: QOSA_NW_PI_INT16 */ qosa_rsrp_t rsrp; /*!< Reference signal received power; unit: dBm; measurement value*100, range: -15600 ~ -4400; invalid value: QOSA_NW_PI_INT16 */ qosa_rsrq_t rsrq; /*!< Reference signal received quality; unit: dB; measurement value*100, range: -3400 ~ -250; invalid value: QOSA_NW_PI_INT16 */ qosa_sinr_t sinr; /*!< Signal to interference plus noise ratio; unit: dB; measurement value*100, range: -2300 ~ 4000; invalid value: QOSA_NW_PI_INT16 */ qosa_srxlev_t srxlev; /*!< Cell selection S value; unit: dB; actual value; range: -; invalid value: QOSA_NW_PI_INT16 */ qosa_squal_t squal; /*!< Cell selection signal quality; unit: dB; actual value; range: -; invalid value: QOSA_NW_PI_INT16 */ qosa_uint8_t cell_resel_priority; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t s_non_intra_search; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t thresh_serving_low; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t s_intra_search; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t threshX_low; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t threshX_high; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_int16_t rx_dbm; /*!< Received power, unit dbm, actual value*100; Allow invalid, invalid value is QOSA_NW_PI_INT16 */ qosa_bool_t cell_barred; /*!< Cell barred access identifier; Allow invalid, invalid value is QOSA_NW_PI_BOOL */ qosa_int8_t txpower; /*!< Current TX power level in dbm, -128 is the invalid value */ qosa_int32_t txtime; /*!< Total TX time since last reboot in millisecond */ qosa_int32_t rxtime; /*!< Total RX time since last reboot in millisecond */ qosa_bler_t ul_bler; /*!< Upload Block Error Rate; invalid value: QOSA_NW_PI_UINT16 */ qosa_bler_t dl_bler; /*!< Download Block Error Rate; invalid value: QOSA_NW_PI_UINT16 */ } qosa_nw_lte_param_t; ``` ### qosa_nw_nr5g_param_t ```c typedef struct { qosa_uint64_t cellid; /*!< CellIdentity, NR Cell identity(NCI); BIT STRING (SIZE (36)); invalid value: QOSA_NW_PI_UINT64 */ qosa_plmn_t plmn; /*!< plmn id (MCC, MNC): refers to the struct of plmn; example: "46001" (mcc=460, mnc=01, mnc_digit_num=2); invalid value: 0xFFFF,0xFFFF,0xFF */ qosa_uint32_t tac; /*!< tracking area code; BIT STRING (SIZE (24)) ;invalid value: QOSA_NW_PI_UINT32 */ qosa_uint16_t pcid; /*!< physical cell identity(PhysCellId); 0..1007; invalid value: QOSA_NW_PI_UINT16 */ qosa_uint32_t arfcn; /*!< NR carrier frequency; 0..3279165; invalid value: QOSA_NW_PI_UINT32 */ qosa_uint16_t band; /*!< NR frequency band number; 1..1024; invalid value: QOSA_NW_PI_UINT16 */ qosa_uint8_t duplex_mode; /*!< Duplex mode; 0 - FDD, 1 - TDD; invalid value: QOSA_NW_PI_UINT8 */ qosa_uint8_t ul_bandwidth; /*!< Uplink bandwidth configuration value, parameter value: 0-mhz5, 1-mhz10, 2-mhz15, etc.. ref SupportedBandwidth; invalid value: QOSA_NW_PI_UINT8 */ qosa_uint8_t dl_bandwidth; /*!< Downlink bandwidth configuration value, parameter value: 0-mhz5, 1-mhz10, 2-mhz15, etc.. ref SupportedBandwidth; invalid value: QOSA_NW_PI_UINT8 */ qosa_uint16_t ul_NRB; /*!< Uplink RB number; invalid value: QOSA_NW_PI_UINT16 */ qosa_uint16_t dl_NRB; /*!< Downlink RB number; invalid value: QOSA_NW_PI_UINT16 */ qosa_rsrp_t rsrp; /*!< ss_rsrp under 5G: refers to reference signal received power; unit: dBm; measurement value*100, range: -15600 ~ -4400; invalid value: QOSA_NW_PI_INT16 */ qosa_rsrq_t rsrq; /*!< ss_rsrq under 5G: refers to reference signal received quality; unit: dB; measurement value*100, range: -3400 ~ -250; invalid value: QOSA_NW_PI_INT16 */ qosa_sinr_t sinr; /*!< ss_sinr under 5G: refers to signal to interference plus noise ratio; unit: dB; measurement value*100, range: -2300 ~ 4000; invalid value: QOSA_NW_PI_INT16 */ qosa_uint8_t scs; /*!< subcarrier spacing; 0..6; ref maxSCSs; invalid value: QOSA_NW_PI_UINT8 */ qosa_srxlev_t srxlev; /*!< Cell selection level: refers to cell selection S value; unit: dB; actual value; range: -; invalid value: QOSA_NW_PI_INT16 */ qosa_uint16_t offset_to_point_a; /*!< offsetToPointA; 0..2199; ref offsetToPointA; invalid value is QOSA_NW_PI_UINT16 */ qosa_uint8_t ssb_sub_carrier_offset; /*!< ssb-SubcarrierOffset; 0..15; ref ssb-SubcarrierOffset; invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t ssb_scs; /*!< ssbSubcarrierSpacing; 0..6; ref ssb-maxSCSs; invalid value is QOSA_NW_PI_UINT8 */ #ifdef CONFIG_QOSA_NW_NR_SUPPORT qosa_uint16_t allowed_nssai_len; /*!< Allowed NSSAI length; 0 means invalid */ char allowed_nssai[200]; /*!< Allowed NSSAI string */ #endif } qosa_nw_nr5g_param_t; ``` ### qosa_nw_wcdma_param_t ```c typedef struct { qosa_uint32_t cellid; /*!< CellIdentity; BIT STRING (SIZE (28)); invalid value: QOSA_NW_PI_UINT32 */ qosa_plmn_t plmn; /*!< plmn id (MCC, MNC): refers to the struct of plmn; example: "46001" (mcc=460, mnc=01, mnc_digit_num=2); invalid value: 0xFFFF,0xFFFF,0xFF */ qosa_uint16_t lac; /*!< Allow invalid, invalid value: QOSA_NW_PI_UINT16 */ qosa_uint16_t rac; /*!< routing area code */ qosa_uint16_t psc; /*!< serving cell primary scrambling code */ qosa_uint16_t uarfcn; /*!< carrier frequency; 0..16383; invalid value: QOSA_NW_PI_UINT16 */ qosa_uint16_t band; /*!< band; invalid value: QOSA_NW_PI_UINT16 */ qosa_ecno_t ecno; /*!< Ec/Io: Allow invalid; unit: dB; measurement value*100, range: -2400 ~ 0; invalid value: QOSA_NW_PI_INT16 */ qosa_rscp_t rscp; /*!< Received signal code power: Allow invalid; unit: dBm; measurement value*100, range: -12000 ~ -2500; invalid value: QOSA_NW_PI_INT16 */ /* Not recommended to use these parameters, these parameters are directly uploaded by the platform layer, calculation rules are uncertain */ qosa_uint16_t rssi_meas; /*!< rssi measurement value under 3G, unit dBm */ qosa_uint16_t rssi_report; /*!< rssi report value under 3G, range 0~31 or 99 means unknown or not detected */ qosa_uint16_t rssi_rxlev; /*!< rssi report value under 3G, range 0~63 or 99 means unknown or not detected */ qosa_uint8_t is_fdpch; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint32_t sf; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT32 */ qosa_uint8_t slot_fmt; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_int16_t speech_code; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT16 */ qosa_uint8_t compressed_mode; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t cell_resel_priority; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint16_t thresh_Xhigh; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT16 */ qosa_uint16_t thresh_Xlow; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT16 */ qosa_srxlev_t srxlev; /*!< Cell selection S value: Allow invalid; unit: dB; actual value; range: -; invalid value: QOSA_NW_PI_INT16 */ qosa_int16_t srxqual; /*!< Allow invalid; invalid value: QOSA_NW_PI_INT16 */ qosa_uint16_t set; /*!< Allow invalid; invalid value: QOSA_NW_PI_UINT16 */ qosa_int16_t rank; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT16 */ qosa_bool_t cell_barred; /*!< Cell barred access identifier; Allow invalid, invalid value is QOSA_NW_PI_BOOL */ } qosa_nw_wcdma_param_t; ``` ### qosa_nw_gsm_param_t ```c typedef struct { qosa_uint32_t cellid; /*!< CellIdentity; BIT STRING (SIZE (28)); invalid value: QOSA_NW_PI_UINT32 */ qosa_plmn_t plmn; /*!< plmn id (MCC, MNC): refers to the struct of plmn; example: "46001" (mcc=460, mnc=01, mnc_digit_num=2); invalid value: 0xFFFF,0xFFFF,0xFF */ qosa_uint16_t lac; /*!< Allow invalid, invalid value: QOSA_NW_PI_UINT16 */ qosa_uint8_t bsic; /*!< base station identity code; range: 0~63 */ qosa_uint16_t arfcn; /*!< carrier frequency; 0..16383; invalid value: QOSA_NW_PI_UINT16 */ qosa_uint16_t band; /*!< band; invalid value: QOSA_NW_PI_UINT16 */ qosa_int32_t ber; /*!< Allow invalid, invalid value: QOSA_NW_PI_INT32 */ qosa_signal_level_t signal_level; /*!< Allow invalid, invalid value: QOSA_NW_PI_INT16; received signal strength; unit: dBm; measurement value range: -113 ~ -48 */ qosa_uint8_t txp; /*!< Maximum transmission power; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t rla; /*!< Minimum access level; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t drx; /*!< Non-continuous reception cycle length; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_int32_t c1; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT32 */ qosa_int32_t c2; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT32 */ qosa_int32_t c31; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT32 */ qosa_int32_t c32; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT32 */ qosa_uint8_t gprs_support; /* Whether current cell supports GPRS; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint16_t tch; /*!< Traffic channel; Allow invalid, invalid value is QOSA_NW_PI_UINT16 */ qosa_uint8_t ts; /*!< Time slot number; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint32_t ta; /*!< Base station time advance; Allow invalid, invalid value is QOSA_NW_PI_UINT32 */ qosa_uint8_t maio; /*!< Mobile allocation pointer offset; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t hsn; /*!< Hopping sequence number; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t rxqual_full; /*!< Reception quality at full power transmission; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t rxqual_sub; /*!< Reception quality at non-continuous transmission; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t rxlev_full; /*!< Reception level at full power transmission; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t rxlev_sub; /*!< Reception level at non-continuous transmission; Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t dl_chan_mode; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t cell_resel_priority; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t thresh_gsm_high; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t thresh_gsm_low; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_uint8_t ncc_permitted; /*!< Allow invalid, invalid value is QOSA_NW_PI_UINT8 */ qosa_srxlev_t srxlev; /*!< Cell selection S value: Allow invalid; unit: dB; actual value; range: -; invalid value: QOSA_NW_PI_INT16 */ qosa_int16_t rank; /*!< Allow invalid, invalid value is QOSA_NW_PI_INT16 */ qosa_bool_t cell_barred; /*!< Cell barred access identifier; Allow invalid, invalid value is QOSA_NW_PI_BOOL */ } qosa_nw_gsm_param_t; ``` ### qosa_nw_nssai_list_t ```c typedef struct { qosa_bool_t default_present; /*!< Whether default configuration NSSAI exists flag */ qosa_nw_nssai_t default_s_nssai; /*!< Default configuration NSSAI */ qosa_bool_t rejected_3gpp_present; /*!< Whether 3GPP access rejected NSSAI exists flag */ qosa_nw_nssai_t rejected_3gpp_s_nssai; /*!< 3GPP access rejected NSSAI */ qosa_bool_t rejected_non3gpp_present; /*!< Whether non-3GPP access rejected NSSAI exists flag */ qosa_nw_nssai_t rejected_non3gpp_s_nssai; /*!< Non-3GPP access rejected NSSAI */ qosa_uint8_t configured_num; /*!< Number of configured NSSAI */ qosa_nw_nssai_t configured_s_nssai[10]; /*!< Configured NSSAI array */ qosa_uint8_t allowed_3gpp_num; /*!< Number of 3GPP access allowed NSSAI */ qosa_nw_nssai_t allowed_3gpp_s_nssai[10]; /*!< 3GPP access allowed NSSAI array */ qosa_uint8_t allowed_non3gpp_num; /*!< Number of non-3GPP access allowed NSSAI */ qosa_nw_nssai_t allowed_non3gpp_s_nssai[10]; /*!< Non-3GPP access allowed NSSAI array */ } qosa_nw_nssai_list_t; ``` ### qosa_plmn_t ```c typedef struct plmn { qosa_uint16_t mcc; /*!< mobile country code */ qosa_uint16_t mnc; /*!< mobile network code */ qosa_uint8_t mnc_digit_num; /*!< digit num of mnc */ } qosa_plmn_t; ``` ### qosa_nw_rrc_conn_info_t ```c typedef struct { qosa_nw_rrc_conn_mode_e mode; /*!< RRC connection mode */ qosa_nw_rrc_state_e state; /*!< RRC state */ qosa_nw_rrc_access_type_e access; /*!< RRC access type */ } qosa_nw_rrc_conn_info_t; ``` ### qosa_nw_nssai_t ```c typedef struct { qosa_uint16_t nssai_len; /*!< NSSAI length, in bytes, e.g., "01.000000" length is 4 */ char data[QOSA_NSSAI_MAX_LEN]; /*!< NSSAI slice string, string format, e.g., "01.000000:01.000000" */ qosa_bool_t plmn_present; /*!< Whether PLMN information exists flag */ qosa_plmn_t plmn; /*!< Public land mobile network identifier; example: "46001" (mcc=460, mnc=01, mnc_digit_num=2) */ } qosa_nw_nssai_t; ``` ### qosa_nw_lock_freq_t ```c typedef struct { qosa_uint32_t freq; /*!< Frequency */ qosa_uint16_t pci; /*!< Physical Cell ID, invalid value: QOSA_NW_PI_UINT16 */ qosa_uint8_t scs; /*!< subcarrier spacing; 0..6; for nr5g only */ qosa_uint16_t band; /*!< band; 1..1024; for nr5g only */ } qosa_nw_lock_freq_t; ``` ## 枚举类型定义 ### qosa_nw_err_e ```c typedef enum nw_err { QOSA_NW_ERR_OK = 0, QOSA_NW_ERR_OPERATION_NOT_ALLOWED = 3 | QOSA_ERRCODE_NW_BASE, /*!< operation not allowed */ QOSA_NW_ERR_OPERATION_NOT_SUPPORTED = 4 | QOSA_ERRCODE_NW_BASE, /*!< operation not supported */ QOSA_NW_ERR_MEMORY_FULL = 20 | QOSA_ERRCODE_NW_BASE, /*!< memory full */ QOSA_NW_ERR_MEMORY_FAILURE = 23 | QOSA_ERRCODE_NW_BASE, /*!< memory failure */ QOSA_NW_ERR_INVALID_PARAM = 53 | QOSA_ERRCODE_NW_BASE, /*!< invalid parameter */ QOSA_NW_ERR_EXECUTE = 1 | (QOSA_ERRCODE_NW_BASE + QOSA_AT_ERR_OFS), } qosa_nw_err_e; ``` ### qosa_nw_act_e ```c typedef enum { QOSA_NW_ACT_GSM = 0, /*!< GSM */ QOSA_NW_ACT_GSM_COMPACT, /*!< GSM compact */ QOSA_NW_ACT_UTRAN, /*!< UTRAN */ QOSA_NW_ACT_GSM_EGPRS, /*!< gsm w/EGPRS */ QOSA_NW_ACT_UTRAN_HSDPA, /*!< UTRAN w/HSDPA */ QOSA_NW_ACT_UTRAN_HSUPA, /*!< UTRAN w/HSUPA */ QOSA_NW_ACT_UTRAN_HSPA, /*!< UTRAN w/HSDPA and w/HSUPA */ QOSA_NW_ACT_EUTRAN = 7, /*!< EUTRAN */ QOSA_NW_ACT_EC_GSM_IOT, /*!< EC-GSM-IoT (A/Gb mode) */ QOSA_NW_ACT_EUTRAN_NB_S1_MODE, /*!< E-UTRAN (NB-S1 mode) */ QOSA_NW_ACT_EUTRA_CONNECTED_TO_A_5GCN = 10, /*!< E-UTRA connected to a 5GCN */ QOSA_NW_ACT_NR_CONNECTED_TO_A_5GCN, /*!< NR connected to a 5GCN */ QOSA_NW_ACT_NG_RAN, /*!< NG-RAN */ QOSA_NW_ACT_EUTRA_NR_DUAL_CONNECTIVITY, /*!< E-UTRA-NR dual connectivity */ QOSA_NW_ACT_UNKNOWN = 0xff, /*!< Unknown act */ } qosa_nw_act_e; ``` ### qosa_nw_rat_e ```c typedef enum { QOSA_NW_RAT_UNKNOWN, QOSA_NW_RAT_2G = 1 << QOSA_NW_RAT_BIT_GSM, /*!< RAT: GSM */ QOSA_NW_RAT_3G = 1 << QOSA_NW_RAT_BIT_WCDMA, /*!< RAT: WCDMA */ QOSA_NW_RAT_4G = 1 << QOSA_NW_RAT_BIT_LTE, /*!< RAT: LTE */ QOSA_NW_RAT_5G = 1 << QOSA_NW_RAT_BIT_NR5G, /*!< RAT: NR5G */ } qosa_nw_rat_e; ``` ### qosa_nw_oper_name_format_e ```c typedef enum { QOSA_OPER_NAME_FORMAT_LONG, /*!< Long string format */ QOSA_OPER_NAME_FORMAT_SHORT, /*!< Short string format */ QOSA_OPER_NAME_FORMAT_NUMERIC, /*!< Numeric format, plmn value */ QOSA_OPER_NAME_FORMAT_UNKNOWN, /*!< Unknown format */ } qosa_nw_oper_name_format_e; ``` ### qosa_nw_nssai_type_e ```c typedef enum { QOSA_NW_S_NSSAI_DEFAULT, /*!< Default NSSAI configuration */ QOSA_NW_S_NSSAI_DEFAULT_REJECT, /*!< Default NSSAI configuration rejected */ QOSA_NW_S_NSSAI_DEFAULT_REJECT_CONFIG, /*!< Default NSSAI configuration rejected configuration */ QOSA_NW_S_NSSAI_DEFAULT_REJECT_CONFIG_ALLOW, /*!< Default NSSAI configuration rejected configuration allow */ } qosa_nw_nssai_type_e; ``` ### qosa_nw_jdcfg_type_e ```c typedef enum { QOSA_NW_JDCFG_TYPE_ENUM_NONE = -1, QOSA_NW_JDCFG_TYPE_MODE = 0, QOSA_NW_JDCFG_TYPE_URC, QOSA_NW_JDCFG_TYPE_PERIOD, QOSA_NW_JDCFG_TYPE_MINCH, QOSA_NW_JDCFG_TYPE_SINR, QOSA_NW_JDCFG_TYPE_RXLEV, QOSA_NW_JDCFG_TYPE_RSRP, QOSA_NW_JDCFG_TYPE_RSRQ, QOSA_NW_JDCFG_TYPE_RSSI, QOSA_NW_JDCFG_TYPE_SHAKEPERIOD, QOSA_NW_JDCFG_TYPE_RSSI_GSM, QOSA_NW_JDCFG_TYPE_TDETECT, QOSA_NW_JDCFG_TYPE_REPORTINTERVAL, QOSA_NW_JDCFG_TYPE_JAMM_DETECT_RESULT, QOSA_NW_JDCFG_TYPE_ENUM_MAX } qosa_nw_jdcfg_type_e; ``` ### qosa_nw_reg_status_e ```c typedef enum { QOSA_NW_NOT_REG = 0, /*!< Not registered, ME is currently not searching for operators to register with */ QOSA_NW_REG_HOME = 1, /*!< Registered, home network */ QOSA_NW_NOT_REG_SEARCHING = 2, /*!< Not registered, ME is currently searching for operators to register with */ QOSA_NW_REG_DENIED = 3, /*!< Registration denied */ QOSA_NW_REG_UNKNOWN = 4, /*!< Unknown status */ QOSA_NW_REG_ROAMING = 5, /*!< Registered, roaming network */ } qosa_nw_reg_status_e; ``` ### qosa_nw_rrc_conn_mode_e ```c typedef enum { QOSA_NW_RRC_CONN_MODE_IDLE, /*!< RRC connection idle status */ QOSA_NW_RRC_CONN_MODE_CONNECTED, /*!< RRC connection established */ } qosa_nw_rrc_conn_mode_e; ``` ### qosa_nw_rrc_state_e ```c typedef enum { QOSA_NW_RRC_UTRAN_URA_PCH_STATE, QOSA_NW_RRC_UTRAN_CELL_PCH_STATE, QOSA_NW_RRC_UTRAN_CELL_FACH_STATE, QOSA_NW_RRC_UTRAN_CELL_DCH_STATE, QOSA_NW_RRC_GERAN_CS_CONNECTED_STATE, QOSA_NW_RRC_GERAN_PS_CONNECTED_STATE, QOSA_NW_RRC_GERAN_CS_AND_PS_CONNECTED_STATE, QOSA_NW_RRC_EUTRAN_CONNECTED_STATE, } qosa_nw_rrc_state_e; ``` ### qosa_nw_rrc_access_type_e ```c typedef enum { QOSA_NW_RRC_ACCESS_TYPE_GERAN, /*!< GERAN */ QOSA_NW_RRC_ACCESS_TYPE_UTRAN_TDD, /*!< UTRAN TDD */ QOSA_NW_RRC_ACCESS_TYPE_UTRAN_FDD, /*!< UTRAN FDD */ QOSA_NW_RRC_ACCESS_TYPE_EUTRAN_TDD, /*!< EUTRAN TDD */ QOSA_NW_RRC_ACCESS_TYPE_EUTRAN_FDD, /*!< EUTRAN FDD */ } qosa_nw_rrc_access_type_e; ``` ### qosa_nw_srv_domain_e ```c typedef enum { QOSA_NW_SRV_DOMAIN_CS, /*!< CS domain */ QOSA_NW_SRV_DOMAIN_PS, /*!< PS domain */ QOSA_NW_SRV_DOMAIN_CS_PS, /*!< CS and PS domain */ } qosa_nw_srv_domain_e; ``` ### qosa_nw_voice_domain_e ```c typedef enum { QOSA_NW_VOICE_DOMAIN_CS, /*!< CS domain only */ QOSA_NW_VOICE_DOMAIN_IMS_PS, /*!< IMS PS domain only */ QOSA_NW_VOICE_DOMAIN_CS_PREFERED, /*!< CS domain preferred */ QOSA_NW_VOICE_DOMAIN_IMS_PS_PREFERED, /*!< IMS PS domain preferred */ } qosa_nw_voice_domain_e; ``` ### qosa_nw_ue_usage_setting_e ```c typedef enum { QOSA_NW_UE_USAGE_SETTING_VOICE_CENTRIC, /*!< Voice centric mode */ QOSA_NW_UE_USAGE_SETTING_DATA_CENTRIC, /*!< Data centric mode */ QOSA_NW_UE_USAGE_SETTING_MAX, /*!< Maximum value */ } qosa_nw_ue_usage_setting_e; ``` ### qosa_nw_roaming_pref_e ```c typedef enum { QOSA_NW_ROAMING_DISABLE = 0, /*!< Disable roaming function */ QOSA_NW_ROAMING_ONLY_ON_HOME_NETWORKS = 1, /*!< Only roam on home networks */ QOSA_NW_ROAMING_ON_AFFILIATE_NETWORKS = 3, /*!< Roam on affiliate networks */ QOSA_NW_ROAMING_ON_ANY_NETWORK = 255, /*!< Roam on any network */ } qosa_nw_roaming_pref_e; ``` ### qosa_nw_freq_lock_opcode_e ```c typedef enum { QOSA_NW_LOCK_FREQ_OPCODE_UNLOCK, /*!< Unlock frequency band */ QOSA_NW_LOCK_FREQ_OPCODE_LOCK_FREQ, /*!< Lock frequency band */ QOSA_NW_LOCK_FREQ_OPCODE_LOCK_CELL, /*!< Lock physical cell */ } qosa_nw_freq_lock_opcode_e; ``` # 应用示例 ## 示例Demo流程图 ```{image} images/image_RJEgboxRsoflGhxUtRPcRlL7noU.webp :width: 738px :height: 1509px :align: center ``` ## 完整示例Demo 请查看https://github.com/UniRTOS/UniRTOS-Doc-Examples/blob/main/network/nic/cellular/cellular_demo.c