OpenHarmony分布式软总线API调用测试工具 softbus_tool使用说明
softbus_tool 是 OpenHarmony 分布式软总线 API 调用测试工具,文件结构如下图所示。
softbus_tool 能够将软总线 interfaces 目录下的一些常用接口集中起来,供设备间搭建一些场景时使用(比如设备绑定、BR 组网,BLE 组网, 指定 P2P 链路传输等)。

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 程序
出现如下图,即为执行成功。

3.WiFi 组网
确认 A,B 两端设备均已打开 wifi 开关,且已连接同一 WiFi 网络。
- A 端执行 0 - PublishService,发布服务。
- B 端执行 2 - StartDiscovery,订阅服务。
- B 端执行 4 - JoinLNN,组网。



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


5.File 传输指定 p2p 链路
开始传输前,设备间需要 WiFi 组网成功。
- A 端执行 14 - CreateSessionServer,创建会话服务。
- B 端执行 14 - CreateSessionServer,创建会话服务。

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


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

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

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




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

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

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:
如何快速入门:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- ……

开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……

基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

相关文章:
OpenHarmony分布式软总线API调用测试工具 softbus_tool使用说明
softbus_tool 是 OpenHarmony 分布式软总线 API 调用测试工具,文件结构如下图所示。 softbus_tool 能够将软总线 interfaces 目录下的一些常用接口集中起来,供设备间搭建一些场景时使用(比如设备绑定、BR 组网,BLE 组网ÿ…...
Go第三方框架--ants协程池框架
1. 背景介绍 1.1 goroutine ants是站在巨人的肩膀上开发出来的,这个巨人是goroutine,这是连小学生都知道的事儿,那么为什么不继续使用goroutine(以下简称go协程)呢。这是个思考题,希望讲完本文大家可以有个答案。 go协程只涉及用…...
【原创】springboot+vue个人财务记账管理系统设计与实现
个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…...
MySQL基础练习题:习题2-3
这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。上期帮助大家建立数据库,导入数据,接下来让我们继续练习。 …...
超图SuperMap-Cesium,地形图层,可以渲染一个或多个地形(地形可缓存DEM,TIN方式),webGL代码开发(2024-04-08)
1、缓存文件类型TIN格式,TIN的地形sct只能加一个 const viewer new Cesium.Viewer(cesiumContainer); viewer.terrainProvider new Cesium.CesiumTerrainProvider({isSct: true, // 是否为iServer发布的TIN地形服务,stk地形设置为falserequestWaterMask : true,…...
PCB学习记录---原理图
一、注释 NC:no connect,默认不连接 NF: no fix,默认不安装 0R: 0R的电阻,即可以短路 二、看图流程 1、看标题,了解功能 2、浏览有几个模块 3、找芯片对应的数据手册,了解芯片功能和使用 例如CH224ÿ…...
结构型模式--3.组合模式【草帽大船团】
1. 好大一棵树 路飞在德雷斯罗萨打败多弗朗明哥之后,一些被路飞解救的海贼团自愿加入路飞麾下,自此组成了草帽大船团,旗下有7为船长,分别是: 俊美海贼团75人 巴托俱乐部56人 八宝水军1000人 艾迪欧海贼团4人 咚塔塔海…...
网络基础三——其他周边问题
3.1ARP原理 ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议; 以广播的形式(主机号填成全1)构建Mac帧,发送ARP请求包,告诉所有在局域网的主机我的IP地址和Mac帧,与目的IP相同的主…...
学习周报:文献阅读+Fluent案例+水力学理论学习
目录 摘要 Abstract 文献阅读:物理信息的神经网络与湍流传质的非封闭机制模型相结合 文献摘要 提出问题 提出方案 实验设置 所需方程介绍 雷诺时均方程(RANS) K-epsilon两方程模型 神经网络框架 DNN部分 损失函数定义 PINN部分…...
Redis(持久化 -- RDB AOF)
持久化 通常我们认为持久化为: 重启进程/重启主机之后, 数据仍然存在不丢失 把数据存储在硬盘上 – 持久 把数据存储在内存中 – 不持久 Redis 持久化 redis 是一个内存数据库, 也就是说本身是不持久的(但是快[效率高]), 于是 Redis 提供了持久化机制 — RDB 和 AOF 二者都是对…...
LDR6328助力Type-C普及,便捷充电,绿色生活更精彩
随着科技的进步和全球统一接口的需求,Type-C接口正日益受到青睐。越来越多的设备正选择采纳这一先进的接口设计,它的普及无疑在改善着我们的日常生活。 在过往,许多小功率设备如小风扇、蓝牙音箱、桌面台灯以及家用加湿器等,都普遍…...
redis主从复制、哨兵模式、集群
文章目录 redis主从复制主从复制的配置**安装Redis**配置主服务器配置从服务器验证主从效果 哨兵模式哨兵的工作机制哨兵模式的搭建启动哨兵 集群分布式集群的搭建 redis主从复制 Redis主从复制(Redis replication)是Redis提供的一种数据备份和故障转移…...
shell免登陆脚本
#!/bin/bash ## 脚本接收的参数,也就是要互相配置 SSH 免密登录的服务器列表参数 BASE_HOST_LISTip ## 密码,默认用户是当前运行脚本的用户,比如 root 用户 ## 这里改成你的用户对应的密码 BASE_PASSWORD"password" ## shell 函…...
基于springboot+vue+Mysql的职称评审管理系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
GitLab教程(一):安装Git、配置SSH公钥
文章目录 序一、Git安装与基本配置(Windows)下载卸载安装基本配置 二、SSH密钥配置 序 为什么要使用代码版本管理工具: 最近笔者确实因为未使用代码版本管理工具遇到了一些愚蠢的问题,笔者因此认为代码版本管理工具对于提高团队…...
【算法】无序数组的两数之和 - map标记
题目 在一个无序数组中找到两个数,两个数之和为给定的一个数,返回两个数在数组中的下标。 原理 遍历数组,遍历到一个数字的时候,记录下这个数及其下标,遍历时判断给定数减去这个数为key在map中是否存在,…...
Prime (2021): 2
前言 这个靶机有亿点难,收获很多。打靶的时候,前面很顺,到创建ssh公钥之后就一点不会了。 1 01 arp扫描,发现有一个130,再查看端口 有22,80,129,445,10123 dirb扫描目录 这…...
React 状态管理:安全高效地修改对象属性的 3 种方法
在 React 应用程序中,状态(state)是驱动整个应用程序的核心。当应用程序的状态发生变化时,React 会自动重新渲染相应的组件,以确保用户界面的更新。 与数组状态一样,对象状态在 React 中也需要特别处理。直接修改对象属性是不被允许的,因为 React 的不可变性原则要求我们创建一…...
python实现pdf的页面替换
利用第三方库PyPDF2,下面例子中进行的是将 origin.pdf 的第17页替换为 s17.pdf 的第1页: import PyPDF2def replace_pages(original_pdf_path, replacement_pages):with open(original_pdf_path, rb) as original_file:original_pdf PyPDF2.PdfReader(…...
[AIGC] Java List和Map常用API以及其Python实现方式对照介绍
Java和Python作为当今非常浅显易懂的编程语言,其数据结构中对于List和Map(Java)或List和Dict(Python)的操作无疑是每个程序员都非常必需的知识。本文将介绍在Java中对List和Map常用的一些操作,并给出在Pyth…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
