Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2015-12-11 13:39:45 Problème inconnu avec controlP5

TomLrt
nouveau membre
Date d'inscription: 2015-12-11
Messages: 1

Problème inconnu avec controlP5



Bonjour, j'ai crée un programme Processing cependant il y a une erreur que je ne comprends pas.
Le but de ce programme est d'avoir une IHM qui permet de contrôler un projecteur, il remplace en fait une table DMX. (C'est un projet en cours)
Nous avons donc les trois couleurs qui sont controlées par trois sliders différents (fais en controlP5), un autre slider pour dire si l'intensité doit changer, ou si nous devons apercevoir un clignotement ou une lumière fixe.
Il y a aussi une boite de texte qui permet de changer le numéro du canal du projecteur, cependant, je ne peux pas ré-écrire cette valeur sur le moniteur de Processing.

Voici mon code :

citation :

//Déclaration de variables et importation des libraires
import processing.serial.*;

import controlP5.*;
ControlP5 cp5;

int Rouge;
int Vert;
int Bleu;
int Strober;

String inString;
Serial Arduino;

float period1 = 1000; // un clignotement par seconde

void setup()
{
  size(600,900);
  noStroke();
     
     
      //Slider ROUGE
      cp5 = new ControlP5(this);
      cp5.addSlider("Rouge")
      .setColorForeground(color(#F0181C))
      .setColorActive(color(#F0181C))
      .setColorBackground(color(#E85457))
      .setPosition(50,200)
      .setRange(0,255)
      .setSize(200,30)
       ;
       
       //Slider VERT
       cp5.addSlider("Vert")
      .setColorForeground(color(#01930A))
      .setColorActive(color(#01930A))
      .setColorBackground(color(#63FC59))
      .setPosition(50,300)
      .setRange(0,255)
      .setSize(200,30)
       ;
             
       //Slider BLEU
      cp5.addSlider("Bleu")
      .setColorForeground(color(#0311FF))
      .setColorActive(color(#0311FF))
      .setColorBackground(color(#505AFF))
      .setPosition(50,400)
      .setRange(0,255)
      .setSize(200,30)
       ;
 
       //Slider STROBER
       cp5.addSlider("Strober")
      .setColorForeground(color(#006C04))
      .setColorActive(color(#9B0220))
      .setPosition(50,500)
      .setRange(1,255)
      .setSize(200,30)
       ;
       
       //Boite de texte canal
       cp5.addTextfield("Canal")
       .setPosition(50,100)
       .setSize(200,40)
       .setFont(createFont("Calibri",20))
       ;
       
       //Bouton VALIDER
       cp5.addButton("Valide")
       .setPosition(300,110)
       .setSize(40,20)
       .setColorForeground(color(#0311FF))
      .setColorActive(color(#0311FF))
      .setColorBackground(color(#505AFF))
      ;
       

}



void draw()
{
  //Design des éléments
  background(#006723); 
  textSize(20);
  fill(#0083D8);
  text("Table DMX",250,50);
  textSize(20);
  fill(#0083D8);
  text("Mode : ",100,850);
  text("Entre 0 et 192 ",400,125);
  fill(#006723);
  rect(220, 820, 300, 55);
 
  fill(Rouge,0,0);
  ellipse(400, 210, 70, 70);
  fill(0,Vert,0);
  ellipse(400, 310, 70, 70);
  fill(0,0,Bleu);
  ellipse(400, 410, 70, 70);
 
 
 
  //condition de la table DMX
  if((Strober>190)&&(Strober<250))
  {
 
     fill(Rouge,Vert,Bleu,Strober);
     long t = millis();
     if (getStateAtTimeWithPeriod(t,period1-Strober*3.9)) ellipse(300, 700, 200, 200); //clignotement
     
     textSize(20);
      fill(#0083D8);
      text("Clignotement",225,850);
   }

    else if(Strober>250){
      fill(Rouge,Vert,Bleu,Strober);
      ellipse(300, 700, 200, 200);
      textSize(20);
      fill(#0083D8);
      text("Fixe",225,850);
    }
   
    else if(Strober<189){
     fill(Rouge,Vert,Bleu,Strober);
     ellipse(300, 700, 200, 200);   
     textSize(20);
     fill(#0083D8);
     text("Intensité",225,850);             
    }


     
     
/*print("Rouge: ");
print(Rouge);
print(" - Vert: ");
print(Vert);
print(" - Bleu: ");
print(Bleu);
print(" - Strobber: ");
if ((Strober>250))
{
println("Fixe");
}

else if ((Strober==1)&&(Strober<190))
{
println("Dimmer - Intensité");
}

  else if ((Strober>190)&&(Strober<250))
{
println("Clignotement");
}*/


}

//outil pour le clignotement

boolean getStateAtTimeWithPeriod(long t, float period) {
  boolean onOrOff = (((int)(t / period)) % 2==1);
  return onOrOff;
}


//bouton Valide

public void Valide()
{

String chaineA;
int canaux;

chaineA=cp5.get(Textfield.class,"canal").getText();
canaux = Integer.parseInt(chaineA);
println(canaux);

if((canaux > 192)||( canaux < 1))
{
  cp5.get(Textfield.class,"canal").setText("1-192");
}
//else if ((canal > 1)&&(canal<192))

}



Et voici mon problème que je ne comprends pas :

citation :

déc. 11, 2015 1:34:31 PM controlP5.ControlBroadcaster printMethodError
GRAVE: An error occured while forwarding a Controller event, please check your code at Valide
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at controlP5.ControlBroadcaster.invokeMethod(Unknown Source)
    at controlP5.ControlBroadcaster.callTarget(Unknown Source)
    at controlP5.ControlBroadcaster.broadcast(Unknown Source)
    at controlP5.Controller.broadcast(Unknown Source)
    at controlP5.Button.setValue(Unknown Source)
    at controlP5.Button.activate(Unknown Source)
    at controlP5.Button.mouseReleased(Unknown Source)
    at controlP5.Controller.setMousePressed(Unknown Source)
    at controlP5.ControllerGroup.setMousePressed(Unknown Source)
    at controlP5.ControlWindow.mouseReleasedEvent(Unknown Source)
    at controlP5.ControlWindow.mouseEvent(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at processing.core.PApplet$RegisteredMethods.handle(PApplet.java:1395)
    at processing.core.PApplet.handleMethods(PApplet.java:1590)
    at processing.core.PApplet.handleMouseEvent(PApplet.java:2676)
    at processing.core.PApplet.dequeueEvents(PApplet.java:2599)
    at processing.core.PApplet.handleDraw(PApplet.java:2410)
    at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1527)
    at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:316)
Caused by: java.lang.NullPointerException
    at IHM_processinh.Valide(IHM_processinh.java:189)
    ... 25 more

Dernière modification par TomLrt (2015-12-11 13:42:53)

Hors ligne

 

#2 2015-12-11 17:30:01 Re : Problème inconnu avec controlP5

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Problème inconnu avec controlP5



Bonsoir,

Ton erreur si tu l'acceptes est de ne pas respecter la casse de tes objets. Tu déclares un Textfield Canal et tu cherches un TextField canal.

Remplace juste canal par Canal et tout rentrera dans l'ordre.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024