简体   繁体   中英

How can I write a simple application using Openthread library

Even to develop a simple application, the existing examples in Openthread are complex to refer. Can anybody provide a list of steps to use Openthread "mdt/fdt library" and develop a simple application, from where a CoAP message can be sent or received ? Following is what I have written, but it is not running properly and crashing at times. I have linked "fdt, posix, mbedtls, libcrypto" etc libraries and able to build the application successfully.

    instance = otInstanceInitSingle();
    otError err = otIp6SetEnabled(instance, true);
    if(err == OT_ERROR_NONE)
    {
        err = otCoapStart(instance, OT_DEFAULT_COAP_PORT);
        pthread_t thread_id;
        pthread_create(&thread_id, NULL, OTProcessThread, NULL); // To call otTaskletsProcess(instance);
        return OK;
    }
    else{
        std::cout << "Init Status: " << err << "\n";
    }

The thread looks like the following. I this is a sample code, so I have not given any sleep/signal in the thread at present.

void *OTProcessThread(void *vargp)
{
    printf("\nOTProcessThread started..");
    while (true)
    {
        otTaskletsProcess(instance);
        //otSysProcessDrivers(instance);
    }
}

With this initialization process, I am trying to send a message as follows. But after that the application is crashing somewhere inside the Openthread code.

     message = otCoapNewMessage(instance, NULL);
     otCoapMessageInit(message, coapType, coapCode);
     otCoapMessageGenerateToken(message, 8);
     otCoapMessageAppendUriPathOptions(message, uri.c_str());
     //otMessageAppend(message, NULL, 0);

     otError status = otCoapSendRequest(instance, message, &messageInfo, &HandleResponse, this);

Can somebody please let me know, what exactly I am missing ?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM