Salut à tous,
Je réalise un project de mapping avec LPMT et la libraire sketchMap de Processing (du bon travail ces softs).
Mais impossible de faire marcher les deux softs en même temps car chacun à besoin
de toute la carte graphique.
Alors quand la partie de Processing est finie je voudrais lancer LPMT qui est une application Openframeworks à partir de Processing.
J'ai essayé avec la méthode open() mais sans succès elle marche juste pour les app Processing.
Je suis sous ubuntuStudio 14.10.
Merci de votre aide
Hors ligne
Salut ! Pour exécuter une commande (et donc ça peut servir à lancer un programme) comme on le ferait en tapant une ligne de commande dans un "terminal" sous unix (ou encore une "invite de commande" sous dos/windows) voici une méthode java assez pratique (et qui marche aussi sur Windows, voir le sketch proposé récemment pour utiliser la commande de synthèse vocale "espeak": http://codelab.fr/5584).
Un petit exemple pour Ubuntu :
import java.io.*; void execute (String commande) { try { Process p = Runtime.getRuntime().exec(commande); } catch (Exception err) { println(err); } exit(); } void setup() { execute("gst-launch-0.10 playbin uri=file:///usr/share/sounds/ubuntu/stereo/system-ready.ogg"); execute("firefox"); }
Dernière modification par Nicolas Lhommet (2015-02-16 18:00:37)
Hors ligne
Merci pour la réponse.
Je dois faire une erreur en écrivant mes commandes car cela ne marche pas.
void setup() { execute("cd /home/mathieu/Pixsel/lpmt/"); execute("./lpmt-master"); } //ou encore avec execute("sudo ./home/mathieu/Pixsel/lpmt/lpmt-master"); //commande qui ouvre lpmt dans le bash
J'ai un peu tout essayer, j'ai ouvert mon appli en sudo après l'avoir exporté en changeant les chemins absolu en relatif.
Bref, je patauge
Hors ligne
en page 14 et 15 de ce document :
http://www.hv-a.com/lpmt/sssm.pdf
tu as une solution utilisant puredata/gem + V4L2loopback pour faire passer la vidéo issue de Gem dans l'appli LPMT... (chais pas si ça t'aide... peut être que processing peut sortir sur V4L2 ?)
Hors ligne
Mathieu, il n'y a pas d'erreurs dans tes commandes, simplement tu en demandes un peu trop au getRuntime() de Java, qui n'est pas un shell interactif (pour les explications techniques, voir http://stackoverflow.com/a/4884715/2592481).
Mais tu pourrais les mettre dans un script bash, par exemple nommé "script.sh", pour les exécuter avec une seule commande : "bash /home/mathieu/script.sh" (sans mettre "bash", ça peut marcher aussi). Attention à d'abord le rendre exécutable avec un "chmod +x script.sh" dans ton terminal.
Tu pourrais également donner les droits à ton exécutable "lpmt-master" pour avoir la possibilité de le lancer avec ton utilisateur (ou encore démarrer préalablement Processing en "super-utilisateur") pour te passer de "sudo", et exécuter directement ton programme, avec son chemin absolu : "/home/mathieu/Pixsel/lpmt/lpmt-master".
Si on veut/doit utiliser "sudo", le problème c'est que celui-ci "demande" un mot de passe... mais alors, comment faire sans interactivité ?
Là encore, une recherche de 2 secondes sur Internet mène à cette page (du site SuperUser/StackOverflow, indispensable pour les questions de programmation fréquemment posées) : http://superuser.com/questions/67765/su … mmand-line où nous est proposée une méthode (certes, pas très sécurisée...) pour donner directement le mot de passe à "sudo", comme ceci :
echo <mot de passe de sudo> | sudo -S <commande>
Tu ne pourras pas utiliser ça directement avec getRuntime(), mais dans un script, ça ira.
Au final, dans ton code, ça donnerait : execute("/home/mathieu/script.sh");
et dans "script.sh" : echo 123456 | sudo -S /home/mathieu/Pixsel/lpmt/lpmt-master
Dernière modification par Nicolas Lhommet (2015-02-24 01:22:10)
Hors ligne
Ecrire un petit script bash j'y ai pensé après coup.
C'est vraiment une bonne idée
Merci pour toutes ces infos, je vais tester demain.
Et sous peu j'èspère vous montrer une video du projet
Bye
Hors ligne
Youpieeeeee ! - ! - ! - ! !!
Ca marche au poil.
J'ai donné les droits à tous comme ça j'ai pu le faire sans le sudo.
Encore merci
PS : pour v4L2loopback on s'était déjà pris la tête sur ce forum.
Si j'ai bonne mémoire il n'y a pas de paquet pour ubuntu 14.10
Et puis si je dois faire tourner 6 sketchs Processing différents pour mes 6 faces dans LPMT, je vais devoir changer de bécane.
Alors qu'avec http://josephtaylor.github.io/sketch-mapper/ un seul suffit
Dernière modification par matthieu (2015-02-24 17:08:08)
Hors ligne