Наш WEB-SDR

Модератор: Разработчики

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

Наш WEB-SDR

Сообщение MiB » 27 сен 2021, 12:37

Вот тот-же блок с сайта pa3fwm
сравнить целиком некогда, но проверка одна и та-же.

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

//----------------------------------------------------------------------------------------
// recording

var rec_showtimer;
var rec_downloadurl;
var rec_fname='';

function record_show()
{
   document.getElementById('reccontrol').innerHTML=Math.round(soundapplet.rec_length_kB())+" kB";
}

function record_start() { 
   document.getElementById('reccontrol').innerHTML=0+" kB";
   if (rec_downloadurl) { URL.revokeObjectURL(rec_downloadurl); rec_downloadurl=null; }
   rec_showtimer=setInterval('record_show()',250);
   soundapplet.rec_start(); 

   try {
      rec_fname=(new Date().toISOString()).replace(/\.[0-9]{3}/,"");
   } catch (e) {};
   rec_fname="websdr_recording_start_"+rec_fname+"_"+nominalfreq().toFixed(1)+"kHz.wav";
}

function record_stop()
{
   clearInterval(rec_showtimer);
   var res = soundapplet.rec_finish();

   var wavhead = new ArrayBuffer(44);
   var dv=new DataView(wavhead);
   var i=0;
   var sr=Math.round(res.sr);
   dv.setUint8(i++,82);  dv.setUint8(i++,73); dv.setUint8(i++,70); dv.setUint8(i++,70); // RIFF  (is there really no less verbose way to initialize this thing?)
   dv.setUint32(i,res.len+36,true); i+=4;  // total length; WAV files are little-endian
   dv.setUint8(i++,87);  dv.setUint8(i++,65); dv.setUint8(i++,86); dv.setUint8(i++,69); // WAVE
   dv.setUint8(i++,102);  dv.setUint8(i++,109); dv.setUint8(i++,116); dv.setUint8(i++,32); // fmt
     dv.setUint32(i,16,true);   i+=4;   // length of fmt
     dv.setUint16(i,1,true);    i+=2;   // PCM
     dv.setUint16(i,1,true);    i+=2;   // mono
     dv.setUint32(i,sr,true);   i+=4;   // samplerate
     dv.setUint32(i,2*sr,true); i+=4;   // 2*samplerate
     dv.setUint16(i,2,true);    i+=2;   // bytes per sample
     dv.setUint16(i,16,true);   i+=2;   // bits per sample
   dv.setUint8(i++,100);  dv.setUint8(i++,97); dv.setUint8(i++,116); dv.setUint8(i++,97); // data
     dv.setUint32(i,res.len,true);  // length of data

   var wavdata = res.wavdata;
   wavdata.unshift(wavhead);

   var mimetype = 'application/binary';
   var bb = new Blob(wavdata, {type: mimetype});
   if (!bb) document.getElementById('recwarning').style.display="block";
   if (window.navigator.msSaveOrOpenBlob) {
      // workaround for bug in MSEdge: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7260192/
      window.navigator.msSaveOrOpenBlob(bb, rec_fname);
   } else {
      rec_downloadurl = window.URL.createObjectURL(bb);
      document.getElementById('reccontrol').innerHTML="<a href='"+rec_downloadurl+"' download='"+rec_fname+"'>save</a>";
   }
}

function record_click()
{
   var bt=document.getElementById('recbutton');
   if (bt.innerHTML=="stop") {
      bt.innerHTML="start";
      record_stop();
   } else {
      bt.innerHTML="stop";
      record_start();
   }
}


bc=new BroadcastChannel("websdr");

bc.onmessage=function(ev) {
  try { soundapplet.setbcaudio(bc); } catch (e) { };
};
предположу что где-то раньше какие-то разрешения выдаются...
потому как ничем не отличается: создаем блоб, если его нет, то меняем стиль элемента recwarning

Аватара пользователя
ignat99
Сообщения: 19
Зарегистрирован: 16 окт 2021, 17:42
Откуда: Испания
Город: Barcelona
Имя: Ignat
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Наш WEB-SDR

Сообщение ignat99 » 16 окт 2021, 17:45

Привет с Андалусии, 200 км от Сахары. Через интернет слышимость отличная!


Аватара пользователя
R2AJI
Сообщения: 746
Зарегистрирован: 12 окт 2019, 22:48
Город: Россошь
Благодарил (а): 183 раза
Поблагодарили: 240 раз

Наш WEB-SDR

Сообщение R2AJI » 16 окт 2021, 18:53

