From 9c1df6306434a60e1db57d615cc5e3290fcce6b5 Mon Sep 17 00:00:00 2001
From: Federico Felici <federico.felici@epfl.ch>
Date: Mon, 2 Dec 2019 11:12:49 +0100
Subject: [PATCH] Working version for Detachment Control

---
 code/classes/SCDclass_expcode.m | 43 ++++++++++++++++++++-------------
 1 file changed, 26 insertions(+), 17 deletions(-)

diff --git a/code/classes/SCDclass_expcode.m b/code/classes/SCDclass_expcode.m
index 454fbe2..a80bba9 100644
--- a/code/classes/SCDclass_expcode.m
+++ b/code/classes/SCDclass_expcode.m
@@ -175,7 +175,26 @@ classdef SCDclass_expcode
              rtwbuild(mynodeslx{1});
         end
       end
-           
+       
+      function set_cache_folder(obj)
+        %% Set Cache Folder for experimental code (avoid conflicts with other tmp files)
+        CacheFolder = fullfile(fileparts(mfilename('fullpath')),'..','..',...
+          'gencodes',sprintf('CacheFolder-%d',obj.maincode));
+        fprintf('Setting Simulink Cache folder to %s\n',CacheFolder)
+        Simulink.fileGenControl('set',...
+          'CacheFolder',CacheFolder,...
+          'createdir',true);
+      end
+      
+      function set_codegen_folder(obj)
+        CodeGenFolder = fullfile(fileparts(mfilename('fullpath')),'..','..',...
+          'gencodes',sprintf('CodeGenFolder-%d',obj.maincode));
+        
+        fprintf(' ...Setting code generation folder to %s\n',CodeGenFolder)
+        Simulink.fileGenControl('set',...
+          'CodeGenFolder',CodeGenFolder,...
+          'createdir',true);
+      end
     end
     
     methods
@@ -421,14 +440,10 @@ classdef SCDclass_expcode
            obj.buildworkspacesimstruct;
            obj.buildworkspacetpstruct;
            
-           %% Set Cache Folder for experimental code (avoid conflicts with other tmp files)
-           CacheFolder = fullfile(fileparts(mfilename('fullpath')),'..','..',...
-             'gencodes',sprintf('CacheFolder-%d',obj.maincode));
-           fprintf('Setting Simulink Cache folder to %s\n',CacheFolder)
-           Simulink.fileGenControl('set',...
-             'CacheFolder',CacheFolder,...
-             'createdir',true);
-           
+           % Set cache and codegen folders
+           SCDclass_expcode.setcachefolder(expcode);
+           SCDclass_expcode.setcodegenfolder(expcode);
+
         end
         
         function actualize(obj, shot, varargin)
@@ -591,14 +606,8 @@ classdef SCDclass_expcode
              return
            end
          
-            % set CodeGen folder for this expcode (allows fast rebuilding)
-           CodeGenFolder = fullfile(fileparts(mfilename('fullpath')),'..','..',...
-             'gencodes',sprintf('CodeGenFolder-%d',obj.maincode));
-  
-           fprintf(' ...Setting code generation folder to %s\n',CodeGenFolder)
-           Simulink.fileGenControl('set',...
-              'CodeGenFolder',CodeGenFolder,...
-              'createdir',true);
+           % set CodeGen folder for this expcode (allows fast rebuilding)
+           SCDclass_expcode.set_cogegen_colder(obj.maincode)
            
            % check env variable
            assert(~isempty(getenv('RTCCODE_LIBPATH')),'RTCCODE_LIBPATH environment variable needs to be defined to compile');
-- 
GitLab