Update library repository for simulink custom library
14 views (last 30 days)
Show older comments
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 Comment
Todd
on 19 Nov 2014
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.)
Accepted Answer
Subhadra Mahanti
on 21 Jan 2016
Edited: Subhadra Mahanti
on 21 Jan 2016
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 Comments
More Answers (0)
See Also
Categories
Find more on Simulink Environment Customization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!