Annonce

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


#1 2012-10-31 23:42:08 Problème OSC

the skull
membre
Lieu: Belgique
Date d'inscription: 2011-07-03
Messages: 55
Site web

Problème OSC



Bonsoir la compagnie et certain d'entre vous ^^
J'ai un prob d'osc comment je dois faire pour parvenir à récupérer les données texte que je crée?.

Je sais que je dois être proche de la solution, en passant par un string to int ou float, mais je vois pas comment récupérer les donnée textes... est dans le theOscMessage.checkTypetag? une petite explication pourrais m'être utile..

Hors ligne

 

#2 2012-11-01 06:56:52 Re : Problème OSC

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

Re: Problème OSC



Bonjour,

Je suppose que tu utilises la librairie oscP5, voici un bout de code te permettant d'envoyer et de recevoir une chaîne de caractère

import oscP5.*;
import netP5.*;

OscP5 oscP5;
NetAddress adresseInternet;

void setup() {
  size(200,200);
  frameRate(30);
  oscP5 = new OscP5(this,12000);
  adresseInternet = new NetAddress("127.0.0.1",12000);
}

void draw() {
  background(0);  
}

void mousePressed() {
  OscMessage messageOSCEnvoye = new OscMessage("/test");
  messageOSCEnvoye.add("Bonjour chez vous !"); // Ajoute un texte dans le message
  oscP5.send(messageOSCEnvoye, adresseInternet); 
}

void oscEvent(OscMessage messageOSC) {
  println("Adresse OSC : " + messageOSC.addrPattern());
  String reception = messageOSC.get(0).toString();
  println("Message : " + reception);
}

Est-ce que ceci te convient ?

Bonjour chez vous !

Hors ligne

 

#3 2012-11-01 15:33:16 Re : Problème OSC

the skull
membre
Lieu: Belgique
Date d'inscription: 2011-07-03
Messages: 55
Site web

Re: Problème OSC



Bonjour
Merci de la réponse.
Mais l'affichage dans la fenêtre d'écoute je sais le faire, par rapport au fichier que j'ai envoyé, c'est un affichage dans la fenêtre de conversation qui me pose problème en fait.
dans l'exemple je sais récupérer et afficher un balle, et la je souhaiterais voir la chaine de caractère.

Hors ligne

 

#4 2012-11-02 00:01:50 Re : Problème OSC

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

Re: Problème OSC



Bonsoir,

Alors ce n'est pas un problème d'OSC mais d'affichage de chaîne de caractère. As tu pensé à regarder l'aide ?

import oscP5.*;
import netP5.*;

OscP5 oscP5;
NetAddress adresseInternet;
String reception;
int compteur;

void setup() {
  size(200,200);
  frameRate(30);
  oscP5 = new OscP5(this,12000);
  adresseInternet = new NetAddress("127.0.0.1",12000);
  reception = "";
  compteur = 0;
}

void draw() {
  background(0);  
  text(reception, 10, 100);
}

void mousePressed() {
  compteur++;
  OscMessage messageOSCEnvoye = new OscMessage("/test");
  messageOSCEnvoye.add("Bonjour chez vous ! " + compteur); // Ajoute un texte dans le message
  oscP5.send(messageOSCEnvoye, adresseInternet); 
}

void oscEvent(OscMessage messageOSC) {
  println("Adresse OSC : " + messageOSC.addrPattern());
  reception = messageOSC.get(0).toString();
  println("Message : " + reception);
}

Hors ligne

 

#5 2012-11-02 04:16:37 Re : Problème OSC

the skull
membre
Lieu: Belgique
Date d'inscription: 2011-07-03
Messages: 55
Site web

Re: Problème OSC



J'ai plus ou moin réglé le problème. l'affichage ce fait, mais ne s'affiche que quand la souris bouge. je continue mon investigation.
merci de votre réponse.



String s ="";
int x = 10;
int y = 10;


import oscP5.*;
import netP5.*;


OscP5 oscP5;
int JeftaX, JeftaY, CedX, CedY;

/* a NetAddress contains the ip address and port number of a remote location in the network. */
NetAddress myBroadcastLocation;

void setup() {
  size(640, 520);
  frameRate(25);



  /* create a new instance of oscP5.
   * 12000 is the port number you are listening for incoming osc messages.
   */
  oscP5 = new OscP5(this, 12000);

  /* create a new NetAddress. a NetAddress is used when sending osc messages
   * with the oscP5.send method.
   */

  /* the address of the osc broadcast server */
  myBroadcastLocation = new NetAddress("127.0.0.1", 12001);
}


