- 博客(215)
- 收藏
- 关注
原创 OpenHarmony之分布式软总线discovery_service.c(三)
【代码】OpenHarmony之分布式软总线discovery_service.c(三)
2025-05-21 21:54:40
87
原创 OpenHarmony之分布式软总线discovery_service.c(二)
在 发布服务与撤销已发布的服务 分析,本文将分析服务发布过程中使用到的其他功能函数。discovery_service.c 的发布服务。和 取消已发布的服务。
2025-05-21 20:27:03
62
原创 OpenHarmony之分布式软总线discovery_service.c(一)
在上篇博客中已经分析了discovery_service.h头文件,在这个头文件中声明了与设备服务发布相关功能和数据结构。本文分析了发布服务函数和取消已发布服务函数,它们所调用其他功能函数在之后进行分析。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……
2025-05-21 17:39:09
395
原创 OpenHarmony之分布式软总线discovery_service.h头文件
discovery_service.h头文件提供与设备服务发布相关的功能,包括发布服务、取消发布服务、设置设备参数。当发现附近的多个设备并将其联网后,可以使用这些接口进行业务发布的相关操作。PublishFailReason 为发布失败的原因。发布失败的原因在发布失败后,会在发布失败回调函数输出原因。DataBitMap 为设备发布支持的功能。定义设备类型枚举和设备类型名称之间的映射。枚举设备信息,如其标识、类型和名称。定义了支持的功能和位图之间的映射。定义要设置的设备的类型和内容。
2025-05-21 16:55:41
370
原创 OpenHarmony之分布式软总线nstackx_device.c(二)
之前已经介绍了nstackx_device.c中用到的设备信息结构体以及在头文件中声明的功能函数。nstackx_device(一) 下面对函数定义进行具体标注。
2025-05-21 16:01:32
351
原创 OpenHarmony之分布式软总线nstackx_device.c(一)
在nstackx_device.h头文件中声明了设置、获取设备信息以及注册设备功能与服务数据。在nstackx_device.h头文件中,声明设备信息结构体。首先,在头文件nstackx.h中声明了远端与本地设备信息。
2025-05-21 14:25:32
483
原创 OpenHarmony之分布式软总线discovery/coap/source/coap_socket.c
coap_socket.c封装了服务端与客户端之间的socket操作。
2025-05-21 13:43:48
203
原创 OpenHarmony之分布式软总线coap头文件& coap组包分析
在discovery/coap/source/coap_adapter.c主要实现了COAP数据包的解析与组装。添加TOKEN,OPTION, DATA,创建coap报文主体。COAP协议用于分布式通信中主从服务设备发现。用于向一个coap数据包添加option。组包:创建头部和数据包主体。
2025-05-20 22:13:52
231
原创 OpenHarmony分布式调度详解|启动FA(3)
前两篇博客介绍了分布式任务调度的Service、Feature注册和Session会话数据解析,解析数据得到命令id后做出对应的动作,其中一个命令id对应的是启动FA设备。本文分析了FA启动的函数调用关系。首先,在启动前对ability信息进行权限检查和签名校验,之后通过SAMGR获取ams的FeatureApi接口来启动FA。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!
2025-05-20 20:58:08
335
原创 OpenHarmony分布式调度详解|会话消息解析(2)
上一篇博客介绍了Service和Feature的定义和注册,Feature注册并初始化后,由软总线发布,并创建一个Session会话,用于处理TCP数据。会话消息解析部分主要将byte数据保存为TlvNode格式的链表,并在转换过程中对数据做一些数据校验工作。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……
2025-05-20 17:29:30
250
原创 OpenHarmony分布式调度详解|Service和Feature的定义和注册(1)
在进行分布式任务调度之前,首先要对分布式Service和Feature进行注册,注册Feature之前需要注册一个与之同名的Service,Feature才能注册成功。// 该定义实现了面向对象中构造函数的概念/*** INHERIT_SERVICE包含了所有Service都要有的成员* GetName():获取服务名* Initialize():初始化服务* MessageHandler():消息处理。
2025-05-20 16:35:29
216
原创 OpenHarmony分布式调度详解|dmslite_permission.c
本部分分析的代码位于。这个文件中的函数用于在任务调度过程中进行权限检查。其中执行主要的权限检查工作,仅针对FOUNDATION用户,用于调出获取需要检查的包信息。
2025-05-20 15:28:45
95
原创 OpenHarmony分布式调度详解|dmslite_pack.c
foundation\distributedschedule\dmsfwk_lite\source\dmslite_pack.c文件中主要是对数据处理的包装和整合,比如转换数据类型、改变数据存储方式(大端转小端)等处理。该文件中将整合后的数据存储在g_buffer中,并使用g_counter来做标记,供其他模块访问。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选。
2025-05-20 14:50:50
293
原创 OpenHarmony分布式调度详解|dmslite_msg_handler.c
foundation\distributedschedule\dmsfwk_lite\source\dmslite_msg_handler.c文件中包括两个函数:StartAbilityFromRemoteHandler()用于接收会话消息数据解析得到的启动FA的命令id,用于启动FA;ReplyMsgHandler()用于回复消息。该文件中主要包含一些对解析后的命令id的操作,目前只支持两种操作——远程启动ability和回复消息。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发。
2025-05-20 13:43:51
271
原创 OpenHarmony分布式调度详解|dmslite_famgr.c
foundation\distributedschedule\dmsfwk_lite\source\adapter\dms\dmslite_famgr.c文件中主要包含一些启动FA的函数和操作。
2025-05-19 22:10:26
252
原创 OpenHarmony分布式调度详解|dmslite_tlv_common.c
用于转换 tlv 数据,处理 tlv 的结点情况,将不同类型的数据进行整合。
2025-05-19 20:21:27
296
原创 OpenHarmony分布式调度详解|dmslite_feature.c 源码分析
【代码】OpenHarmony分布式调度详解|dmslite_feature.c 源码分析。
2025-05-19 16:28:32
264
原创 OpenHarmony轻量系统服务管理|samgr_server功能详解(四)
前面的文章分析了两种资源类型的处理函数,即。三种操作类型的处理函数。
2025-05-18 21:17:53
223
原创 OpenHarmony轻量系统服务管理|samgr_server功能详解(三)
资源类型的函数,而它的处理又因为操作类型的不同而调用不同的函数。本篇文章接着继续分析。
2025-05-18 20:30:41
153
原创 OpenHarmony轻量系统服务管理|samgr_server功能详解(二)
【代码】OpenHarmony轻量系统服务管理|samgr_server功能详解(二)
2025-05-18 19:26:26
170
原创 OpenHarmony轻量系统服务管理|samgr_server功能详解(一)
实现代码在。#define MAX_SYSCAP_NAME_LEN 64 //系统能力名称的最大长度#define MAX_SA_SIZE 0x100 //sa中最大数目#define RETRY_TIMES 3 //重试次数#define RETRY_INTERVAL 1 //重试间隔#define MAX_SYSCAP_NUM_PER_REPLY 118//对于syscap,每次响应的最大数目//函数指针MSG_CLEAN, //清除数据}MsgId;//消息ID//继承服务端的代理。
2025-05-16 22:05:25
184
原创 OpenHarmony轻量系统服务管理|进程间通信的客户端代理详解(二)
【代码】OpenHarmony轻量系统服务管理|进程间通信的客户端代理详解(二)
2025-05-16 20:25:37
269
原创 OpenHarmony轻量系统服务管理|进程间通信的客户端代理详解(一)
上一篇文章讲解了高效、便携的工厂模式,并分析了如何使用工厂方式创建及销毁客户端代理的相关代码。在本文中进一步分析客户端代理的系列函数。相关代码实现位于。
2025-05-16 17:36:03
281
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(六)
【代码】OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(六)
2025-05-16 15:52:15
117
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(五)
【代码】OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(五)
2025-05-16 14:59:32
172
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(四)
【代码】OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(四)
2025-05-16 13:40:46
223
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(三)
【代码】OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(三)
2025-05-15 20:24:32
141
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(二)
【代码】OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(二)
2025-05-15 17:37:23
220
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(一)
本系列分析的代码位于//定义主endpoint的通信地址#define MAX_DATA_LEN 0x100 //最大数据长度#define MIN_DATA_LEN 0x40 //最小数据长度//资源类型RES_ENDPOINT, //表示endpoint资源类型RES_FEATURE, //表示feature资源类型RES_SYSCAP, //表示syscap资源类型RES_BUTT,//操作类型OP_GET, //获取OP_POST, //发布OP_PUT, //添加。
2025-05-15 16:43:27
250
原创 OpenHarmony轻量系统服务管理|系统功能的存储机制详解(三)
【代码】OpenHarmony轻量系统服务管理|系统功能的存储机制详解(三)
2025-05-15 15:59:52
243
原创 OpenHarmony轻量系统服务管理|系统功能的存储机制详解(二)
存储机制中的数据结构以及根据名称查找指定服务和指定功能的函数。本文继续对本部分的其他函数进行分析。相关函数实现的代码位于。
2025-05-15 15:05:47
249
原创 OpenHarmony轻量系统服务管理|系统功能的存储机制详解(一)
本部分代码位于#define MAX_NAME_LEN 16 //名称的最大字符个数#define GROW_STEP 4 //增长步长#define MAX_SA_NUM 300 //sastore维护的最大结点数//service信息,包含一个FeatureNode的链表//服务的名称//来自SvcIdentity中的handle,在向主endpoint注册时获得//当前服务包含的子功能,通过链表记录//feature结点//feature的名称。
2025-05-15 14:02:04
228
原创 OpenHarmony轻量系统服务管理|消息处理中的流控机制详解
本文围绕的主题是中消息处理的流控机制,相关的代码实现位于。在对代码的分析中,发现鸿蒙系统自己实现了一个令牌桶算法来做流量控制。算法的原理是以一种恒定的速率生成令牌,如果需要处理消息就从桶中获取令牌,若有则允许执行,若没有则拒绝。#define TOKEN_PRE_MSG 1000 //消息处理大小int rate;//每毫秒生成令牌的速率,现在使用TPSint burst;//令牌桶的突发大小//最后一条消息的时间int used;//已使用的bucketsBUCKET_BUSY, //繁忙。
2025-05-14 20:26:35
212
原创 OpenHarmony轻量系统服务管理|samgr_client功能详解
在部分,当前的代码版本中只提供了一些用于服务远程注册和发现的函数方法。相关实现代码在。#define RETRY_INTERVAL 2 //重试时间间隔#define MAX_RETRY_TIMES 10 //最大重试次数#define ABILITY_UID_START 100 //起始的UID//全局注册信息//标识Ability是否已被初始化//锁//当前进程的通信端点//代理接口的集合,存储的是IUnknown类型数据//锁//当前进程的通信端点。
2025-05-14 17:41:09
163
原创 OpenHarmony轻量系统服务管理|samgr_lite功能详解(四)
本文继续分析samgr_lite的函数实现。文件位于distributedschedule_samgr_lite\samgr\source\samgr_lite.c。samgr_lite部分的函数终于分析完毕。查找指定任务配置的任务池。处理初始化的请求消息。
2025-05-14 17:03:19
139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人