# CompGUI **Repository Path**: thtfcccj/CompGUI ## Basic Information - **Project Name**: CompGUI - **Description**: 通用 GUI相关组件集合, GIF静态图片,PNG图片的解码送显等 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 3 - **Created**: 2020-08-18 - **Last Updated**: 2025-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README  ### 组件层-人机交互相关模块接口及其实现,以下以字节顺序排序简要说明: * BeepDrv: 直流型蜂鸣器通用驱动模块的独立简单实现,用于实现长音蜂鸣器的不同响法, 如:三响一灭,长响短响等(由应用层决定)。 * Bmp: BMP图像格式的数据组成描述,主要用于BMP图像的解码(含RLE) * BuzzerDrv: 交流型(如压电陶瓷型)蜂鸣器通用驱动模块,实现了: + BuzzerDrv:为蜂鸣器响不同频率提供统一接口 + BuzzerDrv_MCU: 蜂鸣器响不同频率声音,在不同MCU上的实现。 + BuzzertMusic: 依赖于BuzzerDrv, 给出不同频率与固定间隔时长数据流,以用于播放音乐(由应用层决定)。。 * Color: 彩屏用颜色相关含: + Color.h: 颜色定义,做为显示屏显示颜色的结构以方便管理。 + Color.c: 实现了颜色copy,比较等基本功能 + Color_ARGB32.h ARGB格式颜色定义等 + Color_Index: 用户自定义色时标准颜色定义等 + Color_RGB16: 16位色时的颜色定义 + Color_RGB666: 8位,RGB各6种色组成的标准颜色定义,以及在RGB16上的颜色查找表等实现。 * DecodeGIF:自主设计的,GIF图像的解码,主要用于显示: + 依赖于bReader,与winWriter模块 + 仅负责纯Image数据区的数据解码,不负责GIF图像格式的解析处理 + 故仅支持单帧静态图像 + 通过ePic格式(见下述)提取的图像标准信息可快速获取图像数据信息以及图像长宽等关键信息。 * *DecodePNG: PNG图像的解码与显示:,主要用于显示: + 依赖于ZlibDecompress: (https://gitee.com/thtfcccj/CompComm)ZLIB格式比特流解码 + 仅负责纯Image数据区的数据解码,不负责GIF图像格式的解析处理 + 支持2位,4位,8位图像支持,其它码位未调试与测试。 + 仅支持单帧非透明图像的解码,(不支持多帧图像,以及透明图像) + 通过ePic格式(见下述)提取的图像标准信息可快速获取图像数据信息以及图像长宽等关键信息。 * DLight: 双色指示灯各种亮法驱动程序,单例化,可实现指示灯的不同闪法,如快闪,慢闪,三闪一停等(由应用层决定) * EO8Light: 扩展8位IO输出的指示灯的管理,用此抽像为开关对应指示灯 * ePic:嵌入式图像格式: + 此格式将WBM,BMP,GIF,PNG等图像格式,以及其中的长,宽,图像深度,调色板,压缩信息等,提取至ePic结构中,以节省FLASH空间 + 通过https://gitee.com/thtfcccj/FileMergeIndex.git 上位机软件,读取对应图像后,可生成ePic图像格式。 + 通过此模块,带入ePic嵌入式图像格式数据后,可实现其自动识别BMP,GIF,PNG图像并解码到显示屏显示 + 支持BMP格式中的RLE,索引位置解码,GIF静态图像解码(依赖于DecodeGIF),PNG静态图像解码(依赖于DecodePNG) * Fonts: 通过自定义的字体描述结构FontsDesc,实现了全角/半角,不同大小,不同排列试的字体的显示屏送显,支持放大。 * GB2312ZM: 为GB2312为基础的字模提取提供支持,如输入GB2312字,获到对应字模 + 通过回调支持内部FLASH,外置FLASH中读取字模 + 提供多种不同大小的ASC与数字字模接口,可针对应用分别实现调用。 + 实现有针对boot应用的ASC省空间字模库 * IR:红外接收通用驱动程序: + IrDrv:红外接收(通过IrDrv_IRQ()函数)不依赖于硬件的,通用驱动程序。 + Ir_MCU: IrDrv_IRQ()函数,在不同MCU捕获上的实现。 + Ir_KeyLed4: 独立子模块,依赖于IrDrc,实现了导航键+4位数码管应用中,红外的自动对码与显示功能。 * Key 按键驱动程序,即获取键值,并将键值转换到相关部分 + Key: 实现ID与掩码二选一方式获取键值功能。 + Key_cbIO: 回调使用IO口扫描等方式,实现底层对接。 + Key_cbKeyLight: 回调使用KeyLight模块,实现底层对接。 + Key_QGUI: 为QGUI(4位数码管GUI)与按键间的粘合层。 * KeyAccelerate: 按键加速模块,实现一直按住一个键,越跑越快的效果。 * KeyLight: 按键与指示灯矩阵管理模块, + KeyLignt: 负责指示灯与按键的扫描 + KeyLight_cbK4L1/KeyLight_cbK4L2等:内置有不同场景的底层回调实现 * KeyLightEO8:KeyLight在EO8模块上的专用实现 * Led 7位段码驱动程序,提供: + 底层扫码支持 + 抽像层接口,可实现数码管的禁止,闪动,显示等功能。 + 内置7码数码管在不同排列下的符号定义 + 提供如送显等辅助函数等 * 命令行方式显示日志,将字符串以行方式送至显示屏,显示模式如DOS界面,可用于如BOOT区的显示管理。 * Lt4K1GUI: 一键+4灯GUI程序, 可实现用一个按键与4个指示灯的配置,实现参数的调整(脱离应用层实现)。 * MKey: 多例化按键模块接口 + 可实现多组相同按键时(如用一个MCU管理两个相同结构硬件模块),分别进行管理 + 具体实现主要依赖于应用层。 * Plot: 彩屏(TFT,彩色OLED等)绘制函数集: + 依赖于显存(显示缓冲区) + 通过底层回调,支持内置显存,以及如3.5寸屏以下的外置显存应用。 + 提供多个绘图接口,如绘制多种ASC,GB2312汉字,清屏,填充等函数。 + 提供调色板控制颜色(Plot.h),以及通过形参控制颜色(PlotPB)两套功能。 + 提供如部分简单图像绘制功能(PlotIcon),如电池电量。 * QMenu 基于4位数码管的菜单系统: + 支持上,下,左,右键调用菜单 + 支持接8bit位的逻辑调整,十进制的按位调整与整体调整 + 支持菜单的进入退出,显示与调整模式 + 支持实时数据更新等 * SLightDrv: 多例化实现了,对一个指示灯的各种显示方式驱动,如: + 快闪,慢闪,三闪一停等(由应用层决定) + 每个灯可独立控制。 * StringEx 扩展string.h 用的字符串相关操作函数集 * TestK1GUI: 单一自检键GUI实现,为Lt4K1GUI的超集: + 配合显示回调,实现Lt4K1GUI的功能(暂未实现) + 配合显示回调,实现数码管,段码屏的GUI功能。 * TftDbi: TFT彩屏,在使用DBI接口时的驱动实现(主要为3.5英寸及以下自带显存的显示屏) + 底层IO控制:支持8位DB,16位DB,SPI(待实现) 接口驱动,分别不同实现 + 支持3.5寸显示屏,不同控制芯片的的自动识别与驱动显示 + 为上层应用提供统一接口,以脱离硬件与显示屏(主要为Plot模块调用)。 * TftTest: Tft显示屏测试功能,如实现RGB轮流显示等 * TM1628: TM1628驱动,底层提供在Spi3Mio上的实现。 * TM1628M: 为TM1628的多例化实现,可同时驱动多个TM1628芯片以用于不同显示 * UiPage: 用于彩屏等点阵屏的当前页,总页,页名称字符的管理。 * UiTips: 用于彩屏等点阵屏的提示行管理,可实现文件与参数替换等动态功能。