Qt串口通信——功能实现:PLC对LPC的音量控制

设计方案1:

在PLC上,当使用QDial调节音量时,触发QDial的SIGNAL:ValueChange(),对应SLOT向LPC发送自定义键码0x22;

在LPC上,当接收到0x22键码时,执行操作:设置当前volume值,当设置完成后,PLC将接收到来自LPC的volume数据进行更新。

发现问题:

1、当触发ValueChange()信号时,由于LPC设置3s无活动自动进入音量显示界面,PLC每隔3s仍发送0x22键码,导致VFD一直显示0x22键码,其他按键可以正常使用,但是操作执行完成后依然进入0x22的显示界面且每隔3s闪烁一次(原因应该是显示了volume界面但马上又被0x22刷新)。

2、发送的数据只有一个Byte可以搭载数据,搭载命令数据之后就无法搭载音量数据,改写协议又相对麻烦。

3、由于显示0x22也是其中一个功能码操作,在LPC中设置了3秒延时,因此才会有问题1的问题。必须关掉对0x22键码设置延时。

设计方案2:

设置一个Volume的镜像变量Volume_2(Volume_2设为全局变量),QDial获取Volume_2的值并与当前值做判断,得出方向后发送Volume+(ADKey5)和Volume-(ADKey6)的信号给LPC,直接执行加减操作。

注意:

1、在进行功能实现时,尽量避免使用全局变量,减少移植难度和空间占用;

2、不可改写现有通信协议;

本博客为作者原创,转载请注明出处。
原文地址:https://www.cnblogs.com/shawn06/p/6248518.html