Processing --> gestion des touches (buton)
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Processing --> gestion des touches (buton)



  1. #1
    philouxy

    Processing --> gestion des touches (buton)


    ------

    Bonjour tous le monde,

    Je suis entrain de réaliser une petite interface sous "Processing" pour récupérer des infos lié à la carte ARDUINO UNO et de quelques capteurs de température.
    J'ai réussi à récupérer les infos des capteurs, mon problème se trouve sur la gestion de mon interface graphique.
    J'ai créé une nouvelle fenêtre qui contient 2 boutons, ca c'est ok... mais le problème se situe sur la gestion des boutons

    Je n'ai pas trouvé d'exemples ou d'explication pour savoir comment interagir avec ces nouveaux éléments.
    J'utilise la libraire "controlP5" (je me suis servis de ce site : Lien_ControlP5), mais je n'ai pas compris comment utilise les différentes procédures proposées.

    voici quelques bouts de code que j'ai réalisé :

    configuration des touches:
    Code:
    void setup() 
    {
      //....
    
      //--- initialisation des objets -> touche b_Lancer et b_Arreter ---//
      // Remarque : addButton (String theName, float theValue, int theX, int theY, int theW, int theH)
      b_Lancer = controle_B.addButton("Lancer", 0, 50, 150, 50, 24);       // initialise et ajoute un Button au ControlP5 --> lancer 
      b_Arreter = controle_B.addButton("Arreter", 0, 300, 150, 50, 24);    // initialise et ajoute un Button au ControlP5 --> arrêter 
    
      //...
    évènements lié aux touches:
    Code:
    public void controlEvent(ControlEvent theEvent) 
    {
      // ???
      // je ne sais pas quoi mettre comme code dans cette partie 
      
    }
    touche en elle-même:
    Code:
    void b_Lancer(boolean val_event)
    {
      // ???
      // ici aussi je ne sais pas quoi mettre 
      // simplement qu'avec l'évènement lié je voulais changer le 
      // background de la fenêtre 
      background(255,255,255);                 // fond fenetre en 
      
    }
    Voilà donc actuellement je suis un peu bloqué dans cette partie alors si vous avez des idées, je suis preneur de code exemple, de suggestions - idées, de docs ou site internet, etc

    En grand merci de me lire

    Amicalement le cht'y Philou

    -----

  2. #2
    philouxy

    Re : Processing --> gestion des touches (buton)

    Bonjour à tous,

    Je reviens vers vous car j'ai résolu un problème pour refaire un autre... la programmation n'est un pas belle écran tout blanc....

    En discutant sur un autre forum, et en cherchant par moi-même dans mes vieilles connaissance de JAVA, je peux jouer avec le bouton de 2 manières, voici les 2 solus ci-dessous :
    Solution 1 - Fournis par le Forum d.com

    a initialiser comme variable général :
    Code:
    Button         b_Lancer;
    a initialiser l'objet dans la fonction setup :
    Code:
    //initialise et ajoute un Button au ControlP5 --> lancer 
    b_Lancer = controle_B.addButton("b_Lancer", 0, 50, 150, 50, 24);
    le string indiqué en argument de la méthode doit avoir le même nom que l'objet, ne sait pas pourquoi mais c'est comme

    fonction lié à la touche "b_lancer"
    Code:
    void b_Lancer(int val_event)
    {
      background(255,255,255);                 // fond fenetre en 
    }
    Et la fonction doit avoir le même nom que l'objet qui référence la touche (b_lancer), donc résultat : chaque fois qu'on clique sur le touche "b_lancer", le fond d'écran passe en blanc (c'est ce que je voulais --> OK)

    Solution 2 - My solus Perso

    initialiser comme variable général :
    Code:
    Button         b_Lancer;
    our initialiser l'objet dans la fonction setup :
    Code:
    // initialise et ajoute un Button au ControlP5 --> lancer 
    b_Lancer = controle_B.addButton("Lancer", 0, 50, 150, 50, 24);
    par contre ici je n'ai pas indiquer le même nom entre le nom de l'objet et le string qui va être afficher... et je n'utilise pas une méthode définie par mes soins, mais c'est dans la fonction "draw", que je teste la touche
    Code:
    if (b_Lancer.isPressed())
    {
        background(255,255,255);                 // fond fenetre en 
    }
    La encore quand j'appuie sur la touche "lancer" le fond de la fenêtre change de couleur (passe de noir à blanc), la différence entre les 2 codes c'est au niveau du nom qui est afficher dans la fenêtre au niveau de la touche, dans la première solution, le string qui est en argument doit avoir le même que l'objet et que la fonction... ne me demander par pourquoi je n'en sais rien... mais ca marche... tant dit que pour ma solution, je peux afficher un nom différent sur la fenêtre pour la touche que le nom de l'objet créé --> nom objet pas != nom afficheé.

    Voilà, now à nouveau en difficulté car comme dit ci-dessus la gestion est correcte, mais je me trouver confronter à des nouveau soucis sur la création d'un fichier ainsi que de son écriture... Mon but est lorsque j'appuie sur le "lancer", un fichier s'ouvre pour que l'on puisse aller écrire des infos dessus... donc j'ai écris le code (en utilisant mon ami Google) et lorsque je lance mon code, ca foire au niveau de l'ouverture du fichier txt.

    Alors à nouveau je fais appel à vous, et vos connaissance de Java pour aider à me dépatouiller... Alors comme d'hab si vous avez de liens, doc, ou exemple de code je suis preneur.

    Voici mon bout de code :
    Code:
    //------------------------------------------------------------------//
    // Nom fonction : Lancer
    // entrée - sortie --> IN : val_event
    //                 --> OUT :
    //                 --> IN/OUT :
    // Description : lié à une événement lorsqu'on clique sur la 
    //               touche "Lancer", cela doit créer un fichier ainsi 
    //               permettre l'aquistion de données 
    // Remarque : -       
    //------------------------------------------------------------------//
    public void Lancer(int val_event)
    {
      print("ca marche !!!");
      background(255,255,255);                 // fond fenetre en 
      if(fichier_data.exists())
      {
        try
        {
          FileWriter ecriture_data = new FileWriter(fichier_data, true); 
          ecriture_data.write("j'ai ecris à nouveau \n");
          ecriture_data.close();
        }
        catch (IOException ioe) 
        { 
          println("Message erreur : "+ioe.getMessage()); 
        } 
            //BufferedReader fichier  = new BufferedReader(new FileReader("monfichier.txt"));   
      }
      else
      {
        
        try
        {
           fichier_data = new File("store_data.txt");
           FileWriter ecriture_data = new FileWriter(fichier_data); 
           ecriture_data.write("j'ai ecris pour la premiere fois \n"); 
           ecriture_data.close();
        }
        catch (IOException ioe) 
        { 
           println("Message erreur : "+ioe.getMessage()); 
        } 
      }
    }
    ainsi que l'erreur fournie :

    Image supprimée

    A tout bientôt le chty Philou
    Dernière modification par JPL ; 18/01/2013 à 23h19.

  3. #3
    Dlzlogic

    Re : Processing --> gestion des touches (buton)

    Bonjour,
    C'est du Java ?
    C'est marrant comme la syntaxe ressemble à celle du C/C++.
    Question : quand vous créez un objet avec new, devez-vous le détruire avec delete, ou ça se fait tout seul ?
    Je n'ai pas vu où était déclaré "fichier_data". Peut-être en global.
    Vous devriez me décrire la logique d'utilisation des fichiers. Là, ça m'échappe.

  4. #4
    philouxy

    Re : Processing --> gestion des touches (buton)

    Bonjour à tous,

    Merci DLZ pour de pencher mon cas ou code désespéré

    Alors oui, j'utilise "processing" qui est une sorte d’interpréteur JAVA (logiciel Open Source) car je me suis mis utiliser un carte ARDUINO... je voulais rapidement créer une application, avec la carte électronique (en 2 jours le programme tournait correctement). Ensuite j'ai voulu créer une interface... et la ca fait plus de 2 jours que je suis dessus !!!

    Voici le lien pour PDE : http://processing.org/reference/environment/

    Je vais mettre le code complet en annexe...

    En fait le but de ce programme, et quand je clic sur un bouton "lancer", ca me lance une acquisition des données ou j'utilise le port série du PC pour récuperer des infos envoyés par une carte électronique dans un fichier texte pour récupérer ces valeurs et les donner à Scilab (mais j'y suis pas encore)... ca c'est le projet global.

    Maintenant ce que j'essaie de faire, c'est quand j'appuie sur le bouton "Lancer" ca m'écrive une phrase dans un fichier text, et chaque fois que je clic sur "Arrêter" ca arrêtre ca ferme le fichier text, mais si je reclique sur "Lancer" j'aimerai pouvoir récupérer mes données précédentes et en mettre des nouvelles...

    J'espère avoir répondu à vos questions

    Amicalement le cht'y Philou
    Fichiers attachés Fichiers attachés

  5. A voir en vidéo sur Futura
  6. #5
    Dlzlogic

    Re : Processing --> gestion des touches (buton)

    Oui, c'est la gestion de fichier dont il est question.
    Le cas général suit le schéma suivant :
    1- on a un nom de fichier, on appelle ça aussi un "label".
    2- on ouvre le fichier, c'est à dire qu'un indique à la machine que le fichier qui a pour nom "machin.xyz" est associé à un numéro, un pointeur ou je ne sais quoi que la machine pourra utiliser, le nom du fichier lui-même, elle peut l'oublier.
    3- on dit comment est ouvert ce fichier : lecture et/ou écriture ; création ou non ; format binaire ou texte ; écriture à la fin ou RAZ à chaque ouverture etc.
    4- maintenant, la machine connait le fichier qu'elle utilise par un indice et l'utilisateur (en fait le développeur) a affecté à une variable l'indice connu par la machine.
    5- toutes les lectures et écritures seront faites via la variable qui contient l'indice du fichier.
    6- Quand on a fini, on ferme le fichier, ce qui libère éventuellement les ressources qui ont été utilisées pour faire cette opération.

    Quel que soit le langage, le schéma est toujours le même. Un langage peut aussi shunter apparemment des étapes, mais elles existent forcément et de façon automatique. Par exemple, un langage peut considérer qu'un fichier est toujours ouvert en lecture ET écriture.

  7. #6
    JPL
    Responsable des forums

    Re : Processing --> gestion des touches (buton)

    Les images sur un serveur extérieur ne sont pas autorisée. Elles doivent être postées en pièces jointes.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Discussions similaires

  1. Programmation processing ethernet
    Par Davarcroft dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 25/03/2012, 19h24
  2. Réponses: 2
    Dernier message: 24/11/2009, 21h23
  3. [Divers] remettre des touches d'ordi
    Par leszoud dans le forum Dépannage
    Réponses: 0
    Dernier message: 29/09/2007, 09h05
  4. Programmation des touches
    Par invite0e31fe01 dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 29/08/2005, 11h29
  5. Des Sciences de Gestion, ou de la Science appliquée aux Arts de gestion ?²
    Par invite5ecc4617 dans le forum [ARCHIVE] Psychologie / Sociologie
    Réponses: 3
    Dernier message: 06/01/2005, 18h42