MULTI PLEXEUR NMEA - corretion de code deja redigé, je suis debutant

Hello,

Je suis en train d'essayer d'utiliser un vieux program arduino nmea multiplexeur, ecrit pour un ethernet shield ( pas le dernier)

J'arrive pour le moment à lire une sentence, à pinguer la carte reseau avec un ordi,

mais quand j'ouvre un navigateur et je tape l'adresse ip rien ne se passe,

je pense que cela vient du code qui a dut changer depuis en terme de redaction, si quelqu'un voit une erreur je suis preneur !!!!

//  AIS + GPS + autres entrées + Ethernet
// utilisation librairie  NMEA_ACQ

#include <nmea_acq.h>//librairie nmea_acq
#define nmea_gps Serial3
#define nmea_ais Serial2
#define nmea_1 Serial1 // autre entree
//Serial  ne peut être utilisé si le PC est connecté
#include <SPI.h>
#include <Ethernet2.h>

 // (ethernet hardware) addresses  de la carte (mac et IP):
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 56, 177 };   
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(80);

ACQ rec_ais(ALL);// librairie pour AIS
ACQ rec_gps(ALL);
ACQ rec_nmea1(ALL);

;
void setup()
{
// initialialise la carte ethernet
Ethernet.begin(mac, ip, subnet); // start ethernet using the mac and IP address
server.begin();
// Setup serial connexion vers PC.
Serial.begin(9600);
Serial.println("NMEA Multiplexer... GPS + AIS + Autres");

   // Setup serial connexion NMEA
nmea_gps.begin(4800);
nmea_ais.begin(38400);
nmea_1.begin(4800); // autre entree
delay(1000); // donne a la carte  ethernet une  seconde pour s' initialiser

}

void loop()
{
char car = 0; //variable contenant le caractère à lire GPS

   // il y a un caractere à lire ?
if (nmea_gps.available())
{car = nmea_gps.read(); // lect caractere
// utilisation de la librairie NMEA_ACQ pour lire la sentence GPS
if (rec_gps.lecture(car)==1)// valeur de retour TRUE:1
{// recuperation de la phrase nmea
Serial.print(rec_gps.phrase());

      }

}
if (nmea_ais.available())//
{car = nmea_ais.read(); // lect caractere
// utilisation de la librairie NMEA_ACQ pour lire la sentence AIS
if (rec_ais.lecture(car)==1)// valeur retour TRUE:1
{// recuperation de la phrase

Serial.print(rec_ais.phrase());

}
}
if (nmea_1.available())//
{car = nmea_1.read(); // lect caractere
// utilisation de la librairie NMEA_ACQ pour lire la sentence
if (rec_nmea1.lecture(car))
{// recuperation de la phrase

Serial.print(rec_nmea1.phrase());
}
}
EthernetClient client = server.available();
if (client) {
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if we've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so we can send a reply
if (c == 'n' && current_line_is_blank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
// phrases NMEA à envoyer
client.println(rec_ais.phrase());
client.println(rec_gps.phrase());
break;
}
if (c == ' ') {
// we're starting a new line
current_line_is_blank = true;
} else if (c != ' ') {
// we've gotten a character on the current line
current_line_is_blank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
client.stop();
}
}

voici le lien du multiplexeur

http://voilier-idem.com/affich_contents.php?Ind=58

je ne sais pas si je suis assez clair, n'hesitez pas a me demander si vous avez besoin de plus d'info :wink:

Johan

Êtes vous sûr de bien avoir recopié le code?

if (c == '[color=Red]n[/color]' && current_line_is_blank) {

Remplacez n par \n

Généralement vous allez recevoir aussi un**\r** à la fin dune ligne qu'il faudrait traiter...

bonjour,

Merci je regarde cela,

johan

merci en effet c'était ça, çà marche,

a bientôt

johan

Super