serialportscreen-2022-10-24

1、当数据变量存在2位整数+1位小数、2整+0小、3整+1小、1整+0小、3整+0小混杂在一起显示时,并且显示格式都选择为了居中,会发现显示效果参差不齐,一开始以为是控件的位置在鼠标点击设置属性时不小心产生的细微偏移,但是前后一共九行参数,最后四行是复制的1~4行,并且在烧录完看到效果之后也有去检查对应复制的控件坐标,发现并没有左右偏移,然后再对这些数据观察发现有一个规律,整数位数一样的有明显的对齐(譬如以上的2整+1小能对齐2整+0小,再如上面3整,虽然被1整+0小这行间隔,但是依旧能看出3整+1小与3整+0小是对齐的),但是恰好如果每行参数整数位数不同,最后出来的效果就变成了蛇形了(纵向看),然后就会导致生出开头所描述的疑问。

2、测试过程出现下发指令到文本显示控件显示汉字内容,结果该文本的相邻数据变量显示控件却出现异常数值(譬如本应该为0但突然出现有了数值),由于此数据变量显示加了数据录入,所以尝试录入数据修改,但是录入完毕后显示的数和录入的数不一致,然后查找到是更换了数据变量显示为双字,但是录入控件没有及时更新录入数据的属性由原来的整数换为长整数,但是更正这一点之后发现虽然录入和显示是一致了,但是对相邻的文本控件发文本依旧会导致这个数据变量显示出现异常数值,排查了地址空间分配是没有问题的(要显示4个汉字+2个数字,所以分配了5个地址空间一共10个字节),但是指令可能存在问题,觉得是这个问题的起因是由于之前出现过发送短文本会造成残留长文本末尾内容的现象(这个在前面的问题记录及解决有详细过程),所以先入为主的使用了FFFF为帧结束符,但是一旦发送带上这个FFFF就会导致相邻的这个数据变量显示出现异常值,所以不断尝试FF00、FF、无FFFF、无FF00等各种情况,最后发现,正确的做法是只有在不满10字节的情况下再使用FF填充,譬如一共5个字10个字节,文本控件变量地址为1000,需要显示“屋外温度1”,那么指令格式为5A A5 0D 82 1000 CEDD CDE2 CEC2 B6C8 31 FF,如果需要显示“屋外温度22”,那么指令格式为5A A5 0D 82 1000 CEDD CDE2 CEC2 B6C8 32 32,而不是一定都要带FFFF或者FF,所以这也看出,手册和论坛都有提可以加帧结束符(FFFF或者FF00)解决,但是如何加、为什么加还是得结合实际测试结果才能理解得更透彻。

posted @ 2022-10-24 12:53  migui  阅读(14)  评论(0编辑  收藏  举报