Un script admohblink

Un script admohblink

Ou comment faire pour faire rĂ©-apparaĂźtre votre port DMO (ou DUP) dans le menu dĂ©roulant d’une distribution Pi-Star ?

Contexte

Vous avez connectĂ© votre hotspot sur un serveur HBLink et le sysop vous a attribuĂ© un port (udp) sur ce serveur et vous n’arrivez pas Ă  le trouver dans le menu dĂ©roulant « DMR Master » de votre hotspot. C’est normal !
Une fois un port attribué à un indicatif, il disparaßt de cette liste. Alors comment faire pour vous connecter sur votre port (et pas celui du voisin)
 ?

Solution

Par l’exĂ©cution de ce script, vous allez retrouver votre port personnel dans le menu dĂ©roulant de votre hotspot.

Comment procéder ?

Installation :

Il suffit de copier ce script dans le rĂ©pertoire home du user pi-star via votre Ă©diteur prĂ©fĂ©rĂ©. Le mien Ă©tant ‘vi’ (l’éditeur unix/linux ancestral), lancer les commandes suivantes :

– rpi-rw (pour basculer la partition en lecture-Ă©criture)
– vi admohblink (appuyer sur la lettre i pour passer en insertion)
– coller le script prĂ©cĂ©demment sĂ©lectionnĂ©
– ensuite appuyer sur ‘Escape‘ puis faites « :wq » (double-point w q) pour sauvegarder et quitter ‘vi’

Si tout s’est bien passĂ©, vous devriez avoir ceci :

pi-star@jumbobgo(rw):~$ ls -l admohblink
-rw-r–r– 1 pi-star pi-star 1525 Nov 3 10:21 admohblink

Il faut maintenant rendre le script exécutable par la commande : chmod u+x admohblink

pi-star@jumbobgo(rw):~$ chmod u+x admohblink
pi-star@jumbobgo(rw):~$ ls -l admohblink
-rwxr–r– 1 pi-star pi-star 1525 Nov 3 10:21 admohblink

Exécution :

Le script nĂ©cessite de lui passer 3 arguments : le nom du port, le mot de passe du serveur, le numĂ©ro de port udp qui vous a Ă©tĂ© attribuĂ©. Sans arguments, le script affiche l’usage et s’arrĂȘte.

pi-star@jumbobgo(rw):~$ ./admohblink
USAGE : ./admohblink <DUPxx|DMOxx> <PASSWORD> <Port>

Par dĂ©faut, le script donne son rĂ©sultat sur l’écran. Comme toute commande sous unix/linux, il suffit de rediriger la sortie du script dans un fichier, pour obtenir un nouveau fichier DMR_Hosts.
Le script va recopier le contenu du fichier DMR_Hosts.txt et y ajouter une ligne avec vos paramÚtres à la fin de la section des ports belges (au besoin et si la demande est là, une version plus évoluée sera développée pour les autres pays).

pi-star@jumbobgo(rw):~$ ./admohblink DMO66 PASSWORD 55566 > newdmrhost
pi-star@jumbobgo(rw):~$ ls -l newdmrhost
-rw-r–r– 1 pi-star pi-star 57635 Nov 3 10:45 newdmrhost
pi-star@jumbobgo(rw):~$ grep -i belgique newdmrhost
HB_FR_BELGIQUE_DMO55     0000   51.75.249.214     PASSWORD   55555
HB_FR_BELGIQUE_DMO56     0000   51.75.249.214     PASSWORD   55556
HB_FR_BELGIQUE_DMO64     0000   51.75.249.214     PASSWORD   55564
HB_FR_BELGIQUE_DMO68     0000   51.75.249.214     PASSWORD   55568
HB_FR_BELGIQUE_DMO66     0000   51.75.249.214     PASSWORD   55566

Le script a recréé un fichier contenant bien une ligne DMO66 comme passé en paramÚtre. Elle sera dÚs lors présente dans le menu déroulant.
Il suffit donc de mettre ce nouveau fichier ‘newdmrhost’ avec le bon nom Ă  la bonne place, en faisant une copie de backup par sĂ©curitĂ©.

