Relier à un écran et afficher du texte ?
-
Bon, part de lpus loin et fais la chose suivante :
- un démon S99display par exemple
- qui fera un bon gros while(1) traduit en shell
- si tu trouves emulatorlauncher.py, (ou un autre) hop tu fais ton joujou
- sleep 1 seconde
découper ca en fonctions, penser au & pour que le démon rende la main. Sinon tu peux créer un shell, et le S99 lui appelle
start-stop-daemon
pour ton shell, ce qui est plus sympa au final (regarde le S32bluetooth ou le S50dropbear comment on fait) -
@Substring
Bonsoir Si je trouve emulatorlauncher.py (c'est le cas) comment puis je extraire le nom de la rom et du system ? -
@godhunter74 fais un ps quand un emulateur tourne, ca saute aux yeux !!!
-
@Substring
Bonjour, j'ai fait des PS en pagaille et à chaque fois je crois que la fin de la ligne est tronquée car je ne trouve pas le jeu que j'ai lancé, La ligne s'arrête pile poil sur /roms
Et je ne sais vraiment pas concrètement par quelle commandes je peux exporter le résultat du PS et le filtrer. -
@godhunter74 tu ne connais pas beaucoup linux toi hein ? C'est normal que ca tronque puisque ton terminal limité en largeur. Le mieux dans ton cas est de stocker le résultat dans une variable puis de chercher les options que tu veux avec des cut ou des sed.
Au pire la ligne complète apparait dans le es_log.txt dans ~/.emulationstation donc tu peux partir avec ca comme base avant de te coltiner les ps.
Et dans le pire des cas (si je n'trvaille pas faudra que je reprenne la boîte de papaaaaaaa ... oups je m'égare haha), dans /proc/<pid>/cmdline tu as la ligne de commande complète sans espaces. Moins rigolo à utiliser, mais bon ...
Allez je t'aide :
COMMANDLINE=`ps | grep emulatorlauncher.py | grep -v grep | tr -s ' ' | cut -d ' ' -f 4-`
Je traduis :
- les des processus
- ne garde que ceux ayant emulatorlauncher.py dedans
- exclue ceux qui ont grep dedans (bah oui, quand tu grep, grep est un processus !)
- si tu trouves plusieurs espacs consécutifs, réduis-les à 1 seul
- découpe les champs sur le séparateur espace, prend du 4e jusqu'à la fin
A l'issue, si tu fais
echo $COMMANDLINE
ca devrait t'afficher la ligne complète. Bon je n'ai pas pu tester là, mais ca devrait etre bon -
Merci c'est super je m'y met ce soir et je fais un retour dès que possible !!!
-
@Substring
Ça marche !!!
C'est pas propre
C'est pas top
Mais ça marche je vais mettre une petite vidéo pour commencer -
@Substring
Quand tu va voir mes grep tu vas hurler
http://www.youtube.com/watch?v=pdSkxmWYvmc -
Cest dommage pour la vidéo on va pas l affichage sur l autre écran.
-
@Substring
Pour commencer, voici mon horreur :rom = run_cmd("ps | grep emulatorlauncher.py | grep -v 'c python' | grep -v grep | tr -s ' ' | cut -d '/' -f15 | cut -d '.' -f1")
system = run_cmd("ps | grep emulatorlauncher.py | grep -v 'c python' | grep -v grep | tr -s ' ' | cut -d ' ' -f19")Et il me reste un problème, mon script est python... et j'ai tenté ça dans un S99I2Cscreen :
#!/bin/bash python /recalbox/share/scrolling/retropie_clcd.py
placé dans le init.d et ca ne marche pas... as tu une idée ?
EDIT : si je me place da,s le rep et lance manuellement tel que ci-dessous le S99retropie_clcd est bien lancé et le script python démarre !!!
cd /etc/init.d
./S99retropie_clcd@acris
je suis désolé mais le téléphone sature sur le LCD je me suis inspiré à 95% de zzeromin et 5% de Substring, voici une des vidéos de zzeromin plus lisible https://www.youtube.com/watch?v=W6jqBTqPqjw&feature=youtu.be -
C'est en I2S un écran pareil, pas en I2C Si ?
-
Allez maintenant il reste plus qu'à aller chercher le nom du jeu au propre dans le gamelist à partir de la rom et du système
-
@kjbstar avec
xmlint
^^ -
@godhunter74
merci pour la vidéo, ça m intéresserait pour l'ajouter sur mon bartop.
Quel écran as tu utilisé et où l as tu acheté ?
n'hésite pas à faire un tuto complet quand tu auras fini -
@acris bjour j'ai acheté le lcd ici :
https://www.amazon.fr/gp/aw/d/B00GBSWOWW/ref=yo_ii_img?ie=UTF8&psc=1
2€52 avec un gros delai.
Mais d'après mes différents essai on peut utiliser n'importe quel écran I2C si le nombre de caractères affichables change, il y aura des modifications à faire. -
Voici les 1ères étapes pour activer l'I2C, brancher l'écran et le detecter...
Pour activer l'I2C
je suis allé dans : /lib/modules/4.4.13-v7/kernel/drivers/i2c/ récuperer le fichier i2c-dev.ko pour le placer dans /lib/modules/i2c-dev.ko
je suis allé dans : /lib/modules/4.4.13-v7/kernel/drivers/i2c/busses/ récuperer le fichier i2c-bcm2708.ko pour le placer dans /lib/modules/i2c-bcm2708.koEnsuite je suis allé dans /etc/ éditer le fichier modules.conf j'ai ajouté à la fin :
i2c-bcm2708
i2c-devPour brancher l'écran
Detecter l'écran
Il faudra vérifier votre adresse I2C du 16x2 CLCD...
i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 3F -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
@godhunter74 Tu as ete cherché ses fichiers dans recalbox car ils ne sont pas placé au bon endroit ou sinin ils sortent d'où ?
-
@acris Oui je suis bien aller les chercher dans la distribution de recalbox 4.1 j'ai l'impression que du fait qu'ils soient dans des sous dossier il ne soit pas interprétés
-
c'est bizarre ça , tas tu tester leur chargement à l'aide de la commande modprobe?
-
@ian57 j'avais essayé des dizaines de choses ce que je sais c'est que ça marche lol...
@Substring j'ai d'énormes lacunes en bash, python, et sous linux... Autant dire que je suis parti de loin pour en arriver là... J'ai encore quelques soucis : XMLLINT a l'air extraordinaire mais tout mes essais ont foirés comme d'habitude.Sur le script d'origine de zzeromin figure une commande sympathique :
grep -A1 "${rom_bn}" ${GAMELIST} | awk "{getline;print}" | awk "BEGIN {FS="<name>"} {print $2}" | awk "BEGIN {FS="</name>"} {print $1}"en console si je tape : grep -A1 "./90 Minutes - European Prime Goal (E)" /recalbox/share/roms/snes/gamelist.xml | awk '{getline;print}' | awk 'BEGIN {FS="<name>"} {print $2}' | awk 'BEGIN {FS="</name>"} {print $1}'
OH BONHEUR cela me retourne 90 Minutes European Prime Goalsi je joue avec un bash que je lance manuellement:
./runcommand-onstart.sh "snes" "snes" "90 Minutes - European Prime Goal (E) [!]"
90 Minutes - European Prime Goal (E) [!]
/recalbox/share/roms/snes/gamelist.xml
grep -A1 "${rom_bn}" ${GAMELIST} | awk "{getline;print}" | awk "BEGIN {FS="<name>"} {print $2}" | awk "BEGIN {FS="</name>"} {print $1}"
snes90 Minutes - European Prime Goal (E) [!]
Voici le code :
title=grep -A1 "${rom_bn}" ${GAMELIST} | awk "{getline;print}" | awk "BEGIN {FS=\"<name>\"} {print $2}" | awk "BEGIN {FS=\"</name>\"} {print $1}"
echo title ne retourne rien. rom_bn et GAMELIST ont bien des valeurs vérifiées avec un echo. je suis dessus depuis 16H et là je deviens un peu chèvre...
Peux tu m'orienter stp ?