Читать серийный ответ после записи с помощью C # - PullRequest
0 голосов
/ 03 апреля 2011

Можно ли прочитать ответ с последовательного порта сразу после отправки команды в C #?У меня есть драйвер шагового двигателя, и я пытаюсь прочитать текущий номер шага и отобразить его в строке состояния моей программы формы C # Windows с .net framework 4.0.Для этого мне нужно отправить команду «RC».Затем водитель отправляет обратно номер.У меня такой вопрос: как прочитать последовательный ответ сразу после записи в последовательный порт?Любая помощь с этим была бы очень полезна!

Ответы [ 2 ]

2 голосов
/ 03 апреля 2011

Да, звоните ReadLine().

Однако проблема в том, что последовательные порты работают медленно.Обычная настройка скорости передачи составляет 9600 бод, каждому символу требуется одна миллисекунда для получения.Скажем, вы получаете 6 цифр назад, вы смотрите на RC + lf + 000000 + lf + накладные расходы контроллера, миллисекунды.Ваша программа мертва для мира, по крайней мере, 10 миллисекунд.Эквивалент примерно 20 миллионов циклов ЦП.

То, является ли это реальной проблемой, полностью зависит от того, сколько циклов ЦП необходимо в вашем приложении.Вы решаете это с помощью потоков, либо явно с потоком, который не делает ничего, кроме общения с контроллером, либо с помощью события DataReceived.

0 голосов
/ 03 апреля 2011

Возможно, вы захотите использовать метод ReadExisting, который включает в себя комбинацию потока и буфера.Не зная специфики, я настоятельно рекомендую проверить документы MSDN здесь

Класс SerialPort (System.IO.Ports)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...