Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed EthernetNetIf
Diff: main.cpp
- Revision:
- 0:733a3a171a22
- Child:
- 1:98d377ac0af5
diff -r 000000000000 -r 733a3a171a22 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue May 03 20:07:22 2011 +0000 @@ -0,0 +1,126 @@ +/* + \file main.cpp + \version: 1.0 + + \brief Este fichero contiene ejemplo para sincronizacion de fecha y hora + mediante TCPClient + + \web www.micros-designs.com.ar + \date 19/01/11 + +*- Version Log --------------------------------------------------------------* +* Fecha Autor Comentarios * +*----------------------------------------------------------------------------* +* 19/01/11 Suky Original * +*----------------------------------------------------------------------------* +*/ +#include "mbed.h" +#include "EthernetNetIf.h" +#include "TCPSocket.h" +// ********************************************************************** +#define SERVER_ADR IpAddr(192,168,1,110) // server address +#define SERVER_PORT 12345 // server address +// ********************************************************************** +DigitalIn button(p8); +// ********************************************************************** + +DigitalOut led4(LED4, "led4"); +int global_counter=0; + +//EthernetNetIf eth;//using DHCP +EthernetNetIf eth(//manual configuration + IpAddr(192,168,1,111), //IP Address + IpAddr(255,255,255,0), //Network Mask + IpAddr(192,168,1,1), //Gateway + IpAddr(192,168,1,1) //DNS +); + +TCPSocket tcp; +Host server(SERVER_ADR,SERVER_PORT,"PMK server"); +// ********************************************************************** +struct{ + int connected; + int writeable; + int readable; +}flags; +// ********************************************************************** +void onTCPSocketEvent(TCPSocketEvent e){ + //printf("New TCPSocketEvent: %d\r\n",e); + switch(e){ + case TCPSOCKET_CONNECTED: flags.connected = 1;break; + case TCPSOCKET_WRITEABLE: flags.writeable = 1;break; + case TCPSOCKET_READABLE: flags.readable = 1;break; + case TCPSOCKET_CONTIMEOUT: + case TCPSOCKET_CONRST: + case TCPSOCKET_CONABRT: + case TCPSOCKET_ERROR: + case TCPSOCKET_DISCONNECTED: + tcp.close(); + flags.connected = 0; + break; + } +} +// ********************************************************************** +int main(){ + button.mode(PullUp); + + printf("Setting up...\n"); + EthernetErr ethErr = eth.setup(); + if(ethErr){ + printf("Ethernet Error %d\n", ethErr); + return -1; + }else{ + printf("mbed is online...\n"); + } + + flags.connected=0; + flags.writeable=1; + flags.readable=0; + tcp.setOnEvent(&onTCPSocketEvent); + + printf("Conecting host...\n"); + TCPSocketErr err = tcp.connect(server); + if(err){ + printf("Error connecting\n"); + } + + Timer tmr; + tmr.start(); + + while(true){ + Net::poll(); + + if(!button){ + printf("Conecting host...\n"); + TCPSocketErr err = tcp.connect(server); + if(err){ + printf("Error connecting\n"); + } + } + + if(flags.readable==1){ + char Buffer[100]={0}; + flags.readable=0; + tcp.recv(Buffer,100); + printf("received from server: %s\r\n", Buffer); + printf("\r\n"); + }// end if + + if(tmr.read() > 2) // sec + { + led4=!led4; //Show that we are alive + tmr.reset(); + if(flags.writeable==1){ + flags.writeable=0; + global_counter++; + char Buffer[100]={0}; + sprintf(Buffer,"%d", global_counter); + tcp.send(Buffer,strlen(Buffer)); + printf("data sent to server:%d\r\n", global_counter); + + }; + } + + }// end while(true) +}// end main +// **********************************************************************