# GT_HMI_Framework **Repository Path**: genitop/gt_hmi_framework ## Basic Information - **Project Name**: GT_HMI_Framework - **Description**: GT-HMI-Framework 一站式嵌入式AI开发平台 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-05 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GT HMI Framework 项目结构说明 ## 1 介绍 GT-HMI-Framework 一站式嵌入式AI开发平台。 内部实现了 Mindcraft AI 云后台常用服务请求,以及RTC时钟,闹钟,天气,倒计时等常用功能。依赖 GT-HMI-Engine 为界面交互引擎,提供界面交互能力。 可更高效搭建以 Mindcraft AI 为核心的嵌入式AI应用。 ### 1.1 软件架构 ![框图](./docs/Framework.png) ## 2 目录结构 ```shell . ├── .gitignore ├── apps/ # 应用层代码 │ ├── gt_fwk_app_global.c │ ├── gt_fwk_app_global.h │ ├── gt_fwk_chop.c │ ├── gt_fwk_chop.h │ ├── gt_fwk_ui_ctrl.c │ └── gt_fwk_ui_ctrl.h ├── core/ # 核心功能模块 │ ├── gt_ai_role.c/h # AI角色功能 │ ├── gt_audio_play.c/h # 音频播放 │ ├── gt_fwk_*.c/h # 框架核心功能(缓存、队列、键盘、日志等) │ ├── gt_language.c/h # 语言支持 │ ├── gt_role_emote.c/h # 角色表情 │ └── gt_set_*.c/h # 设置功能(时钟、天气等) ├── docs/ # 文档 │ └── Framework.png ├── hal/ # 硬件抽象层 │ ├── gt_fwk_hal_audio.c/h # 音频硬件抽象 │ ├── gt_fwk_hal_http.c/h # HTTP硬件抽象 │ ├── gt_fwk_hal_*.c/h # 其他硬件抽象(队列、RTC、WiFi等) │ └── gt_fwk_hal_wifi.c/h # WiFi硬件抽象 ├── screen/ # 屏幕界面实现 │ ├── gt_init_*.c # 各种界面初始化代码 │ ├── gt_ui.c/h # UI核心功能 │ └── ... # 其他界面实现 ├── third_party/ # 第三方库 │ └── cJSON.c/h # JSON解析库 ├── web/ # Web相关功能 │ ├── gt_fwk_http.c/h # HTTP框架 │ ├── gt_web_*.c/h # Web数据处理 │ └── methods/ # HTTP方法实现 │ ├── gt_fwk_http_methods_defs.h │ ├── gt_fwk_http_user.c │ └── gt_fwk_http_user.h ├── gt_fwk_init.c/h # 框架初始化 ├── README.md # 项目说明(本文件) └── README.en.md # 英文版项目说明 ``` ## 3 主要模块说明 1. **应用层(apps)** - 包含应用级别的控制和UI控制代码, 以及应用的公共代码。 2. **核心功能(core)** - 框架的核心功能实现,包括AI角色、音频、缓存、队列等。 3. **硬件抽象层(hal)** - 提供硬件相关的抽象接口。 4. **屏幕界面(screen)** - 各种UI界面的实现代码,目前提供桌面助手部分交互为示例,后续脱离框架属性,提供更加灵活的Framework脚手架框架工具作用。 5. **Web功能(web)** - HTTP服务, SOCKET服务和Web数据处理相关功能。 ## 4 使用说明 1. 本仓库的框架需要依赖 **GT-HMI-Engine** 引擎,需要将 **GT-HMI-Engine** 引擎的代码拷贝到本仓库的`../`目录下。 2. 框架初始化入口: `gt_fwk_init.c`。 3. 核心功能模块位于`core/`目录。 4. 界面开发主要在`screen/`目录中添加新的界面实现,后续迁移到目标项目的交互文件夹中。 ## 5 适配/移植说明 ### 5.1 GT-HMI-Engine 驱动 1. 参考 **GT-HMI-Engine** 的移植说明文档。 ### 5.2 GT-HMI-Framework 驱动 > 已支持的MCU平台通过宏 `GT_FWK_IS_BOARD_TYPE()` 进行切换。 硬件抽象中间层HAL作为框架和硬件之间的接口,需要根据硬件平台进行移植。 #### 5.2.1 音频播放 1. 音频播放需要实现`gt_fwk_hal_audio.c`中的`gt_fwk_hal_audio_start`等接口。 2. 其中包含音频播放的初始化,播放,暂停,停止,音量设置等接口。 #### 5.2.2 Http服务 1. Http服务需要实现`gt_fwk_hal_http.c`中的`gt_fwk_hal_http_init`等接口。 2. 其中包含Http服务的初始化,Http请求,Http响应等接口。 #### 5.2.3 本地数据存储 1. 本地数据存储`gt_fwk_hal_locate_data_ctrl.c`目前以Flash载体为目标,参考`gt_fwk_hal_locate_data_len`数组的数据。 2. 主要通过`gt_fwk_hal_locate_data_load`和`gt_fwk_hal_locate_data_save`来加载和保存数据。 3. 初始化时候,会执行`gt_fwk_hal_locate_data_init`来获取开机后Flash中保存的数据。 4. 其中`GT_FWK_HAL_LD_NORMAL`为 **1** 时候,表示flash正常开机并运行当前Flash中的数据;否则表示Flash中数据异常,需要通过`_gt_fwk_hal_locate_set_default_data`重新初始化Flash数据。 #### 5.2.4 框架队列 1. 框架队列`gt_fwk_hal_queue.c`主要负责HMI和Http等模块之间的消息传递。 2. 默认实现了`xQueueCreate`的基本接口的对接。如果需要切换其他环境的队列,可以参考`gt_fwk_hal_queue.c`中的`xQueueCreate`的实现。 ### 5.2.5 RTC时钟 1. RTC时钟需要实现`gt_fwk_hal_rtc.c`中的`gt_fwk_hal_rtc_init`等接口。 2. 其中包含RTC时钟的初始化,RTC时钟设置,RTC时钟获取等接口。 ### 5.2.6 Socket服务 1. 处理Socket服务的数据处理,包含json数据的解包打包等操作。 ### 5.2.7 Tick接口 1. 获取系统时间戳。 ### 5.2.8 WIFI接口 1. WIFI接口,包含WIFI初始化,WIFI连接,WIFI断开等接口。