杰理ac791 REGISTER_APPLICATION(app_video_rec) 机制

1.状态机

enum app_state {

APP_STA_CREATE,

APP_STA_START,

APP_STA_PAUSE,

APP_STA_RESUME,

APP_STA_STOP,

APP_STA_DESTROY,

};

start_app(&it) ← 你调用的入口

├── APP_STA_CREATE ← ① 创建:分配资源、清零句柄

├── APP_STA_START ← ② 启动:执行具体功能初始化

├── APP_STA_PAUSE ← ③ 暂停:切换到其他APP时

├── APP_STA_RESUME ← ④ 恢复:从其他APP切回来时

├── APP_STA_STOP ← ⑤ 停止:退出APP时

└── APP_STA_DESTROY ← ⑥ 销毁:释放所有资源

以上状态都由app_core 系统自动触发的

2.事件中断

#define SYS_KEY_EVENT 0x0001

#define SYS_TOUCH_EVENT 0x0002

#define SYS_DEVICE_EVENT 0x0004

#define SYS_NET_EVENT 0x0008

#define SYS_BT_EVENT 0x0010

事件类型对照表

事件类型 来源/触发条件 具体示例
SYS_KEY_EVENT 按键驱动 key_driver.c AD按键、IO按键、红外遥控、旋转编码器
SYS_DEVICE_EVENT 设备驱动层 → device_event.capp_core SD卡热插拔(sd0/sd1)、UVC摄像头插拔、USB枚举完成、充放电/电量变化
SYS_NET_EVENT lwip协议栈net_event上报net_video_event_hander处理) WiFi连接/断开、TCP/UDP数据到达(CTP命令/视频流)、IP获取/DHCP完成
什么时候会被触发:

当 video_rec 这个 APP 是前台运行 时,系统产生的所有按键、设备、网络事件都会投递到这个函数。如果 APP 在后台(PAUSE 状态),则事件不会投递给它。