Я думаю, что я случайно обнаружил потребность в встроенных системах. Что здорово! И довольно страшно. И мне нужна помощь.
Предыстория : меня наняли для создания приложения с графическим интерфейсом, которое берет сканы с двух SICK LMS-291 и интегрирует их с GPS с точностью до дюйма, чтобы вы знали, где происходило каждое сканирование. Как я наивный веб-программист, я понимал, что время будет иметь важное значение, но не понимал, что это также будет сложно! Если вы не знаете, когда произошла каждая точка GPS и каждое сканирование, вы не сможете определить, где происходит сканирование. К сожалению.
Они указали Windows 7 в качестве платформы, а также купили коробку SeaLevel RS422 для USB, чтобы подключить датчики и GPS, и в скором времени я обнаружил свою глупость. Где-то между датчиками и моей компьютерной программой что-то препятствовало своевременному поступлению сканов. LMS выдает 75 сканирований в секунду или 13,32 мс / сканирование. Моя программа не получает их своевременно. Он получает их каждые 100 или около того миллисекунд, группами по 7, 8, 10 или около того. Также иногда появляется недостаточно сканов, или они искалечены. Либо этот адаптер SeaPort отправляет только десять раз в секунду (это возможно? Я не знаю, как работает USB), либо Windows не проверяет буфер (где-то должен быть буфер, верно?) Достаточно часто.
Сегодняшний день : это приводит к некоторым неточностям, с которыми клиент в основном согласен. Я не, тем не менее, и так как у меня есть шанс сделать аналогичную работу для клиента (объединяя больше входов датчиков!), Я хотел бы выяснить, как сделать это правильно, например, учитывая точность GPS , быть в состоянии дать гарантии о точности и точности мест сканирования.
На что это похоже? Мне нужен пользовательский интерфейс и возможность проверять ввод с этих трех устройств каждые 13,32 миллисекунды. Если бы я использовал FreeRTOS с, скажем, Nano-X для графического интерфейса пользователя, работающего на ноутбуке, который они предоставляют, это звучало бы как нормальное решение? Возможно ли, что переход от RS-422 к USB вызывает эти задержки, и использование Windows на самом деле вполне подходит для этой цели?