Page 1 of 1
EXEC_SEND_OSC not sending same message in a row
Posted: 11 Jan 2024 15:12
by Kyle FM
You cannot send the same OSC message twice in a row.
Steps to reproduce:
1. Execute EXEC_SEND_OSC /status|s:OK (The message is received by the OSC client)
2. Execute EXEC_SEND_OSC /status|s:OK (The message is not received by the OSC client)
3. Execute EXEC_SEND_OSC /status|s:FAIL (The message is received by the OSC client)
4. Execute EXEC_SEND_OSC /status|s:FAIL (The message is not received by the OSC client)
5. Execute EXEC_SEND_OSC /status|s:OK (The message is received by the OSC client)
Re: EXEC_SEND_OSC not sending same message in a row
Posted: 11 Jan 2024 18:36
by radio42
When the message is replied with OK, this means, that the OSC message is send to the network. Either TCP or UDP.
What are you using?
But when the OSC client doesn’t receive it, this indicates, that the error might either be in your network or in your client.
Why do you think, that the error is on the ProppFrexx side?
Have you traced eg. via Wireshark what happened with your packets?
From your messages, it even indicates, that the sending sometimes fails. Which indicates a network issue.
Are you using UDP?
Because I assume, that what you receive by the client doesn’t 1:1 match the message send. Otherwise it is impossible, that ProppFrexx indicates a Fail, but the client receives a message
So please ensure, that there is no error on the network and client. I just did some tests with TCP and all was received correctly here - even when sending the same message multiple times.
Also in code, there is no real logic, which can prevent that.
Re: EXEC_SEND_OSC not sending same message in a row
Posted: 11 Jan 2024 19:25
by Kyle FM
HI Bernd
Let me be more descriptive on what exactly I mean that is wrong. Let me give you a different example:
Steps to reproduce:
1. Execute EXEC_SEND_OSC /some/osc/address (The message is received by the OSC client)
2. Execute EXEC_SEND_OSC /some/osc/address (The message is not received by the OSC client)
3. Execute EXEC_SEND_OSC /anothersome/osc/address (The message is received by the OSC client)
4. Execute EXEC_SEND_OSC /anothersome/osc/address (The message is not received by the OSC client)
5. Execute EXEC_SEND_OSC /some/osc/address (The message is received by the OSC client)
All of the control commands result in an OK response from ProppFrexx, but some are send to the client and some are not. This is not a network issue as I am using a OSC tester on the same machine as ProppFrexx is running.
You can do the steps above multiple times, it will always leads to the exact same result/missing messages in multiple UDP/TCP OSC testers. You cannot send the exact same OSC message twice. ProppFrexx will only send a new OSC message to the client if it was different from the previous send message.
This is an issue for our custom software, as it queries ProppFrexx for a status every second to make sure it is still running. The first response will be received but sending replies with the same address and status will never be send out to the client.
Re: EXEC_SEND_OSC not sending same message in a row
Posted: 11 Jan 2024 22:33
by radio42
Ahh, now I got you.
I just double checked my code and indeed, in order to reduce any unnecessary workload, I am suppressing sending the exact same message successively.
I will lift this restriction in the next version and add a new option for such case!
Re: EXEC_SEND_OSC not sending same message in a row
Posted: 13 Jan 2024 21:01
by radio42
Fixed in v4.4.3.0!