How to receive serial strings in Simulink

27 views (last 30 days)
Rick Policy
Rick Policy on 15 Oct 2022
Edited: Pratyush Swain on 10 Sep 2023
I am trying to read a stream of strings from serial input (COM Port) and then display the strings. The issue I am having is that the strings are of variable length and Simulink only seems to be able to read a string if I specify its length in the data size field. What I'd really like is a method to specify the max length and use the CR/LF as the termination mechanism. I tried every combination of the serial read block and cannot get it to work.
The model is similar to this:
In the above example, if I set the Data size to [1 1], then I only get the last character received.
I read thru the documentation multiple times for serial receive and was not able to understand what the Data size really means. Also, Row major and Column major are not defined very well. Two of built in examples are Matlab only. The simulink example is not found (2022a + I have the Instrument Toolbox installed).
Any help would be appreciated...

Answers (1)

Pratyush Swain
Pratyush Swain on 10 Sep 2023
Edited: Pratyush Swain on 10 Sep 2023
Hi Rick,
I understand that you want to receive strings of variable length through serial receive block, but block parameters are not dynamic and cannot change as per the input values.
Also here is some information regarding ‘Data Size’ and ‘Input Format’ (Row Major / Col major) parameters.
1- The data size parameter is specified by multidimensional numeric array in the format [a b] which implies an array with dimensions a x b. For example - data size parameter [1 18] implies a character row vector of size 18.
2- The input format is specified by values - ('Row major' or 'Column major'). 'Column major' means the elements in a column are read consecutively while 'Row major' implies elements are in row are read consecutively.
Hope the above information helps.

Categories

Find more on Event Functions in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!