LINUX.ORG.RU

Чтение из com порта.

 


0

4

Понять не могу, что происходит.

Шлю в ериал порт данные с дискретом в 20 миллисекунд.

Скрипт на Руби шикарно читает данные. Задержка по чтению прыгает в пределах половины миллисекунды.

Прога на С++ даёт временные задержки до 5 миллисекунд. Причем, это каксается как чтения через файловые дескрипторы, так и работы через boost asio

Какую магию применяет руби?

P.S. Я уже даже реалтаймовое ядро поставил... Ниче понять не могу...



Последнее исправление: Mirmik (всего исправлений: 1)

Буферизация, например...

Почитай-ка man select, man poll. И да, "родные" функции С++ для работы с портами — дикий трэш!

anonymous
()
Ответ на: комментарий от Mirmik

select позволяет производить неблокирующее чтение. Но в случае плюсов наверняка проблема с говнистым интерфейсом. Напиши на чистых сях модуль работы с портом.

anonymous
()
Ответ на: комментарий от anonymous

он и так был на чистых сях, пока я его на буст от безысходности не переписал.

Mirmik
() автор топика

Всем спасибо. Отловил баг. Дурацкий левый баг. Один из потоков висел в бесконечном цикле, забивал процессорное время.

Mirmik
() автор топика

Попробуйте переписать на C.

NG2016
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.