ignat99, почти 4000 километров. Отрадно.
Все вопросы про радио, на форум пожалуйста, в личные сообщения, только личные вопросы.
В противном случае, все равно отправлю на форум.

YouTube канал HAM Radio Channel

Аватара пользователя
ignat99
Сообщения: 19
Зарегистрирован: 16 окт 2021, 17:42
Откуда: Испания
Город: Barcelona
Имя: Ignat
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Наш WEB-SDR

Сообщение ignat99 » 16 окт 2021, 19:06

Как раз хотел брать для яхты себе SDR под AIS. Но у меня на бакштаге антенна сделана 10 м. Думаю потихоньку приёмник преобрести под этот диапазон. Обычно раньше ставили Rapter модем под ВинЛинк, сейчас многие за спутник платить предпочитают для скачивания прогноза погоды в океане. Ну а я думаю с приемника начать, а передатчик уже потом приобрести.

Но если будет приемник, то web-sdr поднять не сложно, потому что я програмист. И это моё сообщение от 2014 года:
https://mjdm.ru/forum/viewtopic.php?f=8&t=1380

Аватара пользователя
R2AJI
Сообщения: 746
Зарегистрирован: 12 окт 2019, 22:48
Город: Россошь
Благодарил (а): 183 раза
Поблагодарили: 240 раз

Наш WEB-SDR

Сообщение R2AJI » 27 окт 2021, 17:42

Свершилось!
Сервер приемника переехал на новое железо:

20211027_173951.jpg
Все вопросы про радио, на форум пожалуйста, в личные сообщения, только личные вопросы.
В противном случае, все равно отправлю на форум.

YouTube канал HAM Radio Channel

Аватара пользователя
R2AJI
Сообщения: 746
Зарегистрирован: 12 окт 2019, 22:48
Город: Россошь
Благодарил (а): 183 раза
Поблагодарили: 240 раз

Наш WEB-SDR

Сообщение R2AJI » 28 окт 2021, 16:35

До ввода в эксплуатацию сервера, железо было свободным, провел множество экспериментов по подготовке операционной системы к принятию WebSDR. И как выяснилось опытным путем, самый простой и быстротой к подготовке, оказалась ОС Debian версии 9.13.0.

Итак.

Простая и быстрая подготовка Debian к установке и настройке сервера WebSDR. (Debian 9)

Важно понимать, что пользователь имеет хотя бы самые начальные знания ОС Linux, умеет самостоятельно ее устанавливать и хоть чуть-чуть настраивать.

После установки чистой операционки, логинимся в системе под root

Устанавливаем sudo

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

apt install sudo
Затем необходимо довать пользователя в sudo
Для этого нужно поправить файл sudoers, что в папке /etc
Находим строку

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

root	ALL=(ALL:ALL) ALL
И под ней добавляем своего пользователя

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

логин	ALL=(ALL:ALL) ALL
Сохраняем, перезагружаемся.

Автологин пользователя (если нужен в xfce)
Для этого нужно поправить файл lightdm.conf, что в папке /etc/lightdm/
Ищем строчки:

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

