OpenHarmony 4.0 分布式软总线解析:设备发现与传输

这篇具有很好参考价值的文章主要介绍了OpenHarmony 4.0 分布式软总线解析:设备发现与传输。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OpenHarmony 的分布式软总线子系统为 OpenHarmony 系统提供的通信相关的能力,包括:WLAN 服务能力、蓝牙服务能力、软总线、进程间通信 RPC(Remote Procedure Call)等通信能力。

其中主要包括:

  • WLAN 服务:为用户提供 WLAN 基础功能、P2P(peer-to-peer)功能和 WLAN 消息通知的相应服务,让应用可以通过 WLAN 和其他设备互联互通。
  • 蓝牙服务:为应用提供传统蓝牙以及低功耗蓝牙相关功能和服务。
  • 软总线:为应用和系统提供近场设备间分布式通信的能力,提供不区分通信方式的设备发现,连接,组网和传输功能。
  • 进程间通信:提供不区分设备内或设备间的进程间通信能力。

下面我们通过阅读 OpenHarmony 4.0 的源码,来解读一下 OpenHarmony 软总线当前的一个实现情况。


设备发现与传输模块

代码框架分析

分布式软总线组件主要代码目录结构如下:/foundation/communication/dsoftbus

├── adapter                # 操作系统适配层代码
├── core                   # 核心代码
│   ├── common          # 通用代码
│   ├── authentication      # 设备认证机制和设备知识库管理代码
│   ├── bus_center         # 组网代码
│   ├── connection         # 连接代码
│   ├── discovery          # 基于coap协议的设备发现代码
│   ├── transmission        # 传输代码
│   └── frame              # 框架代码
├── sdk                     # 运行业务进程代码
│   ├── bus_center          # 组网代码
│   ├── discovery           # 发现代码
│   ├── transmission         # 传输代码
│   └── frame               # 框架代码
└── components               # 依赖组件代码

其中 interfaces 是提高给外接的接口,比较重要。

软总线 进程,OpenHarmony,HarmonyOS,移动开发,分布式,harmonyos,鸿蒙开发,OpenHarmony,华为

softbus_bus_center.h: 声明软总线组网的函数和常量。函数可用于执行以下操作:在 LNN 中添加设备和从 LNN 中删除设备,监听在线设备、离线和信息更改事件。

重要函数说明:

  • JoinLNN: 此函数将当前设备加入指定设备所在的 LNN。

  • JoinMetaNode: 此函数将当前设备加入指定设备所在的 MetaNode。

  • LeaveLNN: 此函数将当前设备从 LNN 中移除。

  • LeaveMetaNode: 此函数将当前设备从 MetaNode 中移除。

  • RegNodeDeviceStateCb: 此函数注册设备状态更改的回调。

  • PubLNN: 此函数在 LNN 上发布服务。

  • SubLNN: 此函数在 LNN 上订阅服务。

