1.0
Dependencies: EthernetInterface mbed-rtos
Diff: Telemetry.cpp
- Revision:
- 7:a269ac8c3259
- Parent:
- 6:abadad863420
- Child:
- 10:ad8346bafe5e
--- 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)