sfunction builder function through command line

20 vues (au cours des 30 derniers jours)
Pika
Pika le 2 Mai 2012
Réponse apportée : Sanket le 15 Avr 2019
Is there a way to build from the sfunction builder via command line instead of opening the dialog box and pressing "build"?

Réponses (4)

Kaustubha Govind
Kaustubha Govind le 2 Mai 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 commentaires
Pika
Pika le 6 Mai 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 le 7 Mai 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.

Connectez-vous pour commenter.


arun kumar
arun kumar le 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 commentaire
giga
giga le 1 Mai 2016
Hi did anyone have an answer for this question? Thanks!

Connectez-vous pour commenter.


kiyoko
kiyoko le 24 Juil 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.

Sanket
Sanket le 15 Avr 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

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by