Pages: [1]   Go Down
Author Topic: communication série.. erreur syntaxe ?  (Read 586 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut à tous !

je viens de recevoir ma board arduino, je suis aux anges  smiley

j'ai juste un petit soucis lorsque je récupère des données reçues par le port série et que je veux effectuer un test dessus. J'ai pris l'exemple fourni serialCom_string et je souhaite vérifier ce que le device me répond.

voici la boucle principale du code:

Code:
void loop () {
  //simple feedback from Arduino
  Serial.println("at");
  
  //read the serial port and create a string out of what you read
  readSerialString(serInString);
  
  delay(1000);
  
  if( isStringEmpty(serInString) == false) {
    if (serInString == "SYNTAX ERROR"){

      Serial.println("Arduino recorded that you said: ");
      printSerialString(serInString);
      Serial.println();
    }
  }
  
  Serial.println();  
  //slows down the visualization in the terminal
  delay(2000);
}

le device me répond bien SYNTAX ERROR mais la condition reste fausse (lorsque j'enlève la condition, il me marque bien Arduino recorded that you said: SYNTAX ERROR).. la syntaxe doit poser problème.. vous avez une idée ?

merci d'avance !
xavier
Logged

FR
Offline Offline
Full Member
***
Karma: 0
Posts: 105
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

je pense que tu compares des pointeurs la, pas les valeurs

essaye ca :

#include <string.h>

if(strcmp(serInString,"SYNTAX ERROR")==0)

plus d'info sur http://www.commentcamarche.net/cpp/cppstring.php3

nicolas
« Last Edit: May 15, 2007, 10:23:52 am by nrolland » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello nrolland, merci pour ta réponse !
malheureusement cela ne fonctionne pas non plus. Mais je me suis débrouillé en comparant directement le code ascii des charactères enregistrés dans le tableau. ex: je vérifie que le device me répond OK en écrivant if(serInString[0] == 79 && serInString[1] == 75)

Le but de mon petit programme est de se connecter à mon téléphone mobile en bluetooth et d'allumer une led lorsque mon telephone reçoit un appel. (Pour info, lorsque l'on est connecté en DUN sur le téléphone et qu'il sonne, il envoie toute les secondes a peu près le message "RING")

Mon problème est que j'arrive à lire et comparer les réponses du téléphone lorsque je lui envoie une commande, mais je n'arrive pas à lire le message "RING" qui est envoyé spontanément...

voici le code en entier, si par hasard quelqu'un a eu le même problème et a trouvé le moyen de le contourner

Code:
char serInString[10];
bool connected = false;
bool phoneConnected = false;

void readSerialString (char *strArray) {
    int i = 0;
    if(Serial.available()) {    
       while (serialAvailable()){            
          strArray[i] = Serial.read();
          i++;
       }
    }      
}

void setup() {
  Serial.begin(9600);
  Serial.println();
  Serial.println("AT");
}

void loop () {
  readSerialString(serInString);
  
  if (!connected && serInString[0] == 79 && serInString[1] == 75){  //answer = OK ?
    connected = true;
  }
  
  if (connected && !phoneConnected){
    Serial.println("CALL 00:19:63:1e:0a:01 1103 RFCOMM");
    phoneConnected = true;
  }
  
  if (connected && phoneConnected){
    readSerialString(serInString);
    if (serInString[0] == 82) digitalWrite(13,HIGH); //check if phone is ringing ?
  }
  
  delay(2000);
}

Logged

Brussels
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Meme quand c'est dur c'est bon
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mes pauvres compétences m'empèchent de répondre au problème de programmation.
Mais ne serait-il pas possible de tout bêtement mettre une photo-resistance sur un port analo du l'arduino comme ceci ?

Le téléphone s'allumant au moment où il sonne, par contre il ya une latence avant qu'il ne s'éteigne.
J'imagine que c'est pas du tout la réponse que tu attends. Mais au cas où, ca peut servir de bonne dépanne pour détecter si un téléphone sonne.
Logged

Pages: [1]   Go Up
Jump to: