cloud_interact 类调用关系速查
配合 cloud_interact_analysis.md 使用
1. 按命名空间 pr 的完整类列表
1.1 cloud_interact 模块(15 个公开类 + 内部私有类)
| # |
类名 |
基类/模式 |
创建方式 |
主要被谁调用 |
| 1 |
CCommuInteraction |
CBaseThread |
CreateInstance() |
main |
| 2 |
CCommuInterData |
内部类 |
CommuInteraction 构造 |
CCommuInteraction |
| 3 |
CCommunicatorHelper |
独立 |
CreateInstance() |
CCommuInteraction, CDownstreamCommand, CForwardHelper |
| 4 |
CCommunicatorHelperPrivate |
内部类 |
— |
CCommunicatorHelper |
| 5 |
CForwardHelper |
独立 |
CreateInstance() |
CCommuInteraction, CDownstreamCommand |
| 6 |
CForwardHelperPrivate |
内部类 |
— |
CForwardHelper |
| 7 |
CDownstreamCommand |
独立 |
CreateInstance() |
CCommuInteraction |
| 8 |
CDownstreamCommandPrivate |
内部类 |
— |
CDownstreamCommand |
| 9 |
CDataCache |
单例 |
Instance() |
main, CCommuInteraction, Offline/Fault Task |
| 10 |
CCachePrivate |
内部类 |
— |
CDataCache |
| 11 |
CStateManager |
单例 |
Instance() |
main, CCommuInteraction, CAuthManager |
| 12 |
CStateCache |
内部类 |
— |
CStateManager |
| 13 |
CAuthManager |
独立 |
CreateInstance() |
main |
| 14 |
CAuthManagerPrivate |
内部类 |
— |
CAuthManager |
| 15 |
CCloudConnectivityDetector |
独立 |
CreateInstance() |
CAuthManager |
| 16 |
CConnectivityData |
内部类 |
— |
CCloudConnectivityDetector |
| 17 |
CAuthQueryHandler |
独立 |
CreateInstance() |
CAuthManager |
| 18 |
CAuthQueryData |
内部类 |
— |
CAuthQueryHandler |
| 19 |
CAuthDistributeTask |
CBaseThread |
CreateInstance() |
CAuthManager (EMS) |
| 20 |
CAuthDistributeData |
内部类 |
— |
CAuthDistributeTask |
| 21 |
CAuthReceiveHandler |
独立 |
CreateInstance() |
CAuthManager (非EMS) |
| 22 |
CAuthReceiveData |
内部类 |
— |
CAuthReceiveHandler |
| 23 |
COfflineDataTask |
CBaseThread |
CreateInstance() |
main |
| 24 |
COfflineTaskPrivate |
内部类 |
— |
COfflineDataTask |
| 25 |
CFaultRecordTask |
CBaseThread |
CreateInstance() |
main |
| 26 |
CFaultRecordPrivate |
内部类 |
— |
CFaultRecordTask |
| 27 |
CRemoteSshHelper |
单例 |
Instance() |
main, CDownstreamCommand |
| 28 |
CRemoteSshData |
内部类 |
— |
CRemoteSshHelper |
1.2 reuse_utils 模块
| 类名 |
模式 |
主要被谁调用 |
CConfigManager |
单例 |
main, CCommuInteraction, CDownstreamCommand |
CFrameManager |
独立 |
CCommuInteraction |
CFrameHelper |
静态工具 |
CFrameManager, CCommuInteraction, Auth 模块 |
CProtocolSinglton |
单例 |
main, CCommuInteraction, CFrameManager |
CSSLLibSinglton |
单例 |
CDataProcesser (加解密) |
CDowloadTask |
独立 |
CCommuInteraction (升级下载) |
CFtpDownloadTask |
独立 |
CDowloadTask |
CSftpDowloadTask |
独立 |
CDowloadTask |
CFtpUploadTask |
独立 |
上传场景 |
CUdpSender / CUdpReceiver |
独立 |
Auth 广播 |
CSSHHelper |
工具 |
CRemoteSshHelper |
1.3 processers 模块 — 数据处理器继承树
CDataProcesser (抽象基类)
├── CLoginProcesser # 登录
├── CHeartBeatProcesser # 心跳
├── CGeneralDataProcesser (通用中间层)
│ ├── [DeviceManage] CVersionInfoProcesser, CDeviceInfoProcesser, CDeviceStateProcesser
│ ├── [Overview] COverallOverviewProcesser, CTerminalOverviewProcesser, CESSProcesser,
│ │ CGatewayPowerMeterOverviewProcesser, CLoadPowerMeterOverviewProcesser,
│ │ CSolarGenerationOverviewProcesser, CWindGenerationOverviewProcesser,
│ │ CDieselGenerationOverviewProcesser, CVirtualPowerPlantOverviewProcesser,
│ │ CEssBranchOverviewProcesser
│ ├── [DeviceData] CPCSProcesser, CPowerMeterProcesser, CSolarInverterProcesser,
│ │ CWindInverterProcesser, CChargePileProcesser, CDieselGeneratorProcesser,
│ │ CPowerEnvironProcesser, CSolarDcProcesser
│ ├── [BMS] CBMSSummaryProcesser, CBMSExtremeProcesser, CBMSChangedCellsProcesser,
│ │ CBMSCellDetailsProcesser
│ ├── [Alarm] CTeleSignalingProcesser, CRealtimeAlarmProcesser,
│ │ CHistoryAlarmProcesser, CHistoryEventProcesser
│ ├── [Statistics] COverviewTOUProcesser, CDeviceTOUProcesser, CRevenueStatisticsProcesser
│ ├── [EMS Strategy Read] CDownstreamSchedulingTaskReadProcesser,
│ │ CDownstreamPeakShavingReadProcesser, CDownstreamLoadResponseReadProcesser,
│ │ CDownstreamDemandResponseReadProcesser, CDownstreamCapacityExpansionReadProcesser,
│ │ CDownstreamGridRestrictionReadProcesser, CDownstreamTOUParamsReadProcesser,
│ │ CDownstreamPVWorkingReadProcesser, CDownstreamPva*ReadProcesser (6个)
│ ├── [EMS Strategy Write] CDownstreamSchedulingTaskWriteProcesser, ... (对应 Write 系列)
│ ├── [Tariff] CDownstreamTariffTypeRead/WriteProcesser, CDownstreamTariffTemplateRead/WriteProcesser,
│ │ CDownstreamTimeTemplateRead/WriteProcesser, CDownstreamTariffSettingRead/WriteProcesser,
│ │ CUpstreamTariffTypeNofityProcesser
│ ├── [Battery] CDownstreamSafeProtectionRead/WriteProcesser, CDownstreamSOCCalibrationRead/WriteProcesser,
│ │ CDownstreamCapacityCalibrationRead/WriteProcesser, CDownstreamInsulationDetectionRead/WriteProcesser
│ ├── [Control] CDownstreamEMSControlProcesser, CDownstreamDeviceControlProcesser
│ ├── [Upgrade] CUpstreamUpgradeTaskQueryProcesser, CUpstreamUpgradeTaskResultProcesser,
│ │ CUpstreamUpgradeTerminalResultProcesser, CDownstreamnUpgradeTaskNotificationProcesser
│ ├── [Offline] CUpstreamOfflineRequestProcesser
│ ├── [FaultRecord] CUpstreamFaultRecRequestProcesser
│ ├── [RemoteManage] CDownstreamSshStartProcesser, CDownstreamSshStopProcesser
│ └── [Setup] CDownstreamTermUpdateProcesser
├── CProcesserDataHelper (单例, 非继承) # 数据Id与上报状态管理
└── CTerminalCache (单例, 非继承) # 终端列表缓存
2. 核心调用链
2.1 启动阶段
2.2 通信线程单次 Handle 调用链
2.3 下行命令处理链(CDownstreamCommand)
3. 单例与生命周期
| 单例类 |
创建时机 |
销毁时机 |
CStateManager |
首次 Instance() |
进程结束 |
CDataCache |
首次 Instance() |
进程结束 |
CConfigManager |
main 中 Initialize |
进程结束 |
CProtocolSinglton |
main 中 Create |
main 退出前 Free(),重授权时也会 Free/Create |
CRemoteSshHelper |
首次 Instance() |
进程结束 |
CThreadWatchDog |
main 中 Initialize |
main 退出前 Stop() |
CProcesserDataHelper |
首次 Instance() |
进程结束 |
CTerminalCache |
首次 Instance() |
进程结束 |
线程对象生命周期:
| 对象 |
所有者 |
启停 |
CCommuInteraction |
main 局部 shared_ptr |
main 循环 Start/Stop,重授权时 Deinitialize |
COfflineDataTask |
main 局部 shared_ptr |
main 循环按需 Start |
CFaultRecordTask |
main 局部 shared_ptr |
main 循环按需 Start |
CAuthDistributeTask |
CAuthManager 内部 |
EMS 授权成功后 Start(detached) |
CAuthManager |
main 局部 shared_ptr |
全程存活,退出前 Deinitialize |
4. 共享库接口(跨模块数据通道)
| 库 |
cloud_interact 中的用途 |
librunning_data |
云连接/登录状态、终端信息、授权状态、进程喂狗 |
libcloud_data |
数据上报状态、离线数据、数据Id生成 |
libcloud_command |
下行控制指令队列与执行结果 |
libcloud_repeater |
EMS 中继转发缓冲 |
libruntime_environ |
运行环境、站点配置加载、终端透传有效性 |
libcloud_protocol |
协议编解码(通过 ICloudProtocol 接口) |
libcloud_communicator |
TCP 通信(通过 ICloudCommunicator 接口) |
5. 帧类型 → Processor 映射表(节选)
完整映射见 reuse_utils/src/FrameManager.cpp 中 mapType2ProcesserCreator。
| 帧类型常量 |
Processor 类 |
方向 |
优先级 |
UPSTREAM_LOGIN |
CLoginProcesser |
上行请求 |
1 |
UPSTREAM_VERSION_INFOS |
CVersionInfoProcesser |
上行请求 |
2 |
UPSTREAM_DEVICE_INFOS |
CDeviceInfoProcesser |
上行请求 |
3 |
UPSTREAM_DEVICE_STATES |
CDeviceStateProcesser |
上行请求 |
4 |
UPSTREAM_HEART_BEAT |
CHeartBeatProcesser |
上行请求 |
2001 |
UPSTREAM_REALTIME_ALARM_DATA |
CRealtimeAlarmProcesser |
上行请求 |
302 |
UPSTREAM_OVERALL_OVERVIEW |
COverallOverviewProcesser |
上行请求 |
401 |
UPSTREAM_OFFLINE_DATA_REQUEST |
CUpstreamOfflineRequestProcesser |
上行请求 |
501 |
UPSTREAM_FAULT_RECORD |
CUpstreamFaultRecRequestProcesser |
上行请求 |
303 |
UPSTREAM_UPGRADE_TASK_QUERY |
CUpstreamUpgradeTaskQueryProcesser |
上行请求 |
200 |
DOWNSTREAM_EMS_CONTROL_COMMAND |
CDownstreamEMSControlProcesser |
下行请求 |
801 |
DOWNSTREAM_DEVICE_CONTROL_COMMAND |
CDownstreamDeviceControlProcesser |
下行请求 |
802 |
DOWNSTREAM_READ_SCHEDULING_TASK_PARAMS |
CDownstreamSchedulingTaskReadProcesser |
下行请求 |
901 |
DOWNSTREAM_WRITE_SCHEDULING_TASK_PARAMS |
CDownstreamSchedulingTaskWriteProcesser |
下行请求 |
902 |
DOWNSTREAM_START_SSH |
CDownstreamSshStartProcesser |
下行请求 |
1201 |
DOWNSTREAM_STOP_SSH |
CDownstreamSshStopProcesser |
下行请求 |
1202 |
DOWNSTREAM_UPGRADE_TASK_NOTIFICATION |
CDownstreamnUpgradeTaskNotificationProcesser |
下行请求 |
203 |
注:优先级数值越小越先上报;下行命令类帧不参与自动上行优先级排序,由云平台主动下发触发。