Lora2TCP для базовых станций

LoRa, LoRaWAN, Вега Smart
IgorMaevskiy
Мимо проходил
Сообщения: 6
Зарегистрирован: Пт, 21 фев 2020 17:43

Lora2TCP для базовых станций

Сообщение IgorMaevskiy » Пн, 30 мар 2020 12:34

Здравствуйте, никто случайно не делал аналог Lora2TCP, только для базовых станций? В Lora2TCP порт выделяется для конкретного абонента, а хотелось бы получить аналогичный функционал для базовых станций (то есть отдельный TCP порт для данных, получаемых разными БС). У нас в системе, допустим, 2 БС по 30 абонентов и данные с них должны идти на один обработчик, который в дальнейшем формирует из них массив. Считывать этим обработчиком данные с 60 портов не удобно. Буду рад любым примерам или мыслям на этот счет.

senswet
Мимо проходил
Сообщения: 26
Зарегистрирован: Чт, 18 июл 2019 15:18

Re: Lora2TCP для базовых станций

Сообщение senswet » Пн, 30 мар 2020 14:23

IgorMaevskiy писал(а):
Пн, 30 мар 2020 12:34
У нас в системе, допустим, 2 БС по 30 абонентов и данные с них должны идти на один обработчик, который в дальнейшем формирует из них массив. Считывать этим обработчиком данные с 60 портов не удобно.
Базовая станция отправляет данные от всех устройств на один адрес и один порт. Какие еще 60 портов?

petrov_ab
Иногда пишу
Сообщения: 154
Зарегистрирован: Вт, 16 июл 2019 16:42
Откуда: Подмосковье

Re: Lora2TCP для базовых станций

Сообщение petrov_ab » Пн, 30 мар 2020 15:41

