File: SCOPE_f.sci

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (125 lines) | stat: -rw-r--r-- 3,420 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
function [x,y,typ]=SCOPE_f(job,arg1,arg2)
// Copyright INRIA
x=[];y=[];typ=[]
select job
case 'plot' then
  standard_draw(arg1)
case 'getinputs' then
  [x,y,typ]=standard_inputs(o)
case 'getoutputs' then
  x=[];y=[];typ=[];
case 'getorigin' then
  [x,y]=standard_origin(arg1)
case 'set' then
  x=arg1;
  graphics=arg1(2);label=graphics(4)
  if size(label)<9 then label(9)='0',end // compatibility
  model=arg1(3);
  state=model(2)
  while %t do
    [ok,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,label]=getvalue(..
	'Set Scope parameters',..
	['Color (>0) or mark (<0) vector (8 entries)';
	'Output window number';
	'Output window position';
	'Output window sizes';
	'Ymin';
	'Ymax';
	'Refresh period';
	'Buffer size'
        'Accept herited events 0/1'],..
	 list('vec',8,'vec',1,'vec',-1,'vec',-1,'vec',1,..
	 'vec',1,'vec',1,'vec',1,'vec',1),..
	 label)
    if ~ok then break,end //user cancel modification
    mess=[]
    if size(wpos,'*')<>0 &size(wpos,'*')<>2 then
      mess=[mess;'Window position must be [] or a 2 vector';' ']
      ok=%f
    end
    if size(wdim,'*')<>0 &size(wdim,'*')<>2 then
      mess=[mess;'Window dim must be [] or a 2 vector';' ']
      ok=%f
    end
    if win<0 then
      mess=[mess;'Window number can''t be negative';' ']
      ok=%f
    end
    if per<=0 then
      mess=[mess;'Refresh period must be positive';' ']
      ok=%f
    end
    if N<2 then
      mess=[mess;'Buffer size must be at least 2';' ']
      ok=%f
    end
    if ymin>=ymax then
      mess=[mess;'Ymax must be greater than Ymin';' ']
      ok=%f
    end
    if ~or(heritance==[0 1]) then
      mess=[mess;'Accept herited events must be 0 or 1';' ']
      ok=%f
    end
    if ~ok then
      message(['Some specified values are inconsistent:';
	         ' ';mess])
	   end
    if ok then
      [model,graphics,ok]=check_io(model,graphics,-1,[],ones(1-heritance,1),[])
    end
    
    if ok then
      if wpos==[] then wpos=[-1;-1];end
      if wdim==[] then wdim=[-1;-1];end
      rpar=[0;ymin;ymax;per]
      ipar=[win;1;N;clrs(:);wpos(:);wdim(:);heritance]
      if prod(size(state))<>(8+1)*N+1 then state=-eye((8+1)*N+1,1),end
      model(7)=state;model(8)=rpar;model(9)=ipar
      model(4)=ones(1-heritance,1)
      model(11)=[] //compatibility
      model(12)=[%t %f] //compatibility
      graphics(4)=label;
      x(2)=graphics;x(3)=model
      break
    end
  end
case 'define' then
  win=1;
  wdim=[600;400]
  wpos=[-1;-1]
  clrs=[1;3;5;7;9;11;13;15];
  N=2;
  ipar=[win;1;N;clrs;wpos;wdim;0]
  ymin=-15;ymax=+15;per=30;
  rpar=[0;ymin;ymax;per]
  state=-eye((8+1)*N+1,1)
  model=list(list('scope',1),-1,[],1,[],[],state,rpar,ipar,'c',..
      [],[%t %f],' ',list())
  label=[strcat(string(clrs),' ');
	string(win);
	sci2exp([]);
	sci2exp(wdim);
	string(ymin);
	string(ymax);
	string(per);
	string(N);
        string(0)];
  gr_i=['thick=xget(''thickness'');xset(''thickness'',2);';
    'xrect(orig(1)+sz(1)/10,orig(2)+(1-1/10)*sz(2),sz(1)*8/10,sz(2)*8/10);';
    'xx=[orig(1)+sz(1)/5,orig(1)+sz(1)/5;';
    'orig(1)+(1-1/4)*sz(1),orig(1)+sz(1)/5];';
    'yy=[orig(2)+sz(2)/5,orig(2)+sz(2)/5;';
    'orig(2)+sz(2)/5,orig(2)+(1-1/3)*sz(2)];';	
    'xarrows(xx,yy);';
    't=(0:0.3:2*%pi)'';';
    'xx=orig(1)+(1/5+3*t/(10*%pi))*sz(1);';
    'yy=orig(2)+(1/4.3+(sin(t)+1)*3/10)*sz(2);';
    'xpoly(xx,yy,''lines'');';
    'xset(''thickness'',thick)']
  x=standard_define([2 2],model,label,gr_i)
end