NetTools API
简介
NetTools组件为OneOS的各类网络组件提供公共的调试功能,目前只是为Molink组件的无线通讯模组提供接口信息查询、连通性测试ping、socket信息及状态查询等功能,后续会根据应用需要不断丰富NetTools组件的功能。NetTools组件目前主要对外提供ifconfig、ping、socketstat三个命令,也提供了对应的API供应用直接调用,需要说明的是这些接口都是基于Molink统一API实现,即依赖于Molink组件的相关功能。
NetTools API列表
接口名称 | 接口说明 |
---|---|
module_show_info | 查询无线模组信息接口 |
module_ping | 无线模组ping测试接口 |
module_show_socket_stat | 查看无线模组BSD socket信息和状态接口 |
NetTools API说明
module_show_info
模组对应的mo对象创建后,即创建了一个无线接口,如果该模组适配层实现了ifconfig相关信息查询接口,则同时配置NetTools组件和模组的IFCONFIG功能生效,即可使用ifconfig命令获取无线模组的相关接口信息,如接口name、IMEI、ICCID、CSQ、IPv4地址。用户可根据自己实际应用需要,增删改查相关信息。
void module_show_info(void);
参数 | 说明 |
---|---|
void | void |
返回 | 说明 |
无 | 无 |
使用示例
A7600C1已适配实现ifconfig命令查询相关信息的接口,配置启用ifconfig operates
(Top) → Components→ Network→ Molink→ Enable IoT modules support → Module→ 4G CAT1 Modules Support→ A7600X → A7600X Config
OneOS Configuration
[*] Enable A7600X Module Object Auto Create
(uart2) A7600X Interface Device Name (NEW)
(115200) A7600X Interface Device Rate (NEW)
(1500) The maximum length of AT command data accepted (NEW)
-*- Enable A7600X Module General Operates (NEW)
-*- Enable A7600X Module Network Service Operates (NEW)
[*] Enable A7600X Module Ping Operates (NEW)
[*] Enable A7600X Module Ifconfig Operates (NEW)
-*- Enable A7600X Module Network TCP/IP Operates (NEW)
[*] Enable A7600X Module BSD Socket Operates
NetTools组件配置使能ifconfig命令
(Top) → Components→ Network→ Tools
OneOS Configuration
[*] Enable AT module network debug functions
[*] Enable module ifconfig features (NEW)
[*] Enable module ping features (NEW)
(50) The maximum times of module ping cmd config (NEW)
[*] Enable module socket stat features (NEW)
退出配置工具并保存配置,重新生成工程并编译OneOS bin包下载运行,调用ifconfig命令即可获取A7600C1模组的相关接口信息,如下:
sh />ifconfig
LIST AT MODULE INFORMATION
--------------------------------------------------------------------------------
Module Name : a7600x
IMEI Number : 864424041943660
ICCID Number : 89860446101980587174
Signal Quality : rssi(31), ber(99)
IPv4 Address : 100.124.32.4
--------------------------------------------------------------------------------
sh />
module_ping
模组对应的mo对象创建后,如果该模组适配层实现了ping测试功能接口,则同时配置NetTools组件和模组的PING功能生效,即可使用ping命令测试无线接口与其他网络的连通性,配置过程参考ifconfig。
void module_ping(char *target_name, os_uint32_t times, os_uint16_t size, os_uint32_t timeout);
参数 | 说明 |
---|---|
target_name | ping目标地址,域名或IPv4地址,如www.baidu.com、114.114.114.114 |
times | ping包总次数,默认命令单次配置ping包个数为50个,用户可以配置修改 |
size | ping每个包长度,默认64字节,可配置,支持范围由模组适配层进行校验 |
timeout | 每个包的超时时间,默认是5000ms,可配置,支持范围由模组适配层进行校验 |
返回 | 说明 |
无 | 无 |
使用示例
A7600C1已适配实现ping命令测试模组接口与其他网络连通性,配置启用A7600X的ping operates和使能NetTools的ping features,执行ping命令即可。
ping命令的参数配置格式为:ping
sh />ping
Please input: ping <host address> <times[1,50]> <pkg_size> <timeout(sec)>
sh />
sh />ping www.baidu.com 4 64 10
[0] 64 bytes from 183.232.231.174 icmp_seq=0 ttl=55 time=215 ms
[1] 64 bytes from 183.232.231.174 icmp_seq=1 ttl=55 time=85 ms
[2] 64 bytes from 183.232.231.174 icmp_seq=2 ttl=55 time=125 ms
[3] 64 bytes from 183.232.231.174 icmp_seq=3 ttl=55 time=85 ms
Ping statistics for 183.232.231.174 :
Packets: Sent = 4, Received = 4, Lost = 0, Mintime = 85 ms, Maxtime = 215 ms
sh />
sh />ping 8.8.8.8 4 64 10
[0] 64 bytes from 8.8.8.8 icmp_seq=0 ttl=108 time=190 ms
[1] 64 bytes from 8.8.8.8 icmp_seq=1 ttl=108 time=115 ms
[2] 64 bytes from 8.8.8.8 icmp_seq=2 ttl=110 time=110 ms
[3] 64 bytes from 8.8.8.8 icmp_seq=3 ttl=108 time=110 ms
Ping statistics for 8.8.8.8 :
Packets: Sent = 4, Received = 4, Lost = 0, Mintime = 110 ms, Maxtime = 190 ms
sh />
module_show_socket_stat
模组对应的mo对象创建后,如果该模组适配层实现了Net TCP/IP功能接口并启用标准的BSD socket接口,则同时配置NetTools组件socket stat features功能生效,即可使用socketstat命令查看当前使用模组的BSD socket连接信息和状态,配置过程参考ifconfig。
void module_show_socket_stat(void);
参数 | 说明 |
---|---|
void | void |
返回 | 说明 |
无 | 无 |
使用示例
A7600C1已适配实现Net TCP/IP相关接口和启用BSD socket功能,配置启用A7600X的TCP/IP operates和BSD socket operates,同时使能NetTools的socket stat features,执行socketstat命令即可查看A7600C1模组当前socket的连接信息和状态。
sh />socketstat /* 初始状态 */
The max socket connections supported by module a7600x is 10
The connected socket status information list
----------------------------------------------------------------------------------------------------
index socket type ip address port status
1 Unknown 0.0.0.0 0 Not create
2 Unknown 0.0.0.0 0 Not create
3 Unknown 0.0.0.0 0 Not create
4 Unknown 0.0.0.0 0 Not create
5 Unknown 0.0.0.0 0 Not create
6 Unknown 0.0.0.0 0 Not create
7 Unknown 0.0.0.0 0 Not create
8 Unknown 0.0.0.0 0 Not create
9 Unknown 0.0.0.0 0 Not create
10 Unknown 0.0.0.0 0 Not create
----------------------------------------------------------------------------------------------------
sh />
sh />socketstat /* 应用层分别建立5个TCP连接和UDP连接后再执行命令,为信息安全手动修改IP和端口信息 */
The max socket connections supported by module a7600x is 10
The connected socket status information list
----------------------------------------------------------------------------------------------------
index socket type ip address port status
1 0 TCP 121.89.xxx.xxx 6xxx Connect OK
2 1 TCP 121.89.xxx.xxx 6xxx Connect OK
3 2 TCP 121.89.xxx.xxx 6xxx Connect OK
4 3 TCP 121.89.xxx.xxx 6xxx Connect OK
5 4 TCP 121.89.xxx.xxx 6xxx Connect OK
6 5 UDP 121.89.xxx.xxx 6xxx Connect OK
7 6 UDP 121.89.xxx.xxx 6xxx Connect OK
8 7 UDP 121.89.xxx.xxx 6xxx Connect OK
9 8 UDP 121.89.xxx.xxx 6xxx Connect OK
10 9 UDP 121.89.xxx.xxx 6xxx Connect OK
----------------------------------------------------------------------------------------------------
sh />
常见问题
Q): 为何ping包长度较大时返回超时或错误,且很难返回成功?
A): 网络质量差是常见原因,尤其是NB类型模组,收发大数据包常会有严重丢包现象,不建议大量数据收发,若要进行大包测试,建议把超时时间配置大一些。