fe0ecc07d01642112b9312d41813d0938a8ef603
[scilab.git] / scilab / modules / xcos / macros / xcosBlockEval.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2009-2009 - DIGITEO - Antoine ELIAS <antoine.elias@scilab.org>
3 // Copyright (C) 2010-2010 - DIGITEO - ClĂ©ment DAVID <clement.david@scilab.org>
4 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10 //
11 //
12
13 // Evaluate a block with the context input.
14 //
15 // @param interfaceAlias block interface function ( ex IN_f )
16 // @param blk the block
17 // @param context the context string
18 function blk = xcosBlockEval(interfaceAlias, blk, context)
19
20     //replace scicos_getvalue by setvalue (call by interfaceAlias)
21     %mprt = funcprot()
22     funcprot(0)
23     scicos_getvalue = setvalue;
24     function message(txt)
25         messagebox(..
26         ["In block " + o.gui + ": " ; txt ; "current parameter value kept"],..
27         "error","modal");
28         [str,n,line,func]=lasterror();
29         printf("do_eval: error %d - %s in %s at line %d\n", n, str, func, line);
30     endfunction
31     funcprot(%mprt)
32
33     // define scicos variables
34     %scicos_prob = %f
35     %scicos_debug_gr = %f
36     needcompile = 4;
37     [modelica_libs, scicos_pal_libs, %scicos_with_grid, %scs_wgrid] = initial_scicos_tables();
38
39     // allocate the context
40     %scicos_context = struct();
41     [%scicos_context, ierr] = script2var(context, %scicos_context)
42
43     // Every parameter settings is done, perform block update
44
45     //create a structure with the new context
46     [new_blk, y, typ] = interfaceAlias("set", blk, []);
47     blk = new_blk;
48 endfunction
49