Доработать функционал пакета OpenWRT для поддержки работы с 2 модемами

150 000 руб. за проект
09 августа 2022, 17:36 • 4 отклика • 52 просмотра
В
настоящее время есть прошивка на базе
SDK openwrt19 с luci21и пакетом, специально
разработанным для устройств на mt7628an
(MIPS) для реализации соединения через
модем (по шине USB).


Так
же есть устройство на mt7621a (MIPS) с поддержкой
2-х модемов (шины USB3.0/PCI и USB2.0) с SDK openwrt 22
luci 22.



Задача:
доработать функционал пакета для
поддержки 2-х модемов.



На
текущий момент соединение устанавливается
модифицированным протоколом modemmanager,
web интерфейс построен на iframe с пробросом
элементов luci. Большинство функционала
реализовано на shell, lua, javascript.


Необходимые
функции
:



  • Одновременная
    работа 2-х модемов


  • Балансировка
    трафика (mwan3) с настройкой политик из
    web-интерфейса пользователя (балансировка
    по соотношению/попеременная работа
    каналов/отключение балансировки/…)


  • Выбор
    сим-карты АТ-командами для модема с
    поддержкой 2-х сим-карт


  • Отображение
    расширенных параметров сигнала,
    принимаемого от БС для каждого из
    модемов


  • Фиксация
    частот и приоритет технологий связи
    для каждого из модемов


  • Приём/отправка
    смс


  • Работа
    с запросами ussd


  • Консоль
    выполнения АТ-команд


  • Выполнение
    сценариев по событию из смс (опционально)


  • Сетевой
    сторож (функционал мониторинга
    доступности соединения и его перезагрузки
    в случае недоступности с вариантами
    сценариев для каждого из модемов)


  • Страница
    для наведения антенны для каждого из
    модемов (обновление сетевых параметров
    с частотой 1Гц)


  • Автоматический
    подбор настроек соединения (APN,
    user/password, auth type,..) с возможностью ручного
    изменения


  • Поддержка
    wifi (модули miniPCI-e)


  • Отображение
    соседних и доступных БС для каждого из
    модемов


  • Принудительное
    подключение к конкретной БС для каждого
    из модемов при возможности данного
    подключения (в зависимости от условий
    и функций модема)


  • Страница
    с тестом скорости интернет соединения
    через speedtest.net с возможностью ручного
    выбора сервера для тестирования.
    Желательно реализовать на С/С++, а в
    web-интерфейс выводить результат.


  • REST
    API управления устройством (для
    взаимодействия с внешним приложением
    Android/iOS) – опционально


  • Поддержка
    OLED экрана (i2c SSD1306) для вывода информации
    о текущем состоянии сетевых параметров,
    трафика, настроек, названий операторов,
    иное с возможностью конфигурации
    настроек вывода через web-интерфейс


  • Управление
    питанием модулей через выводы GPIO
    (реализованы в SDK)


  • Светодиодная
    индикация сетевых портов, wifi,
    уровня/технологии сети, статуса
    устройства


  • Поддержка
    стандартных функций роутера (изменение
    IP адресов, подсетей, проброс портов,
    статическая маршрутизация, расширенные
    настройки wifi)


  • Поддержка
    VPN протоколов: OpenVPN, PPTP, L2TP, SSTP, WireGuard

Конфигурация
оборудования
:


Плата
mt7621a 128MB RAM, 32MB SPI flash, m.2-b, miniPCI-pci для модулей
wifi, miniPCI-USB2.0 для модемных модулей.



Модемы:
Quectel EM06, EP06, EC25/EG25, EM12, EM120R, EM121R, EM160R;
Sierra
EM7455, EM7565;
Fibocom L850, L860 (Опционально)


Wifi
модули: rtl8812, rtl8814, rtl8821, mt7603, mt7612, …
Мобильное приложение, для взаимодействия с устройством по Wıfı

Ищем профессионала full stack developer c опытом сборки из исходников openwrt/yocto/другие buildroot. Либо backend developer и frontend developer в разных лицах.
Файлы