dfx_cmd
dfx_cmd 提供 DFX (Design for eXcellence) 调试命令接口,支持屏幕截屏保存和调试命令执行。
头文件清单
接口清单
| 接口名称 | 功能简述 |
|---|---|
| InitDfxCmd | 初始化DFX命令模块,注册命令行回调 |
| SaveScreencapToFile | 将屏幕截屏数据保存至文件 |
| ExecUikitDfxByCmdType | 根据命令类型执行对应的DFX调试命令 |
Functions
InitDfxCmd
头文件清单
功能说明
- 初始化DFX命令模块,将DFX命令处理函数注册为系统shell命令
- 当ENABLE_DFX_CMD宏开启且SUPPORT_OS_CMD宏开启时,注册"guidfx"命令到系统命令行,命令执行时回调ExecUikitDfxByCmdType
- 当ENABLE_DFX_CMD宏关闭时,该函数为空实现,直接返回
前置条件
- ENABLE_DFX_CMD宏已开启(默认值为1)
- 图形服务已初始化完成
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| ENABLE_DFX_CMD | 功能宏 | 支持DFX命令接口功能 | 1 |
参考案例
SaveScreencapToFile
头文件清单
功能说明
- 将当前屏幕截屏数据保存至文件,支持全屏截屏、指定视图截屏和指定区域截屏三种模式
- 文件路径由ScreencapCmd命令预先设置,截屏完成后释放文件路径缓冲区
- 当ENABLE_DFX_CMD宏关闭时,该函数直接返回true
前置条件
- ENABLE_DFX_CMD宏已开启(默认值为1)
- 屏幕截屏标志已通过RootView::SetScreencapFlag()设置
- 截屏文件路径已通过ScreencapCmd命令设置(g_filePath不为NULL)
返回值
返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 截屏保存成功 | 截屏数据写入文件成功 |
| false | 截屏保存失败 | 文件路径为空、文件打开失败或数据写入失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| ENABLE_DFX_CMD | 功能宏 | 支持DFX命令接口功能 | 1 |
参考案例
/src/middleware/services/gui/uikit/ui/frameworks/components/root_view.cpp#SaveScreencapToFile
ExecUikitDfxByCmdType
头文件清单
功能说明
- 根据命令行参数中的命令类型,在DFX命令列表中查找并执行对应的调试命令
- 支持的命令类型包括:screencap、dump_view_id、dump_root_view、setfreq、printfps、hidefps、showfps、showtime、refresh、showimg、hideimg等
- 执行命令前会退出低功耗模式(dumpstate命令除外)
- 当ENABLE_DFX_CMD宏关闭时,该函数直接返回true
前置条件
- ENABLE_DFX_CMD宏已开启(默认值为1)
- InitDfxCmd()已完成初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| argc | int | 参数个数,包含命令名本身 | >= 1 |
| argv | char *[] | 参数数组,argv[0]为命令类型名称 | argv[0]必须为g_dfxCmdList中已注册的命令字符串 |
返回值
返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 命令执行成功 | 成功匹配并执行对应的DFX命令 |
| false | 命令执行失败 | argc < 1 或未找到匹配的命令类型 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| ENABLE_DFX_CMD | 功能宏 | 支持DFX命令接口功能 | 1 |
参考案例
/src/middleware/utils/at/at_gui_cmd/at/at_gui.c#ExecUikitDfxByCmdType