[scicos] dia.ref updated
[scilab.git] / scilab / modules / scicos / tests / unit_tests / sciblk2.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2015 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- XCOS TEST -->
9 // <-- ENGLISH IMPOSED -->
10 //
11 // Load and run a diagram that calls a Scilab macro (tkscaleblk.sci)
12 exec("SCI/modules/scicos/tests/unit_tests/bug_8348.cosf", -1);
13 // Call sciblk2 instead of sciblk4
14 scs_m.objs(1).model.sim = list("tkscaleblk", 3);
15 scs_m.props.tf = 100;
16 // Rewrite tkscaleblk so it minds sciblk2's syntax
17 wMode = warning("query");
18 warning("off")
19 function [xd, tvec, z, x, outptr] = tkscaleblk(flag, nevprt, t, x, z, rpar, ipar, inptr)
20     outptr = list();
21     if flag == 1 then
22         // Output update
23         slider = get("-38f07e57:12bd41b596e:-7f2b#slider");
24         if slider <> [] then
25             // Calculate real value
26             value = get(slider,"value") / rpar(3);
27             w = get("-38f07e57:12bd41b596e:-7f2b");
28             if w <> [] then
29                 set(w, "info_message", string(value));
30             end
31             outptr = list(value);
32         end
33     elseif flag == 4 then
34         // Initialization
35         // If already exists (stopped) then reuse
36         f = get("-38f07e57:12bd41b596e:-7f2b");
37         if f <> [] then
38             return;
39         end
40         f = figure("Figure_name", "TK Source: " + "", ...
41         "dockable", "off", ...
42         "infobar_visible" , "on", ...
43         "toolbar", "none", ...
44         "menubar_visible", "off", ...
45         "menubar", "none", ...
46         "backgroundcolor", [1 1 1], ...
47         "default_axes", "off", ...
48         "figure_size", [180 350], ...
49         "layout", "border", ...
50         "figure_position", [40 40], ...
51         "Tag", "-38f07e57:12bd41b596e:-7f2b");
52         frame_slider = uicontrol(f, ...
53         "style", "frame", ...
54         "constraints", createConstraints("border", "left", [180, 0]), ...
55         "border", createBorder("line", "lightGray", 1), ...
56         "backgroundcolor", [1 1 1], ...
57         "layout", "gridbag");
58         // Slider
59         bounds = rpar(1:2);
60         initial = mean(bounds);
61         uicontrol(frame_slider, ...
62         "Style", "slider", ...
63         "Tag", "-38f07e57:12bd41b596e:-7f2b#slider", ...
64         "Min", bounds(1), ...
65         "Max", bounds(2), ...
66         "Value", initial, ...
67         "Position", [0 0 10 20], ...
68         "SliderStep", [rpar(3) 2*rpar(3)]);
69         frame_label = uicontrol(frame_slider, ...
70         "style", "frame", ...
71         "constraints", createConstraints("border", "right"), ...
72         "backgroundcolor", [1 1 1], ...
73         "layout", "gridbag");
74         // Labels
75         labels = string([bounds(2) ; ...
76         mean([bounds(2) initial])  ; ...
77         initial                    ; ...
78         mean([bounds(1) initial])  ; ...
79         bounds(1)]);
80         labels = "<html>" + strcat(labels, "<br /><br /><br />") + "</html>";
81         uicontrol(frame_label, ...
82         "Style", "text", ...
83         "String", labels(1), ...
84         "FontWeight", "bold", ...
85         "backgroundcolor", [1 1 1]);
86         // Update default value
87         outptr = list(initial / rpar(3));
88     elseif flag == 5 then
89         // Ending
90         f = get("-38f07e57:12bd41b596e:-7f2b");
91         if f <> [] then
92             close(f);
93         end
94     end
95     xd = 0;
96     tvec = [];
97 endfunction
98 warning(wMode);
99 cpr = scicos_simulate(scs_m);
100 cpr229 = [ ...
101 1;
102 5.5;
103 5.5;
104 5.5];
105 // Check the sensitive value of the continuous state
106 assert_checkalmostequal(list2vec(cpr(2)(2)(9)), cpr229);
107 close(gcf());
108 // Load and run a diagram that calls a Scilab macro (anim_pen.sci)
109 exec("SCI/modules/scicos/tests/unit_tests/pendulum_anim5.cosf", -1);
110 // Call sciblk2 instead of sciblk4
111 scs_m.objs(8).model.sim = list("anim_pen", 3);
112 // Rewrite anim_pen so it minds sciblk2's syntax
113 wMode = warning("query");
114 warning("off")
115 function [xd, tvec, z, x, outptr] = anim_pen(flag, nevprt, t, x, z, rpar, ipar, inptr)
116     win=20000+curblock()
117     if flag<>4 then
118         H=scf(win)
119     end
120     xold=z
121     plen=rpar(1)*1.6;
122     csiz=rpar(2)/4;
123     phi=rpar(3);
124     rcirc=csiz/3;
125     if flag==4 then
126         //** INIT
127         scf(win);
128         set("figure_style","new")
129         H=scf(win)
130         clf(H)
131         Axe=H.children
132         Axe.data_bounds=rpar(4:7)
133         Axe.isoview="on"
134         S=[cos(phi),-sin(phi);sin(phi),cos(phi)]
135         XY=S*[rpar(4),rpar(5);-csiz,-csiz]
136         gca().foreground = 3;
137         xsegs(XY(1,:),XY(2,:)-rcirc)
138         xTemp=0;
139         theta=0;
140         x1=xTemp-csiz;
141         x2=xTemp+csiz;
142         y1=-csiz;
143         y2=csiz
144         XY=S*[x1 x2 x2 x1 x1;y1,y1,y2,y2,y1]
145         gca().foreground = 5;
146         xfpoly(XY(1,:),XY(2,:))// cart
147         gca().foreground = 2;
148         xfarc(XY(1,1),XY(2,1),rcirc,rcirc,0,360*64) //wheel
149         xfarc(XY(1,2),XY(2,2),rcirc,rcirc,0,360*64) //wheel
150         XY=S*[xTemp,xTemp+plen*sin(theta);0,0+plen*cos(theta)]//pendulum
151         xsegs(XY(1,:),XY(2,:))
152     elseif flag==2 then
153         //** UPDATE
154         Axe=H.children
155         xTemp=inptr(1)(1)
156         theta=inptr(2)(1)
157         drawlater();
158         XY=Axe.children(4).data'+ [cos(phi)*(xTemp-xold);sin(phi)*(xTemp-xold)]*ones(1,5)
159         Axe.children(4).data=XY'
160         Axe.children(3).data(1)=XY(1,1)
161         Axe.children(3).data(2)=XY(2,1)
162         XY=Axe.children(4).data'+ [cos(phi)*(xTemp-xold-rcirc);sin(phi)*(xTemp-xold-rcirc)]*ones(1,5)
163         Axe.children(2).data(1)=XY(1,2)
164         Axe.children(2).data(2)=XY(2,2)
165         x1=xTemp*cos(phi);
166         y1=xTemp*sin(phi)
167         XY=[x1,x1+plen*sin(theta);y1,y1+plen*cos(theta)]
168         Axe.children(1).data=XY'
169         drawnow();
170         z=xTemp
171     end
172     xd = 0;
173     tvec = [];
174     outptr = list();
175 endfunction
176 warning(wMode);
177 cpr = scicos_simulate(scs_m);
178   "INTEGRAL('set'): Wrong type for block parameter 'Initial Condition': vec(-1) expected, getting z0"
179   "INTEGRAL('set'): Wrong type for block parameter 'Initial Condition': vec(-1) expected, getting th0"
180    Generate a loader file
181    Generate a Makefile
182    ilib_gen_Make: Copy compilation files (Makefile*, libtool...) to TMPDIR
183    ilib_gen_Make: Copy inv_pend.c to TMPDIR
184    ilib_gen_Make: configure : Generate Makefile.
185    ilib_gen_Make: Modification of the Makefile in TMPDIR.
186    Running the Makefile
187    Generate a cleaner file
188 Shared archive loaded.
189 Link done.
190   "INTEGRAL('set'): Wrong type for block parameter 'Initial Condition': vec(-1) expected, getting z0"
191   "INTEGRAL('set'): Wrong type for block parameter 'Initial Condition': vec(-1) expected, getting th0"
192 cpr229 = [ ...
193 -0.00000010072892435; ...
194 -0.0000000093251865; ...
195 12.731754622278423; ...
196 0.00000000775393652; ...
197 -0.00000007274473145; ...
198 0.00000008598899216; ...
199 -0.00000000636625628; ...
200 -0.00000010072892435;
201 -0.0000000093251865; ...
202 -0.00000100269157242; ...
203 12.7317556249699955; ];
204 // Check the sensitive value of the continuous state
205 assert_checkalmostequal(list2vec(cpr(2)(2)(9)), cpr229, [], 1e9);