YSFReflector in Python, nuove funzionalità per il mondo del C4FM

YSFReflector in Python, nuove funzionalità per il mondo del C4FM

Il collega Antonio IU5JAE del Gruppo Radio Firenze ha sviluppato il software di gestione di un reflector C4FM con il linguaggio di programmazione Python. Questo progetto segue il suo software Dextra_Bridge, già presentato su questo sito,  per collegare assieme due reflector XLX con il protocollo DEXTRA/DSTAR. L’obiettivo di YSFReflector in Python è duplice: correggere ed implementare nuove funzionalità all’attuale sistema di reflector per il protocollo radioamatoriale C4FM ed avere una piattaforma di sviluppo open source per future aggiunte affinchè il sistema risulti performante e completo. E’ un software radioamatoriale, libero, senza alcuna garanzia, destinato ad essere gestito dal radioamatore che ha praticità di linux e del linguaggio python. Non viene dato supporto ma deve essere stimolo di apprendimento per la creazione di reti open, rispettose delle regole che i network adottano per una piena funzionalità, accessibili a tutti.

Di seguito le caratteristiche principali:

  • compatibile con le attuali installazioni di YSFReflector di Jonathan G4KLX. Può essere agevolmente sostituito: al momento della stesura di questo articolo legge lo stesso file di configurazione YSFReflector.ini ed è compatibile con la Dashboard di Kim DG9VH;
  • viene riconosciuto dal registro mondiale dei reflector YSF;
  • ha il controllo/validazione dei nominativi se formalmente corretti (accetta IK5XMK-400, IK5XMK/400, NON accetta IK5XMK:400, NON accetta N0NAME);
  • registra nel file log del reflector gli IP dei sistemi Gateway connessi;
  • contempla un file di nominativi inibiti al transito, utile per gestire situazioni di disturbi, problemi di loop e simili;
  • può essere interrogato da remoto per lo sviluppo di applicazioni e controlli.

Esempio di nominativo bloccato, registrato nel log:

Il file viene letto, nell’esempio, ogni 5 minuti. Non occorre riavviare il software:

Può essere inibito l’accesso ad un Callsign (CS:), un Gateway/Ripetitore/Hotspot (GW:) e ad uno specifico IP (IP:), come indicato nel file:

YSFReflector può essere eseguito con il comando:

/usr/bin/python3  /usr/local/sbin/YSFReflector  /usr/local/etc/YSFReflector.ini

oppure, dopo aver reso eseguibile (chmod +x) il programma, direttamente

/usr/local/sbin/YSFReflector  /usr/local/etc/YSFReflector.ini

ponendo il sorgente in Python sotto /usr/local/sbin

E’ presente inoltre uno script per l’avvio come servizio:

https://github.com/iu5jae/pYSFReflector/tree/main/systemd

Il reflector può rispondere a richieste di interrogazione remota, e tiene traccia del sistema chiamante:

Ecco un esempio di APP per cellulare sviluppata appositamente per l’interrogazione del reflector. L’APP non viene diffusa al momento, ma serve come esempio di possibilità di implementazione di funzioni e controlli remoti:

  • visualizzazione nominativi bloccati

  • visualizzazione gateway connessi al reflector:

Per operare, YSFReflector deve avere installato Python3 e alcune librerie, vedere all’inizio del codice:

Il software è disponibile su Github al seguente url:

https://github.com/iu5jae/pYSFReflector

Il Software resiste a uno stress test con 1000 connessioni client su un server virtuale senza interruzioni audio o malfunzionamenti. Per tale motivo, oltre alla leggerezza esecutiva risulta perfettamente affidabile in produzione.

Per la visualizzazione dei passaggi, nominativi ascoltati, gateway connessi e sistemi inibiti al transito è in sviluppo una nuova dashboard a cura di Kim DG9VH, disponibile su Github al seguente url:

https://github.com/dg9vh/WSYSFDash

 

Buone prove.

info@grupporadiofirenze.net

ik5xmk