2011-12-30 45 views
0

我使用Arduino和实际的吉他创建了一个统一的吉他英雄类游戏。不要等待arduino的回复

我的问题是,我必须经常检查arduino的返回值。

如果我经常发送一个值,那么我的读数就不够准确了,如果我为Arduino编写我的代码时,它只会在接收到来自我的吉他的输入时发送数据,统一程序会冻结由于它似乎一直等待响应,所以它陷入了Arduino代码中。有没有办法可以解决这个问题?

+3

Can y ou请张贴一些代码?很难说出你想要达到的目标。 – 2011-12-30 09:52:45

+0

你真的需要帮助我们更多...发布一些代码或解释为什么你真的需要检查价值。无论如何,如果您必须检查返回值并返回大量的价值,那么对此无关紧要? – 2011-12-30 10:12:58

+0

我需要检查值,因为我需要查看播放哪些音符。由于评分系统,这必须经常检查。在我更新功能我打电话下面的函数'公众持股量Getfreqval() \t { \t \t串valuetext = stream.ReadLine(); //读取信息 \t \t freqvalue = System.Convert。ToSingle(valuetext); \t \t \t \t \t \t回报freqvalue; \t \t \t \t}流是我的串口。我基本上只是想知道是否有办法不让stream.readline等待返回的值。这是我第一次在c#中使用系统端口,所以它对我来说都是新的。 – MauritsE 2011-12-30 10:35:51

回答

0

我明白你的基本问题是:

问:我想我的Arduino接口到 下运行Windows的C#应用​​程序。

答:有两种方法可以做到这一点:

  • 轮询

  • 活动

投票是坏:)

的正确方法如果可能的话,就是使用事件。

假设您可以使用C#串行接口,则可以将事件分配给DataReceived。

下面是讨论正是文章:

http://www.johnciacia.com/2010/06/03/interacting-with-the-arduino-with-c/

查找:

serialPort1.DataReceived += 
    new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataReceived); 

这里是另一个链接:它看起来像 “Scrobby4” 发布了一些示例代码:

http://forum.unity3d.com/threads/14731-COM1-and-events