@@ -21,13 +21,11 @@ class NaoRobotService():
21
21
widget = None
22
22
output = None
23
23
24
- def __init__ (self , widget , output , service_name ):
24
+ def __init__ (self , widget , service_name ):
25
25
self .name = service_name
26
26
self .widget = widget
27
- self .output = output
28
27
29
28
async def create_service_msg (self , method_name , * args , ** kwargs ):
30
- self .widget ._response = None
31
29
data = {}
32
30
data ["command" ] = "callService"
33
31
data ["service" ] = str (self .name )
@@ -41,9 +39,9 @@ async def create_service_msg(self, method_name, *args, **kwargs):
41
39
try :
42
40
await self .widget .wait_for_change ('counter' )
43
41
except Exception as e :
44
- self . output . append_stdout ( "wrong wrong: " + str ( e ) + ' \n ' )
42
+ return e
45
43
46
- return self .widget .js_response
44
+ return self .widget .response
47
45
48
46
def __getattr__ (self , method_name ):
49
47
return lambda * x , ** y : self .create_service_msg (method_name , * x , ** y )
@@ -59,12 +57,10 @@ class NaoRobotWidget(DOMWidget):
59
57
_view_module = Unicode (module_name ).tag (sync = True )
60
58
_view_module_version = Unicode (module_version ).tag (sync = True )
61
59
62
- value = Unicode ('Hello World' ).tag (sync = True )
63
60
connected = Unicode ("Disconnected" ).tag (sync = True )
64
61
status = Unicode ("Not busy" ).tag (sync = True )
65
- response = Unicode ("" ).tag (sync = True )
66
62
counter = Integer (0 ).tag (sync = True )
67
- js_response = None
63
+ response = None
68
64
69
65
70
66
def __init__ (self , ** kwargs ):
@@ -74,16 +70,19 @@ def __init__(self, **kwargs):
74
70
75
71
def _handle_frontend_msg (self , model , msg , buffer ):
76
72
print ("Received frontend msg: " , msg )
77
- self .js_response = msg
73
+ self .response = msg
78
74
79
75
80
76
def wait_for_change (widget , value_name ):
81
77
future = asyncio .Future ()
82
78
83
79
def get_value_change (change ):
84
80
widget .unobserve (get_value_change , names = value_name )
85
- future .set_result (widget .js_response )
86
-
81
+ if (widget .response != None ):
82
+ future .set_result (widget .response )
83
+ else :
84
+ future .set_result (change )
85
+
87
86
widget .observe (get_value_change , names = value_name )
88
87
return future
89
88
@@ -96,9 +95,9 @@ def connect(self, ip_address="nao.local", port="80"):
96
95
self .send (data )
97
96
98
97
99
- def service (self , output , service_name ):
98
+ def service (self , service_name ):
100
99
data = {}
101
100
data ["command" ] = str ("createService" )
102
101
data ["service" ] = str (service_name )
103
102
self .send (data )
104
- return NaoRobotService (self , output , service_name )
103
+ return NaoRobotService (self , service_name )
0 commit comments