2017-02-09 40 views
1

Я разработал встроенную систему (Linux и C), которая считывает два датчика (5 Гц и 200 Гц) вручную, проверяя наличие данных в обоих файлах.Опрос и выбор опроса вручную [SPEED]

Теперь я хотел бы использовать функции Poll или Select POSIX для экономии использования ЦП. Я читал об этом и о некоторых возможных задержках в сокетах. Я хотел бы знать, являются ли функции опроса и выбора медленными, или просто эта «латентность», которую я прочитал, просто незначителен.

Датчик отправляет данные каждые 5 мс, и алгоритмы могут занимать 1-2 мс (фильтр Калмана). Таким образом, система имеет 2-3 мс до следующего образца датчика, или она будет слишком медленной для моего приложения.

+0

, пожалуйста, определите «медленный» – holmium

+0

Я прочитал, что можно получить задержку 5 секунд с помощью сокетов. В моем случае, используя датчики, я не видел никакой задержки. Датчик отправляет данные каждые 5milis, и алгоритмы могут принимать 1-2 миллиллиса (фильтр kalman). Таким образом, система имеет 2-3 мили до следующего образца датчика. –

+0

Устройство, которое вы читаете (последовательный порт?), Должно поддерживать системный вызов select(). И «латентность», о которой вы беспокоитесь, - это только один системный вызов (на один или два чтения()), – joop

ответ

1

Оба механизма опроса и выбора предназначены для использования в тех же целях. Перейдите по ссылке this. Это даст понимание в отношении глубины работы для обоих механизмов. После этого вы сможете принять решение.

Для Poll механизм можно пройти через страницу man poll для получения дополнительной информации.

Для системы select пройдите man select страница для получения дополнительной информации. Я бы предложил пройти через Multithreaded applications section.

Посмотрите на epoll механизм. Это поможет вам расширить свои мысли о реализации.