Using set_param to change parameter DataTypes in Packet Input block does not work.

2 views (last 30 days)
I am using the block Packet Input to receive CAN messages.
I have several of these blocks and I can change the parameter Sampletime by using this command:
set_param('.../.../Packet Input','SampleTime', '0.01')
However, when I want to change the parameter DataTypes it does not work:
set_param('.../.../Packet Input','DataTypes', 'double')
I get this error:
"Non-string expression where a string was expected."
Even though both parameters have the same properties:
>> ans.SampleTime
ans =
Type: 'string'
Enum: {}
Attributes: {'read-write' 'read-only-if-compiled' 'link-instance'}
>> ans.DataTypes
ans =
Type: 'string'
Enum: {}
Attributes: {'read-write' 'read-only-if-compiled' 'link-instance'}
How do I set the DataTypes parameter in the Packet Input block via set_param()?

Accepted Answer

Sandip Kumar
Sandip Kumar on 8 Oct 2014
In order to specify the DataTypes, try using ''double'' instead of 'double'.
Thanks, Sandip, MathWorks
Markus Nordstrand
Markus Nordstrand on 9 Oct 2014
Aha I see now. It was almost right, in order for Matlab to interpret a single quote as a sign I have to write '' according to this, which means that if I want to send the string 'double' to the packet input parameter setting, I have to use '''double''', aka tripple single quotes.
This works! Thank you very much for the input!

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!