Какая парадигма и технологический стек для приложения, которое прослушивает сообщения и обновляет фигуры на спутниковой Python

Программы на Python
Ответить
Anonymous
 Какая парадигма и технологический стек для приложения, которое прослушивает сообщения и обновляет фигуры на спутниковой

Сообщение Anonymous »

Я использую новый тип вопросов StackOverflow «Общие советы», чтобы представить свой вариант использования и попросить технические рекомендации.
Я специалист по данным с многолетним опытом работы с Python, но не являюсь профессиональным разработчиком.
Я хочу создать приложение, которое:
  • отображает интерактивную спутниковую карту с видом сверху (например, встроенную в Google Earth).
  • может добавлять разные фигуры поверх него, такие как зеленые точки, обозначают датчики, которые физически развернуты в реальном мире по заданным координатам GPS.
  • непрерывно прослушивает сообщения, отправленные этими датчиками (до 30) посредством многоадресной рассылки. Каждый датчик каждые 200 мс отправляет сообщение, содержащее данные измерений, независимо от другого (они не отправляют одновременно).
  • обрабатывает эти сообщения (выполняет некоторые вычисления на основе содержимого сообщений).
  • Обновляет фигуры на карте (например, меняя маркеры датчиков с зеленого на красный в зависимости от содержания сообщений, полученных от этих датчиков).
Это приложение должен:
  • слушать бесконечно или до закрытия.
  • иметь возможность запуска локально и даже без Интернета (желательно).
  • не требует сотрудничества между несколькими пользователями.
  • уметь интегрировать такие функции, как добавление маркера на карту одним щелчком мыши, повторную визуализацию последних 24 часов, и т. д... (в основном я хочу добавить кнопки и раскрывающиеся меню).
Обратите внимание:
  • Я в основном знаком с Python.
  • Я открыт для любых предложений по другим языкам.
Что я пробовал:
Я уже создал сценарий, который успешно прослушивает и обрабатывает сообщения с помощью Python и Асинчио. Мои функции прослушивания и обработки были асинхронными функциями, а прослушивающая функция анализировала сообщения и добавляла их в очередь, которая использовалась функцией обработки.
Я хочу использовать asyncio, поскольку считал, что это лучшая парадигма, поскольку моя функция обработки не занимает много времени, и я в основном ждал прибытия сообщений, поэтому это больше проблема, связанная с вводом-выводом.
Кроме того, мне удалось закодировать первую версию моего приложения с помощью PySide6 для создания графического интерфейса и объект QWebEngineView, который отображает карту с некоторыми функциями Javascript и Leaflet (извините, если это неясно, поскольку я не являюсь экспертом ни в PySide, ни в Javascript). Это работает очень хорошо.
Затем я попытался интегрировать свой фрагмент кода asyncio и мое недавно созданное приложение PySide. Но я изо всех сил пытаюсь интегрировать оба цикла событий. Я слышал о Qasync, но не нашел достаточно близких примеров, чтобы адаптироваться к моему варианту использования.
Мои вопросы:
  • Вы видите что-то неправильное в этом подходе (PySide + Asyncio + Leaflet + Javascript)?
  • Вы бы порекомендовали другой подход и/или технический стек? Пожалуйста, не стесняйтесь указывать любые другие языки и платформы.
  • Для этого варианта использования, когда максимум 30 датчиков отправляют сообщения в многоадресной рассылке каждые 200 мс, и обработка, которая не требует слишком много времени (небольшое количество вычислений + обновление фигур на карте), является ли асинхронность подходящим вариантом? Сообщения не отправляются каждым датчиком одновременно.
Большое спасибо за ваш вклад.

Подробнее здесь: https://stackoverflow.com/questions/798 ... updates-sh
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»