软总线的相关知识整理
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 软总线组网&网络拓扑结构。