软总线启动流程预览 原创
软总线的相关知识整理
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 软总线组网&网络拓扑结构。





















666