Openharmony重要特性之一浅析分布式软总线

这篇具有很好参考价值的文章主要介绍了Openharmony重要特性之一浅析分布式软总线。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OH分布式软总线

  • 概述
    • 简介
    • 分布式软总线的特征
    • 官方说明
    • 目录结构与代码说明
  • 分布式软总线使用
    • 使用说明
    • 接口说明
    • 发现
      • 发现的接口
      • C++示例说明
    • 组网
      • 组网的接口
      • C++示例说明
    • 传输
      • 软总线传输关键流程
      • 传输的接口
  • 注意事项

一、概述

1.1 简介

​ 分布式软总线能做什么?
​ 1.1 通过共享一个局域网(wifi或蓝牙),可以发现设备。
​ 通过设备名等关键字可以查找到在共享的网络中所有设备,并进行通信。关键是不需要预告知晓对方设备的IP地址与端口。
​ 1.2 支持消息、字节、流、文件的数据传输能力。
​ 实际应用中,可以将文字、图片、文件或音视频流进行传输。
​ 1.3 支持富设备、小型设备、轻量设备。
​ 实际应用中,可以做到跨设备间使用。笔者在L0与L2、L2与L2等两类设备间测试通过。
现实中多设备间通信方式多种多样(wifi、NFC、蓝牙等),不同的通信方式使用差异大,导致通信问题多;同时还面临设备间通信链路的整合共享和冲突无法处理等挑战。分布式软总线实现近场设备间统一的分布式通信管理能力,提供不区分链路的设备间发现连接、组网和传输能力,主要功能如下:

  • 发现连接:提供基于wifi、蓝牙等通信方式的设备发现连接能力
  • 设备组网:提供统一的设备组网和拓扑管理能力,为数据传输提供已组网设备信息
typedef enum {
    /* Passive 主动*/
    DISCOVER_MODE_PASSIVE = 0x55,
    //lite device support the passive mode only.
    /* Proactive 被动*/
    DISCOVER_MODE_ACTIVE = 0xAA
} DiscoverMode;
//媒介
typedef enum {
    /* Automatic medium selection */
    AUTO = 0,
    /* Bluetooth*/
    BLE = 1,
    /* wifi*/
    COAP = 2,
    /* USB*/
    USB = 3,
    /* HiLink*/
    COAP1 = 4,
    MEDIUM_BUTT
} ExchangeMedium;
  • 数据传输:提供数据传输通道,支持消息、字节数据传输等能力

    业务方通过使用分布式软总线提供API实现设备间的高速通信,不用关心通信细节,进而实现业务平台的高效部署与运行能力。

//设备类型 DeviceType
typedef enum {
    /* Smart speaker */
    SMART_SPEAKER = 0x00,
    /* PC */
    DESKTOP_PC,
    /* LAPTOP */
    LAPTOP,
    /* Mobile phone */
    SMART_PHONE,
    /* Table */
    SMART_PAD,
    /* Smart watch */
    SMART_WATCH,
    /* Smart car */
    SMART_CAR,
    /* Kids' watch */
    CHILDREN_WATCH,
    /* Smart TV */
    SMART_TV,
} DeviceType;
typedef enum {
    CONNECT_ADDR_WLAN = 0, /**< WLAN wifi(无线局域网)*/
    CONNECT_ADDR_BR= 0, /**< BR 基础速率*/
    CONNECT_ADDR_BLE = 0, /**< BLE 低功耗蓝牙*/
    CONNECT_ADDR_ETH = 0, /**< Ethernet 以太网*/
    CONNECT_ADDR_MAX = 0, /**< Invalid type*/
} ConnectionAddrType;

1.2 分布式软总线的特征

  • 自动发现/即连即用
  • 高带宽
  • 低时延
  • 高可靠
  • 开放/标准

软总线提出了自动发现的概念,实现用户零等待的自发现体验,附件同账号的设备自动发现无需等待。

多设备互联后的组技术:软总线组网-异构网络组网,比如:蓝牙-wifi。

设备上线后会向网络层注册,同时网络层会与设备建立通道连接,实时检测设备的变换。

网络层负责管理设备的上线下线变换,设备间可以监听自己感兴趣的设备,设备上线后可以立即与其建立连接,实现零等待。

软总线可以自动构建一个逻辑全连接网络,用户或者业务开发者无需关心组网方式与物理协议。对于软件开发者来说软总线异构组网可以大大降低开发成本。

1.3 官方说明

//foundation/communication/dsoftbus/README_zh.md

1.4 目录结构与代码说明

对照代码说明

二、分布式软总线使用

2.1 使用说明

  • 使用跨设备通信时,必须添加权限ohos.permission.DISTRIBUTED_DATASYNC,该权限类型为 _*dangerous*_

L2与L1设备通过检查softbus_trans_permission.json文件判断应用的传输权限,L0不用设置权限

  • 设备主动发现手机时,手机需打开超级终端的允许被“附近设备”发现开关(设置-超级终端-我的设备-允许被发现-附近设备),才能被设备发现。
  • 包含头文件
# C头文件
//foundation/communication/dsoftbus/interfaces/kits/discovery/discovery_service.h
#C++头文件
//foundation/communication/dsoftbus/sdk/discovery/ipc/include/disc_server_proxy.h
  • 包含依赖包