softbus_common.h: 它定义了一些用于通信和服务管理的常量和结构体,例如:网络 ID 长度等常量。

  • ConnectionAddr 结构体定义了设备在 LNN(Logical Network)中的地址信息。它包括地址类型、连接地址和 peerUid 字段。地址类型指示了地址的类型,例如 WLAN、BR 或 BLE。连接地址包含设备的 MAC 地址、UDID 哈希值或 IP 地址。peerUid 字段是设备的 account hash code。

  • DiscoverMode 枚举定义了服务发布的模式。它包括被动模式(PASSIVE)和主动模式(ACTIVE)。被动模式表示设备等待其他设备发现它。主动模式表示设备主动搜索其他设备。

  • ExchangeMedium 枚举定义了服务发布的介质。它包括自动选择(AUTO)、BLE、WLAN、USB 和 HiLink。AUTO 表示所有可用的介质都会被调用。

  • ExchangeFreq 枚举定义了服务发布的频率。它包括低频(LOW)、中频(MID)、高频(HIGH)和超高频(SUPER_HIGH)。

  • DataBitMap 枚举定义了设备支持的功能。它包括 MeeTime、Profile Capability、HomevisionPic Capability、CastPlus、AA Capability、DVKIT Capability、DDMP Capability、Osd Capability 和 Share Capability。

  • PublishInfo 结构体定义了服务发布的信息。它包括服务 ID、发布模式、发布介质、发布频率、发布能力、能力数据、最大能力数据长度和是否主动范围。

  • SubscribeInfo 结构体定义了服务订阅的信息。它包括服务 ID、订阅模式、订阅介质、订阅频率、相同账户、唤醒远程设备、订阅能力、能力数据和最大能力数据长度。

  • ModeCycle 枚举定义了单个心跳周期参数。它包括高频周期(HIGH_FREQ_CYCLE)、中频周期(MID_FREQ_CYCLE)和低频周期(LOW_FREQ_CYCLE)。

  • ModeDuration 枚举定义了心跳保持活跃参数的持续时间。它包括默认持续时间(DEFAULT_DURATION)、正常持续时间(NORMAL_DURATION)和长持续时间(LONG_DURATION)。

  • DeviceType 枚举定义了设备类型。它包括智能音箱(SMART_SPEAKER)、PC、笔记本电脑(LAPTOP)、智能手机(SMART_PHONE)、平板电脑(SMART_PAD)、智能手表(SMART_WATCH)、智能汽车(SMART_CAR)、儿童手表(CHILDREN_WATCH)和智能电视(SMART_TV)。

  • DeviceInfo 结构体定义了设备信息。它包括设备 ID、帐户哈希码、设备类型、设备名称、在线状态、可用连接数、连接信息、能力位图数组、自定义数据和距离。

  • InnerDeviceInfoAddtions 结构体定义了内部使用的设备附加信息。它包括发现设备的介质。

discovery_service.h: 用于定义发现服务相关的函数和常量。发现服务用于发现和连接附近的设备。该头文件提供两种主要功能:发布服务和发现服务。

  • PublishService 函数用于发布服务。发布服务使得其他设备可以发现该服务。

  • UnPublishService 函数用于停止发布服务。停止发布服务使得其他设备无法发现该服务。

  • StartDiscovery 函数用于开始发现服务。发现服务用于发现附近的设备和获取其信息。

  • StopDiscovery 函数用于停止发现服务。停止发现服务使得设备不再发现其他设备。

session.h: 声明统一的数据传输接口。该文件提供数据传输能力,包括创建和删除会话服务器、打开和关闭会话、接收数据和查询基本会话信息。在发现多个附近的设备并联网后,这些接口可用于跨设备传输数据。

  • CreateSessionServer 和 RemoveSessionServer 用于创建和删除会话服务器。会话服务器是负责管理会话的进程。

  • OpenSession 用于与远程设备打开会话。会话 ID 用于标识会话。

  • CloseSession 用于与远程设备关闭会话。

  • SendBytes、SendMessage 和 SendStream 用于向会话发送数据。

  • GetMySessionName、GetPeerSessionName 和 GetPeerDeviceId 用于获取会话相关信息。

  • GetSessionSide 用于获取会话端。

  • SetFileReceiveListener、SetFileSendListener 和 SendFile 用于发送和接收文件。

通过包含这几个头文件则可以调用软总线的功能。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

软总线 进程,OpenHarmony,HarmonyOS,移动开发,分布式,harmonyos,鸿蒙开发,OpenHarmony,华为

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

软总线 进程,OpenHarmony,HarmonyOS,移动开发,分布式,harmonyos,鸿蒙开发,OpenHarmony,华为

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

软总线 进程,OpenHarmony,HarmonyOS,移动开发,分布式,harmonyos,鸿蒙开发,OpenHarmony,华为

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

软总线 进程,OpenHarmony,HarmonyOS,移动开发,分布式,harmonyos,鸿蒙开发,OpenHarmony,华为

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

软总线 进程,OpenHarmony,HarmonyOS,移动开发,分布式,harmonyos,鸿蒙开发,OpenHarmony,华为文章来源地址https://www.toymoban.com/news/detail-856313.html

