Unity和Amp之间的SerialPort延迟由readBytesUntil引起的Arduino

时间:2015-03-04 09:18:29

标签: unity3d serial-port arduino

我创建了一款带有统一游戏引擎的游戏,并与arduino进行双向串行通信。我可以使用Serial.println将数据发送到Unity而没有任何问题。然而,当我尝试从Unity向Arduino发送一封信时,我得到了令人难以置信的延迟。延迟是由以下代码引起的。它减慢了整个游戏的速度,也降低了从Arduino发送到统一数据的速度。

  {
   int lf = 10;
   Serial.readBytesUntil(lf, myCol, 1);
   if(strcmp(myCol,"A")==0){
   digitalWrite(StimPin, HIGH);       
   }

我已经读过,串口无法读/写而不会造成延迟。如果是这样,任何人都可以推荐一种解决方法,在arduino和amp;之间进行双向通信。没有滞后的团结? 谢谢 乔伊

2 个答案:

答案 0 :(得分:0)

尝试改变方法,我有一个统一的项目,创建自定义字符串比发送快得多。 在Arduino方面,尝试循环每个char并重新创建字符串,并在Unity方面为任何传入的char都有一个辅助线程循环。

答案 1 :(得分:-1)

我通过简单地将超时设置为100毫秒解决了这个问题:

Serial.setTimeout(100);

参考: https://www.arduino.cc/en/Serial/SetTimeout