Июня
2018 года
19
WEBSDR - ч3. Cофт - WebSDR by PA3FWM /Lubuntu / AFRDRI SDR-NET
2018 года
Да-да... Не прошло и года, как мне все же ответил PA3FWM и скинул ссылку на скачивание софта. С софтом идет подробная инструкция как его ставить и в целом там проблем нет, остановлюсь на двух нюансах.
Первое - несмотря на заполнение файла /cfg/websdr.cfg после запуска страница с панорамой выглядит незаполненной, нет данных с located in, operated by итд
Так вот что бы они появились, их нужно запонить руками. И лежит файлик по пути /dist11/pub2/index.html
Второе - приложение websdr от PA3FW написано не совсем корректно. При запуске оно КАТЕГОРИЧЕСКИ требует libpng12. И то, что на дворе 2018, либа имеет совсем другую обновленную версию (кажется 1.6), мир использует libpng-dev. Это никого не волнует. Попытка обойти дурацкое требование методом линковки на версию посвежее - ничего не дала, после того как приложение находит библиотеку, оно проверяет версию. И если версия не 12, то начинает истерить и материться. Так что, только libpng12, только хардкор!(с)
sudo nano /etc/apt/sources.list
#### Manually Added sources ## source for libpng12-0 package deb http://mirrors.kernel.org/ubuntu/ xenial main
press ctrl+x and hit yes to save the file
sudo apt-get update
sudo apt-get install libpng12-0
Ну или свой вариант, но ход мыслей, думаю, понятен...
Далее... Как я говорил Афедри у меня сетевой. Это очень удобно, спасибо автору за такую реализацию. На самом деле, как мне кажется, это предполагает возможность установить в конечном итоге приемник в деревне, а сервер в дата-центре. Ну а трафик между сервером и приемником в 200 килобит, вполне реализуемая вещь, даже с самым убогим мобильным интернетом. Возможно буду пробовать такой вариант в дальнейшем. Но это лирика....
Запуск даже сетевой версии оказался несложным. Все нужные библиотеки уже стояли, дело за малым - настроить!
Нам нужно организовать трафик между WEBSDR и Afedri, трафик направить в файл, а приложение WEBSDR заставить этот файл читать.
Что бы не забыть - копируем sdr_commander и sdr_split в папку dist11
Создаем FIFO файл:
mkfifo /home/websdr/band20/fifo/afedri-ch-1
В /cfg/websdr.cfg находим параметр device и прописываем в него путь к файлу
device /home/websdr/band20/fifo/afedri-ch-1
Заполняем остальные поля и параметры в конфиге, создаем бэнд. И обязательно добавляем в конце диапазона команду
swapiq
что бы стартовало в USB... (если диапазоны верхние)
Делаем тестовый запуск сервера, что бы убедится что все работает. Должно ругаться только на afedri-ch-1, с остальными нужно разобраться - выставить пермишены, chmod итд.
Теперь делаем запускной файл. У меня это привычный ./afedri_start.sh
#!/bin/bash
FREQUENCY=14128000
SAMPLE_RATE=256000
GAIN=25./sdr_commander -t192.168.0.245 -sn$SAMPLE_RATE -g$GAIN -q0 -f$FREQUENCY
./sdr_split -s$SAMPLE_RATE -O -c1 -s256000 -u50000 -i192.168.0.245 > /home/websd
r/band20/fifo/afedri-ch-1 &
sleep 1
./websdr
Можно заметить, что он является почти точной копией запускного файла от openwebrx, но есть отличие.
/sdr_split -s$SAMPLE_RATE -O -c1 -s256000 -u50000 -i192.168.0.245 > /home/websdr/band20/fifo/afedri-ch-1
В этот раз сдр_сплит гонит данные в файл FIFO.
После запуска мы видим что-то вроде...
websdr@websdr:~/band20/dist11$ ./afedri-start.sh
sdr_commander v.1.24
SDR IP=192.168.0.245:50000
SO_KEEPALIVE is OFF
The new sample rate was set in SDR: 256000 (Hz)
ACK rprt=28, cmd=8
RF gain 25dB => 93
ACK rprt=28, cmd=48
The new multichannel mode is Single Channel
RX Frequency 14128000 (Hz) for the channel 0>>> WebSDR server (20140718.1716-32)<<<
Copyright 2007-2014, Pieter-Tjerk de Boer, pa3fwm@websdr.org
Samplerate 256000 is not supported yet; continuing anyway, but this probably is not going to work well...
, Can't set audio data format to 16 bit little-endian.
, Can't select 2 input channels.
, Can't set fragmentsize.
, Can't set input sample rate to 256000.
size_of_int=4, size_of_long=4
SDR Split 1.19 will use next parameters
Starting in network mode SDR IP=192.168.0.245:50000
1 RX IQ channels data stream.
Split to 1 channels...
Playback device is stdin
Channel sample rate 256000
SO_KEEPALIVE is OFF
UDP socket receive buffer size 262144
Any address on port 50000
Output mode is 1 , DSP mode is 0
Planning FFTs for band 0... done.
Writing frequency axis images... doneInitialization completed; server is now running.
Не помню была ли раньше проблема с ", Can't set audio data format to 16 bit little-endian" но даже с такой ошибкой все работает.
Стартовый скрипт нечто вроде:
sudo -H -u websdr tmux new -d -s websdr20 'bash -c "cd /home/websdr/band20; ./afedri-start.sh; bash"'
Килскрипт
tmux kill-session -t websdr20
killall -9 websdr sdr_split csdr nmux nc sdr_commmander
pkill tmux
Приложение замечательно держит нагрузку. Что и понятно, в силу убогости водопада.
Сравнивая между собой OPENWEBRX и WEBSDR, прихожу к мнению что первый мне более симпатичен. На его водопаде можно хоть что-то разглядеть и более удобно подстраиваться. Но это, конечно, вкусовщина. Побродив по другим вебприемникам взял на заметку опцию автоматической смены диапазона, возможно сделаю в будущем такую опцию и у себя...