Files
dev/script/dev.js
2018-01-19 10:56:53 +01:00

132 lines
3.4 KiB
JavaScript
Executable File

var SinusoidImage = Java.extend(Java.type("ch.psi.pshell.device.ReadonlyRegisterBase"), Java.type("ch.psi.pshell.device.ReadonlyRegister.ReadonlyRegisterMatrix"))
var dev = new SinusoidImage("im1") {
doRead: function () {
sleep(0.001)
var ret = []
var width = 200
var height = 100
x = Math.random()
var base = []
for (var i = 0; i < width ; i++) {
base.push(Math.sin(x))
x = x + 0.05
}
for (var i = 0; i < height ; i++) {
var noise = (Math.random() - 0.5)/5.0
var row = []
for (var j = 0; j < width ; j++) {
row.push(base[j]+noise)
}
ret.push(row)
}
print ("len = " + ret.length)
return to_array(ret, 'd')
},
getWidth: function () {
return SinusoidSuper.take(-1)[0].length
},
getHeight: function () {
return SinusoidSuper.take(-1).length
},
}
var SinusoidSuper = Java.super(dev)
add_device(dev, true)
var SinusoidWaveform = Java.extend(Java.type("ch.psi.pshell.device.ReadonlyRegisterBase"), Java.type("ch.psi.pshell.device.ReadonlyRegister.ReadonlyRegisterArray"))
var dev = new SinusoidWaveform("wf1") {
doRead: function () {
sleep(0.001)
var ret = []
x = Math.random()
for (var i = 0; i < 20; i++) {
ret.push(Math.sin(x))
x = x + 0.1
}
return ret
},
getSize: function () {
//return wf1.take(-1).length
return SinusoidWaveformSuper.take(-1).length
},
}
var SinusoidWaveformSuper = Java.super(dev)
add_device(dev, true)
print (wf1.read())
print (wf1.take(-1).length)
print (wf1.getSize())
tscan(wf1, 10, 0.1)
var AnalogOutput = Java.extend(Java.type("ch.psi.pshell.device.RegisterBase"))
var dev = new AnalogOutput("ao1") {
i:double = 0.0,
doRead: function () {
return this.i
},
doWrite: function (value) {
i=value
},
}
add_device(dev, true)
var SinusoidSample = Java.extend(Java.type("ch.psi.pshell.device.ReadonlyRegisterBase"))
var dev = new SinusoidSample("ai1") {
x:double = 0.0,
doRead: function () {
sleep(0.001)
this.x += 0.1
var noise = (Math.random() - 0.5) / 10.0
return Math.sin(this.x) + noise
},
}
add_device(dev, true)
var SinusoidTime = Java.extend(Java.type("ch.psi.pshell.device.ReadonlyRegisterBase"))
var dev = new SinusoidTime("ai2") {
doRead: function () {
sleep(0.001)
var noise = (Math.random() - 0.5) / 10.0
return Math.sin(Date.now()) + noise
},
}
add_device(dev, true)
var Random = Java.extend(Java.type("ch.psi.pshell.device.ReadonlyRegisterBase"))
var dev = new Random("ai3") {
doRead: function () {
sleep(0.001)
return Math.random()
},
}
add_device(dev, true)
print(ao1.read())
print(ai1.read())
print(ai2.read())
print(ai3.read())