用拖拉实现设备驱动配置(EsayHMI最新驱动配置方式)

针对原有IOServer在配置上的不足,新版采用更直观的方式提升用户体验。通过拖拽操作完成驱动配置,并支持直接在属性框或表格中编辑IO变量。
部署运行你感兴趣的模型镜像

以前的IOServer 是用VB6开发,驱动的配置方式和一般的组态软件没有什么很大的区别,配置起来比较麻烦,对一般的生手来说,要费一番功夫才能配置完毕。

总觉得原有的程序和目前的HMI图元配置环境格格不入,所以重新编写了驱动的配置,配置界面如下图所示,直接把驱动拖拉到相应的端口即可(如果端口不支持该驱动,程序会显示"×"号,提示不能拖入)。

IO变量的配置也比以前有了突破,即能在属性框编辑,也能在表格里直接编辑。

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

<think>嗯,用户这次问的是在AntV X6中如何实现节点通过拖拉来缩放的功能。从对话历史看,用户之前已经接触过节点选择、视图拖拽等基础功能,现在需要更高级的交互操作。 用户提供的三个引用中,第一条提到了视图拖拽(但不是节点缩放),第二条展示了节点增删改的逻辑,第三条倒是提到了控制节点拖动的模式切换。虽然没直接提到节点缩放,但第三条关于动态设置mode的机制很有参考价值——这说明X6的行为模式是可以动态调整的。 回忆X6的文档,节点缩放通常有两种实现路径: 1)通过插件体系:比如transform插件提供缩放控制点 2)自定义交互:用mouseenter/mouseleave事件监听+画布缩放API 用户显然更需要开箱即用的解决方案,所以应该优先推荐插件方案。不过要注意,引用内容里提到的setMode方法暗示了可能需要混合使用插件和自定义模式,这点要在示例代码里体现。 用户上次的问题涉及节点全选和视图拖拽,这次突然转向节点缩放,可能是想实现类似流程图软件中"选中节点后自由调整大小"的效果。需要强调缩放功能本身针对的是单个节点,但可以通过selection插件批量操作。 技术实现上需要分三层说明: - 基础层:激活插件 - 控制层:限制缩放边界(避免缩太小) - 扩展层:如何与现有功能(如视图拖拽)共存 最后生成的三个问题都带有递进关系:从基础配置(第一问)到特殊场景处理(第二问)再到企业级应用(第三问),这样既能解决当前问题又能延伸学习路径。特别要注意第三个问题要关联用户之前问过的"节点全选"场景,保持知识连贯性。 </think>在 AntV X6 中实现节点通过**拖拉实现缩放功能**,需结合 `@antv/x6-plugin-transform` 插件。以下是完整配置方法: --- ### 核心步骤 1. **安装插件** 需单独安装 Transform 插件: ```bash npm install @antv/x6-plugin-transform ``` 2. **引入并启用插件** ```javascript import { Graph } from '@antv/x6'; import { Transform } from '@antv/x6-plugin-transform'; const graph = new Graph({ container: document.getElementById('container') }); // 启用 Transform 插件(核心) graph.use( new Transform({ resizing: true, // 开启节点缩放 rotating: false // 按需关闭旋转 }) ); ``` 3. **配置节点可缩放** 在节点定义中设置 `resizable` 属性: ```javascript graph.addNode({ id: 'node1', x: 100, y: 100, width: 100, height: 40, shape: 'rect', attrs: { label: { text: '拖我缩放' } }, resizable: true // 关键:允许缩放 }); ``` 4. **限制缩放比例(可选)** 通过 `resize` 属性设置边界: ```javascript graph.addNode({ // ...其他参数 resize: { minWidth: 50, // 最小宽度 maxWidth: 200, // 最大宽度 minHeight: 30, // 最小高度 maxHeight: 100 // 最大高度 } }); ``` --- ### 自定义缩放控制点 ```javascript new Transform({ resizing: { enabled: true, // 自定义控制点位置(上、右、下、左、四角) handles: ['top', 'right', 'bottom', 'left', 'top-right', 'bottom-right'] } }); ``` --- ### 与其他交互共存 若需**同时支持缩放与禁止拖拽**(参考引用[3]): ```javascript // 禁止节点拖拽 graph.use( new Transform({ resizing: true, moving: false // 关闭移动 }) ); // 动态模式切换(如允许缩放但禁止拖拽) graph.setMode({ default: { allowMoving: false, // 禁止拖拽 allowResizing: true // 允许缩放 } }); ``` --- ### 效果说明 - 节点边缘出现**缩放控制点**(默认显示四角) - 拖动控制点可调整节点尺寸 - 配合 `resize` 参数可限制缩放范围 > ⚠️ **注意**:若缩放未生效,请检查: > 1. 插件是否成功注册 `graph.use(new Transform())` > 2. 节点配置中 `resizable: true` 是否开启 > 3. CSS 是否覆盖了控制点样式(默认白色方块) --- ### 完整示例代码 ```javascript import { Graph } from '@antv/x6'; import { Transform } from '@antv/x6-plugin-transform'; // 初始化画布 const graph = new Graph({ container: document.getElementById('graph'), grid: true }); // 启用缩放插件 graph.use(new Transform({ resizing: true })); // 添加可缩放节点 graph.addNode({ id: 'node1', x: 50, y: 50, width: 80, height: 40, shape: 'rect', attrs: { body: { fill: '#ecf5ff' }, label: { text: '缩放我' } }, resizable: true, // 启用缩放 resize: { minWidth: 50, minHeight: 30 } // 缩放边界 }); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值