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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
/* autogenerated from "macros/Sources/READC_f.sci" */
function READC_f() {
READC_f.prototype.define = function READC_f() {
var frmt = "d ";
var fname = "foo";
var lunit = 0;
this.N = 20;
this.M = 1;
var rpar = [];
var tmask = 0;
this.swap = 0;
this.offset = 1;
this.outmask = 1;
var ievt = 0;
var nout = size(this.outmask,"*");
var ipar = [[length(fname)],[this._str2code[frmt-1]],[ievt],[this.N],[this.M],[this.swap],[this.offset],[this._str2code[fname-1]],[tmask],[this.outmask]];
this.model = scicos_model();
this.model.sim = list(new ScilabString(["readc"]), new ScilabDouble([2]));
this.model.out = new ScilabDouble([nout]);
this.model.evtin = new ScilabDouble([1]);
this.model.evtout = new ScilabDouble([]);
this.model.dstate = new ScilabDouble([1],[1],[lunit],[zeros(this.N*this.M,1)]);
this.model.ipar = new ScilabDouble([length(fname)],[this._str2code[frmt-1]],[ievt],[this.N],[this.M],[this.swap],[this.offset],[this._str2code[fname-1]],[tmask],[this.outmask]);
this.model.blocktype = new ScilabString(["d"]);
this.model.firing = new ScilabDouble([-1]);
this.model.dep_ut = new ScilabBoolean([false,false]);
this.exprs = [["[]"],[sci2exp(this.outmask)],[fname],[frmt],[string(this.M)],[string(this.N)],[string(this.offset)],[string(this.swap)]];
this.gr_i = new ScilabString(["xstringb(orig(1),orig(2),\"READC_f\",sz(1),sz(2));"]);
this.x = new standard_define(new ScilabDouble([4,2]),this.model,new ScilabDouble(this.exprs),this.gr_i);
return new BasicBlock(this.x);
}
READC_f.prototype.details = function READC_f() {
return this.x;
}
READC_f.prototype.get = function READC_f() {
var options = {
tmask1:["Time Record Selection",this.tmask1],
outmask:["Outputs Record Selection",this.outmask],
fname1:["Input File Name",this.fname1],
frmt1:["Input Format",this.frmt1],
M:["Record Size",this.M],
N:["Buffer Size",this.N],
offset:["Initial Record Index",this.offset],
swap:["Swap Mode (0:No, 1:Yes)",this.swap],
}
return options;
}
READC_f.prototype.set = function READC_f() {
this.tmask1 = parseFloat(arguments[0]["tmask1"])
this.outmask = parseFloat(arguments[0]["outmask"])
this.fname1 = parseFloat(arguments[0]["fname1"])
this.frmt1 = arguments[0]["frmt1"]
this.M = parseFloat(arguments[0]["M"])
this.N = parseFloat(arguments[0]["N"])
this.offset = parseFloat(arguments[0]["offset"])
this.swap = parseFloat(arguments[0]["swap"])
this.exprs = arguments[0]["exprs"]
this.model = this.x.model;
this.exprs = this.graphics.exprs;
var out = this.model.out;
var dstate = this.model.dstate;
var ipar = this.model.ipar;
var imask = 9+ipar[1-1];
var tmask = ipar[imask-1];
var lunit = dstate[3-1];
var fname = this.exprs[3-1];
var frmt = this.exprs[4-1];
while (true) {
[ok,this.tmask1,this.outmask,this.fname1,this.frmt1,this.M,this.N,this.offset,this.swap,this.exprs] = scicos_getvalue([[msprintf("Set %s block parameters","READC_f")],[" "],["Read from C binary file"]],["Time Record Selection","Outputs Record Selection","Input File Name","Input Format","Record Size","Buffer Size","Initial Record Index","Swap Mode (0:No, 1:Yes)"],list("vec",-1,"vec",-1,"str",1,"str",1,"vec",1,"vec",1,"vec",1,"vec",1),this.exprs);
if (!ok) {
break;
}
this.fname1 = pathconvert(stripblanks(this.fname1),false,true);
this.frmt1 = stripblanks(this.frmt1);
var fmts = ["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"];
var nout = size(this.outmask,"*");
if (prod(size(this.tmask1))>1) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Time Record Selection"),"Must be a scalar or an empty matrix.");
} else if (and(this.frmt1!=fmts)) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Input Format",this.frmt1),"Valid formats are: "+strcat(fmts,", "));
} else if (this.alreadyran&&this.fname1!=fname) {
block_parameter_error(msprintf("You cannot modify \'%s\' when running","Input File Name"),"End current simulation first.");
} else if (this.N!=ipar[6-1]&&this.alreadyran) {
block_parameter_error(msprintf("You cannot modify \'%s\' when running.","Buffer Size"),"End current simulation first");
} else if (this.alreadyran&&size(this.tmask1)!=size(tmask)) {
block_parameter_error(msprintf("You cannot modify \'%s\' when running.","Time Record Selection"),"End current simulation first.");
} else if (this.fname1=="") {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Input File Name"),"You must provide a file name.");
} else if (this.M<1) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Record Size",this.M),"Strictly positive integer expected.");
} else if (this.tmask1!=[]&&(this.tmask1<1||this.tmask1>this.M)) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Time Record Selection",this.tmask1),msprintf("Must be in the interval %s.","[1, Record Size = "+string(this.M)+"]"));
} else if (nout==0) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Outputs Record Selection",nout),"Strictly positive integer expected.");
} else if (nout>this.M) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Outputs Record Selection",nout),msprintf("Must be in the interval %s.","[1, Record Size = "+string(this.M)+"]"));
} else if (max(this.outmask)>this.M||min(this.outmask)<1) {
block_parameter_error(msprintf("Wrong value for indexes in \'%s\' parameter: %s.","Outputs Record Selection",strcat(string(this.outmask.slice())," ")),msprintf("Must be in the interval %s.","[1, Record Size = "+string(this.M)+"]"));
} else if (this.N<1) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Buffer Size",this.N),"Strictly positive integer expected.");
} else if (this.swap!=0&&this.swap!=1) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Swap Mode",this.swap),msprintf("Must be in the interval %s.","[0, 1]"));
} else if (this.offset<1) {
block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Initial Record Index",this.offset),"Strictly positive integer expected.");
} else {
if (this.tmask1==[]) {
var ievt = 0;
this.tmask1 = 0;
var outpt = [];
} else {
var ievt = 1;
var outpt = 1;
}
var out = size(this.outmask,"*");
var tmpvar0 = check_io(this.model,this.graphics,[],out,1,outpt);
this.model = tmpvar0[0];
this.graphics = tmpvar0[1];
var ok = tmpvar0[2];
this.frmt1 = part(this.frmt1,1,3);
if (ok) {
if (ievt==0) {
this.model.firing = new ScilabDouble([-1]);
} else {
this.model.firing = new ScilabDouble([0]);
}
var ipar = [[length(this.fname1)],[this._str2code[this.frmt1-1]],[ievt],[this.N],[this.M],[this.swap],[this.offset],[this._str2code[this.fname1-1]],[this.tmask1],[this.outmask.slice()]];
if (prod(size(dstate))!=(this.N*this.M)+3) {
var dstate = [[-1],[-1],[lunit],[zeros(this.N*this.M,1)]];
}
this.model.dstate = new ScilabDouble(dstate);
this.model.ipar = new ScilabDouble(ipar);
this.graphics.exprs = new ScilabDouble([this.exprs]);
this.x.graphics = this.graphics;
this.x.model = this.model;
break;
}
}
}
return new BasicBlock(this.x);
}
}
|