Когда жизнь не может предоставить интерфейс отладки, мигает светодиод RGB
Да, я знаю; если мы хотим создавать продукты хорошего качества, нам нужны соответствующие инструменты, включая адекватные порты отладки, но жизнь, как вы знаете, иногда бывает неприятной.
Недавно в своей карьере фрилансера я обнаружил, что двое моих клиентов не смогли добавить какой-либо текстовый отладочный текст в свои продукты. В одном случае инженеры-разработчики оборудования просто забыли добавить такой канал, осознав свою ошибку только после того, как взяли на себя большой запас плат. В другом примере продукт был настолько миниатюрен, что на нем не было места. К счастью, в обоих случаях у меня был светодиод RGB (трехцветный), который я мог использовать для отладки. Поскольку иногда, когда вам дают лимоны, единственное, что вы можете сделать, это приготовить лимонад, я в конечном итоге использовал светодиод RGB для реализации системы обмена мигающими сообщениями.
Из этого опыта я был удивлен, обнаружив, что отладка на основе светодиодов RGB может быть чрезвычайно практичной и неожиданно богатой функциями, только если используется удобная для человека схема модуляции.
Мои сообщения модулировались путем выбора разных цветов для представления контекста кода и выбора количества миганий и стиля для представления конкретного сообщения в этом контексте. Мигания ставятся в очередь и последовательно отображаются на светодиодном индикаторе, аналогично тому, как основной канал текстовой регистрации обрабатывает короткие текстовые сообщения.
В модуле отладки светодиодов было четыре типа ритмов мигания, реализованных с использованием следующих функций:
-
led_debug_blink (цвет, номер)
для кратковременного мигания индикации. -
led_debug_blink_wide (цвет, номер)
для более продолжительного мигания индикатора, используемого в более подходящих ситуациях. -
led_debug_blink_error (цвет, число)
иled_debug_blink_wide_error (цвет, число)
для коротких и более длинных сообщений об ошибках с теми же функциональными сигнатурами, что и другие, соответственно.
Каждая из этих функций создает уникальный процесс мигания. Обычные мигания активны в течение одной секунды с интервалом в полсекунды, в то время как широкие мигания активны в течение двух секунд с интервалом в полсекунды. Сообщения об ошибках обозначаются красным цветом с последующим миганием контекста, как показано на рисунке 1.
Временные диаграммы мигания для четырех стандартных функций и функций отладки ошибок
(Щелкните здесь, чтобы увеличить изображение. Источник:Фелипе Лавратти)
Обратите внимание, что желтые области на рисунке 1 используются для обозначения выбранного контекста. Если мы решим просто включить или выключить светодиоды RGB, то желтые области на рисунке 1 могут быть зелеными, синими, желтыми, голубыми, пурпурными или белыми; то есть любой цвет, доступный при включении или выключении светодиодов RGB, кроме черного (все выключено) и красного (используется для обозначения состояния ошибки). Если мы решим использовать широтно-импульсную модуляцию (ШИМ), мы сможем добиться более широкой цветовой гаммы. Однако дешевые светодиоды RGB не очень хороши, когда дело доходит до смешивания цветов, поэтому бывает сложно различить определенные комбинации, в то время как другие, например оранжевый, работают достаточно хорошо.
Периоды мигания и методология были тщательно выбраны для облегчения чтения человеком, что оказалось достаточным для инженеров на этапе разработки, а также для полевого техника во время испытаний, при условии, что удалось избежать чрезмерного обмена сообщениями через светодиод.
Отладка с помощью светодиода не идеальна, но в системах, над которыми я работал, она помогала ускорить разработку и полевые испытания, предоставляя быстрый способ наблюдения за состоянием системы без каких-либо устройств, подключенных к продуктам. Потребовалась небольшая подготовка, чтобы команда привыкла к значению каждого цветового контекста и ритму мигания, но это не заняло много времени. Что наиболее важно, каждое из них должно было различать информационные сообщения и сообщения об ошибках, и наша схема предоставляла достаточно информации, чтобы мы могли быстро определить, какой фрагмент кода пошел не так.
Я считаю, что это пример, когда небольшие усилия по настройке системы на возможности людей, использующих ее, превратили потенциально сложный в использовании интерфейс отладки в удивительно эффективный.
Фелипе Лавратти разработала устройства, подключенные к Интернету, для домашней автоматизации, создала встроенные приложения Linux и драйверы для портативных кассовых терминалов, а также реализовала встроенные математические алгоритмы для управления процессами и регистраторы данных для промышленных приложений. В начале своей карьеры Фелипе осознал важность качества, поэтому он применяет все современные методы, необходимые для создания надежных продуктов; Каждая часть процесса разработки контролируется с точки зрения качества:кодирование, тестирование, приемка, развертывание, интеграция и развертывание. В настоящее время Фелипе работает внештатным консультантом и разработчиком. С ним можно связаться по адресу
Встроенный
- Когда вольфрам впервые был использован в лампах
- Типы цветов в красильной промышленности Распространение оттенка в повседневной жизни
- Философия и документация
- Когда DSP превосходит аппаратный ускоритель
- Поездка в Вольтеру
- Когда жизнь не может предоставить интерфейс отладки, мигает светодиод RGB
- Компактные драйверы светодиодов Maxim обеспечивают высокую эффективность и низкий уровень электромагнитных п…
- Когда дверь гаража не может открыть большой кризис?
- 4 основных признака того, что срок службы вашего двигателя подходит к концу
- Когда был изобретен токарный станок для металлообработки?