433 Group
Радиоэфир => SDR => Тема розпочата: UR1229SWL від Березень 19, 2021, 23:59:10
-
(http://kiev.extmail.info/static/gfx/openwebrx-top-logo.png)
Всем доброго здравия! :smilie:
Замечательно, что этот форум. наконец, начал нормально работать, а то раньше, сколько не пытался, регистрация на нем была невозможной, и пришлось еще в прошлом году открыть одноименную тему здесь (http://www.radioscanner.ru/forum/topic51196.html).
Итак, приглашаю всех радиоаматоров на Web-SDR-приемник под названием "Киевский Боливар" (http://kiev.extmail.info/), находящийся адресу: http://kiev.extmail.info
Проект существует около года и претерпел множество изменений в своем развитии.
На данный момент он принимает 6 диапазонов: радиолюбительские VHF, UHF и Avia.
В ближайшей перспективе число диапазонов с общей помощью планируется довести до 9 (а то и до 10) и снабдить диапазонными фильтрами.
Помощь может быть разнообразной, начиная с пожеланий по выбору диапазонов и т.д., которые можно изложить в опросе в "телеграммной" группе https://t.me/kiev_radio_station/80
Ваши пожелания и замечания, которые можно публиковать также и в этой же теме, по возможности будут учтены.
73! :wink:
-
На всякий случай напомню, откуда у нашего радиосервера взялось имя "Боливар".
Есть замечательный рассказ О.Генри "Дороги, которые мы выбираем", а также снят одноименный фильм. Рекомендую почитать.
В этом рассказе разбойник Акула расправляется со своим напарником Бобом, мотивируя это тем, что оставшийся после их бегства единственный конь по кличке Боливар якобы не в состоянии вывезти их обоих с места преступления.
При этом он произносит фразу: "Боливару не вынести двоих", ставшей широко известным мемом.
Так вот, в противоположность литературному, наш электронный Боливар вывезет не только двоих, но и пятерых, десятерых и даже двадцатерых! :cool:
Это хорошо видно в таблице "Server behavior under load (http://kiev.extmail.info/map)".
-
Да - и не забываем, что на нашем "Боливаре" есть Чат :smilie:
Жмете внизу на зеленый значок, он раскрывается в окошко -
[ This attachment cannot be displayed inline in 'Print Page' view ]
В его левом верхнем углу жмете на "бутерброд" и выбираете "Войти".
Далее, если вы уже зарегистрированы в "телеграммной" группе https://t.me/kiev_radio_station , то входите в чат через значок Telegram.
Либо придумываете себе ник и входите как Гость, ваш ник запомнится в кукисах.
И как говорится, ни в чем себе не отказывайте! :biggrin:
-
Спасибо! Хороший проект, нужный и полезный!
-
Ну и ладушки! :wink:
Вы все можете легко помочь поддерживать проект в актуальном состоянии, внося в него происходящие изменения.
Например, в отношении списка репитеров. Они ведь живут примерно как сайты - со временем появляются новые репитеры, а другие, наоборот, уходят в небытие.
Например, в диапазоне Ch 3 (437.8...440.2 Мгц) можно насчитать аж 18 репитеров. Однако как показало прослушивание, реально их них работает едва лишь половина, остальные, видимо, существуют лишь на бумаге.
Конечно, по возможности я стараюсь отслеживать жизнь репитеров, собирая по крупицам сведения о них в Инете и внося в их списки диапазонов на "Боливаре", но одному отслеживать все изменения в эфире затруднительно.
Вы же все тут друг друга и местную эфирную обстановку знаете лучше, и можете более своевременно и достоверно информировать о происходящих изменениях в эфире, которые я буду вносить в "Боливар".
Еще одна посильная помощь - модерирование чата "Боливара".
Пока в нем наблюдается относительное спокойствие и толерантность, но не исключено, что подтянутся тролли, которых нужно ставить на место.
Ну и по возможности временами оказывать консультационную помощь начинающим радиоаматорам. Постоянное присутствие в чате вовсе не обязательно.
Так что если у кого есть желание порулить чатом - милости просим! :wink:
В итоге всем нам пользоваться возможностями нашего "Боливара" будет более комфортно и информативно :smilie:
-
проверка данных по репитеру в APRS
def aprs_request(callsign):
aprs_apikey="apikey"
apiurl = "https://api.aprs.fi/api/get?name="+ str(callsign) + "&what=loc&apikey=" + str(aprs_apikey) + "&format=json"
apireq = requests.get(apiurl)
apidata = json.loads(apireq.text)
print("-"*10 + "> | APRS data" )
if not apidata['entries']:
print("Warning: No APRS data found")
else:
for i in apidata['entries']:
print("| APRS Name: " + str(i['name']) + "\n" +
"| APRS Lat: " + str(i['lat']) + "\n" +
"| APRS Lng: " + str(i['lng']) + "\n" +
"| Lasttime seen: " + datetime.utcfromtimestamp(int(i['lasttime'])).strftime('%Y-%m-%d %H:%M:%S') + "\n" +
"| Comment: " + str(i['comment']))
time.sleep(15)
Не все репитеры есть в APRS.
Вывод примерно такой
===============| UR0UUA |===================================
----------> | APRS data
| APRS Name: UR0UUA
| APRS Lat: 50.42333
| APRS Lng: 30.46367
| Lasttime seen: 2021-03-26 17:27:39
| Comment: 439.375MHz -760 T067 R99
===============| UR0UUB |===================================
----------> | APRS data
| APRS Name: UR0UUB
| APRS Lat: 50.391
| APRS Lng: 30.4805
| Lasttime seen: 2021-03-26 17:23:34
| Comment: 439.400MHz-760 DMR CC1 R100
===============| UR0UUD |===================================
----------> | APRS data
| APRS Name: UR0UUD
| APRS Lat: 50.44533
| APRS Lng: 30.5045
| Lasttime seen: 2021-03-26 17:24:50
| Comment: 438.700MHz D023 -7.60 http://cb.org.ua
===============| UR0UUE |===================================
----------> | APRS data
| APRS Name: UR0UUE
| APRS Lat: 50.44517
| APRS Lng: 30.50533
| Lasttime seen: 2021-03-26 17:25:51
| Comment: 438.775MHz -7.60 DMR CC1 http://cb.org.ua
-
Приветствую, UT3UDX!
Как я могу воспользоватся вашими данными для Боливара?
Или они предназначены не для него ?
-
Это простой скрипт на Python3, точнее просто функция - что она делает - на вход этой функции, в качестве аргумента передается позывной, любой позывной , данные по которому мы хотим получить в APRS
https://www.aprsdirect.com/center/50.39189,30.65014/zoom/11/time/60
https://aprs.fi/#!lat=50.4334&lng=30.5216
Далее, запрашиваем APRS API ( не чаще раз в 15-20 секунд, иначе сработает rate limit и api будет возвращать или пустую строку или какой-то http ответ , типа доступ запрещен )
apiurl = "https://api.aprs.fi/api/get?name="+ str(callsign) + "&what=loc&apikey=" + str(aprs_apikey) + "&format=json"
URL формируется из нескольких частей - callsign, apikey и формат - в нашем случае json .
далее, нам нужен список репитеров для опроса - тут все очень просто - согласно регламенту радиосвязи, если отбросить всё лишнее - репитеров в каждой области ( в каждом диапазоне ) не может быть больше, чем букв в английском алфавите.
Цитирую регламент - " 4. Для ретрансляторів аматорського радіозв'язку позивні сигнали призначаються із серії UR0 в алфавітному порядку суфіксів.
Перша літера суфікса обов'язково повинна відповідати літері-ознаці області згідно з таблицею 1, а друга літера суфікса позивного
сигнала визначає смугу частот, у якій працює ретранслятор (V-діапазон 145 МГц; U-діапазон 435 МГц)."
https://zakon.rada.gov.ua/laws/show/z0205-11#Text
UR0 + U( Киев ) + U ( 70 cм ) или V (2 м) , тоесть что мы имеем -
UR0UUA-UR0UUZ для 70 сантиметрового диапазона и
UR0UVA-UR0UVZ для 2-х метрового диапазона , вобщем не так и много.
Далее, вам нужно получить APRS API key ( https://aprs.fi/account/ ) - это ключ, при помощи которого вы будете делать запросы к APRS api.
Я не помню, нужен ли валидный позывной для этого или нет - это вы уже проверите сами.
Итак файлы, их два - сам скрипт и конфиг
openwebrx_aprs.py
#!/bin/python3
import re, requests, sys, string,json,time,datetime
import configparser
from datetime import datetime # for convert APRS time
letters = list(string.ascii_uppercase)
digits = list(string.digits)
config = configparser.ConfigParser()
config.read('config.ini')
dict_callsigns = {'Крим':'J', 'Вінницька':'N', 'Волинська':'P', 'Дніпропетровська':'E',
'Житомирська':'X','Закарпатська':'D', 'Запорізька':'Q','Івано - Франківська':'S',
'Київ':'U','Кіровоградська':'V','Львівська':'W', 'Миколаївська':'Z','Одеська':'F',
'Полтавська':'H','Рівненська':'K','Сумська':'A','Тернопільська':'B','Харківська':'L',
'Херсонська':'G','Хмельницька':'T','Черкаська':'C','Чернівецька':'Y','Чернігівська':'R'}
def repeaters_2m_callsign_generator(region):
list = []
for third_letter in dict_callsigns[region]:
for four_letter in letters[21:22]:
for five_letter in letters:
list.append(str("UR0" + third_letter + four_letter + five_letter))
return list
def repeaters_70cm_callsign_generator(region):
list = []
for third_letter in dict_callsigns[region]:
for four_letter in letters[20:21]:
for five_letter in letters:
list.append(str("UR0" + third_letter + four_letter + five_letter))
return list
def aprs_request(callsign):
aprs_apikey=config['APRS']['token']
apiurl = "https://api.aprs.fi/api/get?name="+ str(callsign) + "&what=loc&apikey=" + str(aprs_apikey) + "&format=json"
apireq = requests.get(apiurl)
apidata = json.loads(apireq.text)
print("-"*10 + "> | APRS data" )
if not apidata['entries']:
print("Warning: No APRS data found")
time.sleep(15)
else:
for i in apidata['entries']:
print("| APRS Name: " + str(i['name']) + "\n" +
"| APRS Lat: " + str(i['lat']) + "\n" +
"| APRS Lng: " + str(i['lng']) + "\n" +
"| Lasttime seen: " + datetime.utcfromtimestamp(int(i['lasttime'])).strftime('%Y-%m-%d %H:%M:%S') + "\n" +
"| Comment: " + str(i['comment']))
time.sleep(15)
if __name__ == '__main__':
print("APRS 70cm repeaters data")
for callsign in repeaters_70cm_callsign_generator("Київ"):
aprs_request(callsign)
for callsign in repeaters_2m_callsign_generator("Київ"):
aprs_request(callsign)
и конфиг - config.ini
[APRS]
token = validAPRStokenhere
в конфигурационный файл нужно поместить валидный aprs api key - иначе работать не будет.
Известные проблемы - APRS имеет свои жесткие rate limits - и поэтому тут нужно или играть с time.sleep или каким-то образом обходить ограниичение на частоту запросов. Я не копал глубоко :)
-
И если все будет хорошо, на выходе мы получаем такой список ( 70 cм)
APRS 70cm repeaters data
----------> | UR0UUA APRS data
| APRS Name: UR0UUA
| APRS Lat: 50.42333
| APRS Lng: 30.46367
| Lasttime seen: 2021-03-31 14:54:25
| Comment: 439.375MHz -760 T067 R99
----------> | UR0UUB APRS data
| APRS Name: UR0UUB
| APRS Lat: 50.391
| APRS Lng: 30.4805
| Lasttime seen: 2021-03-31 14:45:20
| Comment: 439.400MHz-760 DMR CC1 R100
----------> | UR0UUC APRS data
Warning: No APRS data found
----------> | UR0UUD APRS data
| APRS Name: UR0UUD
| APRS Lat: 50.44533
| APRS Lng: 30.5045
| Lasttime seen: 2021-03-31 14:44:51
| Comment: 438.700MHz D023 -7.60 http://cb.org.ua
----------> | UR0UUE APRS data
| APRS Name: UR0UUE
| APRS Lat: 50.44517
| APRS Lng: 30.50533
| Lasttime seen: 2021-03-31 14:45:51
| Comment: 438.775MHz -7.60 DMR CC1 http://cb.org.ua
----------> | UR0UUF APRS data
Warning: No APRS data found
----------> | UR0UUG APRS data
Warning: No APRS data found
----------> | UR0UUH APRS data
Warning: No APRS data found
----------> | UR0UUI APRS data
Warning: No APRS data found
----------> | UR0UUJ APRS data
Warning: No APRS data found
----------> | UR0UUK APRS data
| APRS Name: UR0UUK
| APRS Lat: 50.52733
| APRS Lng: 30.2285
| Lasttime seen: 2021-03-31 14:54:35
| Comment: 438.825MHz -760 DMR CC1 R77
----------> | UR0UUL APRS data
| APRS Name: UR0UUL
| APRS Lat: 50.53417
| APRS Lng: 30.60467
| Lasttime seen: 2021-03-31 14:43:30
| Comment: 438.675MHz -760 DMR CC1 R71
----------> | UR0UUM APRS data
Warning: No APRS data found
----------> | UR0UUN APRS data
| APRS Name: UR0UUN
| APRS Lat: 50.51617
| APRS Lng: 30.77967
| Lasttime seen: 2021-03-31 14:46:40
| Comment: 438.800MHz -760 T088 R76
----------> | UR0UUO APRS data
Warning: No APRS data found
----------> | UR0UUP APRS data
Warning: No APRS data found
----------> | UR0UUQ APRS data
| APRS Name: UR0UUQ
| APRS Lat: 50.45883
| APRS Lng: 30.35333
| Lasttime seen: 2021-03-31 15:06:16
| Comment: 439.275MHz -760 DMR CC1 R95
----------> | UR0UUR APRS data
| APRS Name: UR0UUR
| APRS Lat: 50.55000
| APRS Lng: 30.19983
| Lasttime seen: 2020-04-19 10:31:26
| Comment: 438.900MHz -760 DMR CC1 R80
----------> | UR0UUS APRS data
| APRS Name: UR0UUS
| APRS Lat: 50.469
| APRS Lng: 30.60317
| Lasttime seen: 2021-03-31 15:05:49
| Comment: 439.000MHz -760 DMR CC1
----------> | UR0UUT APRS data
| APRS Name: UR0UUT
| APRS Lat: 50.15383
| APRS Lng: 30.74617
| Lasttime seen: 2021-03-31 15:03:04
| Comment: 438.975MHz -760 DMR CC1 R83
----------> | UR0UUU APRS data
| APRS Name: UR0UUU
| APRS Lat: 50.51733
| APRS Lng: 30.237
| Lasttime seen: 2021-03-31 15:01:33
| Comment: R79 438.875(-7.600)MHz Irnen CTCSS 88.5
----------> | UR0UUV APRS data
Warning: No APRS data found
----------> | UR0UUW APRS data
Warning: No APRS data found
----------> | UR0UUX APRS data
Warning: No APRS data found
----------> | UR0UUY APRS data
Warning: No APRS data found
----------> | UR0UUZ APRS data
Warning: No APRS data found
на 144 вообще пусто, можно даже не проверять
-
Что-то невероятно заманчивое, а главное, полезное! :smilie:
Спасибо! Попробую разобраться.
-
ну что, получилось запустить скрипт? мне нравится ваш проект - я готов оказать всю разумную помощь - пожалуйста обращайтесь
Я бы мог конечно сделать так, чтобы формировался bookmarks.json - но возможно у вас другие планы - я открыт к общению и выслушаю предложения
-
Я вам вчера ответил по приватке, читали?
-
да
-
Друзья, добрый день!
Для проекта SDR-приемников http://kiev.extmail.info продолжаем собирать средств на апгрейд приемника 2-метрового диапазона на высококачественный 14-битный приемник, который будет иметь лучшую чувствительность и не будет затыкаться от мощных сигналов.
Многие из нас с радостью пользуются этим киевским SDR-ом, после апгрейда мы все получим еще большее удовольствие. Подробное обсуждение проходит в телеграм-группе https://t.me/kiev_radio_station , но вот номер карточки, на который каждый может закинуть сотню-другую гривен для хорошего дела. Осталось из 3500 гривен собрать что-то около тысячи.
Карточка: Алексей 4149 4996 1018 9399 .
Спасибо!
-
Друзья, большое спасибо! Необходимая сумма собрана и приемник уже едет в Киев. Так держать! Еще много интересных проектов впереди!