kanzi快速调试绑定

本文介绍了如何通过开发插件解决Kanzi中复杂的绑定问题,提供InputBindText属性解析绑定内容,便于输入属性转换和手动绑定,详细步骤包括导入插件、创建节点、设置属性和绑定,以及快速调试过程。
摘要由CSDN通过智能技术生成

kanzi绑定里有很多复杂表达式,难以看出输入值和结果的关系,因为绑定源可能路径复杂,也不易去修改调试。尝试做一个插件,简化调试。

1. 插件

1.1 设计思路

  • 插件提供属性InputBindText,用于解析绑定内容,提取输入的属性,转为本节点属性。
  • 生成新的绑定内容,用于手动绑定。

插件相关请查看使用kanzi开发仪表HMI插件

2. Kanzi Studio 3.9.8.216使用插件

kanzi 3.9.8使用vs2019 release版本插件

2.1 导入插件

在这里插入图片描述

2.2 创建插件节点

在测试节点同级创建插件节点
在这里插入图片描述

2.3 设置InputBindText属性

把Test节点绑定内容粘到插件
在这里插入图片描述
敲回车后,查看log窗口
在这里插入图片描述
在这里插入图片描述

2.4 设置绑定

把log窗口的new bind text下面的新绑定内容绑到text
绑定模式请查看Kanzi绑定之绑定模式与区别
在这里插入图片描述

2.5 手动添加属性

把把log窗口的propertyes下面的属性名依次添加到属性上
在这里插入图片描述

2.6 快速调试

在插件节点下调节新属性,查看输出结果
在这里插入图片描述

3. 优化

  1. 不用手动输入属性值,而是输入值范围和值步进。
  2. 利用AbstractPropertyTypeDescriptor获取动态属性值,通过值范围和值步进,生成所有case
  3. 利用定时器,每50ms设置一次动态属性,50ms后获取一次绑定结果
  • InputBindText:需要输入绑定表达式
a={@../CarSetting.A}
b={@../CarSetting.B}
b*STEP(a,0)+12*STEP(a,1)*STEP(1,a) 
  • OutputBindText:需要手动绑定本地表达式
a={@./CarSetting.A}
b={@./CarSetting.B}
b*STEP(a,0)+12*STEP(a,1)*STEP(1,a) 
  • InputRangeText:需要输入值范围和值步进
CarSetting.A[0-1:1],CarSetting.B[0-1:1]
  • ReCalc: 触发计算
CarSetting.A=0,CarSetting.B=0,result=0,
CarSetting.A=0,CarSetting.B=1,result=1,
CarSetting.A=1,CarSetting.B=0,result=12,
CarSetting.A=1,CarSetting.B=1,result=12,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值