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