请问一下在Delphi 2010下如何给TChart添加一个series,在网上找了几个都显示语法错误。如果通过串口接收数据来绘制动态图形(数据速率不确定)的话在什么时机给series添加数据(用Timer触法的话速率不一致)。

解决方案 »

  1.   

    串口接收数据怎么接收的,比如用SPComm,一般都有ReceiveData事件,在这里绘图就是了
      

  2.   

    用的是ComPort,在ONRxChar中对数据进行处理,但触发一次接收的很多字节的数据,请问一下如何设置接收多少字节触发一次?
      

  3.   

    ComPort的OnRxChart事件中,这样检测接收到的长度
    //Count,接收缓冲区中接收到的字节长度
    //RepeatNum重复读的次数  while Count < 100 do
      begin
        Inc(RepeatNum);
        if RepeatNum >= 10 then
          Exit;
        Sleep(20);
      end;
      

  4.   

    不是要统计收到的字节数,而是想要在每接收到一帧(数据帧头和尾都是固定的字符,长度为16字节)数据触发一次以便对数据进行处理,请问一下怎么样才能实现。设置EventChar为帧头字符,但有时候触发一次收到的并不是一个完整的数据帧
      

  5.   


    这个Count不是计数!!!!
    这个Count是输入缓冲区中的当前已接收到的字长长度,你看看CPORT的源码,这个COUNT=>ComStat.cbInQue
    这时不好直接read输入缓冲区,因为读了后,这些输入字节就从缓冲区移走了。
    一般是先判断字节长度,然后一次读,所以这个不是统计用的
      

  6.   

    非常感谢,利用Count解决了,每次触发收到帧头时Count总是为1,然后sleep一下,一帧数据就接收完了,这时读取的话就得到了一帧完整的数据。