summaryrefslogtreecommitdiff
path: root/js/Sources/RFILE_f.js
blob: dd34174beffcfe4a2ba491b6504ddf490114efc0 (plain)
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
/* autogenerated from "macros/Sources/RFILE_f.sci" */
function RFILE_f() {
    RFILE_f.prototype.define = function RFILE_f() {
        var out = 1;
        var nout = sum(out);
        var frmt = "(7(e10.3,1x))";
        var fname = "foo";
        var lunit = 0;
        this.N = 2;
        var rpar = [];
        var tmask = 0;
        this.outmask = 1;
        var ipar = [[length(fname)],[length(frmt)],[0],[this.N],[this._str2code[fname-1]],[this._str2code[frmt-1]],[tmask],[this.outmask]];
        var dstate = [[1],[1],[lunit],[zeros((nout)*this.N,1)]];
        this.model = scicos_model();
        this.model.sim = new ScilabString(["readf"]);
        this.model.out = new ScilabDouble([nout]);
        this.model.evtin = new ScilabDouble([1]);
        this.model.dstate = new ScilabDouble(dstate);
        this.model.ipar = new ScilabDouble([length(fname)],[length(frmt)],[0],[this.N],[this._str2code[fname-1]],[this._str2code[frmt-1]],[tmask],[this.outmask]);
        this.model.blocktype = new ScilabString(["d"]);
        this.model.dep_ut = new ScilabBoolean([false,false]);
        var exprs = [[sci2exp([])],[sci2exp(this.outmask)],[fname],[frmt],[string(this.N)],[sci2exp(out)]];
        var gr_i = new ScilabString(["xstringb(orig(1),orig(2),\"RFILE_f\",sz(1),sz(2));"]);
        this.x = new standard_define(new ScilabDouble([3,2]),this.model,new ScilabDouble(exprs),gr_i);
        return new BasicBlock(this.x);
    }
    RFILE_f.prototype.details = function RFILE_f() {
        return this.x;
    }
    RFILE_f.prototype.get = function RFILE_f() {
        var exprs = this.graphics.exprs;
        var dstate = this.model.dstate;
        var ipar = this.model.ipar;
        var ievt = ipar[3-1];
        this.N = ipar[4-1];
        var imask = 5+ipar[1-1]+ipar[2-1];
        var tmask = ipar[imask-1];
        var lunit = dstate[3-1];
        var fname = exprs[3-1];
        var frmt = exprs[4-1];
        if (size(exprs,"*")>5) {
            exprs[6-1] = [];
        }
        this.set_param_popup_title = msprintf("Set %s block parameters","RFILE_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],
            N:["Buffer Size",this.N],
        }
        return options;
    }
    RFILE_f.prototype.set = function RFILE_f() {
        var exprs = this.graphics.exprs;
        var dstate = this.model.dstate;
        var ipar = this.model.ipar;
        var ievt = ipar[3-1];
        this.N = ipar[4-1];
        var imask = 5+ipar[1-1]+ipar[2-1];
        var tmask = ipar[imask-1];
        var lunit = dstate[3-1];
        var fname = exprs[3-1];
        var frmt = exprs[4-1];
        if (size(exprs,"*")>5) {
            exprs[6-1] = [];
        }
        while (true) {
            var ok = true;
            this.tmask1 = parseFloat(arguments[0]["tmask1"]);
            this.outmask = parseFloat(arguments[0]["outmask"]);
            this.fname1 = parseFloat(arguments[0]["fname1"]);
            this.frmt1 = parseFloat(arguments[0]["frmt1"]);
            this.N = parseFloat(arguments[0]["N"]);
            var exprs = [arguments[0]["tmask1"], arguments[0]["outmask"], arguments[0]["fname1"], arguments[0]["frmt1"], arguments[0]["N"]];
            if (!ok) {
                break;
            }
            this.fname1 = pathconvert(stripblanks(this.fname1),false,true);
            this.frmt1 = stripblanks(this.frmt1);
            var nout = size(this.outmask,"*");
            if (prod(size(this.tmask1))>1) {
                block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Time Record Selection",strcat(string(this.tmask1.slice())," ")),"Empty matrix or scalar expected.");
            } else if (this.tmask1.length!=0&&this.tmask1<1) {
                block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d","Time Record Selection",this.tmask1),"Strictly positive integer expected.");
            } else if (lunit>0&&min(length(frmt),1)!=min(length(this.frmt1),1)) {
                block_parameter_error(["Simulation running !!! You cannot switch <br />between formatted and unformatted"],"End current simulation first.");
            } else if (lunit>0&&this.fname1!=fname) {
                block_parameter_error("Simulation running !!! You cannot modify \'Input File Name\'","End current simulation first.");
            } else if (lunit>0&&size(this.tmask1)!=size(tmask)) {
                block_parameter_error("Simulation running !!! You cannot modify \'Time Record Selection\'","End current simulation first.");
            } else if (this.fname1=="") {
                block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s","Input File Name",this.fname1),"You must provide a filename.");
            } else if (this.frmt1!=""&&(part(this.frmt1,1)!="("||part(this.frmt1,length(this.frmt1))!=")")) {
                block_parameter_error(msprintf("Wrong format for \'%s\' parameter: %s.","Input Format",this.frmt1),"You must enclose the format\'s string between parentheses.");
            } else if (this.N<2) {
                block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Buffer Size",this.N),"Buffer size must be at least 2.");
            } else if (nout==0) {
                block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Outputs Record Selection",nout),"You must read at least one field in record.");
            } else if (min(this.outmask)<1) {
                block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s","Outputs Record Selection",strcat(string(this.outmask.slice())," ")),"Strictly positive indexes expected.");
            } else {
                if (this.tmask1.length==0) {
                    var ievt = 0;
                    var cout = [];
                    this.tmask1 = 0;
                } else {
                    var ievt = 1;
                    var cout = 1;
                }
                var tmpvar0 = check_io(this.model,this.graphics,[],nout,1,cout);
                this.model = tmpvar0[0];
                this.graphics = tmpvar0[1];
                var ok = tmpvar0[2];
                if (ok) {
                    if (ievt==0) {
                        this.model.firing = new ScilabDouble([]);
                    } else {
                        this.model.firing = new ScilabDouble([0]);
                    }
                    var ipar = [[length(this.fname1)],[length(this.frmt1)],[ievt],[this.N],[this._str2code[this.fname1-1]],[this._str2code[this.frmt1-1]],[this.tmask1],[this.outmask.slice()]];
                    if (prod(size(dstate))!=(nout+ievt)*this.N+3) {
                        var dstate = [[-1],[-1],[lunit],[zeros((nout+ievt)*this.N,1)]];
                    }
                    this.model.dstate = new ScilabDouble(dstate);
                    this.model.ipar = new ScilabDouble(ipar);
                    this.graphics.exprs = new ScilabDouble([exprs]);
                    this.x.graphics = this.graphics;
                    this.x.model = this.model;
                    break;
                }
            }
        }
        return new BasicBlock(this.x);
    }
    RFILE_f.prototype.get_popup_title = function RFILE_f() {
        return this.set_param_popup_title;
    }
}