Клиент-серверная система для контрольно-измерительных приложений

Устройство представляет собой контрольно-измерительный прибор для считывания сигналов с различной электроники. Мы помогли разработать ряд приложений для этого прибора, а также механизм лицензирования ПО.
Обычно для тестирования электронных устройств нужна целая лаборатория с дорогим оборудованием и инструментами. Но что если вы могли бы воспользоваться этими инструментами через любой веб-браузер на планшете или ПК?

Запрос

Компания, производящая контрольно-измерительное оборудование, разработала экосистему готовых приложений с открытым кодом, которая позволяет любителям электроники тестировать свои проекты. И хотя это проект с открытой спецификацией, некоторые приложения предполагалось сделать платными. Заказчик искал разработчика ПО, который мог бы создать механизм лицензирования, не допускающий распространения платных приложений без лицензии.

Решение

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

Когда работа над этой задачей была завершена, заказчик решил продолжить сотрудничество. Совместно с командой клиента мы улучшили разработанное им приложение-осциллограф и создали ряд новых приложений. В их числе спектрометр с возможностью покупок внутри приложения, Боде-анализатор (приложение для отображения амплитудно-частотных характеристик) и анализатор логики.

Мы автоматизировали процесс сборки образа прошивки, разработали фронтенд и бэкенд, а также подготовили документацию для заказчика.
Процесс анализа гистограммы
Инженер компании KEDR Solutions в процессе разработки механизма лицензирования ПО
Выполненные работы

Разработка механизма лицензирования ПО

Создали решение для генерирования и проверки лицензий для платных приложений.

Разработка контрольно-измерительных приложений для устройства заказчика:

  • Приложение-осциллограф
  • Приложение-спектрометр
  • Анализатор логики с поддержкой UART, SPI и I2C
  • Боде-анализатор
  • Векторный анализатор цепей
  • Цифровой мультиметр

            Сложности проекта и их решение

            Минимизировали время задержки. При обработке данных приложение-осциллограф не могло эффективно захватывать и выводить сигналы. Данные выводились на экран спустя примерно 2 секунды после получения сигнала. Мы изучили библиотеку программы и оптимизировали рендеринг. Кроме того, оптимизировав пользовательский веб-интерфейс, мы смогли сократить объем обрабатываемых им данных. В результате время задержки сократилось до менее чем одной секунды.

            Повысили производительность. Анализатор логики использует 8 каналов для захвата множества сигналов. Команда должна была добиться максимальной производительности на максимальной частоте дискретизации. Мы применили сжатие данных и оптимизировали работу анализатора. В результате максимальная скорость получения данных составила 125 MS/s на канал и до 5 секунд на сигнал при частоте 125 MS/s.
            Процесс анализа гистограммы
            Инженеры IT компании KEDR Solutions в процессе разработки ПО
            Использованные технологии
            • Низкоуровневое ПО для проекта было написано на C/C++.
            • Графические пользовательские интерфейсы были разработаны с помощью HTML, CSS и Javascript.
            • Для выхода в сеть устройство может использовать Ethernet и Wi-Fi.
            • Ряд утилит были написаны на Python.
            • Для потоковой передачи данных с прибора на пользовательский интерфейс используется протокол WebSocket.
            • Все ПО, кроме пользовательских интерфейсов, работает на системе на кристалле Xilinx.
            • Команда участвовала в разработке образа Linux для устройства.

                      Итоги

                      Мы помогли заказчику интегрировать механизм лицензирования в его экосистему. Он позволяет клиентам компании приобретать приложения и совершать покупки внутри приложения. Мы также разработали клиент-серверную систему, серверная часть которой основана на доработанном Nginx.

                      Система предоставляет доступ к сети. Таким образом, пользователь может запускать и управлять множеством приложений для измерительного прибора из браузера. Приложения позволяют измерять сигналы со скоростью получения данных до 125 MS/s, получать данные о спектрах и переводить сигналы в логические данные.
                      Скоростные аналоговые входы:
                      2

                      Скоростные аналоговые выходы:
                      2
                      Разработано приложений:
                      10+
                      Цифровые входы у анализатора логики:
                      8

                      КЕДР Solutions превзошла наши ожидания. Благодаря ежедневным отчетам мы всегда были в курсе того, как идет выполнение каждого задания. С командой легко общаться на любую тему.
                      Технический директор компании-заказчика