A Bit funky still
Dependencies: EthernetInterface mbed-rtos mbed
Revision 1:9a65c6d76db0, committed 2016-04-20
- Comitter:
- ipv1
- Date:
- Wed Apr 20 09:47:18 2016 +0000
- Parent:
- 0:337d7fbe5920
- Commit message:
- take two
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| mbed-rtos.lib | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Apr 20 08:57:07 2016 +0000
+++ b/main.cpp Wed Apr 20 09:47:18 2016 +0000
@@ -3,31 +3,22 @@
#define ECHO_SERVER_PORT 7
+DigitalOut heartbeatLed(LED_GREEN);
+DigitalOut myled(LED_RED);
-int main (void)
-{
- DigitalOut myled(LED1);
- printf("Wait a second...\r\n");
- //uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
- static const char* mbedIp = "192.168.64.232"; //IP
- static const char* mbedMask = "255.255.255.0"; // Mask
- static const char* mbedGateway = "192.168.64.1"; //Gateway
-
- EthernetInterface eth;
- eth.init(mbedIp, mbedMask, mbedGateway); //Use DHCP
- eth.connect();
- //printf("Server IP Address is %s\r\n", eth.getIPAddress());
+void server_thread(void const* arg) {
TCPSocketServer server;
+
+ server.set_blocking (true);
server.bind(ECHO_SERVER_PORT);
- server.listen();
-
+ server.listen(1);
while (true)
{
//printf("Wait for new connection...\r\n");
TCPSocketConnection client;
server.accept(client);
- client.set_blocking(false, 15000); // Timeout after (1.5)s
+ client.set_blocking(false, true); // Timeout after (1.5)s
//printf("Connection from: %s\r\n", client.get_address());
char buffer[256];
@@ -40,28 +31,39 @@
}else{
myled=0;
}
- // print received message to terminal
- //buffer[n] = '\0';
- //printf("Received message from Client :'%s'\r\n",buffer);
-
- // reverse the message
- //char temp;
-// for(int f = 0, l = n-1; f<l; f++,l--){
-// temp = buffer[f];
-// buffer[f] = buffer[l];
-// buffer[l] = temp;
-// }
+
sprintf(buffer, "Hi Alisha.How are u?");
- // print reversed message to terminal
- //printf("Sending message to Client: '%s'\r\n",buffer);
-
- // Echo received message back to client
client.send_all(buffer, n);
if (n <= 0) break;
- }
-
+ }
client.close();
}
+}
+
+
+int main (void)
+{
+
+ //printf("Wait a second...\r\n");
+ //uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
+ static const char* mbedIp = "192.168.64.232"; //IP
+ static const char* mbedMask = "255.255.255.0"; // Mask
+ static const char* mbedGateway = "192.168.64.1"; //Gateway
+
+ EthernetInterface eth;
+ eth.init(mbedIp, mbedMask, mbedGateway); //Use DHCP
+ eth.connect();
+ //printf("Server IP Address is %s\r\n", eth.getIPAddress());
+
+ Thread server(&server_thread);
+
+ while(true){
+ Thread::wait(1000);
+ // Heartbeat.
+ // The board systematically crashes after a low number of sends from a client,
+ // e.g. ~10 times 1000 bytes, ~2-3 times 10000 bytes, etc.
+ heartbeatLed = !heartbeatLed;
+ }
}
--- a/mbed-rtos.lib Wed Apr 20 08:57:07 2016 +0000 +++ b/mbed-rtos.lib Wed Apr 20 09:47:18 2016 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed-rtos/#aaa1b2c7c64c +http://mbed.org/users/mbed_official/code/mbed-rtos/#bdd541595fc5