gefixte version 03122015

Dependencies:   EthernetInterface mbed-rtos

Fork of Telemetrie_eth_h2m by Hochschule München

Revision:
7:a269ac8c3259
Parent:
6:abadad863420
--- a/Telemetry.cpp	Sun Nov 22 21:31:55 2015 +0000
+++ b/Telemetry.cpp	Mon Nov 30 14:27:16 2015 +0000
@@ -38,8 +38,8 @@
 */
 EthernetInterface   eth;
 TCPSocketConnection sock_tcp;
-UDPSocket           sock_udp_send;  //send socket
-UDPSocket           sock_udp_rec;   //receive socket
+UDPSocket           sock_udp_client;  //send socket
+UDPSocket           sock_udp_server;   //receive socket
 
 
     
@@ -47,9 +47,11 @@
 /** Create a new Ethernet interface
   *
   */
-Telemetry::Telemetry()
-{
+Telemetry::Telemetry(PinName ora, PinName gre):orange(ora),green(gre)
+{ 
     InitSucceed = false;
+    green = 0;
+    orange = 0;
 }
 
 
@@ -99,6 +101,7 @@
             printf("IP Adresse: %s\r\n\r\n", eth.getIPAddress());
             #endif
             ReturnValue = true;
+            green = 1;
         }
         else
         {
@@ -139,6 +142,7 @@
     {   
         if (eth.connect(2500)==0) //CONNECT
         {
+            green = 1;
             #ifdef DEBUG
             serial.printf("Init success!");
             #endif
@@ -171,7 +175,7 @@
 
 
 //! Connect Port TCP 
-void Telemetry::ConnectSocket_tcp(Endpoint Host)
+void Telemetry::ConnectSocket_TCP(Endpoint Host)
 {
     sock_tcp.connect(Host.get_address(), Host.get_port());
     sock_tcp.set_blocking(false, 0);
@@ -182,30 +186,30 @@
 
 
 //! Connect Port UDP receive 
-void Telemetry::ConnectSocket_udp_rec(int Port)
+void Telemetry::ConnectSocket_UDP_Client()
 {
-    sock_udp_rec.bind(Port);
-    sock_udp_rec.set_blocking(false, 0);  
+    sock_udp_client.init();
+    sock_udp_client.set_blocking(false, 0);  
 
     #ifdef DEBUG
-    serial.printf("Open UDP_receive Socket on Port:%d.\r\n\r\n",Port);
+    serial.printf("Open UDP_Client Socket\r\n\r\n");
     #endif
 }
 
 
 //! Connect Port UDP send
-void Telemetry::ConnectSocket_udp_send()
+void Telemetry::ConnectSocket_UDP_Server(int Port)
 {
-    sock_udp_send.init();
- 
+    sock_udp_server.init();
+    sock_udp_server.bind(Port);
     #ifdef DEBUG
-    serial.printf("Open UDP_send Socket.\r\n\r\n");
+    serial.printf("Open UDP_Server on Port: %d.\r\n\r\n",Port);
     #endif
 }
 
 
 //! Close Port TCP
-void Telemetry::CloseSocket_tcp()
+void Telemetry::CloseSocket_TCP()
 {
     sock_tcp.close();
 
@@ -216,22 +220,22 @@
 
 
 //! Close Port UDP receive
-void Telemetry::CloseSocket_udp_rec()
+void Telemetry::CloseSocket_UDP_Client()
 {
- sock_udp_rec.close();   
+ sock_udp_client.close();   
   #ifdef DEBUG
-    serial.printf("UDP receive Socket closed.\r\n\r\n");
+    serial.printf("UDP Client Socket closed.\r\n\r\n");
   #endif
 }
 
 
 //! Close Port UDP send
-void Telemetry::CloseSocket_udp_send()
+void Telemetry::CloseSocket_UDP_Server()
 {
-    sock_udp_send.close();
+    sock_udp_server.close();
 
     #ifdef DEBUG
-    serial.printf("UDP send Socket closed.\r\n\r\n");
+    serial.printf("UDP Server Socket closed.\r\n\r\n");
     #endif
 }
 
@@ -252,17 +256,23 @@
 }
 
 
-//! Read UDP Packet
-int Telemetry::Rec_Data_UDP(char *buffer, int size)
+//! Read UDP Packet on Client Port
+int Telemetry::Rec_Data_UDP_Client(char *buffer, int size)
 {
-  return sock_udp_rec.receiveFrom(input_Host, buffer, size);    
+  return sock_udp_client.receiveFrom(input_Client, buffer, size);    
 }
 
+//! Read UDP Packet on Server Port
+int Telemetry::Rec_Data_UDP_Server(char *buffer, int size)
+{
+  return sock_udp_server.receiveFrom(input_Server, buffer, size);    
+}
 
+    
 //! Check UDP Packet of containing Struct
-bool Telemetry::Rec_Struct_UDP(uint8_t *buffer)
-{
-  sock_udp_rec.receiveFrom(input_Host,(char*) buffer, 255);    
+bool Telemetry::Rec_Struct(uint8_t *buffer)
+{    
+  orange = !orange;
   if (buffer[buffer[0]-1] == do_cs(buffer)) return true;
   else return false;
 }
@@ -271,28 +281,46 @@
 //! Read TCP Packet
 int Telemetry::Rec_Data_TCP(char *buffer,int size)
 { 
+        orange = !orange;
         return sock_tcp.receive(buffer, size);
 }
 
 
-//! Send UDP Packet
-void Telemetry::Send_Data_UDP(Endpoint Server, char* Daten, int size )
+//! Send UDP Packet as Client
+void Telemetry::Send_Data_UDP_Client(Endpoint Server, char* Daten, int size )
 {   
-    sock_udp_send.sendTo(Server, Daten, size);   
-
+    sock_udp_client.sendTo(Server, Daten, size);   
+    orange = !orange;
     #ifdef DEBUG
     serial.printf("UDP Paket gesendet.\r\n\r\n");
     #endif
 }
 
+//! Send UDP Packet as Server
+void Telemetry::Send_Data_UDP_Server(Endpoint Client, char* Daten, int size )
+{   
+    sock_udp_server.sendTo(Client, Daten, size);   
+    orange = !orange;
+    #ifdef DEBUG
+    serial.printf("UDP Paket gesendet.\r\n\r\n");
+    #endif
+}
 
-//! Send Struct as UDP Packet
-void Telemetry::Send_Struct_UDP(Endpoint Server, uint8_t* Daten)
+//! Send Struct as UDP Client
+void Telemetry::Send_Struct_UDP_Client(Endpoint Server, uint8_t* Daten)
 {   
     Daten[(*Daten - 1)] = do_cs(Daten);
-    sock_udp_send.sendTo(Server, (char*)Daten, *Daten);   
+    sock_udp_client.sendTo(Server, (char*)Daten, *Daten);   
+    orange = !orange;
 }
 
+//! Send Struct as UDP Server
+void Telemetry::Send_Struct_UDP_Server(Endpoint Client, uint8_t* Daten)
+{   
+    Daten[(*Daten - 1)] = do_cs(Daten);
+    sock_udp_server.sendTo(Client, (char*)Daten, *Daten);   
+    orange = !orange;
+}
 
 //! Send TCP Packet
 void Telemetry::Send_Data_TCP(char* Host, char* Buffer)