void draw() {
  background(0);
  fill(40, 100, 255);
  ellipse(JeftaX, JeftaY, 30, 30);

  fill(100, 200, 255);
  ellipse(mouseX, mouseY, 50, 50);

  fill(255, 100, 255);
  ellipse(CedX, CedY, 30, 30);


  fill(255);
  text(s, x, y, 300, 300);
  textSize(30);
  if (textWidth(s)>800) {
    int h=0;
    String test="";
    while (textWidth (test)<300) {
      h++;
      test=s.substring(0, h);
    }
    s=s.substring(h, s.length());
  }
}


void mouseMoved() {
  /* create a new OscMessage with an address pattern, in this case /test. */
  OscMessage myOscMessage = new OscMessage("/Ced");
  /* add a value (an integer) to the OscMessage */
  myOscMessage.add(mouseX);
  myOscMessage.add(mouseY);
  myOscMessage.add(s);
  /* send the OscMessage to a remote location specified in myNetAddress */
  oscP5.send(myOscMessage, myBroadcastLocation);
}


void keyPressed() {
  OscMessage m;
  switch(key) {
    case('c'):
    /* connect to the broadcaster */
    m = new OscMessage("/server/connect", new Object[0]);
    oscP5.flush(m, myBroadcastLocation); 
    break;
    case('d'):
    /* disconnect from the broadcaster */
    m = new OscMessage("/server/disconnect", new Object[0]);
    oscP5.flush(m, myBroadcastLocation); 
    break;
  }
}


void keyReleased() {
  if (key != CODED) {
    switch(key) {
    case BACKSPACE:
      s = s.substring(0, max(0, s.length()-1));
      break;
    case TAB:
      s += " ";
      break;
    case ENTER:
      s=s+"\n";
      break;
    case ESC:
    case DELETE:
      break;
    default:
      s += key;
    }
  }
}


/* incoming osc message are forwarded to the oscEvent method. */
void oscEvent(OscMessage theOscMessage) {
  if (theOscMessage.checkAddrPattern("/jefta")==true) {
    if (theOscMessage.checkTypetag("iis")) {
      JeftaX = theOscMessage.get(0).intValue(); 
      JeftaY = theOscMessage.get(1).intValue();
      s = theOscMessage.get(2).stringValue();

      // theOscMessage.print();

      return;
    }
  }
}

Hors ligne

 

#6 2012-11-02 09:06:51 Re : Problème OSC

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: Problème OSC



Parce que tu as mis le osc send dans le mouse moved, tu peux ajouter une seconde variable sPrevious, tu les compares a chaques boucle si ils sont différent tu copies le s dans le sPrevious et tu envoies

Hors ligne

 

#7 2012-11-02 17:54:33 Re : Problème OSC

the skull
membre
Lieu: Belgique
Date d'inscription: 2011-07-03
Messages: 55
Site web

Re: Problème OSC



Merci des vos interventions ^^

Hors ligne

 

#8 2013-04-15 01:23:58 Re : Problème OSC

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Problème OSC



Yo...

La question est simple :

Est-il possible de transférer des caractères accentués en OSC ?

Je n'ai jamais réussi à le faire en Python ni en Puredata... et la chose est peut-être tout simplement, techniquement impossible...
Mais le fait est que j'ai besoin de transférer du texte entre deux instances de P5 avec le maximum de caractères possibles... genre de l'UTF-8...

J'ai toujours la possibilité d'enregistrer des fichiers textes et de les faire ouvrir par OSC, mais s'il était possible de pousser directement le texte dans le tuyau, ce serait mieux...

Merci... smile


L'Amour au Peuple !

Hors ligne

 

#9 2013-04-15 08:54:43 Re : Problème OSC

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: Problème OSC



et en passant par une traduction en codage type html, cela ne serait il pas possible ?

Hors ligne

 

#10 2013-04-15 09:58:22 Re : Problème OSC

gundorf
membre
Date d'inscription: 2012-04-12
Messages: 36

Re: Problème OSC



en passant par itoa / atoi ça devrait le faire je pense, non ?

Hors ligne

 

#11 2013-04-15 14:23:51 Re : Problème OSC

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

Re: Problème OSC



C'est à dire transformer ta chaine de caractère en tableau de byte puis réaliser la manoeuvre inverse à la réception :
http://processing.org/discourse/beta/nu … 77747.html

A bon entendeur salut.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024