Also overload Xcos getvalue standard function.
[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     getvalue = setvalue;
25     function message(txt)
26         messagebox(..
27         ["In block " + o.gui + ": " ; txt ; "current parameter value kept"],..
28         "error","modal");
29         [str,n,line,func]=lasterror();
30         printf("do_eval: error %d - %s in %s at line %d\n", n, str, func, line);
31     endfunction
32     funcprot(%mprt)
33
34     // define scicos variables
35     %scicos_prob = %f
36     %scicos_debug_gr = %f
37     needcompile = 4;
38     [modelica_libs, scicos_pal_libs, %scicos_with_grid, %scs_wgrid] = initial_scicos_tables();
39
40     // allocate the context
41     %scicos_context = struct();
42     [%scicos_context, ierr] = script2var(context, %scicos_context)
43
44     // Every parameter settings is done, perform block update
45
46     //create a structure with the new context
47     [new_blk, y, typ] = interfaceAlias("set", blk, []);
48     blk = new_blk;
49 endfunction
50