How can I make DSP.UDPReceive block output only 1 instance of received packet instead of holding the value at its output until next packet arrives?

2 views (last 30 days)
I am trying to set up simple UDP send and receive program with diffrent rates of transmission. In the same Simulink window, I am invoking UDPSEND once every 10 time-step (fixed discrete) but running UDPRECEIVE continuously (every time step). What UDPRECEIVE does is it holds the value for the subsequent 9 steps until it receives a new packet on the 11th (or n*11th) time-step. Can I make the RECEIVE block output a received packet only once?

Answers (1)

Mark Schwab
Mark Schwab on 26 Jan 2018
If you have access to the Instrument Control Toolbox, you may want to consider using the UDP Send block from this toolbox as there is a blocking mode that seems to fit your workflow directly. Refer to the following documentation for more information:
If you are using the prerelease for R2018a, there is a new feature called "access latest data" which, as implied by the name, also seems to fit your workflow.
  1 Comment
Surojit Sen
Surojit Sen on 29 Jan 2018
Hi Mark, thanks for your answer. I intend to use the Simulink model to run real-time in a dedicated RTT, hence need Code-Generation. ICT does not support code-generation (or does it?). 'Access Latest Data' feature, is it avaiable in the DSP blockset? Thanks!

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!