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