Repository navigation
Releases: txp666/FluentHMI-Studio
Release list
FluentHMI Studio v0.3.1
- 导出的应用使用导出时 Studio 的主题色和浅色 / 深色模式,与设计时看到的一致。
- 导出的 Windows 程序,版本信息(产品名、文件说明、文件名)改为应用自己的名字,不再显示 FluentHMI Studio。
English
- Exported apps start in the Studio's theme colour and light / dark mode as set at export time, matching what you designed.
- Exported Windows programs' version information (product name, description, file name) names the app instead of FluentHMI Studio.
FluentHMI Studio v0.3.0
- 设计器支持撤销 / 重做(最多 100 步)和复制 / 粘贴;剪贴板与 PyQt UI Designer 互通,也能直接粘贴按
.uidp格式写的控件 JSON。 - 工具栏改为图标按钮,与 PyQt UI Designer 的按钮和顺序相同;两端的开关可隐藏或显示控件库和属性面板。控件库图标重画,链路卡片、收发卡片和日志框归入「通信控件」。
- 工程可以设置应用图标(
.uidp的icon),导出的应用用它做窗口、任务栏和程序图标。 - 实时曲线保存完整历史记录,支持游标、CSV / JSON 保存和加载对比曲线;读数显示在曲线上方,曲线占满宽度,刻度取整。
- 设置页新增主题色和云母效果(Windows 11)。
- 修复:Modbus 轮询按时读取每一块;日志框按设备发送的顺序列出字段;连接后链路卡片锁定连接参数。
- 改用 Qt 6.12 和 FluentQtWidgets 0.3.2。
English
- The designer has undo / redo (up to 100 steps) and copy / paste, with a clipboard PyQt UI Designer shares; widget JSON written in the
.uidpformat pastes too. - The toolbar shows icons, the same buttons in the same order as PyQt UI Designer's, with switches at its ends that hide or show the palette and the property panel. The palette has redrawn icons, and the link cards, send/receive cards and log box are grouped as 通信控件.
- A project can name an app icon (
iconin.uidp); exported apps use it for the window, the taskbar and the program file. - The real-time chart keeps its whole history, with a cursor, CSV / JSON saving and a loaded run to compare; its readings sit above the plot, which takes the full width, on round ticks.
- Settings add a theme colour and Mica (Windows 11).
- Fixes: Modbus polling reads each block on time; the log box lists fields in the order the device sent them; link cards lock their connection settings while connected.
- Built on Qt 6.12 and FluentQtWidgets 0.3.2.
FluentHMI Studio v0.2.1
接 PLC 只要两步:链路卡片选 Modbus 解析,控件绑定寄存器地址,连上即自动读取。
- 自动轮询:按绑定自动合并地址块、按周期读取,只读当前可见页;写命令排在读请求前面。
- 链路卡片新增「默认轮询 / 响应超时 / 默认从站」,连接后状态行显示轮询情况;只保留一个「连接/断开」按钮。
- 不兼容:删除 Modbus 配置卡片、轮询表和「响应内序号」绑定,旧工程请删掉该卡片、绑定选寄存器区并填地址。
- 应用标识改为
io.github.txp666.*,macOS 会把新版当成新应用,偏好设置重置一次。
详细说明见 docs/uidp-format.md。图文教程
FluentHMI Studio v0.2.0
本版本面向 PLC 和各种自定义协议的设备:Modbus 补齐了按地址取值、多寄存器写入和轮询表,新增可配置长度字段和校验的二进制帧解析、可配置结束符和编码的文本解析,以及 Modbus ASCII。表达式求值器补齐了位运算和比较。所有规则与 PyQt UI Designer 0.2.0 逐条一致,并用同一批字节流在两个程序上对拍过。
- Modbus:读响应按寄存器地址命名(
hr100、ir0、co3、di0),绑定和曲线新增"寄存器区"选项,轮询多块地址时不再分不清是哪块的响应;按钮、输入框、下拉框、滑块、数值框可以发 FC16 写多个寄存器,值的类型(uint16 / int16 / uint32 / int32 / float32)和寄存器序可选。Modbus 卡片新增轮询表(多行从站,功能码,地址,数量)和响应超时,一次只发一条请求,状态显示"轮询正常 · N/M"、无响应的条目和设备返回的异常码。 - 二进制帧(
hex解析模式):帧头、帧尾可以只填一个或都不填,新增长度字段(偏移、字节数、字节序,长度数的是数据 / 长度字段之后 / 整帧)、固定帧长、和校验 / 异或 / CRC8 / CRC16-Modbus / CRC16-CCITT 校验(可设起点和字节序)、空闲超时分帧;字段表支持字节序和 uint8 … float64、ASCII、HEX 十种类型。用hex模式的链路把整帧交给 HEX字节提取 和曲线,控件上不必再填帧头帧尾。 - 文本(
line解析模式):行结束符、键值分隔符(=或:)和编码(UTF-8 / GBK / ASCII)可配,坏字节的替换规则与 Python 版逐字节相同;$…*HH的 NMEA 语句自动校验;JSON 不再要求一行一条,多行格式化、连着发、顶层数组都能解析。 - 新增 Modbus ASCII 解析模式
modbus_ascii,Modbus 命令在这类链路上自动按 ASCII 组帧;新增 FC 07、08、17、22、23 响应的解析。 - 表达式:
value & 1、(value >> 1) & 1、value * 3.3 / 4095 < 1、0 < value < 40、and/or/not都能算了,运算符和优先级与 Python 一致,比较结果按 True / False 绑定给指示灯。 - 设计器:工程设置的「默认帧格式」覆盖全部解析选项,串口 / TCP / MQTT 卡片可以各自设置帧格式(
parserConfig);Modbus 模式的发送设置不再随"发送开关"隐藏。 - 显示:数据接收卡片按链路的编码显示文本,GBK 设备的日志不再乱码;"自动"显示格式去掉二进制运算的尾数噪声(
26.700000000000003显示为26.7)。 - 新增示例
examples/tutorials/10-PLC恒压供水.uidp:Modbus TCP 轮询、按地址绑定、float32 写入。 - 文档:
docs/uidp-format.md补全解析模式的全部键,docs/uidp-widgets.md重新生成。
.uidp 文件向后兼容:旧工程的 hex 配置(只有帧头、帧尾、字段表)和 Modbus 绑定按原样工作。
提供 Windows x64 和 macOS universal 独立运行包及 SHA-256 校验文件,包内只有一份 Qt,导出的应用可直接拷到别的电脑上运行;Mac 包只做了 ad hoc 签名,第一次打开需要在"系统设置 → 隐私与安全性"中点"仍要打开",Windows 包未做 Authenticode 签名。预发布版本不会通过应用内的"检查更新"推送。
FluentHMI Studio v0.1.0
FluentHMI Studio 的第一个版本:PyQt UI Designer 的 C++/Qt 6 重写版,界面基于 FluentQtWidgets。工程格式与 PyQt UI Designer 相同,已有的 .uidp 工程可以直接打开、预览和导出。
- 拖拽设计:29 种控件,网格吸附、缩放、适应窗口、对齐与等距分布、容器嵌套(水平 / 垂直 / 弹性布局、分组框、卡片、选项卡)。属性和数据绑定在右侧编辑,未选中控件时编辑工程设置。
- 数据接收与绑定:串口、TCP 客户端 / 服务端、MQTT 三种链路;行文本(键值 / JSON / CSV)、HEX 帧、Modbus RTU、Modbus TCP 四种解析;键值匹配、JSON 路径、HEX 字节提取、Modbus 四种绑定,支持
value * 0.1这类转换表达式。规则按 Python 版逐条移植并有单元测试。 - MQTT:自带 MQTT 3.1.1 客户端,支持用户名密码、QoS 0/1/2、
+/#通配符订阅,TLS 使用系统证书库;连接成功后断开会自动重连。每条消息视为一帧,只有一个数值的消息可以直接用主题名绑定。 - 命令发送:文本、HEX、Modbus 三种模式和
{value}模板;Modbus 命令按每条链路的解析模式自动组 RTU 帧或 MBAP 帧。 - 导出应用不再需要编译器:预览和导出的程序使用同一个运行时,导出时复制运行时、写入工程和用到的图片,并以应用名命名。也可以在命令行导出:
FluentHMIStudio --export <目录> <工程.uidp>。 - 在线更新:设置页有"检查更新"按钮和"启动时检查更新"开关(默认开启),启动检查只在有新版本时弹窗。发现新版本时显示更新说明;立即更新会下载本平台的安装包并用 SHA-256 校验,之后点"重启并更新",或者稍后退出 Studio 时自动换成新版本;换不上时保留原来的版本,下次启动时提示原因。没有写入安装目录的权限(例如装在 Program Files)或 macOS 从隔离的临时位置运行时,改为打开下载页,所以在 macOS 上请先把应用移到"应用程序"文件夹。命令行可以用
FluentHMIStudio --update更新。 - 浅色 / 深色 / 跟随系统主题,所有滚动条为 Fluent 样式。
提供 Windows x64 和 macOS universal(Apple Silicon 与 Intel 通用)独立运行包及 SHA-256 校验文件。解压后运行 FluentHMIStudio.exe 或 FluentHMI Studio.app,无需另装 Qt。包里只有一份 Qt:macOS 上放在 FluentHMI Studio.app/Contents/Helpers/FluentHMIRuntime.app 里,Windows 上 FluentHMIStudio.exe 和 FluentHMIRuntime.exe 在同一目录、共用 Qt DLL;导出的应用复制运行器及其 Qt,可以直接拷到别的电脑上运行。每个包在发布前都会用打包好的 Studio 导出示例工程,并启动导出的程序做自检;macOS 包还会确认 Studio 和导出的程序只加载系统库和包内的库。
Mac 安装包只做了 ad hoc 签名,未做 Apple Developer ID 签名与公证,第一次打开需要在"系统设置 → 隐私与安全性"中点"仍要打开";Windows 安装包未做 Authenticode 签名,SmartScreen 提示时点"更多信息 → 仍要运行"。TCP 与 MQTT 使用本机模拟设备和测试内置的 broker 验证;连接真实 MQTT broker(包括 TLS)和实际硬件仍需联调。