К тому же по протоколу UDP, в зашифрованном виде. Есть версия сервера (для Linux-ARM, [url]https://iotvega.com/content/ru/soft/ser ... 1.5.tar.gz[/url, она устанавливается на базовую станцию. Понятно, что во-первых там все урезано по ресурсам (не знаю, потянет ли 60 устройств), Во вторых "все яйца в одной корзине"

Аватара пользователя
escudo
Мимо проходил
Сообщения: 13
Зарегистрирован: Чт, 27 фев 2020 01:23

Re: Lora2TCP для базовых станций

Сообщение escudo » Вт, 31 мар 2020 01:54

petrov_ab писал(а):
Пн, 30 мар 2020 15:41
К тому же по протоколу UDP, в зашифрованном виде.
А можно подробнее про шифрование?
В свежепоставленных Вега БС стоит Semtech Packet Forwarder версии 4.0.1, где

Код: Выделить всё

The protocol between the gateway and the server is purposefully very basic and 
for demonstration purpose only, or for use on private and reliable networks.

There is no authentication of the gateway or the server, and the acknowledges 
are only used for network quality assessment, not to correct UDP datagrams 
losses (no retries).

IgorMaevskiy
Мимо проходил
Сообщения: 6
Зарегистрирован: Пт, 21 фев 2020 17:43

Re: Lora2TCP для базовых станций

Сообщение IgorMaevskiy » Вт, 31 мар 2020 10:48

senswet писал(а):
Пн, 30 мар 2020 14:23
IgorMaevskiy писал(а):
Пн, 30 мар 2020 12:34
У нас в системе, допустим, 2 БС по 30 абонентов и данные с них должны идти на один обработчик, который в дальнейшем формирует из них массив. Считывать этим обработчиком данные с 60 портов не удобно.
Базовая станция отправляет данные от всех устройств на один адрес и один порт. Какие еще 60 портов?
Имеется ввиду 60 портов для данных каждого абонента, которые можно открыть с помощью Lora2TCP на машине с сервером.

petrov_ab
Иногда пишу
Сообщения: 154
Зарегистрирован: Вт, 16 июл 2019 16:42
Откуда: Подмосковье

Re: Lora2TCP для базовых станций

Сообщение petrov_ab » Вт, 31 мар 2020 13:02

Протокол и шифрование подробно описаны в спецификации на LoraWAN. Честно, не разбирался, не вижу для себя пока в этом надобности.

senswet
Мимо проходил
Сообщения: 26
Зарегистрирован: Чт, 18 июл 2019 15:18

Re: Lora2TCP для базовых станций

Сообщение senswet » Вт, 31 мар 2020 15:19

IgorMaevskiy писал(а):
Вт, 31 мар 2020 10:48
senswet писал(а):
Пн, 30 мар 2020 14:23
IgorMaevskiy писал(а):
Пн, 30 мар 2020 12:34
У нас в системе, допустим, 2 БС по 30 абонентов и данные с них должны идти на один обработчик, который в дальнейшем формирует из них массив. Считывать этим обработчиком данные с 60 портов не удобно.
Базовая станция отправляет данные от всех устройств на один адрес и один порт. Какие еще 60 портов?
Имеется ввиду 60 портов для данных каждого абонента, которые можно открыть с помощью Lora2TCP на машине с сервером.
Зачем вам открывать отдельный порт для для каждого устройства? Информация об устройстве, отправившем данные, содержится в пакете от базовой станции.

IgorMaevskiy
Мимо проходил
Сообщения: 6
Зарегистрирован: Пт, 21 фев 2020 17:43

Re: Lora2TCP для базовых станций

Сообщение IgorMaevskiy » Ср, 01 апр 2020 10:29

senswet писал(а):
Вт, 31 мар 2020 15:19
IgorMaevskiy писал(а):
Вт, 31 мар 2020 10:48
senswet писал(а):
Пн, 30 мар 2020 14:23

Базовая станция отправляет данные от всех устройств на один адрес и один порт. Какие еще 60 портов?
Имеется ввиду 60 портов для данных каждого абонента, которые можно открыть с помощью Lora2TCP на машине с сервером.
Зачем вам открывать отдельный порт для для каждого устройства? Информация об устройстве, отправившем данные, содержится в пакете от базовой станции.
Хорошо, а каким образом можно считать этот пакет? Если считывать данные напрямую через UDP порт, на который БС отправляет пакет, то данные там в зашифрованном виде и необходимо реализовывать дешифратор. Та же Lora2TCP позволяет удобно получить расшифрованные данные, но в моем случае она не подходит. Если есть какой-то другой способ, то буду благодарен.

senswet
Мимо проходил
Сообщения: 26
Зарегистрирован: Чт, 18 июл 2019 15:18

Re: Lora2TCP для базовых станций

Сообщение senswet » Чт, 02 апр 2020 02:34

IgorMaevskiy писал(а):
Ср, 01 апр 2020 10:29
senswet писал(а):
Вт, 31 мар 2020 15:19
IgorMaevskiy писал(а):
Вт, 31 мар 2020 10:48


Имеется ввиду 60 портов для данных каждого абонента, которые можно открыть с помощью Lora2TCP на машине с сервером.
Зачем вам открывать отдельный порт для для каждого устройства? Информация об устройстве, отправившем данные, содержится в пакете от базовой станции.
Хорошо, а каким образом можно считать этот пакет? Если считывать данные напрямую через UDP порт, на который БС отправляет пакет, то данные там в зашифрованном виде и необходимо реализовывать дешифратор. Та же Lora2TCP позволяет удобно получить расшифрованные данные, но в моем случае она не подходит. Если есть какой-то другой способ, то буду благодарен.
Уверены, что там используется шифрование? Протокол, как написали выше, is purposefully very basic.
Описание здесь: https://github.com/Lora-net/packet_forw ... OTOCOL.TXT

Аватара пользователя
escudo
Мимо проходил
Сообщения: 13
Зарегистрирован: Чт, 27 фев 2020 01:23

Re: Lora2TCP для базовых станций

Сообщение escudo » Чт, 02 апр 2020 15:34

Если я правильно понял задачу - то надо прямо на самой БС получить payload пакета от оконечного устройства и далее обрабатывать (отдавать куда-либо) его по своему усмотрению.

Решение возможно такое:
Поставьте прямо на БС версию Vega Server для архитектуры ARM и сконфигурируйте БС так, чтобы она слала данные на этот сервер на свой localhost. Напишите приложение (хоть нативное под Linux ARM, хоть nodejs) и запустите его на этой же БС, чтобы оно коннектилось через WebSocket к этому Vega Server на localhost, если к серверу подключиться суперпользователем описанным в конфиге сервера, то сервер через ws постоянно посылает кучу информации, в том числе и приходящие от оконечных устройств дешифрование пакеты. Далее делайте с ними все, что угодно, включая поднятие на БС в вашем приложении какого нужно сервера и протокола наружу через сетевой интерфейс.

Да, а Веговский Lora2TCP в этом случае вам не поможет - он имеется только в виде уже скомпилированных бинарников под интел 64 бит Linux, на ARM базовой станции не запустится.

Только вот насколько справится со всеми этими задачами процессор и память БС - эксперимент покажет :)

Ответить