通讯管理机之应用管理系统
·
更多内容点击:边缘智联专栏
一、功能概述
应用管理系统是整个通讯管理机应用的启动入口协调者。作为单例组件,它在程序启动时负责按顺序加载并运行两大核心子系统:
| 序号 | 子系统 | 功能角色 |
|---|---|---|
| 1 | 数源系统 | 通讯采集与数据源管理 |
| 2 | 数用系统 | 数据应用与业务处理 |
此外还提供 停止(Stop) 接口,用于实现受控关闭。
二、整体架构
main() 程序入口
│
├── 解析命令行参数
├── 注册信号处理函数(退出、重载日志配置)
├── 初始化日志系统
├── 使能硬件看门狗(可选)
│
└── 调用 AppManagement::GetInstance()->Start()
│
┌───────────────┴───────────────┐
▼ ▼
loadSubSystem() runSubSystem()
加载子系统 运行子系统
│ │
┌───────────┼───────────┐ ┌───────┴───────┐
▼ ▼ ▼ ▼
数源系统.LoadModule() 数用系统.LoadModule() 数源系统.RunModule()
(加载配置、创建对象) (加载配置、创建对象) (启动采集线程)
主线程进入无限循环
┌─────────────────────────┐
│ 喂硬件看门狗 (可选) │
│ Run 状态指示灯闪烁 │
│ 睡眠 1 秒 │
└─────────────────────────┘
收到退出信号后
│
▼
AppManagement::GetInstance()->Stop()
三、生命周期
三个阶段,按顺序依次执行:
- 加载阶段 — 调用两个子系统的 LoadModule,完成配置解析与内存对象构建。若任一子系统加载失败,仅记录告警日志,不中断流程。
- 运行阶段 — 调用数源系统的 RunModule,启动采集线程开始数据通讯。数用系统(仅参与加载,运行由各自模块内部线程驱动)。
- 停止阶段 — 记录停止日志,预留受控关闭扩展点。
四、关键设计要点
| 设计点 | 说明 |
|---|---|
| 单例模式 | 全局唯一实例,通过 GetInstance() 获取,禁止拷贝和赋值 |
| 顺序依赖 | 必须先加载(LoadModule)再运行(RunModule);数源系统先加载 |
| 容错设计 | 子系统加载/运行失败不阻断整体启动,记录告警日志后继续 |
| 模块解耦 | 管理模块与子系统之间仅通过各自的 LoadModule / RunModule 接口交互,无直接耦合 |
更多推荐



所有评论(0)