Eric-Ethernet-2019
Dependencies: mbed mbed-rtos C12832_lcd NTPClient EthernetInterface
main.cpp
- Committer:
- Aryane
- Date:
- 2019-02-07
- Revision:
- 2:f3b7851c0245
- Parent:
- 1:9095ffb76813
File content as of revision 2:f3b7851c0245:
#include "mbed.h" #include "EthernetInterface.h" #include "NTPClient.h" #include "C12832_lcd.h" C12832_LCD lcd; //Graphics LCD EthernetInterface eth; NTPClient ntp; Serial pc(USBTX,USBRX); TCPSocketServer server; TCPSocketConnection client; int serveur_port =2000; DigitalOut myled(LED1); char ip[]="192.168.1.10"; char masque[]="255.255.255.0"; char passerelle[]="192.168.1.254"; int main() { // ANCIEN PROG // int a; // moi //char * adresseIP;// moi, adresse IP est un pointeur sur une chaine de car, mais un car suffit // a=eth.init(); //Use DHCP, le a= c'est moi ! //pc.printf("eth init= %d\n",a); // moi //wait(2); //lcd.cls(); //lcd.printf("Getting IP Address\r\n"); /*if(eth.connect(60000)!=0) { lcd.printf("DHCP error - No IP"); wait(10); } else { adresseIP=eth.getIPAddress(); // moi, getIPAddress retourne un pointeur sur une chaine de car lcd.printf("IP is %s\n", adresseIP); // moi dans un pointeur sur un chaine de caractéres pc.printf("IP est %s\n",eth.getIPAddress()); // moi lcd.printf("MAC1 is %s\n", eth.getMACAddress()); pc.printf("MAC est %s\n",eth.getMACAddress()); // moi wait(2); } lcd.cls(); lcd.printf("Trying to update time...\r\n"); if (ntp.setTime("0.pool.ntp.org") == 0) { lcd.printf("Set time successfully\r\n"); while(1) { lcd.cls(); lcd.locate(0,0); time_t ctTime; ctTime = time(NULL); lcd.printf("%s\r\n", ctime(&ctTime)); lcd.printf("Current Time (UTC)"); wait(1); } } else { lcd.printf("NTP Error\r\n");//rien } eth.disconnect();*/ // FIN ANCIEN PROG bool client_connected = false; char buffer[100]; wait(2); lcd.cls(); lcd.printf("Getting IP Address\r\n"); pc.printf("Mon Port serie OK\n\r"); /*if(eth.init(ip,masque,passerelle)!=0) { pc.printf("Erreur init Ethernet\n\r"); return -1; }*/ eth.init(); if(eth.connect()!=0) { pc.printf("Erreur Connect\n\r"); return -1; } lcd.printf("IP est %s\n",eth.getIPAddress()); pc.printf("IP est %s\n",eth.getIPAddress()); // moi lcd.printf("MAC1 is %s\n", eth.getMACAddress()); pc.printf("MAC est %s\n",eth.getMACAddress()); // moi wait(2); if(server.bind(serveur_port)!=0) { pc.printf("Erreur TCP Bind\n\r"); return -1; } wait(2); lcd.cls(); lcd.printf("Succes TCP bind\n"); pc.printf("Succes TCP Bind\n"); // moi wait(2); lcd.cls(); if(server.listen()!=0) { pc.printf("Erreur TCP Listen \n"); return -1; } wait(2); lcd.cls(); lcd.printf("Succes TCP listen\n"); pc.printf("Succes TCP listen\n"); // moi wait(2); lcd.cls(); lcd.printf("Connectez un client TCP \n"); lcd.printf("sur le port 2000\n"); pc.printf("Connectez un client TCP sur le port 2000\n"); // moi client.set_blocking(false,100); // timeout 100 ms while(1) { if(client_connected==false) { if(server.accept(client)!=0) { pc.printf("Erreur TCP Listen accepte client \n"); return -1; } client_connected=true; lcd.printf("Client TCP connecte\n"); pc.printf("Client TCP connecte\n"); // moi pc.printf(" Adresse IP du client %s\r\n",client.get_address()); client.send("Hello\r\n",strlen("Hello\r\n")); } else { if(client.is_connected()) { if(pc.readable()) { buffer[0]=pc.getc(); client.send(buffer,1); } int nbcaractere=client.receive(buffer,sizeof(buffer)); if (nbcaractere>0) { buffer[nbcaractere-1]=0; pc.printf("%s",buffer); } } else { client_connected=false; client.close(); pc.printf("client deconnecte\r\n"); pc.printf("Connectez un client sur le port TCP 2000....\r\n"); } } } // fin du while 1 }