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

main.cpp

Committer:
dimavb
Date:
2018-05-25
Revision:
0:074e782ef127

File content as of revision 0:074e782ef127:


#include "EthernetInterface.h"
#include "mbed.h"
#include "nsapi_types.h"

// Network interface
EthernetInterface eth;

void status_callback(nsapi_event_t status, intptr_t param)
{
    printf("Connection status changed!\r\n");
    switch(param) {
        case NSAPI_STATUS_LOCAL_UP:
            printf("Local IP address set!\r\n");
            break;
        case NSAPI_STATUS_GLOBAL_UP:
            printf("Global IP address set!\r\n");
            break;
        case NSAPI_STATUS_DISCONNECTED:
            printf("No connection to network!\r\n");
            break;
        case NSAPI_STATUS_CONNECTING:
            printf("Connecting to network!\r\n");
            break;
        default:
            printf("Not supported");
            break;
    }
}
void onemorethread(void)
{
    while (1)
    {
     //   Thread::wait(10);   
    }    
}

int main()
{
    printf("Connecting...\n");
    eth.attach(&status_callback);
    eth.set_network("192.168.1.200","255.255.255.0","192.168.1.1");
    eth.connect();
    Thread onemore;
    onemore.start(onemorethread);
    while(1)
    {
        Thread::wait(10);
    }
 }