MATLAB Answers

sfunction builder function through command line

25 views (last 30 days)
Pika
Pika on 2 May 2012
Answered: Sanket on 15 Apr 2019
Is there a way to build from the sfunction builder via command line instead of opening the dialog box and pressing "build"?

  0 Comments

Sign in to comment.

Answers (4)

Kaustubha Govind
Kaustubha Govind on 2 May 2012
See this solution for the command-line API.
Try this code since there seems to be an error in the code from the solution:
blkNames = find_system(bdroot,'lookundermasks','all','BlockType','S-Function');
for blkIdx = 1:numel(blkNames)
blkHandle = get_param(blkNames{blkIdx}, 'Handle');
appdata = sfunctionwizard(blkHandle,'GetApplicationData');
appdata = sfunctionwizard(blkHandle,'Build',appdata);
end
Also, make sure that the model is open when the code is run.

  4 Comments

Show 1 older comment
Kaustubha Govind
Kaustubha Govind on 3 May 2012
Strange, I have R2011b, and I do see the function. Do you have $matlabroot\toolbox\simulink\simulink\sfunctionwizard.p?
Pika
Pika on 6 May 2012
yes i do. the error i get is out of the second command line listed. It says Attempt to reference field of non-structure array.
I know how to create a structure array with dot notation but why was blkHandle not automatically created as a structure array when first command line is used? mine apppears to be as a cell array
Kaustubha Govind
Kaustubha Govind on 7 May 2012
Not sure why the solution assumes that find_system returns a structure. It does indeed return a cell-array of block names as you have observed. Try the code I edited and posted in my answer.

Sign in to comment.


arun kumar
arun kumar on 20 Mar 2015
can i also write this appdata back to the s-function block. or is there any other way i can modify the s-function inports and outports from the command line? ofcourse i can modify the appdata structure but then how do i feed this information back to the s-function?

  1 Comment

giga
giga on 1 May 2016
Hi did anyone have an answer for this question? Thanks!

Sign in to comment.


kiyoko
kiyoko on 24 Jul 2018
sfunctionwizard is undocumented and not officially supported. If you are looking for command-line s-function authoring functionality, then the legacy code tool is designed for this.

  0 Comments

Sign in to comment.


Sanket
Sanket on 15 Apr 2019
appdata = sfunctionwizard(blkHandle,'GetApplicationData') is not working for 2017b, any alternate solution?
>> appdata = sfunctionwizard(gcb,'GetApplicationData')
No method 'setBlockHandle' with matching signature found for class
'com.mathworks.toolbox.simulink.sfunbuilder.SFunctionBuilder'.
Error in sfunctionwizard

  0 Comments

Sign in to comment.

Sign in to answer this question.

Tags

Products


Translated by