42 lines
		
	
	
		
			954 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			954 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								// Remote single stepping using RPC (controller)
							 | 
						||
| 
								 | 
							
								// jamsh test-singlestep1.js -- 9001 
							 | 
						||
| 
								 | 
							
								// ...
							 | 
						||
| 
								 | 
							
								var N=2,verbose=0,runCount=0;
							 | 
						||
| 
								 | 
							
								var workers = [
							 | 
						||
| 
								 | 
							
								  'udp://localhost:9001',
							 | 
						||
| 
								 | 
							
								  'udp://localhost:9002',
							 | 
						||
| 
								 | 
							
								  'udp://localhost:9003',
							 | 
						||
| 
								 | 
							
								  'udp://localhost:9004'
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								workers=workers.slice(0,N);
							 | 
						||
| 
								 | 
							
								var t = time();
							 | 
						||
| 
								 | 
							
								function run1 () {
							 | 
						||
| 
								 | 
							
								  var ready = workers.length;
							 | 
						||
| 
								 | 
							
								  runCount++;
							 | 
						||
| 
								 | 
							
								  workers.forEach(function (url) {
							 | 
						||
| 
								 | 
							
								    if (verbose) log(url+' '+runCount);
							 | 
						||
| 
								 | 
							
								    else if ((runCount % 1000)==1) log(url+' '+runCount);
							 | 
						||
| 
								 | 
							
								    Rpc.trans(url,{
							 | 
						||
| 
								 | 
							
								      command:'sensor',
							 | 
						||
| 
								 | 
							
								      value : Math.random(),
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								    Rpc.trans(url,{
							 | 
						||
| 
								 | 
							
								      command:'step'
							 | 
						||
| 
								 | 
							
								    },function (reply) {
							 | 
						||
| 
								 | 
							
								      if (verbose>1) log(url+inspect(reply))
							 | 
						||
| 
								 | 
							
								      else if ((runCount % 1000)==1) log(url+inspect(reply));
							 | 
						||
| 
								 | 
							
								      if (reply.status) ready--;
							 | 
						||
| 
								 | 
							
								      if (ready==0) {
							 | 
						||
| 
								 | 
							
								        if ((runCount % 1000)==1) {
							 | 
						||
| 
								 | 
							
								          var t1=time()-t;
							 | 
						||
| 
								 | 
							
								          log(t1);
							 | 
						||
| 
								 | 
							
								          t=time();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        run1();
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								run1()
							 |