Azure GUIX嵌入式GUI是Microsoft的高级工业级GUI解决方案,专门针对深度嵌入式,实时和IoT应用程序而设计。Microsoft还提供了名为Azure RTOS GUIX Studio的功能齐全的WYSIWYG桌面设计工具,该工具使开发人员可以在桌面上设计其GUI并生成Azure RTOS GUIX嵌入式GUI代码,然后将其导出到目标。Azure RTOS GUIX与Azure RTOS ThreadX RTOS完全集成,可用于Azure RTOS ThreadX支持的许多相同处理器。所有这些都与极小的占地面积,快速的执行和卓越的易用性相结合,使Azure RTOS GUIX成为需要用户界面的要求最苛刻的嵌入式IoT应用程序的理想选择。
Azure RTOS GUIX API
直观一致的API
-
名词动词命名约定
-
所有API均具有领先的gx_,可轻松识别为Azure RTOS GUIX
-
事件驱动的编程模型(API)
-
必要时完全支持直接画布绘制
-
易于与Azure RTOS GUIX Studio生成的代码进行交互
-
线,矩形,多边形等的API
-
圆形,弧形,饼形,和弦,椭圆形等的API
-
用于文本绘制和定位的API
-
抗锯齿,纹理填充和实体填充
-
用于创建和修改屏幕和小部件的API
Azure RTOS GUIX Studio生成的文件
-
自动生成的ANSI C源文件
-
使应用程序软件与布局细节隔离
-
包括UI设计所需的字体和图像
-
使用应用程序代码编译的生成文件
-
屏幕布局可以更新,而不会影响应用程序逻辑
-
资源ID创建语言和主题独立性
-
用户提供的自定义绘图和事件处理功能
小部件库
-
预定义但可自定义的一组通用接口元素
-
极小,紧凑和高效
-
库包括按钮,量规,列表,窗口,滚动,滑块,进度条,提示等
-
完全可定制的图纸和外观
-
完全可定制的操作和事件处理
-
仅使用的小部件与应用程序软件链接
数学和实用程序
-
正弦,余弦,反正弦,反余弦,正切,平方根的函数
-
操纵屏幕区域的功能
-
系统配置和启动
-
内存池定义(可选)
-
计时器管理
-
动画管理
-
脏清单维护
图像处理
-
jpeg和png图像的运行时解码功能
-
应用抖动和色彩空间转换
-
影像旋转
-
图像缩放
-
图像融合
事件处理
-
空闲时自动挂起Azure RTOS GUIX线程
-
UI设计中流行的事件驱动编程模型
-
将输入驱动程序与Azure RTOS GUIX绘图线程隔离
-
发送和接收事件的功能
-
所有Azure RTOS GUIX小部件类型的预定义事件类型
-
支持用户定义的自定义事件
帆布加工
-
裁剪和Z顺序维护
-
使小部件库与硬件详细信息隔离
-
使应用程序与硬件细节隔离
-
自动后台刷新脏区
-
支持具有分层和混合功能的多个画布
-
可以由应用程序软件直接调用
输入设备驱动程序
-
特定于硬件的支持,Azure RTOS GUIX和与硬件详细信息隔离的应用程序
-
支持电阻式触摸,大写触摸和键盘
-
输入事件传递到Azure RTOS GUIX事件队列
显示驱动器
-
特定于硬件的支持
-
提供了适用于所有颜色深度和格式的通用驱动程序
-
定制以利用可用的图形加速器
目标硬件
-
几乎所有能够进行图形输出的硬件都与GUIX兼容
-
支持多种物理显示
-
最小的RAM和闪存要求
创建精美的用户界面
Azure RTOS GUIX和Azure RTOS GUIX Studio提供了创建唯一优雅的用户界面所需的所有功能。标准的Azure RTOS GUIX软件包包括各种示例用户界面,包括医疗设备参考,智能手表参考,家庭自动化参考,工业控制参考,汽车参考以及各种sprite和动画示例。请单击下面显示的参考示例。
家庭自动化
医疗类
消费者
白色商品
汽车行业
产业
每个Azure RTOS GUIX引用都有一个对应的Azure RTOS GUIX Studio项目,该项目定义了参考设计的所有图形元素。更改参考设计很容易。只需打开相应的Azure RTOS GUIX项目,进行所需的更改,保存项目,然后选择Project。
生成所有输出文件以生成Azure RTOS GUIX的C代码。然后,只需重建目标应用程序并运行即可观察修改后的参考设计。
小足迹
Azure RTOS GUIX的最小占用空间非常小,只有13.2KB的FLASH和4KB的RAM用于基本支持,不包括画布所需的内存。
对于具有内部GRAM和自刷新技术的显示器,不需要画布内存。但是,为了提高绘图性能,或者对于不使用显示器本地GRAM的显示器配置,应用程序定义了画布存储区域。
画布内存需求是画布大小以及颜色深度的函数,并由以下公式定义:
画布RAM(字节)=(x * y *(bpp / 8))
其中“ x”和“ y”是画布(显示)的尺寸。
大多数应用程序还利用图形资源,这些资源不包含在核心Azure RTOS GUIX库存储要求中。这些资源包括字体,图形图标(像素图)和静态字符串。该数据可以存储在const存储区(即FLASH)中。
该存储区的大小取决于许多因素,包括使用的唯一字体的数量和大小,使用的图形图标的数量和大小,输出颜色格式以及每个资源是否使用压缩数据,因为Azure RTOS GUIX支持字体和像素图数据的RLE压缩。在Azure RTOS GUIX Studio应用程序中显示每种资源的存储要求,从而允许用户跟踪和监视应用程序资源将消耗的闪存量。
与Azure RTOS ThreadX一样,Azure RTOS GUIX的大小会根据应用程序实际使用的服务自动缩放。这实际上消除了对复杂配置和构建参数的需求,使开发人员更轻松。
快速执行
Azure RTOS GUIX是专门用C编写的,旨在提高速度。Azure RTOS GUIX具有最小的内部函数调用分层。
此外,Azure RTOS GUIX还提供了优化的剪辑,绘制和事件处理。所有这些以及通用的面向性能的设计理念可帮助Azure RTOS GUIX实现最快的性能。
通过TUV预先认证,符合许多安全标准
根据IEC-61508 SIL 4,IEC-62304 SW安全等级C,ISO 26262 ASIL D和EN 50128,Azure RTOS GUIX已通过SGS-TUV Saar认证,可用于安全关键型系统。该认证确认Azure RTOS GUIX可以用于安全相关软件的开发,以达到IEC-61508,IEC-62304,ISO 26262和EN 50128的最高安全完整性等级,以用于“电气,电子和可编程电子安全相关系统的功能安全”。SGS-TUV萨尔公司由德国SGS-Group和TUV萨尔州的合资企业组成,现已成为领先的经认证的独立公司,致力于测试,审核,验证和认证全球安全相关系统的嵌入式软件。工业安全标准IEC 61508及其衍生的所有标准,包括IEC-62304,ISO 26262和EN 50128,
简单易用
Azure RTOS GUIX的使用非常简单,Azure RTOS GUIX Studio允许开发人员在桌面上直观地设计并生成在实际目标上运行的C代码,从而使其变得更加容易。然后,应用程序可以添加自己的自定义事件处理和绘图功能,以完成其GUI。
使用Azure RTOS GUIX API很简单。Azure RTOS GUIX API既直观又功能强大。API名称是用真实的词而不是其他文件系统产品中常见的“字母汤”和/或高度缩写的名称组成的。所有Azure RTOS GUIX API都有前导gx_并遵循名词-动词命名约定。此外,整个API都具有功能一致性。例如,所有初始化窗口小部件控制块的API均命名为
全面的内置小部件集
-
Azure RTOS GUIX提供了一组丰富的内置小部件,包括:
-
手风琴菜单
-
纽扣
-
复选框
-
圆规
-
下拉列表
-
水平清单
-
水平滚动条窗口
-
图标
-
图标按钮
-
折线图
-
菜单
-
多行文字按钮
-
多行文字输入
-
多行文字检视
-
数字像素图提示
-
数字提示
-
数字滚轮
-
像素图按钮
-
像素图提示
-
像素图滑块
-
像素图精灵
-
进度条
-
提示
-
径向进度栏
-
单选按钮
-
滚轮
-
单行文字输入
-
滑杆
-
弦滚轮
-
文字按钮
-
树视图
-
垂直清单
-
垂直滚动条
应用程序也很容易创建自己的客户小部件。
完整的底层绘图API
Azure RTOS GUIX提供了强大的画布绘图API,允许应用程序呈现复杂的图形形状。
所有功能都支持高色深目标上的抗锯齿,并且所有形状都可以填充我们的轮廓,包括实心和像素图图案填充。当以16 bpp和更高的色深运行时,所有绘图图元均支持笔刷alpha。绘图功能包括:
-
圆弧抽奖
-
画圆
-
画线
-
派画
-
像素图混合
-
像素贴图
-
多边形绘制
-
文字画
-
和弦抽奖
-
椭圆抽奖
-
像素画
-
像素图绘制
-
像素图旋转
-
矩形画
-
文字融合
默认免费字体,易于添加更多
Azure RTOS GUIX提供了一组免费的TrueType字体。开发人员可以根据需要添加其他TrueType字体。
Azure RTOS GUIX字体格式支持8bpp抗锯齿,4bpp抗锯齿和1bpp单色字体。对于大多数资源受限的应用程序,Azure RTOS GUIX使用我们的GUIX Studio桌面工具将TrueType字体预先渲染为压缩的位图格式。
自定义JPG和PNG解码器实现
定制JPG和PNG解码器实现JPG和PNG文件解码器实现。此实现支持与Azure RTOS GUIX兼容的像素图格式图像的色彩空间转换,抖动和运行时创建。
广泛的显示和触摸屏支持
Azure RTOS GUIX提供几乎所有颜色格式的通用显示驱动程序,包括1bpp单色,8 bpp调色板,8 bpp 3:3:2格式,
16 bpp 565 rgb格式,16 bpp 4:4:4:4格式,32 bpp x:r:g:b格式和32 bpp a:r:g:b格式。此外,Azure RTOS GUIX与许多最流行的LCD控制器和硬件加速器(ST ChromeArt,Renesas Synergy等)集成在一起。
Azure RTOS GUIX完全支持触摸屏(包括手势支持),笔和虚拟键盘输入设备。
Azure RTOS GUIX Studio桌面所见即所得工具
Azure RTOS GUIX Studio提供了完整的WYSIWYG屏幕设计环境,允许用户拖放用于构建GUI屏幕的图形元素。Azure RTOS GUIX Studio自动生成与Azure RTOS GUIX库兼容的C代码,可以在目标上编译并运行。开发人员可以使用集成的Azure RTOS GUIX Studio字体生成工具来生成预渲染的字体,以供在应用程序中使用。字体可以单色或抗锯齿格式生成,并经过优化以节省目标空间。字体可以包含任何字符集,包括用于多语言应用程序的Unicode字符。
Azure RTOS GUIX Studio可以从PNG或JPG文件导入图形,并转换为压缩的Azure RTOS GUIX Pixelmap,以在目标系统上使用。许多Azure RTOS GUIX窗口小部件类型旨在合并用户图形以实现自定义外观。此外,Azure RTOS GUIX Studio允许自定义Azure RTOS GUIX小部件使用的默认颜色和绘图样式,从而使开发人员可以非常轻松地调整Azure RTOS GUIX的外观。应用程序字符串的生成和维护是Azure RTOS GUIX Studio的另一个内置功能。这使开发人员可以使用一种语言来设计应用程序进行开发,并在产品发布后快速轻松地添加对其他语言的支持。完整的Azure RTOS GUIX应用程序可以在Azure RTOS GUIX Studio环境中的PC桌面上执行,从而可以快速轻松地生成和演示GUI概念,测试屏幕流以及观察屏幕过渡和动画。完成后,可以将设计导出为目标就绪的C数据结构,准备进行编译并与Azure RTOS GUIX和Azure RTOS ThreadX库链接。
Azure RTOS GUIX和Azure RTOS GUIX Studio支持多个资源主题,从而可以在运行时轻松调整应用程序的外观。字体,颜色和像素图可以在运行时使用一个简单的API进行更改。
了解有关GUIX Studio的更多信息
完整的Win32模拟
Azure RTOS GUIX使用与目标板上运行的图形库完全相同的图形库在Windows PC上运行。使用Azure RTOS GUIX,可以在PC上构建和运行GUI应用程序,并在目标上使用相同的应用程序代码进行调试,快速原型制作,演示和所见即所得目标操作。
先进的技术
-
Azure RTOS GUIX的先进技术包括:
-
阿尔法混合
-
抗锯齿
-
自动缩放
-
位图压缩
-
画布融合
-
自定义小部件支持
-
递延图纸支持
-
抖动支持
-
字节序中性编程
-
硬件加速器支持
-
多语言支持和UTF-8编码
-
多种显示和画布支持
-
优化的剪辑,绘图和事件处理
-
运行时JPEG和PNG解码器
-
外观和主题
-
支持具有alpha图形格式的单色到32位真彩色
-
过渡,精灵和动画支持
-
Win32模拟
-
窗口管理,包括视口和Z顺序维护
最快的上市时间
Azure RTOS GUIX易于安装,学习,使用,调试,验证,认证和维护。Azure RTOS GUIX Studio还有助于简化嵌入式GUI的设计和实现。因此,Azure RTOS GUIX是嵌入式IoT设备最受欢迎的GUI解决方案之一。我们始终如一的上市时间优势建立在:
-
质量文档–请查看我们的《Azure RTOS GUIX用户指南》,自己看看!
-
完整的源代码可用性
-
易于使用的API
-
全面和高级功能集
一份简单的许可证
将其部署到预许可的设备上,无需花费任何使用和测试源代码的费用,也无需生产许可证的费用,所有其他设备都需要简单的年度许可证。
完整,最高质量的源代码
多年来,Azure RTOS NetX源代码在质量和易于理解方面树立了标杆。此外,每个文件具有一个功能的约定可简化源导航。
支持最受欢迎的架构
Azure RTOS GUIX在开箱即用,经过全面测试和完全支持的最受欢迎的32/64位微处理器上运行,包括以下各项:
先进的架构:
Analog Devices: SHARC, Blackfin, CM4xx
Andes Core: RISC-V
Ambiqmicro: Apollo MCUs
ARM: ARM7, ARM9, ARM11, Cortex-M0/M3/M4/M7/A15/A5/A7/A8/A9/A5x 64-bi/A7x 64-bit/R4/R5, TrustZone ARMv8-M
Cadence: Xtensa, Diamond
CEVA: PSoC, PSoC 4, PSoC 5, PSoC 6, FM0+, FM3, MF4, WICED WiFi
Cypress: RISC-V
EnSilica: eSi-RISC
Infineon: XMC1000, XMC4000, TriCore
Intel & Intel FPGA: x36/Pentium, XScale, NIOS II, Cyclone, Arria 10
Microchip: AVR32, ARM7, ARM9, Cortex-M3/M4/M7, SAM3/4/7/9/A/C/D/E/G/L/SV, PIC24/PIC32
Microsemi: RISC-V
NXP: LPC, ARM7, ARM9, PowerPC, 68 K, i.MX, ColdFire, Kinetis Cortex-M3/M4
Renesas: SH, HS, V850, RX, RZ, Synergy
Silicon Labs: EFM32
Synopsys: ARC 600, 700, ARC EM, ARC HS
ST: STM32, ARM7, ARM9, Cortex-M3/M4/M7
Tl: C5xxx, C6xxx, Stellaris, Sitara, Tiva-C
Wave Computing: MIPS32 4K, 24 K, 34 K, 1004 K, MIPS64 5K, microAptiv, interAptiv, proAptiv, M-Class
Xilinx: MicroBlaze, PowerPC 405, ZYNQ, ZYNQ UltraSCALE
【来源】