到了这里,关于OpenHarmony 4.0 分布式软总线解析:设备发现与传输的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • config: 分布式配置中心 & bus: 消息总线

    每一个应用程序在运行时都需要相应的yml配置,分布式架构下多个服务器和应用服务面临着多个配置文件,在修改和发布上难度较大,需要有一个管理中心来统一管理,优雅的解决了配置的动态变更、持久化、运维成本等问题 流程: 分布式配置中心去远程仓库将创建好的yml文件

    2023年04月23日
    浏览(46)
  • 高级分布式系统-第11讲 现场总线技术

    高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 国际电工委员会制定的国际标准IEC61158对现场总线(fieldbus)的定义是: 安装在制造或过程区域的现场装置与控制室内的自动控制装置之间的数字式、串行、多点通信的数据总线。 新型的现场总线控制系统突破了DCS系统

    2024年01月20日
    浏览(41)
  • OceanBase 4.0:当我们谈单机分布式一体化架构时,我们在说什么?

    关于作者: 杨传辉,OceanBase CTO。2010年作为创始成员之一加入 OceanBase 团队,主导了 OceanBase 历次架构设计和技术研发,从无到有实现 OceanBase 在蚂蚁集团全面落地。同时,他也主导了两次 OceanBase TPC-C 测试并打破世界纪录,著有《大规模分布式存储系统:原理与实践》。目前

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

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

    2024年03月26日
    浏览(47)
  • ROS分布式演练,多台设备进行通信的配置

    前面我们做的操作都是在单个设备上进行,也就是分别开启多个终端,在不同终端上启动节点等相关操作,这里我们使用两台设备来控制, 一台虚拟机和一台无人车 (使用VNC Viewer连上去,也可以看做一台Linux虚拟机) VNC Viewer有兴趣的可以查阅:远程连接VNC-Viewer与安全传输Wi

    2024年02月05日
    浏览(39)
  • 通付盾升级链上会4.0,利用人工智能、区块链及数字身份技术构建“云链一体”数据要素分布式商业体系

    ​​ 数字时代的核心是技术与数据。 2020年,国务院《关于构建更加完善的要素市场化配置体制机制的意见》把数据与土地、劳动力、资本、技术并列成为五大生产要素之一。数据要素是数字时代的核心生产力,也是数字经济发展的基石。2022年12月国务院发布《关于构建数据

    2024年02月13日
    浏览(50)
  • 考虑设备动作损耗的配电网分布式电压无功优化(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 文献来

    2024年02月16日
    浏览(39)
  • IoT Thingsboard 微服务分布式 mqtt设备控制 架构与可用性分析

    欢迎star 该 github, IoT 服务器架构与设计 Blog🐵(后续该文章的优化修改只会在Github改) 本文来分析:【前端或Postman通过rpc API(http)控制mqtt设备】在分布式集群下的架构与流程 下图是官网的微服务架构图   问题:一般普通(没长连接+发布订阅)、理想而标准的微服务,应该

    2023年04月08日
    浏览(56)
  • Kafka:分布式流处理平台的深度解析

    在当今的大数据时代,数据处理和分析的重要性不言而喻。为了满足日益增长的数据处理需求,Apache Kafka 应运而生,成为了分布式流处理领域的佼佼者。本文将详细介绍 Kafka 的基本原理、核心组件、应用场景以及优势,帮助读者全面理解这一强大的数据处理工具。 一、Kaf

    2024年04月28日
    浏览(35)
  • Elasticsearch 分布式全文搜索引擎原理解析

    作者:禅与计算机程序设计艺术 Elasticsearch是一个开源的分布式全文搜索引擎,它可以近实时地存储、检索数据。本系列文章将从以下几个方面对Elasticsearch进行深入分析: Elasticsearch的主要组成部分 索引、类型和映射(Mapping) 搜索请求处理流程 查询缓存机制 Elasticsearch集群

    2024年02月05日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包