我要做的是一个生产控制系统,终端上有十个单片机(下位机)来控制机器,由电脑向每个单片机发命令
并向单片机读取状态,判断该发什么命令
命令格式是:以#开头,以回车结尾命令长度为13个字符
我想做的是,由电脑向单片机发一个开始生产的命令然或所有单片机开始工作,电脑从单片机上采集数据
并判断其状态再发命令控制生产,在整个过程中只有第一个命令是人发的后面的由电脑完成
我用的是touber power 的控件ApdComPort我的流程是:当点击开始生产时发一个开始计量命令,顺便发一个读命令(紧跟前一个命令),
读取单片机的工作状态看是否都在正常计量,这时应该激发控件的onTrigger事件,
判断命令是否正确,正确则接受,然后判断是否正常计量
若不是则重发计量命令,顺便发一个读命令,这是又会激发onTrigger事件,继续判断…
直到所有的都正常计量,再发一个读命令看是否计量完,若没有则继续发读命令直到所有的都计量完为止
然或开始执行下一个动作……
现在的问题是,第一个点按钮发送的计量命令是成功的,后面的都停下来了,没有按照预想的执行下去
我觉得是不是每次都从串口缓冲区读命令太快读到的是不完整的命令(我遇到过),我判断命令是否正确
是以字符串是否以#开头,以回车结尾长度是否是13,若是则接受,不是则放弃。
谁有什么好的办法不妨说说谢了

解决方案 »

  1.   

    单片机和命令都有编号
    作单片机的人,就在我旁边,我单发命令是没错,让程序自动检测单片机的状态自动
    控制生产就坏了只执行第一个命令我现在不想用控件了,直接用api用轮询方式,100毫秒询问一遍
    若命令正确,就修改全局变量(在全局变量里记录每个单片机的状态)正在试,不过我觉得论询的方式不太好
    谁有什么更好的办法?
      

  2.   

    http://218.56.11.178:8009/Browers.aspx?FID=437
      

  3.   

    多谢几位了!
    这次还是,hiflower(花) fjyhs(辉辉) 比较准.