IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

"Capture" d'écran sous Weston


Sujet :

Embarqué

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur Tests et Validations
    Inscrit en
    octobre 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur Tests et Validations
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut "Capture" d'écran sous Weston
    Bonjour Mesdames, Messieurs,

    avant de poser ma question, un peu de mise en contexte.
    Je travaille dans le test et validation d'un logiciel embarqué (applicatif), développés dans nos bureaux.
    L'électronique et le système sont développés par des usines sœurs. Je n'ai donc pas accès à toutes les ressources liées au matériel sur lequel je travaille.

    Le logiciel que je teste tourne sur ce qu'on appel un "master", qui pourrait être comparé à une CPU d'automate programmable industriel. Sur ce master, c'est de "la magie Vxworks" comme le dirais un collègue de l'usine sœur.
    En revanche, sur ce master, on branche en Ethernet un "écran". Dans cet écran on retrouve un système Linux (un Yocto).

    Mon travail me demande, notamment, de m'assurer que certaines images apparaissent sur cet écran, idéalement de manière automatique (sans action humaine).
    Seulement, l'environnement qu'on m'a mis à disposition ne me permet pas de faire des captures, et donc de chercher d'automatiser la recherche d'objet sur ce qu'affiche l'écran..

    Mon objectif est donc de trouver une solution pour capturer l'image qui est affichée au display.


    Maintenant, ce que j'ai à disposition (pas grand chose :-)):
    Quelques commandes de bases de linux
    Quelques lib python
    Accès aux pilotes de l'écran, au format. HEX ('fin, il me semble)
    Du temps pour chercher, analyser des codes / fichiers
    Et voilà !

    Gros handicap -> Je n'ai pas de quoi compiler pour la cible \O/.

    Je serais en mesure, j'imagine, de trouver une partie des informations sur le hardware.

    Voilà, voilà ...

    Informations en plus, sur l'écran "tourne" une autre application, gérée par Weston. Je ne sais pas trop comment on dit, navré pour la formulation maladroite.
    (À ce propos, je risque d'utiliser beaucoup de termes approximatifs comme "gérée par Weston", mon domaine d'expertise est plus dans la programmation LabView, la réalisation de schémas électrotechniques, je n'ai donc pas le lexique.)

    L'idée que j'ai actuellement est de capturer les informations que Weston envoie au pilote de l'écran.
    Le problème étant que je ne sais pas ou/comment obtenir ces informations.
    Que faire de ces informations? J'imagine, dite moi si je me trompe, qu'en analysant le code du pilote de l'écran, je saurais comment convertir ces données en images ?

    Je réalise la complexité de mon objectif (sans possibilité de compiler notamment), mais je pense que cela reste possible.

    J'avais réussi récupérer les informations sur /dev/fb0 et les convertir en PNG, j'obtiens un baregraph qui apparaît effectivement au démarrage.
    Mais ensuite, Weston démarre puis mon applicatif encore après.
    Si il existait un fichier similaire au /dev/fb0 pour "la sortie" de Weston, ou pour le pilote de l'écran, ce serait idéal.

    Si vous avez des questions, pour approfondir le sujet , me demander de chercher un fichier , obtenir des informations sur le hard , hésitez pas à me posez des questions.

    Merci par avance de vos réponses

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 3 020
    Points : 10 820
    Points
    10 820
    Par défaut
    Bonjour,
    A mon avis, il faudrait que tu dessines le contexte (je n'ai pas compris grand chose) pour que quelqu'un puisse trouver une astuce.

    L'afficheur est lui aussi émuler dans le master ? L'afficheur fait office d'afficheur déporté ?

    Nom : text2734.png
Affichages : 58
Taille : 39,7 Ko
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur Tests et Validations
    Inscrit en
    octobre 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur Tests et Validations
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    merci pour ta réponse.

    C'est toujours compliqué d'expliquer ce genre de chose. Je suis dedans au quotidien, ce que je dis est une évidence pour moi, ce qui n'est pas le cas des autres.
    Donc voici un schéma.


    Nom : text2734.png
Affichages : 65
Taille : 49,6 Ko
    Le master n'à pas d'écran intégré.

    À la lecture de ton schéma Vincent, j'ai vu que j'avais mal formulé mon histoire avec Weston. J'ai corrigé ça dans mon premier post.
    Et donc oui , l'afficheur fait office d'afficheur déporté. C'est un écran tactile.

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 3 020
    Points : 10 820
    Points
    10 820
    Par défaut
    As tu la main sur l'afficheur ? Par exemple accès à une console pour lancer un script.
    Peux tu installer quelque chose dans l'afficheur ?

    Pour notre information, ça fonctionne comment tout ça ? L'afficheur balance sur l'écran ce que tu lui envoies via Ethernet ? Est ce à double sens (possibilité de lire quelque chose) ?
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur Tests et Validations
    Inscrit en
    octobre 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur Tests et Validations
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Oui, j'ai accès en SSH à la cible (protégée par une paire de clé privée/public).
    Je peux faire tourner du python, du shell.
    Il y a quelques exécutables (en gros => busybox).

    J'ai les droits root sur la cible.

    Qu'entends tu par 'installer" ?
    Je peux envoyer et récupérer des fichiers sans soucis.

    Pour le fonctionnement :
    Le master communique avec des modules d'entrées/ sorties.
    Ces entrées sont des Fin de courses, des capteurs de température , des capteurs de pression, etc.

    Les sorties sont des lumières, des électrovannes TOR ou proportionnelles, etc

    C'est le master qui orchestre tout, en temps réel.

    Le "display" (l'écran tactile) permet notamment d'afficher des informations en provenance des modules d'entrées /sorties , mais aussi d'effectuer quelques réglages ( comme régler une ventilation/clim', intensité de lumières).Les échanges se font donc effectivement dans les deux sens.

    L'affichage n'est pas envoyé sur la display. Il y a un logiciel (qui tourne sur weston), qui récupère des données sur l'ETHERNET)
    En d'autres mots :
    Le logiciel du display a ses variables à lui.
    Le master a ses variables à lui.
    Via Ethernet, les deux logiciels échangent des valeurs, afin qu'il mettent leurs variables à jours.

  6. #6
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 3 020
    Points : 10 820
    Points
    10 820
    Par défaut
    Parce que je me demandais si tu ne pouvais pas faire un script qui simule le raccourci clavier qui correspond à un screenshot sous Weston
    https://doc.ubuntu-fr.org/weston (voir chapitre 2.2 touche Windows+S)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur Tests et Validations
    Inscrit en
    octobre 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur Tests et Validations
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    J'aime beaucoup l'idée :-)
    Maintenant, ne connaissant pas weston, je ne sais pas comment lancer un processus / script depuis Weston.
    Je vais creuser de ce côté.

    Les fêtes approchants, je ne pourrais probablement pas faire d'essais rapidement.
    J'essais de donner des nouvelles de mes essais prochainement.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur Tests et Validations
    Inscrit en
    octobre 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur Tests et Validations
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Voilà , noël est passé.
    J'ai eu plusieurs moments pour me pencher sérieusement sur Weston, et lui faire lancer des scripts. Je n'ai pas trouvé.

    J'a réussi à faire des petites choses amusantes, comme :
    - Afficher des fleurs
    - Afficher un éditeur de texte
    - Afficher une fenêtre où quand on appuis ça fait une trainée rouge derrière le doigts.
    Toutes ses choses sont des exemples qui sont fournis avec Weston.
    Je démarrais une instance de Weston depuis le SSH et une fois Weston démarré, je lançais ces exemples toujours en SSH. Donc "depuis l'extérieur" de Weston.
    Ces exemples sont des exécutables pour Weston (comme l'est mon application que je veux capturer)
    C'est comme si on avait développé une application pour Windows. Si on la lance dans un dos, l'application ne démarrerait pas dans la console. Mais elle se lancerait au mieux sous Windows.

    Par contre, rien à faire, je n'ai pas réussi à lancer un script "depuis l'extérieur".
    Pas plus que depuis Weston !

    Si je comprends bien mon fichier de configuration weston.ini, un clavier virtuel devrait s'afficher, mais non, ça ne marche pas.
    Pareil, je devrais avoir des raccourcis (comme on a dans la barre de tâche de windows/linux) vers les fleurs, l'éditeur de texte ou la fenêtre présentée plus haut.
    Mais non. J'ai uniquement un raccourcis vers un terminal. Mais comme le clavier virtuel ne fonctionne pas, je ne peux rien faire.

    Quand bien même j'aurais pu écrire depuis ce terminal des commandes, cette solution n'aurait pas été valable. L'application que je dois tester tourne en plein-écran. Dans le cas réel d'utilisation du display, je n'ai accès qu'à cette application et donc pas accès au terminal. De plus je n'aurais rien pu automatiser avec cette méthode.

    Pour moi, à ce stade il ne me reste qu'une seule solution, qui tourne aussi autour de l'outil de capture de Weston : La compilation.
    Avant la proposition de Vincent, j'étais tombé sur une solution proposant de recompiler le screenshooter de Weston , mais en enlevant les lignes traitants de la connexion avec Wayland :
    Nom : Patch Screenshot Weston.png
Affichages : 35
Taille : 17,4 Ko
    ( j'ai effectivement le message "screenshot must be launched by Weston" quand je lance l'exécutable en SSH)
    code complet screenshot.c

    D'ailleurs, sur le git de Wayland/Weston, ces lignes sont déjà retirées :
    Wayland screenshot.c

    Je vais donc devoir faire de la compilation croisée.
    Je commence ce soir mes recherches sur ce point. J'avais discuté de ce point avec un collègue qui me disait avoir réussi à compiler un helloworld pour cette cible mais n'était pas allé plus loin. Les collègues des usines sœur n'ont pas souhaité lui remettre le kit de développement pour cette cible.

    Je ne sais pas trop par quel bout prendre ce nouveau problème : créer la chaine de compilation.
    J'espère ne pas me lancer des tonnes de me recherches pour me rendre compte à la fin que c'est impossible de créer mes outils de compilations de toutes pièces
    Je ne suis pas pressé, en revanche je ne souhaite pas perdre mon temps sur quelque chose d'impossible.

Discussions similaires

  1. Capture d'écran sous Visual Studio 2008
    Par buscom dans le forum Visual Studio
    Réponses: 0
    Dernier message: 24/09/2010, 09h31
  2. Caractere echappement (quote) et variables sous pgsql
    Par tonio.jt dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 11/10/2009, 21h06
  3. Capture d'écran sous forme vidéo
    Par ibreak dans le forum C++
    Réponses: 0
    Dernier message: 02/06/2009, 01h03
  4. Capture d'écran sous Windows
    Par pi-2r dans le forum Débuter
    Réponses: 10
    Dernier message: 10/08/2008, 16h35
  5. capturer la partie d'écran sous une fenêtre
    Par mehdiing dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 25/04/2008, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo