From 58a8086d36a9636213c7ce77e16fb4590570658b Mon Sep 17 00:00:00 2001 From: "Rich.wu" Date: Tue, 28 Feb 2023 10:23:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=20(network):=20atcmd/sim/sms/cellLocato?= =?UTF-8?q?r/wifiLocator/net/voiceCall=E6=A8=A1=E5=9D=97=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E5=92=8C=E9=83=A8=E5=88=86=E7=BB=86=E8=8A=82?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 固件版本: N/A 是否需要文案翻译: 否 ######################################################################################## # # # 示例: # # # # fix (network): 重复创建并关闭socket一定次数后,无法再次创建socket。 # # # # 1. 调用select接口并在其它线程调用socket.close()时,socket引用计数没有自减, # # 由于socket总数(即引用计数)有上限,导致创建一定数量的socket无法再次创建socket。 # # # # 2. 调用socket.close()释放资源时,将引用计数自减,及时释放出被占用的资源,修复该问题。# # # # 固件版本:EC600MCNLAR02_QPY # # # # 是否需要文案翻译: 是 # # # ######################################################################################## # # # 说明: # # # # <提交类型> 用于说明提交的类型,一般有以下几种: # # - feat: 新增feature。 # # - fix: 修复bug。 # # - docs: 仅仅修改了文档,如readme.md。 # # - style: 仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑。 # # - refactor: 代码重构,没有新增功能或修复bug。 # # - perf: 优化相关,如提升性能、用户体验等。 # # - test: 测试用例,包括单元测试、集成测试。 # # - chore: 改变构建流程、或者增加依赖库、工具等。 # # - revert: 版本回滚。 # # # # <功能范围> 用于说明提交影响的功能范围。 # # # # <修改点简述> 提交目的的简短描述。 # # # # <修改点详述> 用于详细描述修改点,可选。不填写,请删除该行;若填写,请描述以下内容: # # - 为何进行修改 # # - 如何解决问题的 # # - 是否有副作用(必要时) # # # ######################################################################################## --- .../atcmd.md" | 4 +- .../cellLocator.md" | 10 +- .../net.md" | 293 +++++++++--------- .../sim.md" | 217 +++++++------ .../sms.md" | 48 ++- .../voiceCall.md" | 224 +++++++------ .../wifilocator.md" | 8 +- 7 files changed, 448 insertions(+), 356 deletions(-) diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/atcmd.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/atcmd.md" index 39da8cd9..0f4ecde9 100644 --- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/atcmd.md" +++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/atcmd.md" @@ -2,7 +2,9 @@ 提供发送AT指令的方法,使模组能够通过Python代码发送AT指令。 -## 方法 + + +## 发送AT指令 ### `atcmd.sendSync` diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/cellLocator.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/cellLocator.md" index 26422878..2e2966a7 100644 --- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/cellLocator.md" +++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/cellLocator.md" @@ -2,14 +2,18 @@ `cellLocator` 提供基站定位功能,获取模组经纬度坐标信息。 + + >注意:当前仅EC600S/EC600N/EC800N/EC200U/EC600U系列支持该功能。 -## 方法 + + +## 获取坐标信息 ### `cellLocator.getLocation` ```python -cellLocator.getLocation(serverAddr, port, token, timeout, profileIdx) +cellLocator.getLocation(serverAddr, port, token, timeout [, profileIdx]) ``` 该方法用于获取模组经纬度坐标信息。 @@ -20,7 +24,7 @@ cellLocator.getLocation(serverAddr, port, token, timeout, profileIdx) * `port` - 服务器端口,整型值,目前仅支持 80 端口 * `token` - 密钥,字符串类型,16位字符组成,需要申请 * `timeout` -设置超时时间,整型值,范围1-300s,默认300s -* `profileIdx` - PDP上下文ID,整型值,一般设置为1,设置其他值可能需要专用apn与密码才能设置成功; +* `profileIdx` - PDP上下文ID,整型值,可选参数,默认为当前拨号成功的那一路,设置其他值可能需要专用apn与密码才能设置成功; 范围如下:EC600N/EC600S/EC800N,范围:1 ~ 8;EC200U/EC600U,范围:1 ~ 7。 **返回值描述:** diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/net.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/net.md" index 2ad89e54..c3dfc54e 100644 --- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/net.md" +++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/net.md" @@ -2,9 +2,13 @@ `net`模块包含了模组网络相关的功能,提供配置和查询网络模式信息等接口,比如获取注网状态,设置搜网模式等。 ->注: 建议用户使用不同运营商的SIM卡时,则配置对应运营商的APN信息;如果不配置或者配置错误,可能会导致模组无法注网。用户具体如何配置APN信息,参考`dataCall.setApn`方法。 -## 方法 + +>注: 建议用户使用不同运营商的SIM卡时,则配置对应运营商的APN信息;如果不配置或者配置错误,可能会导致模组无法注网。用户具体如何配置APN信息,参考`dataCall.setPDPContext`方法。 + + + +## 获取CSQ信号强度 ### `net.csqQueryPoll` @@ -14,16 +18,16 @@ net.csqQueryPoll() 该方法用于获取csq信号强度。 -**参数描述:** - -* 无 - **返回值描述:** 成功返回整型的csq信号强度值,失败返回整型值`-1`,返回值为`99`表示异常; + + >信号强度值范围0 ~ 31,值越大表示信号强度越好。 + + **示例:** ```python @@ -34,6 +38,8 @@ net.csqQueryPoll() +## 获取小区信息 + ### `net.getCellInfo` ```python @@ -42,17 +48,16 @@ net.getCellInfo([sinrEnable]) 该方法用于获取邻近小区的信息。 -**参数:** +**参数描述:** -* `sinrEnable` - 使能是否获取sinr数值,整型值,取值范围见下表: +* `sinrEnable` - 使能是否获取sinr数值,整型值,可选参数,取值范围见下表: | 取值 | 含义 | |-----| ------------- | | 0 | 不获取sinr数值 | | 1 | 获取sinr数值 | - -**返回值:** +**返回值描述:** 失败返回整型值`-1`,成功返回包含三种网络系统`(GSM、UMTS、LTE)`的信息的list,如果对应网络系统信息为空,则返回空的List。格式和说明如下: @@ -100,13 +105,16 @@ net.getCellInfo([sinrEnable]) | `rsrq` |LTE网络参考信号接收质量,范围 -20 ~ -3
注:理论上rsrq的范围应该是-19.5 ~ -3,但由于计算方法问题,目前能给出的是-20 ~ -3
目前仅BC25系列、BG77/BG95系列和EC600E/EC800E系列获取该参数有意义,其它平台该参数无意义| | `sinr` |信噪比(目前仅BC25系列和EC600E/EC800E系列支持获取该参数)范围-30 ~ 30 | + + >注: > >* 该接口搜小区时会一直阻塞,一般是3-5秒,在无信号的地方会更长 >* `sinrEnable`为可选参,不支持的平台可不写,不写默认不获取sinr -> >* 仅BC25/EC600E/EC800E系列支持获取sinr,其余模组型号均不支持 + + **示例:** ```python @@ -114,7 +122,7 @@ net.getCellInfo([sinrEnable]) ([], [], [(0, 232301375, 1120, 17, 378, 26909, 1850, -66, -8), (3, 110110494, 1120, 17, 10, 26909, 2452, -87, -17), (3, 94542859, 1120, 1, 465, 56848, 1650, -75, -10), (3, 94472037, 1120, 1, 369, 56848, 3745, -84, -20)]) -//BC25 +# BC25 >>> net.getCellInfo(1) ([], [], [(0, 17104243, 460, 4, 169, 19472, 3688, -56, -10, -3)]) >>> net.getCellInfo(0) @@ -125,6 +133,8 @@ net.getCellInfo([sinrEnable]) +## 网络制式及漫游配置 + ### `net.getConfig` ```python @@ -133,37 +143,43 @@ net.getConfig() 该方法用于获取当前网络模式及漫游配置。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 失败返回整型值`-1`,成功返回一个元组,包含当前首选的网络制式与漫游打开状态,说明如下: * 网络制式 -| 值 | 网络制式 | | 值 | 网络制式 | -| ---- | :----------------------------- | ---- | ---- | -------------------------------- | -| 0 | GSM | | 17 | UMTS_LTE(dual link) | -| 1 | UMTS | | 18 | GSM_UMTS_LTE(dual link) | -| 2 | GSM_UMTS(auto) | | 19 | CATM, BG95 supported | -| 3 | GSM_UMTS(GSM preferred) | | 20 | GSM_CATM, BG95 supported | -| 4 | GSM_UMTS(UMTS preferred) | | 21 | CATNB, BG95 supported | -| 5 | LTE | | 22 | GSM_CATNB, BG95 supported | -| 6 | GSM_LTE(auto) | | 23 | CATM_CATNB, BG95 supported | -| 7 | GSM_LTE(GSM preferred) | | 24 | GSM_CATM_CATNB, BG95 supported | -| 8 | GSM_LTE(LTE preferred) | | 25 | CATM_GSM, BG95 supported | -| 9 | UMTS_LTE(auto) | | 26 | CATNB_GSM, BG95 supported | -| 10 | UMTS_LTE(UMTS preferred) | | 27 | CATNB_CATM, BG95 supported | -| 11 | UMTS_LTE(LTE preferred) | | 28 | GSM_CATNB_CATM, BG95 supported | -| 12 | GSM_UMTS_LTE(auto) | | 29 | CATM_GSM_CATNB, BG95 supported | -| 13 | GSM_UMTS_LTE(GSM preferred) | | 30 | CATM_CATNB_GSM, BG95 supported | -| 14 | GSM_UMTS_LTE(UMTS preferred) | | 31 | CATNB_GSM_CATM, BG95 supported | -| 15 | GSM_UMTS_LTE(LTE preferred) | | 32 | CATNB_CATM_GSM, BG95 supported | -| 16 | GSM_LTE(dual link) | | | | - ->BC25系列不支持此方法 +| 值 | 网络制式 | | 值 | 网络制式 | +| ---- | :------------------------ | ---- | ---- | ------------------------------- | +| 0 | GSM | | 17 | UMTS_LTE(双链路) | +| 1 | UMTS | | 18 | GSM_UMTS_LTE(双链路) | +| 2 | GSM_UMTS(自动) | | 19 | CATM,BG95/BG77系列支持 | +| 3 | GSM_UMTS(GSM 优先) | | 20 | GSM_CATM, BG95系列支持 | +| 4 | GSM_UMTS(UMTS 优先) | | 21 | CATNB, BG95/BG77系列支持 | +| 5 | LTE | | 22 | GSM_CATNB, BG95系列支持 | +| 6 | GSM_LTE(自动) | | 23 | CATM_CATNB, BG95/BG77系列支持 | +| 7 | GSM_LTE(GSM 优先) | | 24 | GSM_CATM_CATNB, BG95系列支持 | +| 8 | GSM_LTE(LTE 优先) | | 25 | CATM_GSM, BG95系列支持 | +| 9 | UMTS_LTE(自动) | | 26 | CATNB_GSM, BG95系列支持 | +| 10 | UMTS_LTE(UMTS 优先) | | 27 | CATNB_CATM, BG95/BG77系列支持 | +| 11 | UMTS_LTE(LTE 优先) | | 28 | GSM_CATNB_CATM, BG95系列支持 | +| 12 | GSM_UMTS_LTE(自动) | | 29 | CATM_GSM_CATNB, BG95系列支持 | +| 13 | GSM_UMTS_LTE(GSM 优先) | | 30 | CATM_CATNB_GSM, BG95系列支持 | +| 14 | GSM_UMTS_LTE(UMTS 优先) | | 31 | CATNB_GSM_CATM, BG95系列支持 | +| 15 | GSM_UMTS_LTE(LTE 优先) | | 32 | CATNB_CATM_GSM, BG95系列支持 | +| 16 | GSM_LTE(双链路) | | | | + + + +>BC25系列不支持此方法; +> +>BG95-M1系列仅支持CATM制式; +> +>BG95-M2/BG77系列仅支持包含CATM和CATNB两种制式; +> +>BG95-M3/M8系列支持CATM,CATNB和GSM全部三种制式; + + **示例:** @@ -182,26 +198,27 @@ net.setConfig(mode [, roaming]) 该方法用于设置网络制式及漫游配置。 -**参数:** +**参数描述:** * `mode` - 网络制式,整型值,详见上述网络制式表格 -* `roaming` - 漫游开关,整型值(`0`:关闭, `1`:开启) +* `roaming` - 漫游开关,整型值,可选参数(`0`:关闭, `1`:开启) -**返回值:** +**返回值描述:** 设置成功返回整型值`0`,设置失败返回整型值`-1`。 + + >注意: > >* roaming为可选参数,不支持的平台,该参数可不写 -> >* BC25系列不支持此方法 -> >* EC200U/EC600U/EG915U系列模组不支持漫游参数配置,且仅支持设置网络制式0/6/8 -> >* EC600E/EC800E系列模组仅支持LTE ONLY. + + **示例:** ```python @@ -214,6 +231,8 @@ net.setConfig(mode [, roaming]) +## 获取网络配置模式 + ### `net.getNetMode` ```python @@ -222,11 +241,7 @@ net.getNetMode() 该方法用于获取网络配置模式。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 失败返回整型值`-1`,成功返回一个元组,格式为:`(selection_mode, mcc, mnc, act)`参数说明如下: @@ -280,6 +295,8 @@ BG95系列模组`ACT`模式枚举值参照下表: +## 获取详细信号强度 + ### `net.getSignal` ```python @@ -288,16 +305,16 @@ net.getSignal([sinrEnable]) 该方法用于获取详细信号强度。 -**参数:** - -* `sinrEnable` - 使能是否获取sinr数值,整型值,取值范围见下表: +**参数描述:** + +* `sinrEnable` - 使能是否获取sinr数值,整型值,可选参数,取值范围见下表: | 取值 | 含义 | |-----| ------------- | | 0 | 不获取sinr数值 | | 1 | 获取sinr数值 | -**返回值:** +**返回值描述:** 失败返回整型值`-1`,成功返回一个元组,包含两个List`(GW 、LTE)`,返回值格式和说明如下: @@ -322,12 +339,15 @@ net.getSignal([sinrEnable]) | `cqi` | 信道质量 | | `sinr` | 信噪比,BC25系列不支持获取该参数 | + + >注: > >* `sinrEnable`为可选参,不支持的平台可不写,不写默认不获取sinr -> >* BC25系列不支持获取sinr,其余模组型号均支持 + + **示例:** ```python @@ -341,6 +361,8 @@ net.getSignal([sinrEnable]) +## 获取当前基站时间 + ### `net.nitzTime` ```python @@ -349,11 +371,7 @@ net.nitzTime() 该方法用于获取当前基站时间。这个时间是基站在模块开机注网成功时下发的时间。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 失败返回整型值`-1`,成功返回一个元组,包含基站时间与对应时间戳与闰秒数(0表示不可用),格式为:`(date, abs_time, leap_sec)`,说明如下: @@ -377,6 +395,8 @@ net.nitzTime() +## 获取运营商信息 + ### `net.operatorName` ```python @@ -385,11 +405,7 @@ net.operatorName() 该接口用于获取当前注网的运营商信息。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 失败返回整型值`-1`,成功返回一个元组,包含注网的运营商信息,格式为: `(long_eons, short_eons, mcc, mnc)`,说明如下: @@ -409,6 +425,8 @@ net.operatorName() +## 获取网络注册信息 + ### `net.getState` ```python @@ -417,11 +435,7 @@ net.getState() 该接口用于获取当前网络注册信息。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 失败返回整型值`-1`,成功返回一个元组,包含电话和网络注册信息,元组中`voice`开头的表示电话注册信息,`data`开头的表示网络注册信息,格式为:`([voice_state, voice_lac, voice_cid, voice_rat, voice_reject_cause, voice_psc], [data_state, data_lac, data_cid, data_rat, data_reject_cause, data_psc])` @@ -431,27 +445,27 @@ net.getState() | -------------- | ------------------------------------------------------------ | | `state` | 网络注册状态,具体见下表 | | `lac` | 位置区码,范围 1 ~ 65534 | -| `cid` | cell id,范围 0x00000000 ~ 0x0FFFFFFF,具体见`net.csqQueryPoll()`中返回值 | +| `cid` | cell id,范围 0x00000000 ~ 0x0FFFFFFF,具体见`net.getCellInfo()`中返回值 | | ``rat`` | 接入技术,access technology,具体见后面表格 | | `reject_cause` | 注册被拒绝的原因,EC200U/EC600U/BC25系列该参数保留,不作为有效参数 | | `psc` | 主扰码,Primary Scrambling Code,EC200U/EC600U/BC25系列该参数保留,不作为有效参数 | * 网络注册状态`state`枚举值见下表: -| 值 | 状态说明 | -| ---- | ------------------------------------------------------------ | -| 0 | not registered, MT is not currently searching an operator to register to | -| 1 | registered, home network | -| 2 | not registered, but MT is currently trying to attach or searching an operator to register to | -| 3 | registration denied | -| 4 | unknown | -| 5 | registered, roaming | -| 6 | egistered for “SMS only”, home network (not applicable) | -| 7 | registered for “SMS only”, roaming (not applicable) | -| 8 | attached for emergency bearer services only | -| 9 | registered for “CSFB not preferred”, home network (not applicable) | -| 10 | registered for “CSFB not preferred”, roaming (not applicable) | -| 11 | emergency bearer services only | +| 值 | 状态说明 | +| ---- | ------------------------------------- | +| 0 | 没有注册,MT也没有再搜索 | +| 1 | 注册完成,,本地网络 | +| 2 | 没有注册,但是MT在尝试搜索 | +| 3 | 拒绝注册 | +| 4 | 未知状态 | +| 5 | 注册完成, 漫游网络 | +| 6 | 注册为“仅限短信”,本地网络 (不适用) | +| 7 | 注册为“仅限短信”,漫游网络(不适用) | +| 8 | 紧急attach仅限紧急承载服务 | +| 9 | 注册为“CSFB不优先”,本地网络 (不适用) | +| 10 | 注册为“CSFB不优先”,漫游网络(不适用) | +| 11 | 仅限紧急承载服务 | * 接入技术`access technology` @@ -469,6 +483,8 @@ net.getState() | 9 | E_UTRAN_CA | | 10 | NONE | + + > 注:BG77/BG95系列参照下表 | 值 | 说明 | @@ -487,8 +503,6 @@ net.getState() | 11 | E_UTRAN_EMTC | | 12 | NONE | - - **示例:** ```python @@ -498,6 +512,8 @@ net.getState() +## 获取小区ID + ### `net.getCi` ```python @@ -506,11 +522,7 @@ net.getCi() 该方法用于获取附近小区ID。该接口获取结果即为`net.getCellInfo()`接口获取结果中的cid集合。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 成功返回一个list类型的数组,包含小区id,格式为:`[id, ……, id]`。数组成员数量并非固定不变,位置不同、信号强弱不同等都可能导致获取的结果不一样。 @@ -531,13 +543,9 @@ net.getCi() net.getServingCi() ``` -该方法用于获取服务小区ID。 - -**参数:** +该方法用于获取服务小区ID。该接口获取结果即为`net.getCellInfo()`接口获取结果中的cid集合。 -* 无 - -**返回值:** +**返回值描述:** 成功返回服务小区ID。失败返回整型值`-1`。 @@ -550,6 +558,8 @@ net.getServingCi() +## 获取小区的MNC + ### `net.getMnc` ```python @@ -558,11 +568,7 @@ net.getMnc() 该方法用于获取附近小区的mnc。该接口获取结果即为`net.getCellInfo()`接口获取结果中的mnc集合。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 成功返回一个list类型的数组,包含小区`mnc`,格式为:`[mnc, ……, mnc]`。数组成员数量并非固定不变,位置不同、信号强弱不同等都可能导致获取的结果不一样。 @@ -583,13 +589,9 @@ net.getMnc() net.getServingMnc() ``` -该方法用于获取服务小区的mnc。 - -**参数:** +该方法用于获取服务小区的mnc。该接口获取结果即为`net.getCellInfo()`接口获取结果中的mnc集合。 -* 无 - -**返回值:** +**返回值描述:** 成功返回服务小区`mnc`。失败返回整型值`-1`。 @@ -602,6 +604,8 @@ net.getServingMnc() +## 获取小区的MCC + ### `net.getMcc` ```python @@ -610,11 +614,7 @@ net.getMcc() 该方法用于获取附近小区的mcc。该接口获取结果即为`net.getCellInfo()`接口获取结果中的mcc集合。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 成功返回一个list类型的数组,包含小区`mcc`,格式为:`[mcc, ……, mcc]`。数组成员数量并非固定不变,位置不同、信号强弱不同等都可能导致获取的结果不一样。 @@ -641,13 +641,9 @@ net.getMcc() net.getServingMcc() ``` -该方法用于获取服务小区的mcc。 - -**参数:** - -* 无 +该方法用于获取服务小区的mcc。该接口获取结果即为`net.getCellInfo()`接口获取结果中的mcc集合。 -**返回值:** +**返回值描述:** 成功返回服务小区的`mcc`,失败返回整型值`-1`。 @@ -666,6 +662,8 @@ net.getServingMcc() +## 获取小区的Lac + ### `net.getLac` ```python @@ -674,11 +672,7 @@ net.getLac() 该方法用于获取附近小区的Lac。该接口获取结果即为`net.getCellInfo()`接口获取结果中的lac集合。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 成功返回一个list类型的数组,包含小区lac,格式为:`[lac, ……, lac]`。数组成员数量并非固定不变,位置不同、信号强弱不同等都可能导致获取的结果不一样。 @@ -699,13 +693,9 @@ net.getLac() net.getServingLac() ``` -该方法用于获取服务小区的Lac。 - -**参数:** - -* 无 +该方法用于获取服务小区的Lac。该接口获取结果即为`net.getCellInfo()`接口获取结果中的lac集合。 -**返回值:** +**返回值描述:** 成功返回服务小区`lac`,失败返回整型值`-1`。 @@ -718,6 +708,8 @@ net.getServingLac() +## 工作模式配置 + ### `net.getModemFun` ```python @@ -726,15 +718,10 @@ net.getModemFun() 该方法用于获取当前工作模式。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** - 成功返回当前模组工作模式,失败返回整型值`-1`: + 成功返回当前模组工作模式,失败返回整型值`-1`;模组工作模式详细如下: -* 模组工作模式 | 模式 | 说明 | | --- | ---------- | | 0 | 全功能关闭 | @@ -753,12 +740,12 @@ net.getModemFun() ### `net.setModemFun` ```python -net.setModemFun(fun, rst) +net.setModemFun(fun [, rst]) ``` 该方法用于设置当前模组工作模式。 -**参数:** +**参数描述:** * `fun` - 模组工作模式,整型值 | 模式 | 说明 | @@ -773,7 +760,7 @@ net.setModemFun(fun, rst) | 0 | 设置完不重启(默认) | | 1 | 设置完重启 | -**返回值:** +**返回值描述:** 设置成功返回整型值`0`,设置失败返回整型值`-1`。 @@ -786,6 +773,8 @@ net.setModemFun(fun, rst) +## band设置与获取 + ### `net.setBand` ```python @@ -815,7 +804,7 @@ net.setBand(netRat, gsmBand, bandTuple) | LTE | B1/B3/B5/B7/B8/B20/B28/B31/B72 | | EGPRS | EGSM900/DCS1800 | -**参数:** +**参数描述:** * `netRat` - 网络模式,整型值,表示制定要设置的是哪种网络模式下的`band` | rat值 | 说明 | @@ -838,15 +827,19 @@ net.setBand(netRat, gsmBand, bandTuple) `band_lh = (band_value & 0x0000000000000000FFFFFFFF00000000) >> 32` `band_ll = (band_value & 0x000000000000000000000000FFFFFFFF)` -**返回值:** +**返回值描述:** 设置成功返回整型`0`,失败返回整型`-1`。 + + >注: >* 当前可支持模组型号:BG95系列/EG912NENAA >* BG95不支持设置上述模式1(LTE)下的`band` >* EG912NENAA仅支持上述模式0(GSM)和模式1(LTE) + + **示例:** ```python @@ -971,7 +964,7 @@ net.getBand(netRat) 该方法用于获取当前某个网络制式下的band设置值。 -**参数:** +**参数描述:** * `netRat` - 网络模式,整型值,表示制定要设置的是哪种网络模式下的`band` | rat值 | 说明 | @@ -981,15 +974,19 @@ net.getBand(netRat) | 2 | 设置CATM网络的band | | 3 | 设置NB网络的band | -**返回值:** +**返回值描述:** 返回十六进制字符串形式的band值。 + + >注: >* 当前可支持模组型号:BG95系列/EG912NENAA >* BG95不支持设置上述模式1(LTE)下的`band` >* EG912NENAA仅支持上述模式0(GSM)和模式1(LTE) + + **示例:** ```python @@ -1007,16 +1004,16 @@ net.bandRst() 该方法用于恢复band初始设定值。 -**参数:** +**返回值描述:** -* 无 +成功返回整型`0`,失败返回整型`-1`。 -**返回值:** -成功返回整型`0`,失败返回整型`-1`。 >当前可支持模组型号:EG912NENAA + + **示例:** ```python diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sim.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sim.md" index 7d9b4af9..ec5e4bc0 100644 --- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sim.md" +++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sim.md" @@ -2,9 +2,13 @@ 提供sim卡相关功能的接口,如查询sim卡状态、iccid、imsi、电话号码等。 + + > 注意:能成功获取IMSI、ICCID、电话号码的前提是SIM卡状态为1,可通过sim.getStatus()查询。 -## 方法 + + +## 通用SIM访问功能 ### `sim.genericAccess` @@ -25,8 +29,12 @@ sim.genericAccess(simId, cmd) 失败: 返回整型值`-1`。 + + > 注意:仅EC100Y/EC200N/EC600N/EC600S/EC800N/EG912N/EG915N系列支持该方法。 + + **示例:** ```python @@ -36,6 +44,8 @@ sim.genericAccess(simId, cmd) +## 获取SIM卡信息 + ### `sim.getImsi` ```python @@ -44,14 +54,10 @@ sim.getImsi() 该方法用于获取sim卡的IMSI。 -**参数描述:** - -- 无 - **返回值描述:** -成功: 返回字符串类型,数据值为`IMSI`。 +成功: 返回字符串类型,值为`IMSI`。 失败: 返回整型值`-1`。 @@ -73,10 +79,6 @@ sim.getIccid() 该方法用于获取sim卡的ICCID。 -**参数描述:** - -- 无 - **返回值描述:** 成功: 返回字符串类型,数据值为`ICCID`。 @@ -100,18 +102,18 @@ sim.getPhoneNumber() 该方法用于获取sim卡的电话号码,需要先进行写入本SIM卡电话卡号码。 -**参数描述:** - -- 无 - **返回值描述:** 成功: 返回字符串数据类型的电话号码。 失败: 返回整型值`-1`。 + + >BC25系列不支持此方法 + + **示例:** ```python @@ -121,6 +123,8 @@ sim.getPhoneNumber() +## 查询SIM卡状态 + ### `sim.getStatus` ```python @@ -129,10 +133,6 @@ sim.getStatus() 该方法用于查询当前SIM卡状态。 -**参数描述:** - -- 无 - **返回值描述:** sim卡状态码,整型值,具体说明如下: @@ -164,6 +164,8 @@ sim卡状态码,整型值,具体说明如下: +## PIN码验证功能 + ### `sim.enablePin` ```python @@ -180,8 +182,12 @@ sim.enablePin(pin) 返回一个整型值,`0`表示成功,`-1`表示失败。 + + > BC25系列PIN密码最大支持四位字符串。 + + **示例:** ```python @@ -207,8 +213,6 @@ sim.disablePin(pin) 返回一个整型值,`0`表示成功,`-1`表示失败。 -> BC25系列PIN密码最大支持四位字符串。 - **示例:** ```python @@ -234,8 +238,6 @@ PIN码验证:用于SIM卡开启PIN码验证后,如果需要启用SIM卡, 返回一个整型值,`0`表示成功,`-1`表示失败。 -> BC25系列PIN密码最大支持四位字符串。 - **示例:** ```python @@ -245,62 +247,68 @@ PIN码验证:用于SIM卡开启PIN码验证后,如果需要启用SIM卡, -### `sim.unblockPin` +### `sim.changePin` ```python -sim.unblockPin(puk, newPin) +sim.changePin(oldPin, newPin) ``` -该方法用于SIM卡解锁:当多次输入PIN/PIN2码错误需要用PUK码解锁。如果PUK码输入错误10次,SIM卡将永久锁定自动报废。 +该方法用于更改sim卡PIN码。 **参数描述:** -- `puk` - PUK码,字符串类型,长度8位数字,最大长度不超过15字节。 -- `newPin` - 新PIN码,字符串类型,最大长度不超过15字节。 +- `oldPin` - 旧的PIN码,字符串类型,最大长度不超过15字节。 +- `newPin` - 新的PIN码,字符串类型,最大长度不超过15字节。 **返回值描述:** 返回一个整型值,`0`表示成功,`-1`表示失败。 -> BC25系列PIN密码最大支持四位字符串;PUK码最大支持八位字符串。 - **示例:** ```python ->>> sim.unblockPin("12345678", "0000") +>>> sim.changePin("1234", "4321") 0 ``` -### `sim.changePin` +## SIM卡解锁 + +### `sim.unblockPin` ```python -sim.changePin(oldPin, newPin) +sim.unblockPin(puk, newPin) ``` -该方法用于更改sim卡PIN码。 +该方法用于SIM卡解锁:当多次输入PIN/PIN2码错误需要用PUK码解锁。如果PUK码输入错误10次,SIM卡将永久锁定自动报废。 **参数描述:** -- `oldPin` - 旧的PIN码,字符串类型,最大长度不超过15字节。 -- `newPin` - 新的PIN码,字符串类型,最大长度不超过15字节。 +- `puk` - PUK码,字符串类型,长度8位数字,最大长度不超过15字节。 +- `newPin` - 新PIN码,字符串类型,最大长度不超过15字节。 **返回值描述:** 返回一个整型值,`0`表示成功,`-1`表示失败。 -> BC25系列PIN密码最大支持四位字符串。 + + +> BC25系列PIN密码最大支持四位字符串;PUK码最大支持八位字符串。 + + **示例:** ```python ->>> sim.changePin("1234", "4321") +>>> sim.unblockPin("12345678", "0000") 0 ``` +## 电话簿功能 + ### `sim.readPhonebook` ```python @@ -335,7 +343,6 @@ sim.readPhonebook(storage, start, end, username) - `start` - 需要读取电话号码记录的起始编号,整型值,`start`为 `0` 表示不使用编号获取电话号码记,`start`应小于等于`end`。 - `end` - 需要读取电话号码记录的结束编号,整型值,必须满足:`end - start <= 20`。 - `username` - 电话号码中的用户名,字符串类型,当 start为 0 时有效,暂不支持中文,最大长度不超过30字节。 ->注意:按username进行匹配时,并不是按完整的单词进行匹配,只要电话簿中已有记录的name是以username开头,那么就会匹配上。 **返回值描述:** @@ -350,7 +357,15 @@ sim.readPhonebook(storage, start, end, username) 失败:返回整型值`-1`。 ->BC25系列不支持此方法。 + + +>注意: +> +>- BC25系列不支持此功能的方法。 +> +>- 按username进行匹配时,并不是按完整的单词进行匹配,只要电话簿中已有记录的name是以username开头,那么就会匹配上。 + + **示例:** @@ -387,8 +402,6 @@ sim.writePhonebook(storage, index, username, number) 返回一个整型值,`0`表示成功,`-1`表示失败。 -> BC25系列不支持此方法。 - **示例:** ```python @@ -398,46 +411,7 @@ sim.writePhonebook(storage, index, username, number) -### `sim.setCallback` - -```python -sim.setCallback(usrFun) -``` - -热插拔注册监听回调函数:用于注册监听回调函数。在开启SIM卡热插拔功能的情况下,当SIM卡有插拔动作,将调用此方法注册的回调函数。 - -**参数描述:** - -* `usrFun` - 回调函数名,回调函数格式以及回调函数的参数说明如下: - -```python -def usrFun(args): - pass -``` - -| 参数 | 类型 | 含义 | -| ------ | ---- | --------------------------------------------------------- | -| `args` | 整形 | 当前SIM卡插拔状态:`1` 表示SIM卡插入;`2` 表示 SIM卡拔出 | - -**返回值描述:** - -返回一个整型值,`0`表示注册成功,`-1`表示注册失败。 - -> BC25系列不支持此方法。 - -**示例:** - -```python -import sim - -def usrCallback(args): - simstates = args - print('sim states:{}'.format(simstates)) - -sim.setCallback(usrCallback) -``` - - +## 热插拔功能 ### `sim.setSimDet` @@ -456,8 +430,12 @@ SIM卡热插拔开关:用于设置SIM卡热插拔相关配置。 返回一个整型值,`0`表示成功,`-1`表示失败。 + + > BC25系列不支持此方法。 + + **示例:** ```python @@ -475,10 +453,6 @@ sim.getSimDet() 该方法用于获取SIM卡热插拔相关配置。 -**参数描述:** - -- 无 - **返回值描述:** @@ -491,8 +465,12 @@ sim.getSimDet() 失败: 返回`-1`。 + + >BC25系列不支持此方法。 + + **示例:** ```python @@ -502,6 +480,8 @@ sim.getSimDet() +## SIM卡切卡功能 + ### `sim.getCurSimid` ```python @@ -520,12 +500,16 @@ sim.getCurSimid() 失败: 返回`-1`。 + + >支持该方法的模组:EC600M/EC800M系列。 + + **示例:** ```python ->>> sim.getCurSimid() //获取当前卡,当前是卡1 +>>> sim.getCurSimid() #获取当前卡,当前是卡1 0 ``` @@ -547,21 +531,72 @@ sim.switchCard(simId) 返回一个整型值,`0`表示成功,`-1`表示失败。 + + >支持该方法的模组:EC600M/EC800M系列。 + + **示例:** ```python ->>> sim.getCurSimid() //获取当前卡,当前是卡1 +>>> sim.getCurSimid() #获取当前卡,当前是卡1 0 ->>> sim.switchCard(1) //切到卡2 +>>> sim.switchCard(1) #切到卡2 0 ->>> sim.getCurSimid() //获取当前卡,成功切到卡2 +>>> sim.getCurSimid() #获取当前卡,成功切到卡2 1 ``` +## 回调注册功能 + +### `sim.setCallback` + +```python +sim.setCallback(usrFun) +``` + +热插拔注册监听回调函数:用于注册监听回调函数。在开启SIM卡热插拔功能的情况下,当SIM卡有插拔动作,将调用此方法注册的回调函数。 + +**参数描述:** + +* `usrFun` - 回调函数名,回调函数格式以及回调函数的参数说明如下: + +```python +def usrFun(args): + pass +``` + +| 参数 | 类型 | 含义 | +| ------ | ---- | --------------------------------------------------------- | +| `args` | 整形 | 当前SIM卡插拔状态:`1` 表示SIM卡插入;`2` 表示 SIM卡拔出 | + +**返回值描述:** + +返回一个整型值,`0`表示注册成功,`-1`表示注册失败。 + + + +> BC25系列不支持此方法。 + + + +**示例:** + +```python +import sim + +def usrCallback(args): + simstates = args + print('sim states:{}'.format(simstates)) + +sim.setCallback(usrCallback) +``` + + + ### `sim.setSwitchcardCallback` ```python @@ -587,10 +622,14 @@ def usrFun(args): 返回一个整型值,`0`表示注册成功,`-1`表示注册失败。 + + > 支持该方法的模组:EC600M/EC800M系列。 > > 注意以下几点:
1、目标卡不存在或者目标卡状态异常;
2、目标卡是当前卡;
以上情况切卡方法`sim.switchCard`直接返回-1,不触发此接口设置的回调函数。 + + **示例:** ```python diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sms.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sms.md" index 1910e4ca..fedd1072 100644 --- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sms.md" +++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sms.md" @@ -2,11 +2,13 @@ 模块功能:该模块提供短信功能相关方法,包括读取、发送、删除短信等方法。 + + > 注意:BC25/EC600M系列不支持此功能。 -## 方法 +## 发送短信 ### `sms.sendTextMsg` @@ -80,17 +82,25 @@ sms.sendPduMsg('18158626517', '这是一条中文测试短信!通过PDU-UCS2 +## 删除短信 + ### `sms.deleteMsg` ``` -sms.deleteMsg(index) +sms.deleteMsg(index [, delmode]) ``` 该方法用于删除指定索引的消息。 **参数描述:** -* `index` - 索引号,整型值,需要删除短信的索引号。 +* `index` - 索引号,整型值,需要删除短信的索引号; +* `delmode` - 模式,整型值,可选参数,当不写时默认为0,具体如下: + +| 值 | 说明 | +| ---- | ------------------------- | +| 0 | 删除指定`index`索引的短信 | +| 4 | 删除全部短信 | **返回值描述:** @@ -100,12 +110,16 @@ sms.deleteMsg(index) ```python >>> import sms ->>> sms.deleteMsg(0) +>>> sms.deleteMsg(2) #删除索引号为2的那一条短信 +0 +>>> sms.deleteMsg(1,4) #删除所有短信 0 ``` +## 短信存储位置配置 + ### `sms.setSaveLoc` ``` @@ -132,8 +146,12 @@ sms.setSaveLoc(mem1, mem2, mem3) 返回一个整型值,`0`表示设置成功,`-1`表示设置失败。 + + > EC100Y/EC200N/EC600N/EC600S/EC800N/EG912N/EG915N/EC800M/EG810M/EC200A系列如果要改变接收消息的存储位置,需要同时设定mem2 & mem3;EC200U/EC600U/EG912U/EG915U/EC600G/EC800G系列只需设定mem3即可 + + **示例:** ```python @@ -152,10 +170,6 @@ sms.getSaveLoc() 该方法用于获取当前模块短信存储位置相关信息。 -**参数描述:** - -* 无 - **返回值描述:** 成功: 返回元组数据,格式`([loc1, current_nums, max_nums],[loc2, current_nums, max_nums],[loc3, current_nums, max_nums])`,如下表: @@ -183,6 +197,8 @@ sms.getSaveLoc() +## 获取短信的数量 + ### `sms.getMsgNums` ``` @@ -191,10 +207,6 @@ sms.getMsgNums() 该方法用于获取短信的数量。 -**参数描述:** - -* 无 - **返回值描述:** 成功: 返回短信数量值。失败: 返回`-1`。 @@ -209,6 +221,8 @@ sms.getMsgNums() +## 获取短信内容 + ### `sms.searchPduMsg` ``` @@ -273,6 +287,8 @@ sms.searchTextMsg(index) +## PDU短信解码 + ### `sms.getPduLength` ```python @@ -340,6 +356,8 @@ sms.decodePdu(pduMsg, pduLen) +## 短信中心号码配置 + ### `sms.getCenterAddr` ```python @@ -348,10 +366,6 @@ sms.getCenterAddr() 该方法用于获取短信中心号码。 -**参数描述:** - -- 无 - **返回值描述:** @@ -388,6 +402,8 @@ sms.setCenterAddr(addr) +## 回调注册功能 + ### `sms.setCallback` ```python diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/voiceCall.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/voiceCall.md" index 8c851ce3..da8f6dc5 100644 --- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/voiceCall.md" +++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/voiceCall.md" @@ -2,6 +2,8 @@ `voiceCall`模块提供电话功能相关接口。 + + >注: >* 支持voiceCall功能的模组: > EC100Y系列:EC100YCN_AA @@ -14,9 +16,11 @@ > EC200U系列:EC200UAU_AB/EC200UCN_AA/EC200UEU_AA/EC200UEU_AB > EC600U系列:EC600CEU_AB/EG912UGL_AA/EG915UEU_AB > BC25系列/EC600G系列/EC800G系列/BG95系列/BG77系列模组不支持voiceCall功能 ->* 其他系列模组需要定制版本才能支持voiceCall功能 +>* 其他系列模组需要定制版本才能支持voiceCall功能。 + -## 方法 + +## 设置自动应答时间 ### `voiceCall.setAutoAnswer` @@ -26,11 +30,11 @@ voiceCall.setAutoAnswer(seconds) 该方法用于设置自动应答时间。 -**参数:** +**参数描述:** * `seconds` - 自动应答时间,整型值,单位/s,范围:0-255。 -**返回值:** +**返回值描述:** 成功返回整型`0`,失败返回整型`-1`。 @@ -44,6 +48,8 @@ voiceCall.setAutoAnswer(seconds) +## 拨打电话 + ### `voiceCall.callStart` ```python @@ -52,15 +58,15 @@ voiceCall.callStart(phonenum) 该方法用于主动拨打电话。 -**参数:** +**参数描述:** * `phonenum` - 接收方电话号码,字符串类型。 -**返回值:** +**返回值描述:** 成功返回整型`0`,失败返回整型`-1`。 -**示例:** +**示例描述:** ```python >>> voiceCall.callStart("13855169092") @@ -69,6 +75,8 @@ voiceCall.callStart(phonenum) +## 接听电话 + ### `voiceCall.callAnswer` ```python @@ -77,11 +85,7 @@ voiceCall.callAnswer() 该方法用于接听电话。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 成功返回整型`0`,失败返回整型`-1`。 @@ -94,6 +98,8 @@ voiceCall.callAnswer() +## 挂断电话 + ### `voiceCall.callEnd` ```python @@ -102,11 +108,7 @@ voiceCall.callEnd() 该方法用于挂断电话。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 成功返回整型`0`,失败返回整型`-1`。 @@ -119,6 +121,8 @@ voiceCall.callEnd() +## 回调注册功能 + ### `voiceCall.setCallback` ```python @@ -127,25 +131,35 @@ voiceCall.setCallback(voicecallFun) 该方法用于注册回调函数。监听不同的通话状态并通过回调反馈给用户。 -**参数:** +**参数描述:** * `voicecallFun` - 回调函数名,回调函数格式以及回调函数的参数说明如下: ```python def voicecallFun(args): pass ``` -`args[0]` - 通话状态,整型值
1:voicecall初始化成功(底层完成,无需用户干预)
2:来电通知,响铃
3:通话接通
4:通话挂断
5:未知错误
6:呼叫等待
7:呼出中
8:呼出失败
9:等待
10:来电通知,响铃(volte通话)
11:通话接通(volte通话)
12:通话挂断(volte通话)
13:呼叫等待(volte通话)
14:呼出中(volte通话)
15:呼出中,对方未响铃(volte通话)
16:等待(volte通话) | - -| 通话状态 | 参数个数 | 参数说明 | -| -------- | ------- | ------------------------------------------------------------ | -| 2/3/9 | 3 | args[0]:通话状态
args[1]:呼叫识别号码
args[2]:电话号码 | -| 4 | 3 | args[0]:通话状态
args[1]:呼叫识别号码
args[2]:通话挂断原因 | -| 6 | 5 | args[0]:通话状态
args[1]:呼叫识别号码
args[2]:电话号码
args[3]:号码类型[129/145],129:非国际号码,145:国际号码
args[4]:CLI状态 | -| 7 | 1 | args[0]:通话状态 | -| 8 | 4 | args[0]:通话状态
args[1]:呼叫识别号码
args[2]:呼叫失败原因
args[3]:指示是否可以从网络端获得in-band tones | -|10/11/12/13/14/15/16| 8 | args[0]:通话状态
args[1]:呼叫识别号码
args[2]:呼叫方向(MO/MT)
args[3]:通话状态
args[4]:业务类型(这里一般都是0,表示voice call,语音通话业务)
args[5]:多方通话标志,0:非多方通话 1:多方通话
args[6]:电话号码
args[7]:号码类型[129/145],129:非国际号码,145:国际号码 | - -**返回值:** +`args[0]` - 通话状态,整型值,回调函数的参数个数并不是固定的,而是根据第一个参数`args[0]`来决定,如下表: + +| 值 | 参数个数 | args[0]值说明 | 其他参数说明 | +| ---- | -------- | --------------------------------------------- | ------------------------------------------------------------ | +| 1 | 1 | voicecall初始化成功(底层完成,无需用户干预) | | +| 2 | 3 | 来电通知,响铃 | `args[1]`:呼叫识别号码
`args[2]`:电话号码 | +| 3 | 3 | 通话接通 | `args[1]`:呼叫识别号
`args[2]`:电话号码 | +| 4 | 3 | 通话挂断 | `args[1]`:呼叫识别号码
`args[2]`:通话挂断原因 | +| 5 | 1 | 未知错误 | | +| 6 | 5 | 呼叫等待 | `args[1]`:呼叫识别号码
`args[2]`:电话号码
`args[3]`:号码类型[129/145],129:非国际号码,145:国际号码
`args[4]`:CLI状态 | +| 7 | 1 | 呼出中 | | +| 8 | 4 | 呼出失败 | `args[1]`:呼叫识别号码
`args[2]`:呼叫失败原因
`args[3]`:指示是否可以从网络端获得in-band tones | +| 9 | 3 | 等待 | `args[1]`:呼叫识别号码
`args[2]`:电话号码 | +| 10 | 8 | 来电通知,响铃(volte通话) | `args[1]`:呼叫识别号码
`args[2]`:呼叫方向(MO/MT)
`args[3]`:通话状态
`args[4]`:业务类型(这里一般都是0,表示voice call,语音通话业务)
`args[5]`:多方通话标志,0:非多方通话 1:多方通话
`args[6]`:电话号码
`args[7]`:号码类型[129/145],129:非国际号码,145:国际号码 | +| 11 | 8 | 通话接通(volte通话) | `args[1] ~ args[7]`:具体说明同上 | +| 12 | 8 | 通话挂断(volte通话) | `args[1] ~ args[7]`:具体说明同上 | +| 13 | 8 | 呼叫等待(volte通话) | `args[1] ~ args[7]`:具体说明同上 | +| 14 | 8 | 呼出中(volte通话) | `args[1] ~ args[7]`:具体说明同上 | +| 15 | 8 | 呼出中,对方未响铃(volte通话) | `args[1] ~ args[7]`:具体说明同上 | +| 16 | 8 | 等待(volte通话) | `args[1] ~ args[7]`:具体说明同上 | + +**返回值描述:** 注册成功返回整型`0`,失败返回整型`-1`。 @@ -174,13 +188,23 @@ def voice_callback(args): 0 ``` + + >注意: +> >* 1、以上仅适用2021-09-09之后发布的支持语音通话的版本 >* 2、QPY_V0004_EC600N_CNLC_FW_VOLTE(2021-09-09发布)之前发布的版本都按照以下规则使用voiceCall -`args[0]` - 通话状态,整型值
4103:来电通知,响铃(volte通话)
4104:通话接通(volte通话)
4105:通话挂断(volte通话)
4106:呼叫等待(volte通话) -其余参数说明定义未变 + +`args[0]` - 通话状态,整型值,参数个数及其他参数含义如下表: + +| 值 | 参数个数 | args[0]值说明 | 其他参数说明 | +| ---- | -------- | --------------------------- | ------------------------------------------------------------ | +| 4103 | 8 | 来电通知,响铃(volte通话) | `args[1]`:呼叫识别号码
`args[2]`:呼叫方向(MO/MT)
`args[3]`:通话状态
`args[4]`:业务类型(这里一般都是0,表示voice call,语音通话业务)
`args[5]`:多方通话标志,0:非多方通话 1:多方通话
`args[6]`:电话号码
`args[7]`:号码类型[129/145],129:非国际号码,145:国际号码 | +| 4104 | 8 | 通话接通(volte通话) | `args[1] ~ args[7]`:具体说明同上 | +| 4105 | 8 | 通话挂断(volte通话) | `args[1] ~ args[7]`:具体说明同上 | +| 4106 | 8 | 呼叫等待(volte通话) | `args[1] ~ args[7]`:具体说明同上 | **示例:** @@ -198,6 +222,8 @@ def voice_callback(args): +## 来电自动挂断功能 + ### `voiceCall.setAutoCancel` ```python @@ -206,15 +232,19 @@ voiceCall.setAutoCancel(enable) 该方法用于使能来电自动挂断功能。 -**参数:** +**参数描述:** * `enable` - 开启或者关闭来电自动挂断功能,`1`:开启,`0`:关闭 (默认不开启) -**返回值:** +**返回值描述:** 成功返回整型`0`,失败返回整型`-1`。 ->注:EC200AAU_HA/EC200ACN_DA/EC200ACN_HA/EC200ACN_LA/EC200AEU_HA系列模组支持该方法 + + +>注:EC200AAU_HA/EC200ACN_DA/EC200ACN_HA/EC200ACN_LA/EC200AEU_HA系列模组支持该功能 + + **示例:** @@ -240,17 +270,11 @@ voiceCall.getAutoCancelStatus() 该方法用于获取来电自动挂断使能状态。 -**参数:** - -* 无 - -**返回值:** - -`0`:来电自动挂断使能关闭,来电不会被模组自动挂断 +**返回值描述:** -`1`:来电自动挂断使能开启,来电会被模组自动挂断 +`0`:来电自动挂断使能关闭,来电不会被模组自动挂断 ->注:EC200AAU_HA/EC200ACN_DA/EC200ACN_HA/EC200ACN_LA/EC200AEU_HA系列模组支持该方法 +`1`:来电自动挂断使能开启,来电会被模组自动挂断 **示例:** @@ -268,6 +292,8 @@ voiceCall.getAutoCancelStatus() +## DTMF识别功能 + ### `voiceCall.startDtmf` ```python @@ -276,17 +302,21 @@ voiceCall.startDtmf(dtmf, duration) 该方法用于设置DTMF音。 -**参数:** +**参数描述:** * `dtmf` - DTMF字符串,字符串类型,最大字符数:32个,有效字符数有:`0-9、A、B、C、D、*、#` -* `duration` - 持续时间,整型值,范围:100-1000,单位:毫秒 +* `duration` - 持续时间,整型值,范围:100-1000,单位:毫秒。 -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`。 + + >注:该方法仅在语音通话过程中使用生效 + + **示例:** ```python @@ -302,24 +332,19 @@ voiceCall.startDtmf(dtmf, duration) voiceCall.dtmfDetEnable(enable) ``` -该方法用于使能DTMF识别功能,默认不开启DTMF识别 +该方法用于使能DTMF识别功能,默认不开启DTMF识别。 -**参数:** +**参数描述:** * `enable` - 使能开关,整型值,取值`0/1`,`0`:不开启DTMF识别,`1`:开启DTMF识别 -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`。 ->注支持voiceCall功能的模组型号中,EC600N/EC600S/EC800N/EG912N/EG915N系列支持该方法 -> -**示例:** -``` -参考voiceCall.dtmfSetCb方法示例 -``` +>注:支持voiceCall功能的模组型号中,EC600N/EC600S/EC800N/EG912N/EG915N系列支持该方法 @@ -331,7 +356,7 @@ voiceCall.dtmfSetCb(dtmfFun) 该方法用于注册DTMF识别功能的回调接口。 -**参数:** +**参数描述:** * `dtmfFun` - 回调函数名,回调函数格式以及回调函数的参数说明如下: @@ -342,27 +367,28 @@ def dtmfFun(args): | 参数 | 类型 | 含义 | | ------- | ---- | ------------------------------------------ | -| args | 字符串 | 对端输入的DTMF字符 | +| `args` | 字符串 | 对端输入的DTMF字符 | -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`。 + + >注:支持voiceCall功能的模组型号中,EC600N/EC600S/EC800N/EG912N/EG915N系列支持该方法 -> + + **示例:** ```python >>> def cb(args): ... print(args) -... >>> voiceCall.dtmfSetCb(cb) 0 >>> voiceCall.dtmfDetEnable(1) 0 - >>> voiceCall.callStart('13855169092') 0 >>> @@ -375,6 +401,8 @@ def dtmfFun(args): +## 设置呼叫转移 + ### `voiceCall.setFw` ```python @@ -383,7 +411,7 @@ voiceCall.setFw(reason, fwmode, phonenum) 该方法用于控制呼叫转移补充业务。 -**参数:** +**参数描述:** * `reason` - 呼叫转移的条件,整型值,具体如下说明: @@ -406,12 +434,14 @@ voiceCall.setFw(reason, fwmode, phonenum) * `phonenum` - 呼叫转移的目标电话,字符串类型 -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`。 +## 切换语音通道 + ### `voiceCall.setChannel` ```python @@ -420,7 +450,7 @@ voiceCall.setChannel(device) 该方法用于设置通话时的声音输出通道,默认是通道0,即听筒。 -**参数:** +**参数描述:** * `device` - 输出通道,整型值,具体如下说明: @@ -430,7 +460,7 @@ voiceCall.setChannel(device) | 1 | 耳机 | | 2 | 喇叭 | -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`。 @@ -443,6 +473,8 @@ voiceCall.setChannel(device) +## 音量大小配置 + ### `voiceCall.getVolume` ```python @@ -451,11 +483,7 @@ voiceCall.getVolume() 该方法用于获取电话当前音量大小。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 返回整型音量值。 @@ -469,9 +497,9 @@ voiceCall.setVolume(volume) 该方法用于设置电话音量大小。 -**参数:** +**参数描述:** -* `volume` - 音量等级,整型值,范围`(0 ~ 11)`,数值越大,音量越大 +* `volume` - 音量等级,整型值,范围`(0 ~ 11)`,数值越大,音量越大。 **返回值:** @@ -479,6 +507,8 @@ voiceCall.setVolume(volume) +## 自动录音功能 + ### `voiceCall.setAutoRecord` @@ -488,9 +518,9 @@ voiceCall.setAutoRecord(enable, recordType, recordMode, filename) 该接口用于使能自动录音功能。默认关闭自动录音,自动录音使能需要在通话前设置完毕。 -**参数:** +**参数描述:** -* `enable` - 使能开关,整型值,取值`【0/1】`,`0`:关闭自动录音功能 ,`1`:开启自动录音功能 +* `enable` - 使能开关,整型值,取值0或1,`0`:关闭自动录音功能 ,`1`:开启自动录音功能 * `recordType` - 录音文件类型,整型值,具体如下: | 值 | 说明 | @@ -508,7 +538,7 @@ voiceCall.setAutoRecord(enable, recordType, recordMode, filename) * `filename` - 期望存储的文件名,字符串类型,需包含完整路径。 -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`, 不支持该接口返回字符串`"NOT SUPPORT"`。 @@ -529,7 +559,7 @@ voiceCall.startRecord(recordType, recordMode, filename) 该方法用于开始通话录音。 -**参数:** +**参数描述:** * `recordType` - 录音文件类型,整型值,具体如下: @@ -548,11 +578,11 @@ voiceCall.startRecord(recordType, recordMode, filename) * `filename` - 期望存储的文件名,字符串类型,需包含完整路径。 -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`,不支持该接口返回字符串`"NOT SUPPORT"`。 -**示例:** +**示例描述:** ```python >>> voiceCall.startRecord(0,2,'U:/test.amr') @@ -569,11 +599,7 @@ voiceCall.stopRecord() 该方法用于停止通话录音。 -**参数:** - -* 无 - -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`, 不支持该接口返回字符串`"NOT SUPPORT"`。 @@ -594,24 +620,22 @@ voiceCall.readRecordStream(readBuf, bufLen) 该方法用于读取录音流数据。 -**参数:** +**参数描述:** -* `readBuf` - 【out】存储读取到的数据 +* `readBuf` - 存储读取到的数据,用于保存读取到的数据; -* `bufLen` - 【in】期望读取的字符串长度,(不能超过readBuf申请的字节长度) +* `bufLen` - 期望读取的字符串长度(不能超过readBuf申请的字节长度)。 -**返回值:** +**返回值描述:** 读取成功返回读取到的数据长度,读取失败返回整型`-1`,不支持该接口返回字符串`"NOT SUPPORT"`。 + + >说明: >* 录音流第一包数据均是对应格式文件的文件头 >* wav格式录音流第一包数据不包含文件大小,需结束录音后自行计算 -**示例:** - -同`voiceCall.startRecordStream`方法示例 - ### `voiceCall.startRecordStream` @@ -622,7 +646,7 @@ voiceCall.startRecordStream(recordType, recordMode, callbackFun) 该方法用于开始通话录音(流形式)。 -**参数:** +**参数描述:** * `recordType` - 录音文件类型,整型值,具体如下: @@ -646,18 +670,22 @@ def recordStreamCallback(args): ``` | 参数 | 类型 | 含义 | | ------- | ---- | -------------------- | -| args[0] | 字符串 | 录音流数据 | -| args[1] | 整型 | 录音流数据长度 | -| args[2] | 整型 | 录音状态
-1:录音出错
0:开始录音
1:返回录音数据
2:录音暂停
3:录音结束
4:空间满 | +| `args[0]` | 字符串 | 录音流数据 | +| `args[1]` | 整型 | 录音流数据长度 | +| `args[2]` | 整型 | 录音状态
-1:录音出错
0:开始录音
1:返回录音数据
2:录音暂停
3:录音结束
4:空间满 | -**返回值:** +**返回值描述:** 设置成功返回整型`0`,设置失败返回整型`-1`,不支持该接口返回字符串`"NOT SUPPORT"`。 + + >说明: >* 录音流第一包数据均是对应格式文件的文件头 >* wav格式录音流第一包数据不包含文件大小,需结束录音后自行计算 + + **示例:** ```python @@ -679,7 +707,7 @@ def recordStreamCallback(args): 0 >>> voiceCall.startRecordStream(0,2,cb) 0 -//此处挂断电话(MO/MT侧挂断都可以) +# 此处挂断电话(MO/MT侧挂断都可以) >>> uos.listdir('usr') ['system_config.json', 'mia.amr'] >>> aud=audio.Audio(0) diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/wifilocator.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/wifilocator.md" index 04a8dcdc..9ec59096 100644 --- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/wifilocator.md" +++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/wifilocator.md" @@ -2,8 +2,12 @@ `wifilocator`对象提供WIFI定位功能,获取模组经纬度坐标信息。 + + > 注意:当前仅EC600S/EC600N/EC800N/EC200U/EC600U系列支持该功能。 + + **示例:** ```python @@ -16,6 +20,8 @@ wifiloc.getwifilocator() # 上面使用的密钥"xxxxxxxxxxxxxxxx"指代token,具体需要向移远申请 ``` + + ## 构造函数 ### `wifilocator.wifilocator` @@ -32,7 +38,7 @@ class wifilocator.wifilocator(token) -## 方法 +## 获取坐标信息 ### wifilocator.getwifilocator -- Gitee From b523105071a4382852e01e1dfb7246daddcd179a Mon Sep 17 00:00:00 2001 From: "Rich.wu" Date: Tue, 28 Feb 2023 11:44:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix=20(network):=20sms=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=9F=AD=E4=BF=A1=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=A4=87=E6=B3=A8?= =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81=E6=A8=A1=E5=9D=97=E7=B3=BB=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 固件版本: N/A 是否需要文案翻译: 否 ######################################################################################## # # # 示例: # # # # fix (network): 重复创建并关闭socket一定次数后,无法再次创建socket。 # # # # 1. 调用select接口并在其它线程调用socket.close()时,socket引用计数没有自减, # # 由于socket总数(即引用计数)有上限,导致创建一定数量的socket无法再次创建socket。 # # # # 2. 调用socket.close()释放资源时,将引用计数自减,及时释放出被占用的资源,修复该问题。# # # # 固件版本:EC600MCNLAR02_QPY # # # # 是否需要文案翻译: 是 # # # ######################################################################################## # # # 说明: # # # # <提交类型> 用于说明提交的类型,一般有以下几种: # # - feat: 新增feature。 # # - fix: 修复bug。 # # - docs: 仅仅修改了文档,如readme.md。 # # - style: 仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑。 # # - refactor: 代码重构,没有新增功能或修复bug。 # # - perf: 优化相关,如提升性能、用户体验等。 # # - test: 测试用例,包括单元测试、集成测试。 # # - chore: 改变构建流程、或者增加依赖库、工具等。 # # - revert: 版本回滚。 # # # # <功能范围> 用于说明提交影响的功能范围。 # # # # <修改点简述> 提交目的的简短描述。 # # # # <修改点详述> 用于详细描述修改点,可选。不填写,请删除该行;若填写,请描述以下内容: # # - 为何进行修改 # # - 如何解决问题的 # # - 是否有副作用(必要时) # # # ######################################################################################## --- .../zh/QuecPython\347\261\273\345\272\223/sms.md" | 6 ++++++ 1 file changed, 6 insertions(+) diff --git "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sms.md" "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sms.md" index fedd1072..85c4e53b 100644 --- "a/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sms.md" +++ "b/docs/API_reference/zh/QuecPython\347\261\273\345\272\223/sms.md" @@ -106,6 +106,12 @@ sms.deleteMsg(index [, delmode]) 返回一个整型值,`0`表示删除成功,`-1`表示删除失败。 + + +> 注意:BC25/EC800G不支持可选参数的使用 + + + **示例:** ```python -- Gitee