Tue 27 Aug 00:14:56 CEST 2024
This commit is contained in:
parent
3a03cb2cda
commit
357b4670ed
72
test/test-singlestep1.js
Normal file
72
test/test-singlestep1.js
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
// Remote single stepping using RPC (worker)
|
||||||
|
// jamsh test-singlestep1.js -- 9001
|
||||||
|
// 9002 9003 ...
|
||||||
|
|
||||||
|
var N = 1000, C= 10000, verbose=0;
|
||||||
|
function ac(options) {
|
||||||
|
this.options=options;
|
||||||
|
this.sensor=null;
|
||||||
|
this.loops=options.loops;
|
||||||
|
this.act = {
|
||||||
|
start: function () {
|
||||||
|
log('Starting .. '+this.options.msg)
|
||||||
|
},
|
||||||
|
percept: function () {
|
||||||
|
rd.try(0,['SENSOR',_],function (t) {
|
||||||
|
if (t) this.sensor=t[1];
|
||||||
|
})
|
||||||
|
},
|
||||||
|
action : function () {
|
||||||
|
if (this.options.verbose || (this.loops%1000)==0) log(this.loops,this.sensor);
|
||||||
|
},
|
||||||
|
stop: function () {
|
||||||
|
log('Terminating ..')
|
||||||
|
kill()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.trans = {
|
||||||
|
start:"percept",
|
||||||
|
percept: function () {
|
||||||
|
if (this.sensor!=null) return "action";
|
||||||
|
else return "stop";
|
||||||
|
},
|
||||||
|
action: function () {
|
||||||
|
return (this.loops--)==0?"stop":"percept";
|
||||||
|
},
|
||||||
|
}
|
||||||
|
this.next="start";
|
||||||
|
}
|
||||||
|
var sensor = 0;
|
||||||
|
provider(function (pat) {
|
||||||
|
switch (pat[0]) {
|
||||||
|
case 'SENSOR':
|
||||||
|
return [pat[0],sensor];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var agents=[];
|
||||||
|
for(var i=0;i<N;i++) {
|
||||||
|
var ag = create(ac,{
|
||||||
|
loops:C,
|
||||||
|
msg:'with pace '+i,
|
||||||
|
verbose:0
|
||||||
|
},2);
|
||||||
|
agents.push(ag);
|
||||||
|
}
|
||||||
|
|
||||||
|
Rpc.getreq('udp://localhost:'+(args[0]||9000),function (req,src) {
|
||||||
|
switch (req.command) {
|
||||||
|
case 'step':
|
||||||
|
if (verbose) log('Step')
|
||||||
|
step(1,true);
|
||||||
|
return {status:'Ok'}
|
||||||
|
break;
|
||||||
|
case 'sensor':
|
||||||
|
sensor = req.value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},{verbose:1})
|
||||||
|
|
||||||
|
start0();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user