Red Light Work
Fork of realtimeMMLib by
Embed:
(wiki syntax)
Show/hide line numbers
Coms.cpp
00001 #include "Coms.h" 00002 #include "mbed.h" 00003 #include "rtos.h" 00004 #include "EthernetInterface.h" 00005 00006 EthernetInterface eth; 00007 TCPSocketConnection sock; 00008 00009 int Coms::EthernetInitialise (char* IPAddress, char* NetworkMask, char* DefaultGateway) 00010 { 00011 int error; 00012 int retrys = 5; 00013 int retval; 00014 00015 while (true) 00016 { 00017 00018 error = eth.init(IPAddress, NetworkMask, DefaultGateway); // Use static IP 00019 00020 if (error) { 00021 printf("Error: Could not initialise ethernet (code %i) - Retry (%d)...\r\n", error, retrys); 00022 Thread::wait(5000); 00023 retrys--; 00024 if (retrys) 00025 continue; 00026 else 00027 retval=error; 00028 break; 00029 } 00030 else { 00031 printf("Ethernet Initialised\r\n"); 00032 retval=0; 00033 } 00034 break; 00035 } 00036 return retval; 00037 } 00038 00039 char* Coms::getMACAddress() 00040 { 00041 return eth.getMACAddress(); 00042 } 00043 00044 int Coms::EthernetConnect() 00045 { 00046 int error; 00047 int retrys = 5; 00048 int retval; 00049 00050 while (true) 00051 { 00052 error = eth.connect(30000); 00053 if (error) { 00054 printf("Error: Could not obtain IP address (code %i) - Retry (%d)...\r\n", error, retrys); 00055 retrys--; 00056 if (retrys) 00057 continue; 00058 else 00059 retval=error; 00060 break; 00061 } 00062 else { 00063 printf("Ethernet connected\r\n"); 00064 retval=0; 00065 } 00066 break; 00067 } 00068 return retval; 00069 } 00070 00071 void Coms::EthernetDisconnect() 00072 { 00073 eth.disconnect(); 00074 } 00075 00076 int Coms::EthernetSocketConnect (char* IPAddress, int Port) 00077 { 00078 int error; 00079 int retrys = 5; 00080 int retval; 00081 00082 while (true) 00083 { 00084 00085 error = sock.connect(IPAddress, Port); 00086 00087 if (error) { 00088 printf("Error: Could not connect (code %i). Retry (%d) in 2s...\r\n", error, retrys); 00089 Thread::wait(2000); 00090 retrys--; 00091 if (retrys) 00092 continue; 00093 else 00094 retval=error; 00095 break; 00096 } 00097 else { 00098 retval=0; 00099 printf("Socket Connected\r\n"); 00100 } 00101 break; 00102 } 00103 return retval; 00104 } 00105 00106 int Coms::EthernetSocketSendAll (char* datasample, int samplesize) 00107 { 00108 int error; 00109 int retrys = 5; 00110 int retval; 00111 00112 while (true) 00113 { 00114 00115 //error = sock.send_all(datasample, sizeof(datasample)-1); 00116 error = sock.send_all(datasample, samplesize); 00117 00118 printf("Sending %s length %i\r\n",datasample,samplesize); 00119 00120 if (error<1) 00121 { 00122 printf("Error: Could not send http request (code %i) - Retry (%d) in 1s...\r\n", error, retrys); 00123 Thread::wait(1000); 00124 retrys--; 00125 if (retrys) 00126 continue; 00127 else 00128 retval=error; 00129 break; 00130 } 00131 printf("Message Sent\r\n"); 00132 retval=0; 00133 break; 00134 } 00135 return retval; 00136 } 00137 00138 00139 int Coms::EthernetSocketReceive (char* datasample, int samplesize) 00140 { 00141 int retval; 00142 retval = sock.receive(datasample, samplesize); 00143 return retval; 00144 } 00145 00146 int Coms::EthernetSocketClose() 00147 { 00148 sock.close(); 00149 }
Generated on Tue Jul 26 2022 06:36:17 by 1.7.2