Скорость чтения последовательного порта в C # - PullRequest
0 голосов
/ 15 января 2011

Я разрабатываю приложение под C # для чтения некоторых данных с оборудования, подключенного к последовательному порту.

Как правило, аппаратное обеспечение отправляет свою позицию (X, Y, Z) и температуру вместе с парой других десятичных значений через последовательный порт.

Я бы хотел, чтобы скорость сканирования составляла 10 миллисекунд; Это означает, что я хотел бы читать температуру, положение и другие значения каждые 10 миллисекунд от порта.

Имеется приложение MFC с аппаратным обеспечением, которое может считывать данные с такой скоростью. Возможно ли иметь такую ​​же производительность в C #? У меня нет сейчас доступного оборудования, поэтому я не знаю, возможно ли это с помощью C #.

1 Ответ

1 голос
/ 15 января 2011

Если вам нужно отправлять около 20 байтов (в качестве оценки 6 полей, по 3 символа в каждом) каждые 10 мс, тогда вам нужно как минимум 16 Кбод, что не так много.На самом деле у меня есть большие сомнения, что C # слишком медленный, чтобы не справиться с последовательным соединением через порт.

Если вы знаете параметры последовательной связи вашего оборудования, тогда его будет легко использовать из C #.Я знаю только, как использовать его из Win32 API, вам нужны вызовы CreateFile, SetCommTimeouts, SetCommState и ReadFile.Похоже, что эти функции доступны и из C #.

Если вы не знаете параметров этого последовательного порта, возможно, можно получить их с помощью анализатора последовательного порта, однако я не уверен в этом.

...