eth.attach() doesn`t work with threads without wait time

Committer:
dimavb
Date:
Fri May 25 22:12:13 2018 +0000
Revision:
0:074e782ef127
init;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dimavb 0:074e782ef127 1
dimavb 0:074e782ef127 2 #include "EthernetInterface.h"
dimavb 0:074e782ef127 3 #include "mbed.h"
dimavb 0:074e782ef127 4 #include "nsapi_types.h"
dimavb 0:074e782ef127 5
dimavb 0:074e782ef127 6 // Network interface
dimavb 0:074e782ef127 7 EthernetInterface eth;
dimavb 0:074e782ef127 8
dimavb 0:074e782ef127 9 void status_callback(nsapi_event_t status, intptr_t param)
dimavb 0:074e782ef127 10 {
dimavb 0:074e782ef127 11 printf("Connection status changed!\r\n");
dimavb 0:074e782ef127 12 switch(param) {
dimavb 0:074e782ef127 13 case NSAPI_STATUS_LOCAL_UP:
dimavb 0:074e782ef127 14 printf("Local IP address set!\r\n");
dimavb 0:074e782ef127 15 break;
dimavb 0:074e782ef127 16 case NSAPI_STATUS_GLOBAL_UP:
dimavb 0:074e782ef127 17 printf("Global IP address set!\r\n");
dimavb 0:074e782ef127 18 break;
dimavb 0:074e782ef127 19 case NSAPI_STATUS_DISCONNECTED:
dimavb 0:074e782ef127 20 printf("No connection to network!\r\n");
dimavb 0:074e782ef127 21 break;
dimavb 0:074e782ef127 22 case NSAPI_STATUS_CONNECTING:
dimavb 0:074e782ef127 23 printf("Connecting to network!\r\n");
dimavb 0:074e782ef127 24 break;
dimavb 0:074e782ef127 25 default:
dimavb 0:074e782ef127 26 printf("Not supported");
dimavb 0:074e782ef127 27 break;
dimavb 0:074e782ef127 28 }
dimavb 0:074e782ef127 29 }
dimavb 0:074e782ef127 30 void onemorethread(void)
dimavb 0:074e782ef127 31 {
dimavb 0:074e782ef127 32 while (1)
dimavb 0:074e782ef127 33 {
dimavb 0:074e782ef127 34 // Thread::wait(10);
dimavb 0:074e782ef127 35 }
dimavb 0:074e782ef127 36 }
dimavb 0:074e782ef127 37
dimavb 0:074e782ef127 38 int main()
dimavb 0:074e782ef127 39 {
dimavb 0:074e782ef127 40 printf("Connecting...\n");
dimavb 0:074e782ef127 41 eth.attach(&status_callback);
dimavb 0:074e782ef127 42 eth.set_network("192.168.1.200","255.255.255.0","192.168.1.1");
dimavb 0:074e782ef127 43 eth.connect();
dimavb 0:074e782ef127 44 Thread onemore;
dimavb 0:074e782ef127 45 onemore.start(onemorethread);
dimavb 0:074e782ef127 46 while(1)
dimavb 0:074e782ef127 47 {
dimavb 0:074e782ef127 48 Thread::wait(10);
dimavb 0:074e782ef127 49 }
dimavb 0:074e782ef127 50 }