Hello, I am currently trying to use messages as part of my signal chain and facing some obstacles.
For example, I use "Message Strobe" to create a message every 10ms. A custom blocks creates a pulse when the message is received (it does so by putting the message into a std::queue in the message handler and retrieving it in the work function). When I trigger on one pulse and zoom out, I ideally would see one pulse exactly every 100ms. However, the pulses jump around (i.e., the period always changes). Similarly, I create 2 of these custom blocks and sum their output signals. "Message Strobe" sends the same message to both blocks. Ideally the pulses would align perfectly and I would see one pulse. However, I see two pulses having a random delay (probably because the message arrives at different times at the blocks). 1.) What is the typical latency of messages? 2.) Related, what is typically the maximum speed for sending messages? Is sending messages at >1kHz (i.e., "Message Strobe" with interval <1ms) meaningful? 3.) Are there any "guarantees" on maximum/minimum delay? (for example, I read that the message handler is guaranteed to be executed when work() is not. Is an upper bound of delay (in samples) given by the worst case execution of the work function, i.e. the size of the output buffer?) 4.) Can I be sure that all messages are received or does gnuradio silently drop messages under certain conditions? 5.) Are messages always received in correct order? Thanks, Lukas