Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

"/home/$USER/sorties.log"..."> Script Borne d'affichage dynamique pour Xubuntu 24.04

par Mike Da Funk

Script Borne d'affichage dynamique pour Xubuntu 24.04

Basé sur un partage réseau (NAS) et LibreOffice

 

#!/bin/sh

USER="utilisateur"
IP_NAS="192.168.1.250"

# Pour le débugguage : fichiers de log journalier (les raspi redémarrant chaque jour)
# exec 1> "/home/$USER/sorties.log" 2> "/home/$USER/erreurs.log"

# Pour éviter que l'écran ne s'éteigne au bout d'un certain temps       
# xset s off         
# xset -dpms

# On affiche l'image d'arrière fond pour "masquer" le bureau LXDE de Raspbian.
# feh -Z -F -Y "/home/$USER/Pictures/Splash_screen_miniature.png" &

# Initialisation des variables
VERSION_OLD="toto"
PID=""

# On attend 15 secondes que wicd configure le réseau
sleep 15

# On teste toutes 20 secondes si une nouvelle version du diapo est disponible sur le partage et on met à jour si nécessaire ...
while true; do
    
    # On rècupère la date de dernière modification du diaporama, sur le partage Samba
    VERSION_NEW=$(smbclient //$IP_NAS/Affichage_dynamique/ "" -c 'ls diapo.odp' | cut -f 1 | awk '{print $4 $5 $6 $7 $8}'
)
   
    # Si la diapo sur le partage est plus récent que celui projeté actuellement, on re-télécharge la nouvelle version du diapo puis on la projette
    if [ "$VERSION_NEW" != "$VERSION_OLD" ]
    then
        # On ferme le diapo projeté
        kill "$PID"

        # On attend 2 secondes avant de passer à la suite
        sleep 2

        # On nettoie le répertoire affichage_dynamique avant d'y mettre la nouvelle version du diaporama
        rm -rf "/home/$USER/Affichage_dynamique"
        mkdir "/home/$USER/Affichage_dynamique"
        
                smbclient //192.168.1.250/Affichage_dynamique/ "" -c 'get \diapo.odp /home/utilisateur/Affichage_dynamique/diapo.odp'


        sleep 2

                # On relance le diapo uniquement si le téléchargement s'est bien passé, sinon on affiche un message d'erreur
        if [ -e "/home/$USER/Affichage_dynamique/diapo.odp" ]
        then
            mv -f "/home/$USER/affichage_dynamique/diapo_eleves_temp.odp" "/home/$USER/affichage_dynamique/diapo.odp"
            VERSION_OLD="$VERSION_NEW"
        else
            cp -f "/home/$USER/diapo_erreur.odp" "/home/$USER/Affichage_dynamique/diapo.odp"
        fi
        
        # On attend 1 seconde avant de passer à la suite (ce qui fait que les utilisateurs visionnent l'image d'arrière fond pendant 5 secondes au total avant la projection du nouveau diaporama ...)
        sleep 1
        
                # On relance libreoffice avec la nouvelle version du diapo
        libreoffice --norestore --show "/home/$USER/Affichage_dynamique/diapo.odp" &
            PID=$(echo "$!");  
        
            # On attend 15 secondes avant la prochaine synchro
        sleep 15
        
    else    
        # Pas de mise à jour du diapo : on attend 20 secondes avant de re-vérifier la synchro
        sleep 20
    fi
done

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article