2011-12-30 3 views
0

Я создаю игру гитарного героя в единстве, используя Arduino и настоящую гитару.Не ждите ответа arduino

Моя проблема заключается в том, что я должен постоянно проверять возвращаемое значение от ардуино.

Если я постоянно отправляю значение, мои показания не являются достаточно точными, и если я напишу свой код для Arduino таким образом, что он отправит только данные, когда он получит вход с моей гитары, программа объединения замерзает из-за того, что он застрял на коде Arduino, поскольку он, кажется, продолжает ждать ответа. Есть ли способ, которым я могу обойти это?

+3

Может у ou, пожалуйста, напишите какой-нибудь код? Трудно сказать, чего вы пытаетесь достичь. –

+0

Вы действительно должны помочь нам больше ... опубликовать код или объяснить, почему вам действительно нужно проверить значение. В любом случае, если вам нужно проверить возвращаемое значение, и оно возвращает много значения, вам нечего делать? –

+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} 'поток - это мой serialPort. Мне было просто интересно, есть ли способ не сделать stream.readline ждать возвращаемого значения. это мой первый раз, используя системные порты в C#, поэтому все это для меня совершенно новое. – MauritsE

ответ

0

Я понимаю ваш основной вопрос будет:

Q: Я хотел бы интерфейс моего Arduino в C# приложения, работающего под Windows, .

A: Есть два способа сделать это:

  • опросом

  • События

опросом это плохо :)

Правильный путь является использование события, если это вообще возможно.

Предполагая, что вы можете использовать последовательный интерфейс 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

Смежные вопросы