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

Di ik5xmk