Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Power Script PIN356ONOFFRESET avec switches SNES d'origine

    Recalbox Général
    pin356onoffrese on off button snes originale
    8
    80
    15014
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • voljega
      voljega Banned last edited by

      bah après j'ai pas regardé en détail détail et je suis pas non plus le big boss du python mais si le script s'exécute sans erreur il ne reste plus qu'à débugguer 🙂

      1 Reply Last reply Reply Quote 0
      • FF-Sounds
        FF-Sounds @voljega last edited by

        @voljega

        Heu faire des logs... tu m'en demandes beaucoup là ^^

        Les 2 types d'appui fonctionnent, j'ai repris le code original du rpi-pin356-power + petite modif de @supernature2k pour le ONOFF 😉
        Celui-ci fonctionne très bien d'ailleurs.

        Sur celui que j'ai modifié, il suffit que je mette en commentaire les lignes ci-dessous pour que le reset court fasse un reboot proprement :

        			elif (timer >1):
        
        #				if search_launcher(channel) == True:
        #					nwcommand="RESET"
        #					retroarch(nwcommand)
        #					print "retroarch"
        #					killthats**t(channel)
        #				elif search_launcher(channel) == False:	
        					speed=0.05
        					shutdownstring="shutdown -r now"
        					offreset(speed, shutdownstring)
        					print "reboot"
        			timer = 0
        			flag = False
        		time.sleep(0.1)
        

        Donc il y a bien un truc qui cloche ici :

        				if search_launcher(channel) == True:
        					nwcommand="RESET"
        					retroarch(nwcommand)
        					print "retroarch"
        					killthats**t(channel)
        				elif search_launcher(channel) == False:
        

        ou là: (pour info j'ai bien ajouté import subprocess)

        def search_launcher(channel):
        	if channel == RESETPLUS:
        		proce=subprocess.Popen('ps -ef | grep emulatorlauncher', stdout=subprocess.PIPE)
        		tmp=proce.stdout.read()
        		if tmp:
        			return True
        		else:
        			return False
        
        voljega 1 Reply Last reply Reply Quote 0
        • voljega
          voljega Banned @FF-Sounds last edited by

          @ff-sounds said in Power Script PIN356ONOFFRESET avec switches SNES d'origine:

          if tmp:
          return True
          else:
          return False

          ben qu'est ce que ça retourne tmp parce que là tu testes quoi ? qu'il est pas vide seulement ? parce que c'est possible qu'il soit pas vide ...

          fais des print de tes variables sinon

          NeeeeB 1 Reply Last reply Reply Quote 0
          • NeeeeB
            NeeeeB @voljega last edited by

            @voljega
            C'est ce que j'allais suggérer.
            Je suis parti du fait que tmp serait vide si la commande 'ps -ef | grep emulatorlauncher' ne renvoyait rien, mais ce n'est peut être pas le cas, peut être que même si ça ne trouve pas de process avec emulatorlauncher dans le nom ça renvoie quand même quelque chose...

            @FF-Sounds balance cette commande en SSH quand tu es sur l'interface EmulationStation et regarde ce que ça renvoie. (au pire donne nous ce que ça renvoie et on modifiera le script en conséquence).

            Vieux geek ^^
            GameList Editor : https://github.com/NeeeeB/GameList_Editor

            1 Reply Last reply Reply Quote 0
            • FF-Sounds
              FF-Sounds last edited by

              @NeeeeB @voljega

              Idem, je suis parti du principe que ça ne renvoyait rien...
              Voilà ce que j'ai avec Putty:

              login as: root
              root@192.168.199.17's password:
              # ps -ef | grep emulatorlauncher
               1444 root     grep emulatorlauncher
              

              ça veut dire que ça renvoi bien un truc non ?

              voljega 1 Reply Last reply Reply Quote 0
              • voljega
                voljega Banned @FF-Sounds last edited by

                @ff-sounds oui ça te renvoie la commande que tu viens de rentrer 😄

                essaye de faire ps -ef | grep emulatorlauncher | grep retroarch peut-être mais pas sûr que ça marche mieux

                1 Reply Last reply Reply Quote 0
                • FF-Sounds
                  FF-Sounds last edited by

                  @voljega

                  Alors ps -ef | grep emulatorlauncher | grep retroarch ne renvoi rien sous ES, mais rien en jeu aussi...
                  Alors que ps -ef | grep emulatorlauncher renvoi bien un processus avec emulatorlauncher en jeu !

                  j'ai regardé les options de grep, donc cette variante serait peut-etre pas mal :
                  ps -ef | grep -c emulatorlauncher ça me renvoi le nombre d'itération trouvée 😉
                  sous ES j'ai 1 donc si je teste >= 2 , ça serait ok !

                  voljega 1 Reply Last reply Reply Quote 0
                  • voljega
                    voljega Banned @FF-Sounds last edited by

                    @ff-sounds ouais mais d'expérience des fois la ligne 1444 root grep emulatorlauncher n'est pas renvoyé 😄

                    donne moi le résultat de la commande ps -ef | grep emulatorlauncher en jeu ?

                    FF-Sounds 1 Reply Last reply Reply Quote 0
                    • FF-Sounds
                      FF-Sounds @voljega last edited by

                      @voljega

                      ça donne ça :

                      # ps -ef | grep emulatorlauncher
                       1437 root     sh -c python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc -p1index 0 -p1guid 05000000504c415953544154494f4e00 -p1name "PLAYSTATION(R)3 Controller" -p1nbaxes 4 -p1devicepath /dev/input/event2 -p2index 1 -p2guid 15000000010000000100000000010000 -p2name "SNES pad" -p2nbaxes 2 -p2devicepath /dev/input/event0 -p3index 2 -p3guid 15000000010000000100000000010000 -p3name "SNES pad" -p3nbaxes 2 -p3devicepath /dev/input/event1  -system gba -rom /recalbox/share/roms/gba/Anguna\ \(Nathan\ Tolbert\ and\ Chris\ Hildenbrand\).gba -emulator default -core default -ratio auto 2> /recalbox/share/system/logs/es_launch_stderr.log | head -300 > /recalbox/share/system/logs/es_launch_stdout.log
                       1438 root     python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc -p1index 0 -p1guid 05000000504c415953544154494f4e00 -p1name PLAYSTATION(R)3 Controller -p1nbaxes 4 -p1devicepath /dev/input/event2 -p2index 1 -p2guid 15000000010000000100000000010000 -p2name SNES pad -p2nbaxes 2 -p2devicepath /dev/input/event0 -p3index 2 -p3guid 15000000010000000100000000010000 -p3name SNES pad -p3nbaxes 2 -p3devicepath /dev/input/event1 -system gba -rom /recalbox/share/roms/gba/Anguna (Nathan Tolbert and Chris Hildenbrand).gba -emulator default -core default -ratio auto
                       1548 root     grep emulatorlauncher
                      

                      Dans ce cas, il faut vérifier aussi si grep est présent dans le résultat
                      => si oui, >=2 sinon >=1

                      voljega 1 Reply Last reply Reply Quote 0
                      • voljega
                        voljega Banned @FF-Sounds last edited by voljega

                        @ff-sounds grepper grep ça va être dur 😛

                        essaye ps cax | grep emulatorlauncher ?

                        sinon fouille là dedans : https://stackoverflow.com/questions/9117507/linux-unix-command-to-determine-if-process-is-running?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

                        1 Reply Last reply Reply Quote 0
                        • azvarel
                          azvarel last edited by

                          @supernature2k after the last update or the 2018.03.30 version, I do not remember for sure, the led is not lit when it enters the recalbox, it just turns on when I turn on the raspberry.

                          Zodian Theme | #SNESProject

                          1 Reply Last reply Reply Quote 0
                          • NeeeeB
                            NeeeeB last edited by

                            @ff-sounds moi je testerais si tmp contient la chaîne de caractères "-p1guid", ce qui n'est pas le cas quand tu es dans ES.

                            Vieux geek ^^
                            GameList Editor : https://github.com/NeeeeB/GameList_Editor

                            FF-Sounds 1 Reply Last reply Reply Quote 0
                            • FF-Sounds
                              FF-Sounds @NeeeeB last edited by

                              @voljega

                              Je vais regarder à ça, merci pour le tuyau

                              @neeeeb

                              grep retourne p1guid sous ES aussi , il renvoi la commande en fait, donc l'idée de tester si présence d'une suite de caractère semble mauvaise.
                              C'est peut être pour ça qu'à la base c'est par les PID que la fonction offreset() est faite.

                              Je vais voir pour reprendre cette piste si pas concluant avec grep !

                              NeeeeB 1 Reply Last reply Reply Quote 0
                              • FF-Sounds
                                FF-Sounds last edited by

                                @NeeeeB @voljega

                                ps -ef | grep [e]mulatorlauncher corrige le problème, ,merci le lien 😉

                                Petit truc louche qui vient de m'arriver, j'ai descendu le store électrique du salon à l'instant car ça cogne dur, hé ben recalbox a reboot en appuyant sur l'interrupteur (mural je précise) !!!
                                @supernature2k @Substring, une idée du pourquoi ? la gestion du GPIO et de la masse ?

                                Holala, j'ai pas fini avec tout ça... lol

                                voljega 1 Reply Last reply Reply Quote 0
                                • voljega
                                  voljega Banned @FF-Sounds last edited by

                                  @ff-sounds said in Power Script PIN356ONOFFRESET avec switches SNES d'origine:

                                  Petit truc louche qui vient de m'arriver, j'ai descendu le store électrique du salon à l'instant car ça cogne dur, hé ben recalbox a reboot en appuyant sur l'interrupteur (mural je précise) !!!

                                  ahah oui c'est un vieux bug, je croyais que le nouveau script corrigeait le problème

                                  1 Reply Last reply Reply Quote 0
                                  • FF-Sounds
                                    FF-Sounds last edited by FF-Sounds

                                    @voljega @NeeeeB

                                    YOUHOUU ! ça fonctionne !

                                    il y avait 2 problèmes en fait:

                                    • celui corrigé par la commande ps -ef | grep [e]mulatorlauncher

                                    • Et le Popen qui n'envoyait pas la dite commande...
                                      donc on corrige avec proce=subprocess.Popen(['/bin/sh', '-c', 'ps -ef | grep [e]mulatorlauncher'], stdout=subprocess.PIPE)

                                    @supernature2k copie @Substring
                                    Quand tu me demandais de faire une MR pour l'intégrer, tu parlais d'un script qui gère le onoff et push comme l'actuel ?
                                    ou bien seulement le onoff pour uniquement une config matériel ON/OFF + RESET

                                    J'entends par là, est ce que tu veux que les appuis courts/longs actuels soient remplacés par ce que j'ai fait ?
                                    pour rappel :

                                    • switch ON/OFF classique (PUSH serait éventuellement : shutdown propre quelque soit le temps d'appui, en fait je crois qu'il n'y aurait rien à changer dans ce cas, à tester sinon ONOFFRESET et PUSHRESET plus nécéssaire)
                                    • Reset court en jeu => reset du jeu
                                    • Reset long en jeu => retour ES
                                    • Reset court sous ES => reboot propre
                                    • Reset long sous ES => rien

                                    Dites-moi 😉

                                    EDIT: pour info, la gestion LED fonctionne correctement aussi 😉

                                    1 Reply Last reply Reply Quote 0
                                    • Substring
                                      Substring last edited by

                                      Comprends rien à ce qu'on me demande, j'ai rien fait c'est pas moi !

                                      Former dev - Please reply with @substring so that i am notified when you answer me
                                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                      FF-Sounds 1 Reply Last reply Reply Quote 0
                                      • NeeeeB
                                        NeeeeB @FF-Sounds last edited by

                                        @ff-sounds bon bah tant mieux si ça marche, par contre je ne comprend pas quand tu dis que ça renvoie p1guid sous ES...
                                        Tu as posté ça un peu plus haut quand je t'ai demandé de tester la commande sous ES :

                                        login as: root
                                        root@192.168.199.17's password:
                                        # ps -ef | grep emulatorlauncher
                                        1444 root     grep emulatorlauncher
                                        

                                        Je dois avoir des problèmes de vision parce que je ne vois pas de p1guid là dedans ^^

                                        Vieux geek ^^
                                        GameList Editor : https://github.com/NeeeeB/GameList_Editor

                                        FF-Sounds 1 Reply Last reply Reply Quote 0
                                        • FF-Sounds
                                          FF-Sounds @Substring last edited by

                                          @substring said in Power Script PIN356ONOFFRESET avec switches SNES d'origine:

                                          Comprends rien à ce qu'on me demande, j'ai rien fait c'est pas moi !

                                          LOL !! t'inquiètes ça va bien se passer 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • FF-Sounds
                                            FF-Sounds @NeeeeB last edited by

                                            @neeeeb

                                            grep vérifie aussi ce qu'il a envoyé comme argument, c'est un peu con mais c'est comme ça ^^

                                            Regarde :

                                            login as: root
                                            root@192.168.199.17's password:
                                            # ps -ef | grep peaudefesse
                                             1380 root     grep peaudefesse
                                            # ps -ef | grep [p]eaudefesse
                                            #
                                            

                                            Donc il faut passer par [] pour qu'il ne se trouve pas lui même...
                                            il cherche tout ce qui fini par eaudefesse avec p devant, ça change tout car il ne trouvera pas [p]eaudefesse 😉

                                            Substring NeeeeB 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            87
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com