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

C# Discussion :

Récuperation de la valeur d'un bouton placé sur l'ecran


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut Récuperation de la valeur d'un bouton placé sur l'ecran
    Je m'explique j'ai un ecran de PC sur lequel iul y a un bouton "emergency" quand on appuis dessus il envoi au PC la valeur 1 et quand on le relache la valeur 0 (simple non?)

    Le truc c'est que j'aimerais savoir si je peux recuperer sa valeur dans mon programme en C# tout en sachant que je ne sais pas comment la valeur est envoyé au PC. (moins simple)

    Merci d'avance pour ceux qui ont des idées.

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    Je m'explique j'ai un ecran de PC sur lequel iul y a un bouton "emergency" quand on appuis dessus il envoi au PC la valeur 1 et quand on le relache la valeur 0 (simple non?)
    c'est un bouton, au sens physique/ en plastique, ou un bouton d'un autre programme?

    ensuite, il envoie 1 ou 0 au PC. sur quel port? quel interface?



    récupérer n'est pas un problème mais toi tu ne sais pas ni où, ni quoi récupérer

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Oui c'est un bouton physique en plastique.
    En fait c'est un Car PC de chez motorola donc savoir comment il envoi la donnée au PC c'est plutot un mystere car tout est top secret avec eux!

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    dans ce cas, je vois pas comment tu peux faire, car généralement ca envoie sur un port bien précis et t'as une appli qui écoute derrière. à la limite, si t'as un OS, tu peux p-e lancer une detection des ports ouverts mais ca va etre difficile

  5. #5
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Hummm, tu démontes le bouton, tu soude deux fils sur celui-ci que tu relient à un UART monté sur une plaque alimentée par le port USB, ensuite tu lis le port COM correspondant à ton port USB pour y lire l'état du bouton.

    Plus sérieusement, tu ne donnes pas assez d'indications. Un bouton physique qui envoie 0 et 1 à ton PC, ok, mais comment il envoie ca ? USB ? RS-232 ? Magie ? Vu ce que j'ai trouvé en cherchant sur google "car pc motorola", je dirais qu'à priori c'est un interrupteur physique, lut par le bios certainement (à l'image des switch wifi/bluetooth qu'on trouve sur les portables), et donc a moins de décompiler le logiciel qui va utiliser cette valeur, c'est mort, tu ne saura pas comment lire ce bouton.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Effectivement je ne donna pas assez d'indicationmais c'est parceque c'est tout ce que je sais :s
    J'ai ce model
    MW800
    Et toutes les données doivent passer par le cable qui relis l'ecran au PC sauf que c'est un cable motorola fait expres pour ce genre d'appareil donc apres pour savoir comment il envoi les données.....ben je pense qu'il faut les appeler...ce que je vais faire

    Mais merci quand meme pour votre aide

  7. #7
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    La documentation liée dit ça :
    Emergency key operation
    The display is equipped with the large bright-red emergency button. When the
    emergency button is pressed, the display provides high-priority data event to the
    CPU box operating system. That intends for a customer software emergency
    applications that may hook and process this event.
    Donc a priori c'est un signal système à chopper et, toujours a priori, c'est fait justement pour les clients pour qu'ils puissent mettre ce qu'ils veulent derrière. En conséquence, il doit exister une documentation sur la programmation d'une telle chose. Ceci dit, ca reste visiblement très proche de la machine, je ne suis pas sur que tu puisse jouer avec ce bouton en C#.

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Ceci dit, ca reste visiblement très proche de la machine, je ne suis pas sur que tu puisse jouer avec ce bouton en C#.
    si! forcément car C# permet de tout faire. Ce que sait faire le système, il le fait en C++ généralement et toi, avec les PInvoke, tu peux faire tout ce que fait le système.

    reste à découvrir à quoi s'accrocher ("hooker") pour récupérer cette valeur

  9. #9
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    si! forcément car C# permet de tout faire. Ce que sait faire le système, il le fait en C++ généralement et toi, avec les PInvoke, tu peux faire tout ce que fait le système.
    Tu te contredit un peu beaucoup la. C'est bien ce que je dit, ca se fera pas en .Net, mais en C ou C++. La pose du hook, la lecture du matériel, voir la création d'un driver. Après, si ca l'amuse d'encapsuler ce code C/C++ dans une appli .Net à coup de p/invoke, pourquoi pas. En attendant, tout le code réel de lecture du bouton ne sera pas fait en .Net

    Encore qu'il y a surement moyen avec C++/Cli, ou utiliser directement les p/invoke si motorola a fournit une API pas trop mal faite.

    En attendant, s'il faut bien faire un Hook, ce dont on est même pas sur (document commercial != documentation technique et donc potentiellement c'est pas parce qu'ils parlent de hook qu'il faut le voir comme un Hook en API Win32), la documentation est ici

  10. #10
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Tu te contredit un peu beaucoup la. C'est bien ce que je dit, ca se fera pas en .Net, mais en C ou C++. La pose du hook, la lecture du matériel, voir la création d'un driver. Après, si ca l'amuse d'encapsuler ce code C/C++ dans une appli .Net à coup de p/invoke, pourquoi pas. En attendant, tout le code réel de lecture du bouton ne sera pas fait en .Net

    Encore qu'il y a surement moyen avec C++/Cli, ou utiliser directement les p/invoke si motorola a fournit une API pas trop mal faite.
    je me contredis pas . faire du pinvoke et appeler une assembly C++, ca reste du C#.
    ici on parle d'un message envoyé via du matériel, donc forcément, tu passeras toujours par la couche système, ou alors faut installer un pilote qui fera pont entre les deux.

    En attendant, s'il faut bien faire un Hook, ce dont on est même pas sur (document commercial != documentation technique et donc potentiellement c'est pas parce qu'ils parlent de hook qu'il faut le voir comme un Hook en API Win32), la documentation est ici
    quel est l'OS de ton car pc? si c'est un windows, alors il aurait été bête de leur part de part de passer par dessus le système surtout pour récupérer une valeur booleenne. Ils peuvent éventuellement le faire selon la façon dont ils s'interfacent avec l'écran car j'imagine que c'est un matos bien à eux mais ca serait plus lourd en développement.


    il te reste juste à récupérer leur doc technique. plus facile à dire qu'à faire j'imagine

  11. #11
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Bah moi je trouve quand même, car comme tu le dis, faut forcément passer par une couche intermédiaire qui n'est pas en .Net, si cette couche existe, alors il pourra se contenter du .Net, sinon, il sera obliger de la coder cette couche, et ca ne pourra pas être fait en .Net.

    D'après la doc c'est bien un windows qu'il y a dessus. La documentation parle aussi de quelques logiciels fournis ainsi que des drivers.

  12. #12
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    à défaut de doc précise, moi je l'aurais fait à la roots. tu trouves le logiciel qui interagit avec les boutons de ton écran, "MW800 Display Utilities", tu passes un bon coup de windasm dessus et avec un peu de chance, mater le code assembleur peut t'aider car t'y trouveras des infos sur les API appelées ou d'autres infos comme des numéros de port stockées dans des constantes ou autre. Pas forcément besoin de connaitre l'assembleur, faut juste savoir utiliser le desassembleur et lire les "Strings" et regarder en diagonal le code.

    Il doit également exister des sniffers de process car quand tu sais quel process viser, tu le surveille et tu l'utilises en capturant tout ce qu'il envoit/recoit


    ps: ca s'utilise dans quel cas ton "car pc"? ca semble gros pour une voiture :/

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Oui c'est bien windows qu'il y a dessus et je pense que je vais demander la doc technique a Motorola, en plus normalement il devait nous envoyer une doc de leur API donc je vais voir aussi.

    Louis-Guillaume Morand : Un car PC sert dans les ambulances ou les camionnette, mais quand on doit le mettre dans une voiture on le planque bien et tout rentre parfaitement dedans

    Edit Moi-meme:
    C'est bon c'est resolu c'est bien motorola qui m'a envoyé une doc et des exemple de comment faire, mais il fallait en plus aller chercher certaines Dll pour rajouter un component dans la form qui recupere l'evenement!

    Sujet Resolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/08/2009, 21h32
  2. recupérer la valeur d'un bouton radio
    Par ericmart dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/05/2008, 15h42
  3. Récuperer la valeur d'un bouton radio dont la liste est dynamique
    Par PAYASS59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/07/2007, 13h34
  4. récuperer la valeur d'un bouton radio sans formulaire
    Par boss_gama dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 18/09/2006, 11h52
  5. Réponses: 8
    Dernier message: 09/03/2005, 10h47

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