- 博客(208)
- 收藏
- 关注
原创 OpenHarmony之分布式软总线coap头文件& coap组包分析
在discovery/coap/source/coap_adapter.c主要实现了COAP数据包的解析与组装。添加TOKEN,OPTION, DATA,创建coap报文主体。COAP协议用于分布式通信中主从服务设备发现。用于向一个coap数据包添加option。组包:创建头部和数据包主体。
2025-05-20 22:13:52
43
原创 OpenHarmony分布式调度详解|启动FA(3)
前两篇博客介绍了分布式任务调度的Service、Feature注册和Session会话数据解析,解析数据得到命令id后做出对应的动作,其中一个命令id对应的是启动FA设备。本文分析了FA启动的函数调用关系。首先,在启动前对ability信息进行权限检查和签名校验,之后通过SAMGR获取ams的FeatureApi接口来启动FA。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!
2025-05-20 20:58:08
180
原创 OpenHarmony分布式调度详解|会话消息解析(2)
上一篇博客介绍了Service和Feature的定义和注册,Feature注册并初始化后,由软总线发布,并创建一个Session会话,用于处理TCP数据。会话消息解析部分主要将byte数据保存为TlvNode格式的链表,并在转换过程中对数据做一些数据校验工作。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……
2025-05-20 17:29:30
225
原创 OpenHarmony分布式调度详解|Service和Feature的定义和注册(1)
在进行分布式任务调度之前,首先要对分布式Service和Feature进行注册,注册Feature之前需要注册一个与之同名的Service,Feature才能注册成功。// 该定义实现了面向对象中构造函数的概念/*** INHERIT_SERVICE包含了所有Service都要有的成员* GetName():获取服务名* Initialize():初始化服务* MessageHandler():消息处理。
2025-05-20 16:35:29
177
原创 OpenHarmony分布式调度详解|dmslite_permission.c
本部分分析的代码位于。这个文件中的函数用于在任务调度过程中进行权限检查。其中执行主要的权限检查工作,仅针对FOUNDATION用户,用于调出获取需要检查的包信息。
2025-05-20 15:28:45
65
原创 OpenHarmony分布式调度详解|dmslite_pack.c
foundation\distributedschedule\dmsfwk_lite\source\dmslite_pack.c文件中主要是对数据处理的包装和整合,比如转换数据类型、改变数据存储方式(大端转小端)等处理。该文件中将整合后的数据存储在g_buffer中,并使用g_counter来做标记,供其他模块访问。鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选。
2025-05-20 14:50:50
257
原创 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
199
原创 OpenHarmony分布式调度详解|dmslite_famgr.c
foundation\distributedschedule\dmsfwk_lite\source\adapter\dms\dmslite_famgr.c文件中主要包含一些启动FA的函数和操作。
2025-05-19 22:10:26
221
原创 OpenHarmony分布式调度详解|dmslite_tlv_common.c
用于转换 tlv 数据,处理 tlv 的结点情况,将不同类型的数据进行整合。
2025-05-19 20:21:27
186
原创 OpenHarmony分布式调度详解|dmslite_feature.c 源码分析
【代码】OpenHarmony分布式调度详解|dmslite_feature.c 源码分析。
2025-05-19 16:28:32
223
原创 OpenHarmony轻量系统服务管理|samgr_server功能详解(四)
前面的文章分析了两种资源类型的处理函数,即。三种操作类型的处理函数。
2025-05-18 21:17:53
222
原创 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
116
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(五)
【代码】OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(五)
2025-05-16 14:59:32
172
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(四)
【代码】OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(四)
2025-05-16 13:40:46
222
原创 OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(三)
【代码】OpenHarmony轻量系统服务管理|进程间通信的核心机制详解(三)
2025-05-15 20:24:32
139
原创 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
242
原创 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
原创 OpenHarmony轻量系统服务管理|samgr_lite功能详解(三)
本文继续分析samgr_lite的函数实现。文件位于distributedschedule_samgr_lite\samgr\source\samgr_lite.c。本部分还有许多函数待分析,将在后续的文章进行分析。获取未初始化服务的下标。查询系统能力是否存在。获取已注册的系统能力。
2025-05-14 15:57:19
255
原创 OpenHarmony轻量系统服务管理|samgr_lite功能详解(二)
本文继续分析samgr_lite的函数实现。本部分还有许多函数待分析,将在后续的文章进行分析。删除samgr中的服务。向samgr注册服务。
2025-05-14 14:48:37
287
原创 OpenHarmony轻量系统服务管理|samgr_lite功能详解(一)
在samgr_lite部分,用于向Samgr注册服务、特性和功能并由Samgr发现它们。本系列将对和进行分析。相关文件位于。
2025-05-14 14:47:53
345
原创 OpenHarmony轻量系统服务管理samgr-task_manager赏析及实现(2)
处理MSG_NON/MSG_CON/MSG_SYNC类型的消息。任务执行入口函数,当前函数是线程创建时的运行函数。获取当前线程的私有变量,存储的值是消息队列ID。更新exchange对象所属的服务实例。本文继续对任务管理器的实现进行分析。处理MSG_DIRECT类型的消息。处理MSG_ACK类型的消息。
2025-05-14 13:34:36
131
原创 OpenHarmony轻量系统服务管理samgr-task_manager赏析及实现(1)
在task_manager部分,主要负责对任务的管理,从消息队列获取消息并处理。在distributedschedule_samgr_lite\samgr\source\task_manager.h中对声明对任务池操作的方法。在distributedschedule_samgr_lite\samgr\source\task_manager.c中对相关方法进行了实现。
2025-05-13 21:34:01
111
原创 OpenHarmony轻量系统服务管理samgr-service实现分析(2)
本文接续上文继续对service.c中相关函数的实现进行分析。获取feature的身份标识。获取feature实例对象。删除服务中指定的子功能。
2025-05-13 21:10:59
248
原创 OpenHarmony轻量系统服务管理samgr-service实现分析(1)
本文主要针对service部分进行分析,这部分代码的分析囊括了interfaces\kits\samgr\service.h、samgr\source\service_impl.h和samgr\source\service.c。service.h的代码在service赏析一篇中已经进行过分析。
2025-05-13 16:53:42
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人