Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu][Raspberry] Gamepad bluetooth au boot
Auteur Message
Répondre en citant
Message [Résolu][Raspberry] Gamepad bluetooth au boot 
Bonjour à tous,

j ai acquitté récemment une raspberry qui fonctionne sous raspbian ou retropie il me semble que le noyau est basé sur debian quelque chose.

Je rencontre un problème de connexion de périphérique qui sont perdue à chaque redémarrage de la chose.

Pour connecter (gamepad) je dois utiliser cette ligne de commande :

Code:
hidd --connect aa:bb:cc:dd:ee:ff


je voudrai savoir si l un d entre vous connaissait linux pour m aider à faire un script ou modifier des fichiers

J ai essayé de mettre ses commandes dans ce fichier /etc/default/bluetooth

Code:
HIDD_ENABLED=1
HIDD_OPTIONS=”–connect aa:bb:cc:dd:ee:ff –server”

dans ce sujet http://www.open-consoles-news.com/2014/10/raspberry-pi-realiser-une-retro-g…
la personne avait rencontré le même problème de connexion perdue par ses manettes et avait corriger avec deux scripts.
J ai tenté de modifier la ligne utilisé

Code:
sudo bluez-test-input connect $bt &> /dev/null

par:
sudo hidd --connect $bt &> /dev/null

ça ne fontionne pas car j ai l impression que le fichier runcommand.sh est différent

si quelqu un a des notions , merci pour votre aide

bon week end.



Dernière édition par Laddy le Jeu 26 Fév 2015 - 20:41; édité 1 fois

______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu][Raspberry] Gamepad bluetooth au boot 
Bonjour

j ai résolu mon problème :

Basé sur le tutoriel de open-console


Placé btDaemon.sh dans /home/pi/
sudo chmod +X /home/pi/btDaemon.sh

Comment utiliser le service:
Démarrer:
Code:
$ sudo /etc/init.d/btService start

Arrêter:
Code:
$ sudo /etc/init.d/btService stop

Afficher le statut du service:
Code:
$ sudo /etc/init.d/btService status


Pour faire en sorte que le service démarre à chaque reboot de la machine, exécutez la commande suivante:
Code:
$ sudo update-rc.d btService defaults



Code:

#!/bin/bash

#REMPLACE BT1 PAR ADRESS MAC DE TON PAD
BT1='20:73:AB:01:16:3E'

# SUPPRIME LE SYMBOLE # REMPLACE BT2 PAR ADRESS MAC DE TON PAD
#BT2='20:73:AB:01:93:23'

BT1_STATUS='unknown'
BT2_STATUS='unknown'

#initialize
VERBOSE=0
NO_LOG=0
COUNT_LINES_LOGGER=0
MAX_LINES_LOGGER=100
DELAI=10
LOGGER_FILE=/var/log/btDaemonLogger.log
[ "$1" = '-v' ] && VERBOSE=1

XD_NAME=xboxdrv
XD_BIN=/usr/bin/$XD_NAME
XD_CFG1=/home/pi/joysticks/j0.cfg
XD_CFG2=/home/pi/joysticks/j1.cfg
XD_ARGS1="--config $XD_CFG1"#"-D -d --deadzone 4000 --dbus disabled --detach"
XD_ARGS2="--config $XD_CFG2"#"-D -d --deadzone 4000 --dbus disabled --detach"
#END initialize

#functions
logger() {
   #no logger
   [ $NO_LOG -eq 1 ] && return
   [[ $2 -eq 1 ]] && COUNT_LINES_LOGGER=0
   
   COUNT_LINES_LOGGER=$(($COUNT_LINES_LOGGER + 1))

   now=$(date +"%m-%d-%y %r")
   if [ $VERBOSE -eq 1 ]; then
      echo "[$now]" $1
   fi

   if [[ $2 -eq 1 ]]; then
      #RESET Logger File
      echo "[$now]" $1 > $LOGGER_FILE
   else
      echo "[$now]" $1 >> $LOGGER_FILE
   fi
}

xd_init() {
   local index=$1
   local bt=$2
     
   if [ -x "$XD_BIN" ]; then
      logger "$XD_BIN is not installed: sudo apt-get install xboxdrv"
      return
   fi
   
   XD_PID=$(ps -eo pid,command | grep "/bin/bash $XD_BIN" | grep -v grep | awk '{print $1}')
   if [ ! -z $XD_PID ]; then
      logger "$XD_BIN is already started [$XD_PID] for bluetooth device $index [$bt]"
      return
   fi

   #start xboxdrv with joystick configuration
   $XD_BIN $XD_ARGS1&
   RESXD=$?
   if [ $RESXD = 0 ]; then
      logger "[OK] $XD_BIN is intialized for bluetooth device $index [$bt]"
   else
      logger "[KO] $XD_BIN is not intialized for bluetooth device $index [$bt]"
   fi
}

