Update library repository for simulink custom library
9 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I have a custom simulink created with R2012b. When opening it in R2014b for the first time, I get a message that repository information is missing for the library. Is there a way to auto-generate that information? Note that simply saving the library in R2014b is no option, as I cannot load it in R2012b after that any longer.
So far, I tried the following:
1. Set the parameter 'EnableLBRepository' in R2012b. That did not work, reading the parameter in R2014b returned 'off' while in R2012b, it returned 'on'.
2. I added the following code to slblocks.m:
if (~verLessThan('matlab', '8.4')) % R2014b
% Add repository information if not yet done
try
load_system('canoelib');
if (strcmp(get_param('canoelib', 'EnableLBRepository'), 'off'))
set_param('canoelib', 'Lock', 'off');
set_param('canoelib', 'EnableLBRepository', 'on');
set_param('canoelib', 'Lock', 'on');
save_system('canoelib');
end;
close_system('canoelib');
catch ex
end
end;
That worked, but it will fail if MATLAB is installed in C:\Program Files and the user starts it without Admin rights (canoelib.slx will be write-protected in that case).
What I'm looking for is a solution similar to 2., but without saving the configuration. Is there a way to update the repository information for a library in memory by script?
Many thanks in advance, Martin
1 件のコメント
Todd
2014 年 11 月 19 日
One possible problem with the slblocks code you have is that it saves the file in R2014b, which is what you wanted to avoid in the first place.
I also have this problem, and have not found a solution (other than maintaining two parallel libraries, which is not always possible.)
採用された回答
Subhadra Mahanti
2016 年 1 月 21 日
編集済み: Subhadra Mahanti
2016 年 1 月 21 日
The following flag ' Choice' needs to be added to your SLBLOCKS file. The flag indicates that the SLBLOCKS author wants to repeat the requested action for the library (and all sub-libraries) and not show a notification bar to ‘Fix missing RPS’ even if the repository info is missing for either the parent library or any of its child libraries.
%%Example: In your SLBLOCKS file, add the following line:
% if you don't want to save your library as SLX but want to instead generate the required info in memory without any further prompts.
Browser(1).Choice=1 ;
NOTE: The available values of choice are:
Choice=0: Resave the library as SLX
Choice=1: Generate the required repository info in memory
Choice=2: Skip. If the user chooses 2, their library won’t show up in the Library Browser at all since repository info is missing
2 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Simulink Environment Customization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!