Z
zjxno1
Unregistered / Unconfirmed
GUEST, unregistred user!
需要实现的功能:
需要根据下位机的状态值写下位机的数据.如:要对下位机的地址A赋值,需根据下位机的B地址的值来定,若A值为0,则在B地址写入0;若A值为1,则在B地址写入1.
因为需要对下位机先进行读操作,再进行写操作,但是要获取读来的数据,必须等待串口接受数据的事件触发,从缓冲区解析获取的数据,然后才能再对下位机进行写操作,这个过程如何实现. 是用延时等待还是用Timer控制?
如果是用延时,我这样处理好象不行:
....
SendReadCommand(data); //向串口发读取数据的命令
sleep(10); //等待串口接受收据
if (ReadFromBuffer<>'') then //如果接收到数据
begin
SendWriteCommand(sendData); //发送数据
end;
在调用sleep的过程中,好象spcomm的recieveData事件总是不执行,也就是说ReadFromBuffer一定是空的, 就不会执行发送数据的命令了.
需要根据下位机的状态值写下位机的数据.如:要对下位机的地址A赋值,需根据下位机的B地址的值来定,若A值为0,则在B地址写入0;若A值为1,则在B地址写入1.
因为需要对下位机先进行读操作,再进行写操作,但是要获取读来的数据,必须等待串口接受数据的事件触发,从缓冲区解析获取的数据,然后才能再对下位机进行写操作,这个过程如何实现. 是用延时等待还是用Timer控制?
如果是用延时,我这样处理好象不行:
....
SendReadCommand(data); //向串口发读取数据的命令
sleep(10); //等待串口接受收据
if (ReadFromBuffer<>'') then //如果接收到数据
begin
SendWriteCommand(sendData); //发送数据
end;
在调用sleep的过程中,好象spcomm的recieveData事件总是不执行,也就是说ReadFromBuffer一定是空的, 就不会执行发送数据的命令了.