Я занимаюсь разработкой приложения C#, которое должно получать данные из программного обеспечения Neurofeedback и передавать их в блок Le go NXT. Каждый раз, когда в программном обеспечении Neurofeedback достигается определенная цель, программное обеспечение передает через сокет TCP приложению C# значение 1, а если цель не достигнута, то отправляет от 0 до C#. Затем приложение C# отправляет информацию на мой автомобиль NXT (используя связь Bluetooth): если NXT получает 1, он должен двигаться; если он получает 0, то он должен немедленно остановиться.
Поскольку иногда эти значения изменяются в течение очень короткого периода времени, NXT не может ответить так быстро и точно (перемещая или останавливая свое движение) , Например: когда он изменяется от 1 до 0, а затем снова до 1, если период диапазона между 1 слишком мал, то создается впечатление, что NXT всегда движется.
Чтобы решить В этой проблеме одним из решений было бы запрограммировать «счетчик таймера»: в основном, для перемещения NXT, цель (в программном обеспечении Neurofeedback) должна соблюдаться в течение не менее 1 секунды (то есть, без прерываний - значений). меняется от 1 до 0). Другими словами, если приложение C# получает значение 1 без изменения в течение как минимум 1 секунды (или более), то оно должно приказать NXT окончательно двигаться (и продолжать двигаться, пока C# не получает значение 0). ).
Я знаю, что на формах Windows есть функция таймера, но мне не удалось запрограммировать "счетчик" из нее. Кроме того, я попытался провести некоторое исследование, но начинаю верить, что, возможно, «счетчик таймера» не лучший способ описать то, что я ищу ...
Примечание: внутри моего кирпича NXT нет кода. По сути, приложение C# (через указанную библиотеку c) передает все команды перемещения роботу NXT.