ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

『ISOBUS 入门』第 12 节 虚拟终端 VT:对象池、消息流与交互实现

『ISOBUS 入门』第 12 节 虚拟终端 VT:对象池、消息流与交互实现 农具不带屏幕之后,界面的所有权发生了转移:农具负责描述「界面上有什么」,终端负责把它渲染出来并把操作者的动作回传。这条路走通了,一台拖拉机才能用一个终端操作不同品牌的农具。1. 会话是怎么建立起来的一次完整的会话可以拆成六步,每一步都有对应的消息:建立工作集。农具 ECU 先声明自己是某个工作集的成员,并携带自己的 NAME。终端据此建立工作集,后续的对象池都从属于这个工作集。查询终端能力。农具需要知道终端能做什么,才能决定上传什么样的界面。查询内容包括:终端版本、可用内存、软键数量、硬件配置、支持的对象类型、支持的语言与字体。上传对象池。农具把界面描述分片发给终端。对象池是可变长度数据,超过 8 字节的部分走传输协议,每帧携带 7 字节有效载荷。结束上传并等待确认。农具发送「对象池结束」消息,终端回一条响应,其中包含成功或错误信息。这一步是分水岭:只有收到成功的响应,后续的掩膜激活才有意义。激活显示。农具选择活动工作集,再指定当前显示的数据掩膜;终端开始渲染。运行期交互。数值更新、掩膜切换、软键事件、输入事件在两端之间往返;同时双方用「工作集维护」与「终端状态」消息保活。这套顺序解释了几类现场现象的成因。上传后屏幕空白,多数出现在第 4 步的错误响应被忽略、或者第 5 步没有执行;显示了一部分对象,通常是第 2 步的探测没做,上传了终端不支持的对象类型;运行一段时间后自动回到终端主界面,则是第 6 步的保活中断,终端按超时清掉了工作集。2. 对象池的结构对象池是一棵有父子的对象树,根是工作集,下面挂掩膜,掩膜下面挂容器与具体控件。写实现时最常用到的对象可以分成五类:容器与掩膜。工作集(Working Set)代表一个农具应用;数据掩膜(Data Mask)是主显示页面;软键掩膜(Soft Key Mask)定义一排可编程按键;告警掩膜(Alarm Mask)用于高优先级提示。软键掩膜与数据掩膜是分开的,切换数据掩膜时可以不改软键掩膜,也可以成对切换——后者是实践中更常见的做法,因为软键语义通常跟随页面。输出对象。数值、字符串、线、矩形、椭圆、多边形等,负责显示状态。它们不响应输入,只被更新。输入对象。数值输入、字符串输入、列表选择等,负责采集操作者输入。输入对象的焦点由会话控制:可以让某个对象直接进入编辑状
返回列表