Nenad Jovicic / Mbed 2 deprecated PMK_TCP_Client

Dependencies:   mbed EthernetNetIf

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
+// **********************************************************************