那么,既然这个变量占四个字节,我们又该如何往里面写数据呢?还是一样的方法,因为迪文的DGUS指令是支持连续写数据的。也就是说,我们可以只用一条指令,往多个连续的地址中写数据,这个时候,之前指令中说的“变量地址”,实际上就变成了“变量首地址”了,另外,这时的“发送的数据长度”也要跟着变了。那么,接下来的指令就可以这样改写了:5A A5 07 82 00 10 00 00 00 01,也就是往0x0010和0x0011里分别写0x0000和0x0001两个数据:
这时,我们再来看触摸屏上的数据,是不是就对了呢?没错,那是必须滴!
至此,数据变量我们知道怎么操作了,那么,接下里,图标变量又要怎么显示呢?很简单,其实图标变量跟数据变量的控制方式是一样的,无非就是图标变量的值跟对应的图标扯上了关系,也就是说,一个变量值对应了一个图标,那么,我们就只需要改变这个变量的值,不同的图标就能显示出来了。
以X0的输入状态为例,他的地址是0x0000,变量下限为0,对应的图标是1(红色图标);变量上限为1 ,对应的图标是2(绿色图标)。这样是不是就很明显了:当我们需要显示红色图标的时候,只需要往地址0x0000写0x0000就可以了;当我们需要显示绿色图标的时候,就只需要往地址0x0000写0x0001就可以了,是不是很简单呢?这里也同样可以用一条指令控制多个地址连续的图标变量,为了对比性更明显一点,我们用一条指令来控制所有的输入输出状态的图标,在之前设定变量地址的时候就是考虑到了这一点,所有将所有的图标变量地址设置成了连续的了,即从0x0000-0x000D,一个14个地址。
接下来,我们就这样来控制,让X0-Y5分别按照这样的规律来显示:
X0状态显示红色;X1状态显示绿色;X2状态显示红色;X3状态显示绿色;X4状态显示红色;X5状态显示绿色;X6状态显示红色;X7状态显示绿色;Y0状态显示红色;Y1状态显示绿色;Y2状态显示红色;Y3状态显示绿色;Y4状态显示红色;Y5状态显示绿色;
那么,我们可以将这一天指令来这样拆解:
5A A5 -- 帧头1F -- 发送数据长度82 -- 指令00 00 -- 首地址00 00 -- X0状态-红色00 01 -- X1状态-绿色00 00 -- X2状态-红色00 01 -- X3状态-绿色00 00 -- X4状态-红色00 01 -- X5状态-绿色00 00 -- X6状态-红色00 01 -- X7状态-绿色00 00 -- Y0状态-红色00 01 -- Y1状态-绿色00 00 -- Y2状态-红色00 01 -- Y3状态-绿色00 00 -- Y4状态-红色00 01 -- Y5状态-绿色
也就是说,只需要发送这样一条指令就OK了:5A A5 1F 82 00 00 00 00 00 01 00 00 0001 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01是不是很简单呢?
再来看下触摸屏,是不是按照我们设想的来显示呢?那还用说嘛?必须滴呀!