auto_connect() {
   local index=$1
   local bt=$2

   [ ! -s /tmp/btcheck ] && [ $(ls /dev/input/js0 2> /dev/null) ] && logger "USB device js0 is already connected" && return

   if [ ! -z "$bt" ]; then
      if grep -q $bt /tmp/btcheck; then
         logger "[OK] bluetooth device $index [$bt] is already connected"
      else
         logger "[KO] bluetooth device $index [$bt] not connected"
         connect $index $bt
      fi
   else
      logger "no configuration found for bluetooth device $index (check mac address)"
   fi
}

connect() {
   local index=$1
   local bt=$2
   local btStatus='notconnected'

   local tryPing=1
   local tryCon=1
   local maxRetry=1
   #priority to gamepad 1
   #[ $index -eq 0 ] && maxRetry=10

   logger "try connecting bluetooth device $index [$bt] maxRetry=$maxRetry..."

   #10 attempts for connecting device
   while [ $tryPing -le $maxRetry ]; do
      sudo l2ping $bt -c 3 > /dev/null 2>&1
      RESPING=$?
      if [ $RESPING = 0 ]; then
         logger "[OK][$RESPING] ping bluetooth device $index [$bt]"

         tryCon=1
         while [ $tryCon -le $maxRetry ]; do
            sudo hidd --connect $bt --server &> /dev/null
            RESCON=$?
            if [ $RESCON = 0 ]; then
               #logger "[OK][$RESCON] bluetooth device $index [$bt] connected"
               btStatus='connected'
               #xd_init $index $bt
            else
               logger "[KO][$RESCON][$tryCon] bluetooth device $index [$bt] connected"
               btStatus='notconnected'
            fi

            [ $btStatus = 'connected' ] && break
            tryCon=$(($tryCon + 1))
         done
      else
         logger "[KO][$RESPING][$tryPing] ping bluetooth device $index [$bt]"
         btStatus='noping'
      fi

      [ $btStatus = 'connected' ] && break
      tryPing=$(($tryPing + 1))
   done

   [ $index -eq 0 ] && BT1_STATUS=$btStatus && logger "bluetooth device $index [$bt] [$BT1_STATUS]"
   [ $index -eq 1 ] && BT2_STATUS=$btStatus && logger "bluetooth device $index [$bt] [$BT2_STATUS]"
}
#END functions

#MAIN
logger "[START] bluetooth devices monitoring..." 1

while [ 1 ]; do
   #COUNT_LINES_LOGGER=$(wc -l $LOGGER_FILE | cut -f1 -d" ")
   if [ $COUNT_LINES_LOGGER -gt $MAX_LINES_LOGGER ]; then
      #RESET Logger
      logger "--- bluetooth devices check connections [delai=$DELAI] ---" 1
   else
      logger "--- bluetooth devices check connections [delai=$DELAI] ---"
   fi
   
   #check bluetooth devices status
   hcitool con|grep -v "^Connections:" > /tmp/btcheck

   auto_connect 0 $BT1
   auto_connect 1 $BT2

   logger "------------------------------------------------------"
   sleep $DELAI
done

logger "[STOP] bluetooth devices monitoring."
#END MAIN

exit 0


btService doit être placé dans /etc/init.d/
sudo chmod +X /etc/init.d/btService

Code:

#!/bin/bash
### BEGIN INIT INFO
# Provides: btDaemon.sh
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: btDaemon init script.
# Description: Starts and stops btDaemon service.
### END INIT INFO

#VAR
RUN="/home/pi/btDaemon.sh"
BTD_PID=$(ps -eo pid,command | grep "/bin/bash $RUN" | grep -v grep | awk '{print $1}')

serviceStatus() {
   if [ ! -z "$BTD_PID" ]; then
      echo -e '\033[0mservice btDaemon.sh ['$BTD_PID'] [\033[33;32m OK \033[0m]'
   else
      echo -e '\033[0mservice btDaemon.sh [\033[33;31m KO \033[0m]'
   fi
}

# Carry out specific functions when asked to by the system
case "$1" in
   start)
      echo "Starting script $RUN ..."
      if [ -z "$BTD_PID" ]; then
         nice -n 19 $RUN&

         if [ $? -eq 0 ]; then
            echo -e "\033[0mscript $RUN [\033[33;32m STARTED \033[0m]"
         fi
      else
         echo "script $RUN already started ['$BTD_PID']!"
      fi
      #serviceStatus
   ;;
   stop)
      echo "Stopping script $RUN ..."
      if [ ! -z "$BTD_PID" ]; then
         kill $BTD_PID

         if [ $? -eq 0 ]; then
            echo -e "\033[0mscript $RUN [\033[33;31m STOPPED \033[0m]"
         fi
      fi
      #serviceStatus
   ;;
   status)
      serviceStatus
   ;;
   *)
      echo "Usage: /etc/init.d/btService {start | stop | status}"
      exit 1
   ;;
esac

exit 0



Pour le reste : lire le lien donnée plus haut




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message [Résolu][Raspberry] Gamepad bluetooth au boot 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch