LabVIEWwilliam hill官网
直播中

荣琪

8年用户 689经验值
擅长:可编程逻辑 测量仪表 嵌入式技术
私信 关注
[文章]

荣小菜补钙记第48期:报文合成与解析之统型设计2

荣小菜补钙记第48期:报文合成与解析之统型设计2
同步更新于 WeChat:荣小菜在补钙
欢迎关注 内容更丰富
大家好,我是荣小菜,断网3天,移动宽带的维修好慢T_T,从本期详细演示一下设计的效果和各项功能。大的设计思路就是尽可能的将变化的报文写入Excel,程序通过加载Excel来生成控件内容,决定报文内容。
1.     功能演示1
这里我们已经加载了预设的Excel表,生成了“查询表”、“控制表1”、“控制表2”。每个表对应不同的预设功能。可以看到,我们的控件主要分为两种,指定内容的“组合框“和指定参数的”数值“控件。控件的值也已经根据Excel表的设定限制了范围。
                              
主要功能演示1.gif
2.     功能演示2
本节主要展示当有新的需要变化时,修改Excel表即可更新程序的功能。
主要功能演示2.gif
  
当前Excel加载表的格式如下,下图展示了一条报文包含多个控制项时的Excel表格式,“固定前“和”固定后“可以填写任意需要的报文,如包头、包尾等。而中间部分的内容则对应UI控件的内容。
此外,我们通过“字分解“来标识功能项对应的Bit位,实现不同子功能根据Bit位合成为”项“报文,不同从上到下的”项“报文又顺序组合载荷报文(表明具体功能信息的报文)。
Excel加载表.JPG
当然,当包头包尾等”固定“报文变化时,我们也只需修改下Excel表格即可。
3.     功能演示3
下面演示的是初始值设置功能。程序运行后会自动从“Control Value Temp“二进制文件中加载初始值。而单击”Save“后即可将各表的当前值设置初始默认值。
  
初始值覆盖.gif
4.     主程序后面板
整个程序的实现主要依托于QControl及其设计思路,开发了”SingTree.lvclass“和 “ControlCluster.lvclass“,分别对应UI中的树形控件(用来选择表)和簇控件(用来选定控制内容),大部分控制逻辑都集成在类属性中,解耦效果好,使得实际使用过程十分简单,只需拖拽几个函数即可。当然,想要搞明白实现细节,建议还是先学习QControl。QControl后面我可能也会简单讲解一些。
程序后面板1.png
注意:由于Demo涉及QControl工具包,虽然我也会发布全部源代码,但还是建议小伙伴们先从VIPM下载学习。我的文章中第24-27、36-39期都使用了QControl或者类似的方式,小伙伴们可以去看看,参考参考。
QControl工具包.JPG
分享开源免费,共同学习进步^_^

  • 主要功能演示3.gif
  • 类关系.JPG

更多回帖

发帖
×
20
完善资料,
赚取积分