Non-blocking pymavlink trouble : recv_match(blocking=False, timeout=1)

msg = master.recv_match(blocking=False, timeout=1)
#WONT GET HERE without a mavlink package

I tried the “blocking=False” and timeout options with no success.
How can I make the script continue every x seconds even when no message is received?

i tried this as well and i couldnt get it not to block blocking=False
it just sat in a continous reader

i did successfully use the filter to remove unwanted things such as
type=[‘COMMAND_LONG,RC_CHANNELS’]

but i suppose there is nothing stopping me timing the blocked task using asyncio and then using asyncio.cancel to stop the blocking nature on that thread then do my else work if its not possible ?

@mark-nick-o Welcome to the community, yes - we could jump thru hoops, but I have made an issue about this in the meantime… I hope it will be fixed.

Issue: recv_match(blocking=False, timeout=1) - blocks anyway · Issue #610 · ArduPilot/pymavlink · GitHub

cool thanks look forward to more info on it, for now it definately works for me using this

read_task_1 = asyncio.create_task(readMavlinkIncomingData(frame, cID))

its just set to blocking=True

then using
read_task_1.cancel() when i lost my input and it blocks