MATLAB Answers

How to generally use the stream input port in a real-time windows target model?

4 views (last 30 days)
Jan Kappen
Jan Kappen on 10 Jun 2013
Hey guys,
I'm wondering, how I can use the stream input port (via a generic serial interface) in a real-time windows target model. The block needs a sample time, but my source sends asynchronously. So I use the data ready port to trigger a subsystem. I use a sampletime much higher than the signals can occur. This 'solution' works.
But if I plot the values I received there are of course a lot more points, each point for one timestep, although I only need the value at the time I receive the serial packet. So there are a lot more datapoints than I need, and this needs some memory.
So is there a way to handle a asynchronously data transfer to plot (and save) the data only, when there is new data?
Thank you very much!


Sign in to comment.

Accepted Answer

Jan Houska
Jan Houska on 12 Jun 2013
The approach you have chosen to receive the data is correct. As far as I know, you cannot do any better than sampling frequently and using the Data Ready port to detect asynchronous data arrival.
The data plotting and archiving feature of External Mode is designed primarily for regularly sampled data. If you wish to log asynchronous events, your best choice is probably to log all the data as you do now and then post-process the logged data to keep only those values where Data Ready is 1. If you are running out of memory during the logging, you can use the Data Archiving feature to log the data to disk and post-process the files containing logged data.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by