openharmony—4.1 softbus_tool 工具编译使用测试笔记(持续更新)

 相关资料:

1.communication_dsoftbus: 暂无描述 - Gitee.com

2.dsoftbus_tool: OpenHarmony 分布式软总线样例

3.OpenAtom OpenHarmony

4.OpenAtom OpenHarmony

编译该demo之前需要大家搭建拉取openharmony源码,搭建开发环境,同时全量编译成功,还需要安装hdc工具,具体可以看这几篇文章openharmony—release—4.1开源鸿蒙源码编译踩坑记录_[ohos error] code: 4000 [ohos error] [ohos error] -CSDN博客

openharmony—release—4.1开发环境搭建(踩坑记录)_openharmony环境搭建-CSDN博客

我们将仓库,拉取下来

dsoftbus_tool: OpenHarmony 分布式软总线样例

目录如下

softbus_tool目录如下

1.复制文件夹

我们将softbus_tool文件夹放入 openharmony源码目录/foundation/communication/dsoftbus/tests/

2.编辑GN

打开OpenHarmony/foundation/communication/dsoftbus/core/BUILD.gn

增加

"../tests/softbus_tool:softbus_tool"

3.编译

进入openharmony目录,使用如下命令编译

sudo ./build.sh --product-name rk3568 --ccache --build-target dsoftbus

3.1 解决编译报错

报错

原因为在hilog在4.1中的需要增加依赖才可以使用

重新编译

3.2 编译成功

编译结果在  鸿蒙源码/out/rk3568/communication/dsoftbus/softbus_tool

3.3 清理之前编译结果

sudo rm -rf ./out/rk3568

3.4 编译64位版本

sudo ./build.sh --product-name rk3568 --target-cpu arm64 --ccache --build-target dsoftbus

编译失败,因为当前系统不支持64位

3.5 加快编译的命令

第一次编译完成之后,我们可以直接使用之前的GN,不需要每次都重新构建,所以可以直接使用如下命令

sudo ./build.sh --product-name rk3568 --ccache --build-target dsoftbus --fast-rebuild

4.将编译后的结果放置到开发板上

这里我们需要先将文件挪到window上,然后使用hdc工具将文件发送到开发板上

相关资料:

OpenHarmony 开源鸿蒙北向开发——hdc工具安装_鸿蒙hdc下载-CSDN博客

OpenHarmony 开源鸿蒙北向开发——hdc工具使用及常用命令(持续更新)-CSDN博客

我这里是在鸿蒙系统下./data/创建了test目录,然后使用hdc工具传输到该目录,同时我直接在softbus_tool目录下打开的cmd,所以直接使用如下命令将文件传送至开发板

hdc file send softbus_tool ./data/test

然后我们使用hdc工具进入openharmony的shell,

hdc shell

之后进入鸿蒙后台可以看见该文件,

然后我们需要修改权限,使用如下命令

chmod 777 ./data/test/softbus_tool

5.运行

我这里直接在hdc工具的shell下运行该文件,运行成功

5.1 运行报错

但是依照softbus_tool仓库的README运行时,产生报错

而我使用使用串口后台运行是这样提示的

5.2 查看日志

我们这边先运行工具,但是不输入命令

然后打开另一个hdc shell

使用如下命令,查看所有进程

ps -ef | grep "softbus"

找到softbus tol的进程PID,即2269

使用hilog查看该pid日志

hilog -P 2235

同时在原先的shell下输入命令操作softbus_tool工具,日志如下

仍旧报错

而在hilog这边

查了下资料发现softbus tool仓库的README是基于openharmony3.1编写的,与openharmony4.1不同。

相关资料: communication_dsoftbus: 暂无描述 - Gitee.com

我们应该使用如下几个命令

******Softbus Tool Command List****** *

04 - JoinLNN * *

05 - LeaveLNN * *

08 - PublishLNN * *

09 - StopPublishLNN * *

10 - RefreshLNN * *

11 - StopRefreshLNN * *

20 - SendMessage * *

21 - SendBytes * *

22 - SendStream * *

23 - SendFile * *

************************************

5.3 运行报错

尝试发现,无法进入回调函数,且卡死,将源码中的信号量部分注释掉,发现不再卡死

5.3 运行报错

尝试发现,无法进入回调函数,将源码中的信号量部分注释掉,发现可以了

重新编译,发现运行可以了,这里我复制了一份softbus tool作为softbus test,编译后在开发板上运行

发现可以了

5.4 解决问题

重新编译,发现运行可以了。

这里为了方便操作,我写了一个自己的版本softbus_test,同样的步骤运行后在开发板上运行成功

于是开始解决回调函数的问题,

测试发现pub,回调函数的确进不来,也没有报错,奇奇怪怪,但是使用wireshark发现,是有报文向外发送的

于是先不抓这些,先测试一下所有功能。

5.5 错误码表

这边为了知道错误码到底是啥,于是写了一个函数,将鸿蒙源码/foundation/communication/dsoftbus/interfaces/kits/common/softbus_error_code.h中的SoftBusErrNo枚举对应的16进制值都打印了出来,字数太多,我放在另一个文章中,我这边是适配openharmony 4.1 release版本的,仅限于参考

Openharmony4.1 Release——软总线部分错误码表-CSDN博客

6.测试

6.1 发布服务

报错如上,这里不赘述了

6.2 扫描服务

成功扫描到设备

6.3 组网

报错

查了一下这个报错是认证失败,也许是我这边没有两个一样的设备进行绑定的原因,尝试解决。

6.3.1 解决pkgName的问题

阅读仓库我们可以发现,很多函数中都有一个pkgName参数

,测试后发现,该参数不能够重复,即该参数不能注册使用多个服务,比如说已经在发布服务中使用了,就不能在扫描服务中再给该参数使用同样的值了。

所以我这边在加入服务中,创建了一个新的值

此时才进入下一阶段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚秋大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值