软总线启动流程预览 原创

挖墙脚的农民工
发布于 2021-12-20 15:42
浏览
4收藏

软总线的相关知识整理
1、整理框架图:
软总线启动流程预览-鸿蒙开发者社区

2、结构图:
/foundation/communication/dsoftbus
├── interfaces # 接口代码
├── adapter # 适配层代码
├── core # 核心代码
│ ├── common # 通用代码
│ ├── authentication # 认证代码
│ ├── bus_center # 组网代码
│ ├── connection # 连接代码
│ ├── discovery # 发现代码
│ ├── transmission # 传输代码
│ └── frame # 框架代码

├── sdk # 运行业务进程代码
│ ├── bus_center # 组网代码
│ │ ├── ipc
│ │ ├── service
│ │ └── manager
│ ├── discovery # 发现代码
│ │ ├── ipc
│ │ ├── service
│ │ └── manager
│ ├── transmission # 传输代码
│ │ ├── ipc
│ │ ├── session
│ │ └── trans_channel
│ └── frame # 框架代码

└── components # 依赖组件代码
├── mbedtls # 传输加密算法
└── nstackx # ??

3、软总线启动入口函数:
void SoftBusServer::OnStart() //softbus_server.c
4、软总线主要相关组件初始化
void InitSoftBusServer(void)
5、其中相关流程初始化如下图
InitSoftBusServer
├── SoftbusConfigInit # 相关配置 如收发包长度等

├── ServerStubInit #

├── SoftBusTimerInit # 定时器?,貌似没有调回调进入

├── LooperInit # 处理消息

├── ConnServerInit # 连接到管理服务的设备?

├── TransServerInit
│ ├── TransPermissionInit
│ │ └── LoadPermissionJson # 加载PERMISSION_JSON_FILE 配置文件
│ ├── TransSessionMgrInit # 创建一个g_sessionServerList
│ └── TransChannelInit
│ ├── TransLaneMgrInit # 创建一个g_sessionServerList
│ ├── TransAuthInit # 创建一个g_authChannelList
│ │ └── AuthTransDataRegCallback # g_authTransCb 认证
│ ├── TransProxyManagerInit # 创建一个g_proxyChannelList
│ │ ├── TransProxySetCallBack
│ │ ├── TransProxyTransInit
│ │ ├── PendingInit
│ │ └── RegisterTimeoutCallback
│ ├── TransTcpDirectInit
│ │ ├── TransSrvDataListInit
│ │ ├── TransTdcSetCallBack
│ │ ├── RegisterTimeoutCallback
│ │ └── CreatSessionConnList
│ └── TransUdpChannelInit
│ ├── TransUdpChannelMgrInit
│ └── AuthTransDataRegCallback

├── AuthInit # 认证相关代码
│ ├── AuthCallbackInit # 创建一个 g_verifyCallback
│ ├── AuthGetAbility # 配置设备是否具有认证的能力?
│ ├── AuthListInit # 初始 g_authClientHead/g_authServerHead/g_sessionKeyListHead
│ ├── RegisterConnCallback # 注册 g_connCallback, g_connResult用于获取结果
│ ├── AuthLooperInit
│ ├── UniqueIdInit
│ └── HichainServiceInit # g_hichainGmInstance/g_hichainGaInstance/g_hichainCallback

├── DiscServerInit #
│ └── DiscMgrInit
│ ├── DiscOnDeviceFound
│ ├── DiscCoapInit
│ └── DiscBleInit

└── BusCenterServerInit # 组网&网络拓扑
├── LnnInitLocalLedger # 创建一个Ledger
│ ├── LnnGetNetCapabilty # 设置支持类型
│ ├── InitLocalDeviceInfo # 获取设备信息
│ ├── InitLocalVersionType # 只支持lte?
│ └── InitConnectInfo # 连接信息
├── LnnInitDistributedLedger # 配置设备是否具有认证的能力?
├── LnnInitSyncLedgerItem #
├── LnnInitEventMonitor # 处理event事件
├── LnnInitDiscoveryManager # 发现
├── LnnInitNetworkManager
├── LnnInitNetBuilder
├── LnnLanesInit
├── LnnTimeSyncInit
└── LnnInitNetBuilder # g_hichainGmInstance/g_hichainGaInstance/g_hichainCallback

1、LooperInit 创建并初始化消息处理
ConnServerInit 连接管理,包含tcp,蓝牙(高低功耗),(wifi 模块放到tcp???)
2、TransServerInit 传输
3、AuthInit 认证
4、DiscServerInit 发现,包含了Coap的初始化,具体怎么实现组网的还需要研究一下
5、BusCenterServerInit 软总线组网&网络拓扑结构。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
3
收藏 4
回复
举报
1条回复
按时间正序
/
按时间倒序
民之码农
民之码农

666

回复
2022-2-21 11:32:03
回复
    相关推荐