-
Hello Everyone, We recently had an issue with OT where the devices were taking too long to respond to parent requests (Child ID Timeout) (https://github.com/orgs/openthread/discussions/9667#discussioncomment-8162650). As the device is a safety device, we need to sample and process data constantly. As such OT becomes a 2nd class citizen, so to speak. Is there a way to register a function that is called before/after OT performs certain time sensitive tasks? As in our case it would allow the callback to pause DSP for a short while. For example, [...]
openthread_register_event_callback(handle_openthread_event)
[...]
void handle_openthread_event(enum openthread_events event)
{
switch(event)
{
case PARENT_REQUEST:
// Pause intensive dsp
break;
case PARENT_REQUEST_FINISHED:
// Start intensive dsp
break;
[...]
}
} Thanks, Sam P.S I thought it'd be best to open a new discussion on this. As it's not directly related to our last discussion. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
As a network protocol, Thread specifies expected response times and timeouts to handle packet transmission failures. As a result, any Thread protocol interaction will have some required time bound. If you haven't already, I would consider looking into some mechanism that allows OpenThread to execute concurrently with other tasks, either an RTOS that supports multi-threading or a separate MCU / core that with separate execution contexts. |
Beta Was this translation helpful? Give feedback.
As a network protocol, Thread specifies expected response times and timeouts to handle packet transmission failures. As a result, any Thread protocol interaction will have some required time bound.
If you haven't already, I would consider looking into some mechanism that allows OpenThread to execute concurrently with other tasks, either an RTOS that supports multi-threading or a separate MCU / core that with separate execution contexts.