# C依赖包
deps = [
    "//foundation/communication/dsoftbus/adapter:softbus_adapter",
    "//foundation/communication/dsoftbus/core/common:softbus_utils",
]
# C++依赖包
deps = [
    "//foundation/communication/dsoftbus/sdk:softbus_client",
    "//foundation/communication/dsoftbus/core/common:softbus_server",
]

2.2 接口说明

分布式软总线接口分为三类文章来源地址https://www.toymoban.com/news/detail-639928.html

  • 发现
  • 组网
  • 传输

2.3 发现

2.3.1 发现接口
  1. C接口
//foundation/communication/dsoftbus/interfaces/kits/discovery/discovery_service.h
// 发布回调
typedef struct {
    void (*OnPublishSuccess)(int publishId); //发布成功时回调
    void (*OnPublishFail)(int publishId, PublishFailReason reason);//发布失败时回调
} IPublishCallback;
// 发布服务
int PublishService(const char *pkgName, const PublishInfo *info, const IPublishCallback *cb);
// 注销服务
int UnPublishService(const char

到了这里,关于Openharmony重要特性之一浅析分布式软总线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式账本-区块链核心技术之一

    id:BSN_2021 公众号:BSN研习社 区块链是一种多项计算机技术的集成融合创新。在这众多来源中,最重要的一个是分布式账本技术。 分布式账本指的是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点记录的是完整的账目,因此它们都可以参与监督交易合法性,

    2024年02月15日
    浏览(56)
  • pytest-xdist分布式测试原理浅析

    目录 pytest-xdist执行流程: pytest-xdist 模块结构: pytest-xdist分布式测试原理: pytest-xdist源码浅读: 解析命令行参数:pytest-xdist 会解析命令行参数,获取用户指定的分发模式、进程数、主机列表等信息。 加载测试用例:pytest-xdist 会加载所有的 pytest 测试用例,包括在当前目录

    2024年02月13日
    浏览(34)
  • 分布式数据库 Join 查询设计与实现浅析

    相对于单例数据库的查询操作,分布式数据查询会有很多技术难题。 本文记录 Mysql 分库分表 和 Elasticsearch Join 查询的实现思路,了解分布式场景数据处理的设计方案。 文章从常用的关系型数据库 MySQL 的分库分表Join 分析,再到非关系型 ElasticSearch 来分析 Join 实现策略。逐步

    2024年02月08日
    浏览(38)
  • OpenHarmony 4.0 分布式软总线解析:设备发现与传输

    OpenHarmony 的分布式软总线子系统为 OpenHarmony 系统提供的通信相关的能力,包括:WLAN 服务能力、蓝牙服务能力、软总线、进程间通信 RPC(Remote Procedure Call)等通信能力。 其中主要包括: WLAN 服务:为用户提供 WLAN 基础功能、P2P(peer-to-peer)功能和 WLAN 消息通知的相应服务,

    2024年04月23日
    浏览(43)
  • OpenHarmony实现一次开发多端部署分布式新闻客户端页面

    本篇Codelab基于栅格布局、设备管理和多端协同,实现一次开发,多端部署的分布式新闻客户端页面。主要包含以下功能: 展示新闻列表以及左右滑动切换新闻Tab。 点击新闻展示新闻详情页。 点击新闻详情页底部的分享按钮,发现周边处在同一无线网络下的设备并进行可信认

    2024年03月26日
    浏览(41)
  • 分布式操作系统的必要性及重要性

    总有人在各个平台留言或者私信问LAXCUS分布式操作系统的各种问题,尤其是关于分布式操作系统的应用市场、价值、意义之类的问题。我们团队做LAXCUS分布式操作系统,也不是头脑凭空发热,是基于我们之前的大量产品设计、经验逐渐一步步做起来。当今已经进入智能时代,

    2024年02月08日
    浏览(52)
  • OpenHarmony分布式软总线API调用测试工具 softbus_tool使用说明

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

    2024年04月14日
    浏览(43)
  • 【Express.js】基于业务特性的分布式结构

    上节的mvc架构,把所有不同模块的同层文件都放在一个目录下 我们也可以将你的项目结构按照业务模块进行划分,每一个模块内可以再按mvc分层,或者不分,这样子把不同模块独立出来的就叫做分布式结构(dcs) server.js是整个应用的入口文件,user,good和order分别创建了三个e

    2024年02月16日
    浏览(44)
  • 芯片设计重要工具—— IBM LSF 分布式高性能计算调度平台

    IBM Spectrum® LSF® Suites 是面向分布式高性能计算 (HPC) 的工作负载管理平台和作业调度程序。基于 Terraform 的自动化现已可用,该功能可在 IBM Cloud® 上为基于 IBM Spectrum LSF 的集群供应和配置资源。 借助我们针对任务关键型 HPC 环境的集成解决方案,提高用户生产力和硬件使用,

    2024年01月19日
    浏览(49)
  • 开源分布式计算框架 Apache Beam 中的一些重要概念和术语

    作者:禅与计算机程序设计艺术 Apache Beam(波) 是一个开源的分布式计算框架,主要用于数据处理管道的编写。它具有统一的编程模型,能够运行在多种执行环境中,包括本地机器、云计算平台和大数据集群。Beam 提供了许多内置的功能和扩展点,包括基于 MapReduce 的批处理、

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包