Комментарии 31
Опишите лучше, как вы Test Fixture делаете и тесты к ним. Про вспомогательное оборудование тоже интересно почитать.
Сами коробки на заводе не делались — они заказывались у сторонних производителей (тот же Ingun).
Вспомогательное оборудование — речь обо всяких программируемых источниках питания (небольшие одноплатные устр-ва с переходником usb-uart), платы с реле (switchboard), всякие штуковины для работы с радиосигналами (анализаторы спектра, снифферы и пр.) Все устр-ва, как я писал, имели стандартный интерфейс — COM-port, и было решено писать весь софт на Python. Удобства более чем очевидны, для понимания работы самих устройств знать не надо было практически ничего, был список команд, которые каждое устр-во понимает, через pyserial отправлялась команда, параллельно вычитывалась реакция устр-ва.
Далее ход тестов, составленный отделом разработки, реализовывался всё на том же Python, а интерфейс к самой коробке был реализован как небольшой web-server, у которого был GUI для оператора, и API для центральной системы, которая все эти тесты гоняла. В итоге получалась очень гибкая, удобная и легко масштабируемая система. Но, как я и сказал, для ручной отладки и оперативного исправления всяких неисправностей очень не хватало подобного COM-port монитора.
Почему не взяли Labview — это же стандартая среда для данного применения?
ИМХО тогда у вас что-то не то с тестовой системой. То ли она легаси — т. е вы поддерживаете много старых стендов, то ли что-то непонятное. Слишком сложно получается и все на UART. Как-то я не понимаю нобходимость Веб-сервера, если задача тестового стенда — оператор нажал на кнопку старт — провести тестирование — создать протокол. Все вроде.
Cами коробки на заводе не делались — они заказывались у сторонних производителей (тот же Ingun).
Было бы неплохо узнать подробности — т.е. это т.н. bed of nails — это все надо заказывать, как готовую коробку со всеми иглами под конкретную плату или можно отдельно коробку, отдельно иглы и потом самому собирать?
Честно говоря, из статьи не совсем понятно, какую именно проблему решал автор. Что не так с многочисленными usb-uart девайсами, которые на али стоят меньше 100р./штуку и которые можно прицепить хоть сотню к одному ПК?
Если точки мониторинга/управления разбросаны на большие расстояния, можно использовать решение типа TCP2UART bridge + tibbo.
Типичная ситуация: к одному компу, ассоциированному (физически и логически) с конкретным Test Fixture, присоединены несколько устр-в (в т.ч. и тестируемое устр-во, DUT — device under test). Скажем, одно из вспомогательных устройств — просто генератор RF. Шлём ему команду «излучи чего-то там на 835 МГц». Он отвечает «ОК». При этом я хочу одновременно видеть реакцию моего DUT, что он действительно принял этот сигнал. И желательно, чтобы мне не приходилось каждый раз определять, на каком порту сидит мой генератор, а на каком — DUT. Система должна сама об этом позаботиться. И автоматически загрузить список команд для каждого типа устройства. И желательно, чтобы всё это интегрировалось в общую систему тестирования, интерфейс которой оформлен через Web. Ну, и там ещё всякие мелочи.
Просто честно: удобство и эргономика в производстве очень часто имеет свой денежный эквивалент. Удобный стул для пайщицы или качественный монитор для программера — это не роскошь, а средство увеличения эффективности труда. Где-то подобными соображениями я и руководствовался
Если честно, на всех подобных устройствах был распаян, если я не ошибаюсь, cp2102 USB UART adapter, и в него можно было с помощью фирменной утилитки прошить имя устройства (любую произвольную строку). Я в меньшей степени электронщик, я больше программированием занимаюсь. Так вот, под python есть библиотечка infini что-то там, позволяет читать registry в windows, оттуда и сопоставляем имя порта (скажем, COM13), и название устройства (например, PowerSupply1). А в Linux и того проще, там в б-ке pyserial есть метод get_usb_description. И это было супер удобно
Так же легко потом делать шейринг таким спискам.
Там есть возможность записи последовательностей команд (наподобие записи макросов, как были в Visual Studio или в Selenium IDE), их прогонки и пр.
Одним из преимуществ подобной системы (именно для производства) в том, что в неё можно добавить любые фичи «на месте», особенно если они требуются для комнадной работы: скажем, пересылать новичку списки команд в зазипованном файле по мейлу, которые ему потом надо будет импортировать в тот же Docklight или подобные утилиты — не совсем удобно.
Я там планировал добавить возможность логирования всего трафика, бегущего через порты, для последующего анализа. Опять же, в условиях производства, где работают тысячи устройств одновременно, можно начинать обрабатывать подобные массивы данных для поиска всяких проблем. Но и для рядового пользователя/инженера/тестера это просто удобный инструмент для отладки COM-порта на самом «низком» уровне
Слишком сложно. Ну, или я не понял задачу.
Железо вроде moxa запросто туннелирует rs232/422/485 в ethernet.
Если надо буферизовать, можно хоть на raspberry.
Правда, моделей пока что ок. 20-ти, и, опять же, был бы рад идеям (ну, или назовём это feature-request).
Кстати, попользуйтесь, может, увидите в этом некое удобство, заодно и сможете подкинуть пару идей ;)
Опять же, будет интерес у публики — допилю, доведу до ума хотя бы внешний вид
В подобной конфигурации ноутбук неудобен и громоздок. Нет нужды в клавиатуре и экране. Там нужен просто несложный компьютер, к которому через USB подключаются все наши устройства, а через сеть с этим компом можно ими управлять. Raspberry там был бы идеален, но начальник побаивался переводить всю инфраструктуру на Linux
Скажем, одной из таких проблем была необходимость гарантировать рабочие драйвера для всего зоопарка устройств, с которыми работали. Проблемы легаси, отсутствие унификации многих схем и процессов создавали серьёзные препятствия для быстрой и безболезненной миграции с одной схемы на другую
-На ноутбук я могу поставить Windows и просто скопировать туда тонну готовых программ. Например, для настройки одного устройства я написал конфигуратор на Qt под Windows. Даже не представляю, насколько будет трудно собрать его под Raspberry.
Понятно, что для какого нибудь законченного устройства, например, вендинговый автомат, то лучше использовать Raspberry или MiniITX плату. Но если вы хотите сделать систему домашнего видеонаблюдения, то сойдет и ноутбук, закинутый в кладовку.
Обычно сервера для наблюдения, хостинга и т.п. делаются под Linux Server, там проблемы с обновлениями нет.
Откуда взялось «не долговечен если 24\7»? У меня ноут годами работает как роутер и сервер. Только пыль иногда продуваю, потому что в комнате пыли много.
Удалённое управление UART'ом через Web