summaryrefslogtreecommitdiff
path: root/js/Linear/GAINBLK.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/Linear/GAINBLK.js')
-rw-r--r--js/Linear/GAINBLK.js231
1 files changed, 116 insertions, 115 deletions
diff --git a/js/Linear/GAINBLK.js b/js/Linear/GAINBLK.js
index b907fe60..edab742b 100644
--- a/js/Linear/GAINBLK.js
+++ b/js/Linear/GAINBLK.js
@@ -17,131 +17,132 @@ function GAINBLK() {
model.dep_ut = [true,false];
exprs = [strcat(sci2exp(gain))];
gr_i = [];
- x = standard_define([2,2],model,exprs,gr_i);
+ this.x = standard_define([2,2],model,exprs,gr_i);
}
GAINBLK.prototype.details = function GAINBLK() {
+ return this.x;
}
GAINBLK.prototype.get = function GAINBLK() {
}
GAINBLK.prototype.set = function GAINBLK() {
- x = arg1;
+ this.x = arg1;
graphics = arg1.graphics;
exprs = graphics.exprs;
model = arg1.model;
if (size(exprs,"*")==1) {
- exprs = [[exprs],[sci2exp(0)]];
-}
+ exprs = [[exprs],[sci2exp(0)]];
+ }
while (true) {
- [ok,gain,over,exprs] = scicos_getvalue("Set gain block parameters",[["Gain"],["Do On Overflow(0=Nothing 1=Saturate 2=Error)"]],list("mat",[-1,-1],"vec",1),exprs);
- if (!ok) {
-break;
-}
- if (gain==[]) {
-message("Gain must have at least one element");
- } else {
- if (typeof(gain)=="constant") {
- if (isreal(gain)) {
- it = 1;
- ot = 1;
- model.sim = list("gainblk",4);
- model.rpar = gain.slice();
- model.opar = list();
- } else {
-message("type is not supported");
- ok = false;
-}
- } else {
- if ((over==0)) {
- if ((typeof(gain)=="int32")) {
- ot = 3;
- model.sim = list("gainblk_i32n",4);
- } else if ((typeof(gain)=="int16")) {
- ot = 4;
- model.sim = list("gainblk_i16n",4);
- } else if ((typeof(gain)=="int8")) {
- ot = 5;
- model.sim = list("gainblk_i8n",4);
- } else if ((typeof(gain)=="uint32")) {
- ot = 6;
- model.sim = list("gainblk_ui32n",4);
- } else if ((typeof(gain)=="uint16")) {
- ot = 7;
- model.sim = list("gainblk_ui16n",4);
- } else if ((typeof(gain)=="uint8")) {
- ot = 8;
- model.sim = list("gainblk_ui8n",4);
- } else {
-message("type is not supported.");
- ok = false;
-}
- } else if ((over==1)) {
- if ((typeof(gain)=="int32")) {
- ot = 3;
- model.sim = list("gainblk_i32s",4);
- } else if ((typeof(gain)=="int16")) {
- ot = 4;
- model.sim = list("gainblk_i16s",4);
- } else if ((typeof(gain)=="int8")) {
- ot = 5;
- model.sim = list("gainblk_i8s",4);
- } else if ((typeof(gain)=="uint32")) {
- ot = 6;
- model.sim = list("gainblk_ui32s",4);
- } else if ((typeof(gain)=="uint16")) {
- ot = 7;
- model.sim = list("gainblk_ui16s",4);
- } else if ((typeof(gain)=="uint8")) {
- ot = 8;
- model.sim = list("gainblk_ui8s",4);
- } else {
-message("type is not supported.");
- ok = false;
-}
- } else if ((over==2)) {
- if ((typeof(gain)=="int32")) {
- ot = 3;
- model.sim = list("gainblk_i32e",4);
- } else if ((typeof(gain)=="int16")) {
- ot = 4;
- model.sim = list("gainblk_i16e",4);
- } else if ((typeof(gain)=="int8")) {
- ot = 5;
- model.sim = list("gainblk_i8e",4);
- } else if ((typeof(gain)=="uint32")) {
- ot = 6;
- model.sim = list("gainblk_ui32e",4);
- } else if ((typeof(gain)=="uint16")) {
- ot = 7;
- model.sim = list("gainblk_ui16e",4);
- } else if ((typeof(gain)=="uint8")) {
- ot = 8;
- model.sim = list("gainblk_ui8e",4);
- } else {
-message("type is not an integer.");
- ok = false;
-}
- } else {
-message("Do on Overflow must be 0,1,2");
- ok = false;
-}
- model.rpar = [];
- model.opar = list(gain.slice());
-}
- if (ok) {
- [out,in1] = size(gain);
- if (out*in1!=1) {
- [model,graphics,ok] = set_io(model,graphics,list([in1,-1],ot),list([out,-1],ot),[],[]);
- } else {
- [model,graphics,ok] = set_io(model,graphics,list([-1,-2],ot),list([-1,-2],ot),[],[]);
-}
-}
- if (ok) {
- graphics.exprs = exprs;
- x.graphics = graphics;
- x.model = model;
-break;
-}
-}
-}
+ [ok,gain,over,exprs] = scicos_getvalue("Set gain block parameters",[["Gain"],["Do On Overflow(0=Nothing 1=Saturate 2=Error)"]],list("mat",[-1,-1],"vec",1),exprs);
+ if (!ok) {
+ break;
+ }
+ if (gain==[]) {
+ message("Gain must have at least one element");
+ } else {
+ if (typeof(gain)=="constant") {
+ if (isreal(gain)) {
+ it = 1;
+ ot = 1;
+ model.sim = list("gainblk",4);
+ model.rpar = gain.slice();
+ model.opar = list();
+ } else {
+ message("type is not supported");
+ ok = false;
+ }
+ } else {
+ if ((over==0)) {
+ if ((typeof(gain)=="int32")) {
+ ot = 3;
+ model.sim = list("gainblk_i32n",4);
+ } else if ((typeof(gain)=="int16")) {
+ ot = 4;
+ model.sim = list("gainblk_i16n",4);
+ } else if ((typeof(gain)=="int8")) {
+ ot = 5;
+ model.sim = list("gainblk_i8n",4);
+ } else if ((typeof(gain)=="uint32")) {
+ ot = 6;
+ model.sim = list("gainblk_ui32n",4);
+ } else if ((typeof(gain)=="uint16")) {
+ ot = 7;
+ model.sim = list("gainblk_ui16n",4);
+ } else if ((typeof(gain)=="uint8")) {
+ ot = 8;
+ model.sim = list("gainblk_ui8n",4);
+ } else {
+ message("type is not supported.");
+ ok = false;
+ }
+ } else if ((over==1)) {
+ if ((typeof(gain)=="int32")) {
+ ot = 3;
+ model.sim = list("gainblk_i32s",4);
+ } else if ((typeof(gain)=="int16")) {
+ ot = 4;
+ model.sim = list("gainblk_i16s",4);
+ } else if ((typeof(gain)=="int8")) {
+ ot = 5;
+ model.sim = list("gainblk_i8s",4);
+ } else if ((typeof(gain)=="uint32")) {
+ ot = 6;
+ model.sim = list("gainblk_ui32s",4);
+ } else if ((typeof(gain)=="uint16")) {
+ ot = 7;
+ model.sim = list("gainblk_ui16s",4);
+ } else if ((typeof(gain)=="uint8")) {
+ ot = 8;
+ model.sim = list("gainblk_ui8s",4);
+ } else {
+ message("type is not supported.");
+ ok = false;
+ }
+ } else if ((over==2)) {
+ if ((typeof(gain)=="int32")) {
+ ot = 3;
+ model.sim = list("gainblk_i32e",4);
+ } else if ((typeof(gain)=="int16")) {
+ ot = 4;
+ model.sim = list("gainblk_i16e",4);
+ } else if ((typeof(gain)=="int8")) {
+ ot = 5;
+ model.sim = list("gainblk_i8e",4);
+ } else if ((typeof(gain)=="uint32")) {
+ ot = 6;
+ model.sim = list("gainblk_ui32e",4);
+ } else if ((typeof(gain)=="uint16")) {
+ ot = 7;
+ model.sim = list("gainblk_ui16e",4);
+ } else if ((typeof(gain)=="uint8")) {
+ ot = 8;
+ model.sim = list("gainblk_ui8e",4);
+ } else {
+ message("type is not an integer.");
+ ok = false;
+ }
+ } else {
+ message("Do on Overflow must be 0,1,2");
+ ok = false;
+ }
+ model.rpar = [];
+ model.opar = list(gain.slice());
+ }
+ if (ok) {
+ [out,in1] = size(gain);
+ if (out*in1!=1) {
+ [model,graphics,ok] = set_io(model,graphics,list([in1,-1],ot),list([out,-1],ot),[],[]);
+ } else {
+ [model,graphics,ok] = set_io(model,graphics,list([-1,-2],ot),list([-1,-2],ot),[],[]);
+ }
+ }
+ if (ok) {
+ graphics.exprs = exprs;
+ this.x.graphics = graphics;
+ this.x.model = model;
+ break;
+ }
+ }
+ }
}
}