@@ -228,7 +228,6 @@ def __init__(self, port=10000, auto_start=True):
228
228
self .robot_address = 'http://0.0.0.0:' + str (port )
229
229
230
230
self ._auto_start = auto_start
231
-
232
231
self .config = None
233
232
self .config_valid = False
234
233
@@ -239,6 +238,10 @@ def __init__(self, port=10000, auto_start=True):
239
238
240
239
self .instance = None
241
240
241
+ self .evt = event .Event ()
242
+ for s in [signal .SIGINT , signal .SIGQUIT , signal .SIGTERM ]:
243
+ signal .signal (s , lambda n , frame : self .evt .set ())
244
+
242
245
self .wipe ()
243
246
244
247
@staticmethod
@@ -471,29 +474,26 @@ def __selected_env():
471
474
# Configure our server
472
475
robot_server = pywsgi .WSGIServer (
473
476
re .split ('http[s]?://' , self .robot_address )[- 1 ], robot_flask )
474
- evt = event .Event ()
475
- for s in [signal .SIGINT , signal .SIGQUIT , signal .SIGTERM ]:
476
- signal .signal (s , lambda n , frame : evt .set ())
477
477
478
478
# Run the server & start the real robot controller
479
479
robot_server .start ()
480
480
print ("\n Robot controller is now available @ '%s' ..." %
481
481
self .robot_address )
482
482
print ("Waiting to receive valid config data..." )
483
483
while not self .config_valid :
484
- if evt .wait (0.1 ):
484
+ if self . evt .wait (0.1 ):
485
485
break
486
486
487
487
if self ._auto_start and self .config_valid :
488
488
print ("Starting the requested real robot ROS stack ... " ,
489
489
end = "" )
490
490
sys .stdout .flush ()
491
- self .start (events = evt )
491
+ self .start ()
492
492
print ("Done" )
493
493
494
494
# Wait until we get an exit signal or crash, then shut down gracefully
495
495
while self .instance .health_check ():
496
- if evt .wait (0.1 ):
496
+ if self . evt .wait (0.1 ):
497
497
break
498
498
print ("\n Shutting down the real robot ROS stack & exiting ..." )
499
499
robot_server .stop ()
@@ -535,7 +535,7 @@ def set_config(self, config):
535
535
# TODO proper checks...
536
536
self .config_valid = True
537
537
538
- def start (self , events = None ):
538
+ def start (self ):
539
539
self .state = {
540
540
k : v for k , v in self .state .items () if k in DEFAULT_STATE
541
541
}
@@ -546,7 +546,7 @@ def start(self, events=None):
546
546
for c in self .connections .values ()
547
547
if c ['type' ] == CONN_ROS_TO_API and c ['ros' ] != None
548
548
],
549
- events = events )
549
+ events = self . evt )
550
550
self .instance .start ()
551
551
552
552
def stop (self ):
0 commit comments