summaryrefslogtreecommitdiff
path: root/js/Sources/READC_f.js
blob: 61ae964202e0d91973d0e64150ffd03d72d853d2 (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
/* autogenerated from "macros/Sources/READC_f.sci" */
function READC_f() {
    READC_f.prototype.define = function READC_f() {
        frmt = "d  ";
        fname = "foo";
        lunit = 0;
        this.N = 20;
        this.M = 1;
        rpar = [];
        tmask = 0;
        this.swap = 0;
        this.offset = 1;
        this.outmask = 1;
        ievt = 0;
        nout = size(this.outmask,"*");
        ipar = [[length(fname)],[this._str2code[frmt-1]],[ievt],[this.N],[this.M],[this.swap],[this.offset],[this._str2code[fname-1]],[tmask],[this.outmask]];
        model = scicos_model();
        model.sim = list("readc",2);
        model.out = nout;
        model.evtin = 1;
        model.evtout = [];
        model.dstate = [[1],[1],[lunit],[zeros(this.N*this.M,1)]];
        model.ipar = [[length(fname)],[this._str2code[frmt-1]],[ievt],[this.N],[this.M],[this.swap],[this.offset],[this._str2code[fname-1]],[tmask],[this.outmask]];
        model.blocktype = "d";
        model.firing = -1;
        model.dep_ut = [false,false];
        exprs = [["[]"],[sci2exp(this.outmask)],[fname],[frmt],[string(this.M)],[string(this.N)],[string(this.offset)],[string(this.swap)]];
        gr_i = [];
        this.x = standard_define([4,2],model,exprs,gr_i);
        return new BasicBlock(this.x);
    }
    READC_f.prototype.details = function READC_f() {
        return this.x;
    }
    READC_f.prototype.get = function READC_f() {
    }
    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 = parseFloat((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.x = arg1;
        model = this.x.model;
        graphics = arg1.graphics;
        exprs = graphics.exprs;
        out = model.out;
        dstate = model.dstate;
        ipar = model.ipar;
        imask = 9+ipar[1-1];
        tmask = ipar[imask-1];
        lunit = dstate[3-1];
        fname = exprs[3-1];
        frmt = exprs[4-1];
        while (true) {
            [ok,this.tmask1,this.outmask,this.fname1,this.frmt1,this.M,this.N,this.offset,this.swap,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),exprs);
            if (!ok) {
                break;
            }
            this.fname1 = pathconvert(stripblanks(this.fname1),false,true);
            this.frmt1 = stripblanks(this.frmt1);
            fmts = ["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"];
            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==[]) {
                    ievt = 0;
                    this.tmask1 = 0;
                    outpt = [];
                } else {
                    ievt = 1;
                    outpt = 1;
                }
                out = size(this.outmask,"*");
                [model,graphics,ok] = check_io(model,graphics,[],out,1,outpt);
                this.frmt1 = part(this.frmt1,1,3);
                if (ok) {
                    if (ievt==0) {
                        model.firing = -1;
                    } else {
                        model.firing = 0;
                    }
                    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) {
                        dstate = [[-1],[-1],[lunit],[zeros(this.N*this.M,1)]];
                    }
                    model.dstate = dstate;
                    model.ipar = ipar;
                    graphics.exprs = exprs;
                    this.x.graphics = graphics;
                    this.x.model = model;
                    break;
                }
            }
        }
        return new BasicBlock(this.x);
    }
}