add00 发表于 2020-3-21 11:03:59

求助:老单机仪器加modbus上位控制,有什么好的构架方案吗

公司有一款老的单机设备,现在要加远程上位机。原来程序是按键操作和lcd显示,界面多,外设也多,没有模块化,最要命的是每个界面循环里用单独的按键操作。
现在要加个modbus远程操作,尝试强行把通信事件加进去,改的准备放弃了,通信和按键里面很多重复代码,又很难融合。大家有这方面好的构架方案或思路吗?
或者可供参考的例程,各位大佬,大神们求救了,谢谢了!
暂时想到的办法是把按键也独立成事件出来,和通信事件并列,再用状态机来统一界面流程。做起来一团乱麻。。。。

tomzbj 发表于 2020-3-21 11:06:30

看这个按键库 https://github.com/murphyzhao/FlexibleButton

我自己实现了个比较简单的, https://github.com/tomzbj/zkey

add00 发表于 2020-3-21 11:41:36

tomzbj 发表于 2020-3-21 11:06
看这个按键库 https://github.com/murphyzhao/FlexibleButton

我自己实现了个比较简单的, https://github. ...

收到,学习了,谢谢

可能有点没说清楚,
有没什么 【多显示界面】 下【本地按键】和【远程通讯】【共存控制】的【程序框架】推荐啊

youkebing 发表于 2020-3-21 11:52:53

怎么说呢,从我的角度:建议在原来的代码上调试,原来的既然用了这么久,一定有可取之处。重新写,不见得比原来更好,只是从一个坑跑到另外一个坑。一般来说,可以改好乱代码的人,这个才是真的能力。

zzz123456 发表于 2020-3-21 16:06:53

记号 二楼的按键库, 谢谢

knight_avr 发表于 2020-3-21 17:17:06

消息机制,
按键发送对应消息,通讯发送对应消息,然后处理程序接收消息

PPS 发表于 2020-3-21 17:30:35

youkebing 发表于 2020-3-21 11:52
怎么说呢,从我的角度:建议在原来的代码上调试,原来的既然用了这么久,一定有可取之处。重新写,不见得比 ...

这个观点不同意,原来的代码能用这么久,只能说明它们逻辑上能通过,运行是稳定的,但不代表它们其他方面就是优秀的。一份代码的好坏有很多指标,如稳定性,可维护性,可扩展等。就像三十年前的汽车,的确稳定不容易坏,但是噪声、舒适性等差了不少吧。指标是多维的,不是稳定就行了。

youkebing 发表于 2020-3-21 18:57:44

PPS 发表于 2020-3-21 17:30
这个观点不同意,原来的代码能用这么久,只能说明它们逻辑上能通过,运行是稳定的,但不代表它们其他方面 ...

好吧!你是对的!

shawn_bu 发表于 2020-3-21 21:39:30

外面加一个机械臂去操作按键 {:titter:}

huangqi412 发表于 2020-3-21 22:07:53

shawn_bu 发表于 2020-3-21 21:39
外面加一个机械臂去操作按键

比摄像头拍度数的还狠

Error.Dan 发表于 2020-3-21 23:09:18

把所有的按钮事件函数都找出来做成事件列表给通信程序触发?倒是一个dirty work的方法~

玉石俱焚 发表于 2020-5-5 15:18:38

界面可以面向对象然后用树链起来,放在一个任务里,按键起一个任务发信号给界面

Stm32Motor 发表于 2024-1-14 17:02:29

有个小继电器模拟按键,原来的程序不用改
页: [1]
查看完整版本: 求助:老单机仪器加modbus上位控制,有什么好的构架方案吗