[经验分享] OpenHarmony分布式软总线API调用测试工具 softbus_tool使用说明 原创 精华

陈美汝 显示全部楼层 发表于 2024-3-28 15:46:17

softbus_tool是OpenHarmony分布式软总线API调用测试工具,文件结构如下图所示。

softbus_tool能够将软总线interfaces目录下的一些常用接口集中起来,供设备间搭建一些场景时使用(比如设备绑定、BR组网,BLE组网, 指定P2P链路传输等)。

image.png

softbus_tool一般的使用流程为:

1.使用编译命令生成可执行文件;

2.将生成的可执行文件推送到设备;

3.在hdc shell界面执行,会显示 Softbus Tool Command List命令列表,选择接口前面的序号即可执行相应的接口,有些接口在执行时,需要用户输入参数来实现不同的场景, 这些在下文演示部分做了示例。

下面我们来看一下具体的使用流程。


编译说明

1.将softbus_tool目录代码下载到本地,拷贝到OpenHarmony源码 \foundation\communication\dsoftbus\tools路径

2.L2 修改步骤:

\foundation下添加:

修改前为:deps = [ ":SoftBusDumpDeviceInfo" ]

修改后为:deps = [ ":SoftBusDumpDeviceInfo", "softbus_tool:softbus_tool" ]

3.单编softbus_tool编译命令:

RK3568:/build.sh --product-name rk3568 --ccache --build-target softbus

4.编译结果输出路径为:

/out/rk3568/communication/dsoftbus/

使用流程

1.绑定

设备间在组网前,需要绑定,绑定成功才可以进行后续组网,传输功能。

1.启动A,B两端设备,打开设置->WLAN,连接同一WiFi;

2.A端打开计算器,点击右上角“向上→”图标,B端设备上会弹出6位数字的验证图片;

3.在A端输入6位验证码;

4.绑定成功;

2.执行softbus_tool程序

出现如下图,即为执行成功。

image.png

3.WiFi组网

确认A,B两端设备均已打开wifi开关,且已连接同一WiFi网络。

  1. A端执行 0 - PublishService,发布服务。
  2. B端执行 2 - StartDiscovery,订阅服务。
  3. B端执行 4 - JoinLNN,组网。

image.png

image.png

image.png

4.WiFi退网
  1. A端(或B端)执行 6 - GetLocalDeviceInfo,查看本端NetworkId值。
  2. B端(或A端)执行 5 - LeaveLNN,退网。

image.png

image.png

5.File传输指定p2p链路

开始传输前,设备间需要WiFi组网成功。

  1. A端执行14 - CreateSessionServer,创建会话服务。
  2. B端执行14 - CreateSessionServer,创建会话服务。

image.png

  1. A端(或B端)选择为文件发送端,执行18 - SetFileSendListener, 注册文件发送监听。
  2. B端(或A端)选择为文件接收端,执行19 - SetFileRecvListener, 注册文件接收监听。

image.png

image.png

  1. B端(或A端)执行 6 - GetLocalDeviceInfo,查看本端NetworkId值。

image.png

  1. A端(或B端)执行16 - OpenSession,打开会话。

image.png

  1. A端(或B端)执行23 - SendFile,发送文件。

image.png

image.png

image.png

image.png

  1. A端(或B端)执行17 - CloseSession,关闭会话。

image.png

  1. A端执行15 - RemoveSessionServer,删除会话服务。
  2. B端执行15 - RemoveSessionServer,删除会话服务。

image.png

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论9

juddvinet

沙发 发表于 2024-4-1 11:00:11
你好,文章中提到“修改后为:deps = [ ":SoftBusDumpDeviceInfo", "softbus”能提供完成的修改字段或者文件吗?现在遇到编译失败的问题、

shixiaocheng

发表于 2024-4-1 14:19  IP属地: - 中国福建省厦门市 中国电信IDC

回复 juddvinet: deps = [ ":SoftBusDumpDeviceInfo", "softbus_tool:softbus_tool"]

juddvinet

发表于 2024-4-1 15:53  IP属地: 广东省广州市

回复 shixiaocheng: !!请指正一下我的操作错误,感谢

我的BUILD.gn已经修改
group("tool") {
  deps = [ ":SoftBusDumpDeviceInfo", "softbus_tool:softbus_tool"]
}

编译命令是:(在SDK根目录)
sudo ./build.sh --product-name rk3568 --ccache --build-target softbus_tool

提示的错误是
[OHOS INFO] ERROR at //foundation/communication/dsoftbus/tools/BUILD.gn:31:38: Unable to load "/home/ubuntu/openharmony/4.0/SDK/foundation/communication/dsoftbus/tools/softbus_tool/BUILD.gn".
[OHOS INFO]   deps = [ ":SoftBusDumpDeviceInfo", "softbus_tool:softbus_tool"]
[OHOS INFO]                                      ^--------------------------
[OHOS INFO] e2fsprogs installed successfully

shixiaocheng

发表于 2024-4-1 17:22  IP属地: - 中国福建省厦门市 中国电信IDC

回复 juddvinet: 全量编译试试

juddvinet

发表于 2024-4-2 09:37  IP属地: - 中国广东省广州市 中国电信IDC

回复 shixiaocheng: 您好,感谢您的回复。
我通过清理编译文件后,重新全量编译也是会提示之前的错误。(错误内容与上段粘贴一致)
从错误内容里面分析 ,我的SDK 的 foundation/communication/dsoftbus/tools/ 目录下面没有softbus_tool 这个文件夹。只有一个device_info的文件夹。

shixiaocheng

发表于 2024-4-2 11:11  IP属地: - 中国福建省厦门市 中国电信IDC

回复 juddvinet: 将 softbus_tool 目录代码下载到本地,拷贝到 OpenHarmony 源码 \foundation\communication\dsoftbus\tools路径 下
不会是没有下载代码吧,这个代码要自己去gitee上下载的

陈美汝

发表于 2024-4-2 11:17  IP属地: - 中国 中国电信IDC

回复 juddvinet: 不好意思写文章时编辑错误误删了 导致不完成 已修改

juddvinet

发表于 2024-4-2 15:15  IP属地: - 中国广东省广州市 中国电信IDC

回复 shixiaocheng: 可以分享一下代码吗?子啊 https://gitee.com/openharmony/communication_dsoftbus.git 这个仓库里面没有找到softbus_tool。

shixiaocheng

发表于 2024-4-3 09:46  IP属地: - 中国福建省厦门市 中国电信IDC
【8 条回复】

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部