pi-star@jumbobgo(rw):~$ sudo cp /usr/local/etc/DMR_Hosts.txt /usr/local/etc/DMR_Hosts.txt_bak
pi-star@jumbobgo(rw):~$
pi-star@jumbobgo(rw):~$ ls -l /usr/local/etc/DMR_Ho*
-rw-r–r– 1 root bin 57630 Nov 3 03:25 /usr/local/etc/DMR_Hosts.txt
-rw-r–r– 1 root bin 57463 Nov 3 03:25 /usr/local/etc/DMR_Hosts.txt.20201103
-rw-r–r– 1 root bin 57630 Nov 3 10:54 /usr/local/etc/DMR_Hosts.txt_bak

 

pi-star@jumbobgo(rw):~$ sudo cp newdmrhost /usr/local/etc/DMR_Hosts.txt
pi-star@jumbobgo(rw):~$ ls -l /usr/local/etc/DMR_Ho*
-rw-r–r– 1 root bin 57635 Nov 3 10:55 /usr/local/etc/DMR_Hosts.txt
-rw-r–r– 1 root bin 57463 Nov 3 03:25 /usr/local/etc/DMR_Hosts.txt.20201103
-rw-r–r– 1 root bin 57630 Nov 3 10:54 /usr/local/etc/DMR_Hosts.txt_bak

Connectez-vous sur votre hotspot, sur la page Configuration, et vous devriez avoir votre port dans le menu déroulant DMR Master. Si pas, retournez sur le Dashboard puis revenez sur la page Configuration.

Voici le script :

Par sĂ©curitĂ©, le script s’arrĂȘte si la ligne du port existe dĂ©jĂ  ou si le fichier DMR_Hosts.txt n’existe pas. Il est tout Ă  fait possible de le ‘crontabiliser’ moyennant un petit sur-script…


#!/bin/bash
#
# This script add a HBLink DMO/DUP port in the DMR_Hosts.txt file of Pi-star distribution only
# for HB_FR_BELGIQUE server.
# It may be placed in crontab with redirection to dev/null to avoid getting mail from crontab process
# 73, Benjamin – ON5BGO – Ver 1.0 – 01.11.2020
#
# Sample line:
# HB_FR_BELGIQUE_DMO68             0000     51.75.249.21   PASSWORD   55568
#
###########################################################################################################

DMRHOST=/usr/local/etc/DMR_Hosts.txt

if [ ! -e « $DMRHOST » ]; then

   echo « DMR host file doesn’t exist ! Endind… »

   exit

fi

if [ $# -lt 3 ]; then

   echo « USAGE : $0 <DUPxx|DMOxx> <PASSWORD> <Port> »

else

   NEWPORT=$1

   PASSW=$2

   UDPPORT=$3

 zz=$(grep HB_FR_BELGIQUE $DMRHOST | grep $NEWPORT)

 if [ -n « $zz » ]; then

       echo

       echo « The port DMO/DUP already exists. No more action. Bye… »

       echo

       exit

   fi

awk -v newport=$NEWPORT -v passw=$PASSW -v udpport=$UDPPORT ‘

BEGIN { ctrBE=0; ctrOT=0 }

$1 ~ /HB_FR_BELGIQUE/

{

      delete hb_array;

      split($1, hb_array, »_ »);

      hb_array[4]=newport;

      newlinedmo=hb_array[1] »_ »hb_array[2] »_ »hb_array[3] »_ »hb_array[4] »\t\t »$2″\t »$3″\t\t\t »passw »\t »udpport;

      print $0;

      ctrBE=ctrBE+1;

      ctrOT=0;

   }

   $1 !~ /HB_FR_BELGIQUE/ && ctrBE==0 {

      print $0;

      ctrOT=ctrOT+1;

   }

   $1 !~ /HB_FR_BELGIQUE/ && ctrOT==0 && ctrBE > 0 {

      print newlinedmo;

      ctrOT=ctrOT+1;

      ctrBE=0;

   }

   ‘ $DMRHOST

fi

Fichier script : admohblink.sh
admohblink.sh

Au plaisir, n’hĂ©sitez pas Ă  me contacter pour tous renseignement, critiques ou suggestions.

73, Benjamin – ON5BGO

Auteur / autrice

  • On peut le considĂ©rer comme l'archĂ©type du radioamateur. Polyvalent, il excelle en tant que DXeur, ayant contactĂ© des stations dans tous les pays du monde. Ancien administrateur Ă  l'UBA et actuellement DM de la province de LiĂšge, il est Ă©galement responsable du relais ON0LG et a grandement contribuĂ© au dĂ©veloppement des modes numĂ©riques tels que le DMR et le C4FM. En tant que formateur, il dispense des cours Ă  LiĂšge et dĂ©montre une expertise remarquable en phonie et en CW.