#autologin-user=
#autologin-session=
Ракомментируем их (убрать #) и дописать необходимое:

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

autologin-user=логин
autologin-session=xfce

Устанавливаем библиоткеку libpng нужна версия 1.2.0
Необходимо добавить репозиторий в файл

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

sudo nano /etc/apt/sources.list
Добавляем строку

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

deb http://archive.debian.org/debian wheezy main
Делаем апдейт

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

sudo apt-get update 
И устанавливаем либу

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

sudo apt-get install libpng12-0
Устанавливаем библиотеку libfftw3-3

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

sudo apt-get install libfftw3-3
Устанавливаем библиотеку libssl1.0.0

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

sudo apt-get install libssl1.0.0
Устанавливаем библиотеку libusb-1.0-0-dev

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

sudo apt-get install libusb-1.0-0-dev git cmake
Устанавливаем pkg-config

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

sudo apt install pkg-config

Добавленный репозиторий теперь не нужен.

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

sudo nano /etc/apt/sources.list
Удаляем эту строку

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

deb http://archive.debian.org/debian wheezy main
и делаем апдейт

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

sudo apt-get update 
Если будем использовать донглы RTL-SDR то:
Собраем и установливаем драйверы RTL-SDR
Клонируем с гитхаба драйвер, который умеет директсемплинг

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

git clone https://github.com/FarnhamSDR/librtlsdr.git
Создаем необходимые папки

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

cd librtlsdr/
mkdir build
cd build
Собираем, для запуска без прав root не забываем про ключ

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

cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON_tcp
make
Устанавливаем

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

sudo make install
sudo ldconfig

Заблокируем переопределение RTL драйверов по умолчанию

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

cat <<EOF >no-rtl.conf
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830
EOF
sudo mv no-rtl.conf /etc/modprobe.d/
Это минимальная подготовка для WebSDR сервера. Само собой, необходимо настроить настроить фаервол, удаленный доступ и прочие мелки радости. А дальше, настроить сам WebSDR. Тут уже у каждого свои потребность и разнообразие железа оставляет простор для творчества.

А теперь вопрос. Кто знает простой и бесхлопотный способ установки библиотеки libpng 1.2.0 на более свежих релизах Debian 10 и 11?
Все вопросы про радио, на форум пожалуйста, в личные сообщения, только личные вопросы.
В противном случае, все равно отправлю на форум.

YouTube канал HAM Radio Channel

Аватара пользователя
R2AJI
Сообщения: 746
Зарегистрирован: 12 окт 2019, 22:48
Город: Россошь
Благодарил (а): 183 раза
Поблагодарили: 240 раз

Наш WEB-SDR

Сообщение R2AJI » 28 окт 2021, 17:29

Аппаратное обеспечение сервера на текущий момент:

Корпус:
https://fas.st/s8zld
Chieftec CI-01B w/o PSU
изображение.png


Материнская плата, процессор и оперативная память в одном комплекте:
https://ali.ski/_RWkcO
HUANANZHI X99 8M
Intel XEON E5 2630L V3
DDR4 8G 2400MHz NON ECC
изображение.png


SSD диск
https://ali.ski/nZQ-So
HUANANZHI SSD M.2 NVME SSD 128GB
изображение.png

Куллер для процессора:
https://ali.ski/l0Eal
изображение.png

Видеокарта:
https://ali.ski/W8s82
Asus GeForce 210 64bit 1GDR3
изображение.png

Переходник HDMI To VGA:
https://ali.ski/kkEvlO
Используется как заглушка-обманка для видеокарты
изображение.png

USB Hub:
ORICO Aluminum USB 3.0 HUB Multi High Speed 10 Port
https://ali.ski/fesPqw
изображение.png

USB провода:
https://ali.ski/iks74
Очень мягкие, легко изгибаются и не нагружают порты хаба 10см
изображение.png

Донглы RTL-SDR:
https://ali.ski/xPDmc
RTL-SDR Blog RTL SDR V3
изображение.png


И выглядит, это все вот таким образом:

20211028_164830 (Custom).jpg
20211028_164909 (Custom).jpg
20211028_164914 (Custom).jpg
20211028_164935 (Custom).jpg
20211028_165144 (Custom).jpg
20211028_165206 (Custom).jpg
Все вопросы про радио, на форум пожалуйста, в личные сообщения, только личные вопросы.
В противном случае, все равно отправлю на форум.

YouTube канал HAM Radio Channel

Аватара пользователя
ignat99
Сообщения: 19
Зарегистрирован: 16 окт 2021, 17:42
Откуда: Испания
Город: Barcelona
Имя: Ignat
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Наш WEB-SDR

Сообщение ignat99 » 28 окт 2021, 18:59

Отлично! А наводок нет на SDR от компьютерных трактов (шин)?

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

Наш WEB-SDR

Сообщение MiB » 28 окт 2021, 19:42

R2AJI писал(а):
28 окт 2021, 16:35
А теперь вопрос. Кто знает простой и бесхлопотный способ установки библиотеки libpng 1.2.0 на более свежих релизах Debian 10 и 11?
а зачем ее устанавливать?
- качаем файл libpng12.so.0 (заодно и libcrypto.so.1.0.0)
- кладем его(их) в директорию dist11
- и запускаем процесс коммандой:

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

websdr@websdr:~/websdr/dist11$ LD_LIBRARY_PATH=. ./websdr64
если что:

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

websdr@websdr:~/websdr/dist11$ cat /etc/debian_version
10.9

Аватара пользователя
R2AJI
Сообщения: 746
Зарегистрирован: 12 окт 2019, 22:48
Город: Россошь
Благодарил (а): 183 раза
Поблагодарили: 240 раз

Наш WEB-SDR

Сообщение R2AJI » 28 окт 2021, 20:12

ignat99, нет, наводок нет.

MiB, действительно, вариант :)
Все вопросы про радио, на форум пожалуйста, в личные сообщения, только личные вопросы.
В противном случае, все равно отправлю на форум.

YouTube канал HAM Radio Channel

Ответить

Вернуться в «SDR приемники»