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