Skip to content

Commit b84f41e

Browse files
committed
Handle return errors
1 parent 7a5928f commit b84f41e

File tree

2 files changed

+19
-26
lines changed

2 files changed

+19
-26
lines changed

ipynao/nao_robot.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@ class NaoRobotService():
2121
widget = None
2222
output = None
2323

24-
def __init__(self, widget, output, service_name):
24+
def __init__(self, widget, service_name):
2525
self.name = service_name
2626
self.widget = widget
27-
self.output = output
2827

2928
async def create_service_msg(self, method_name, *args, **kwargs):
30-
self.widget._response = None
3129
data = {}
3230
data["command"] = "callService"
3331
data["service"] = str(self.name)
@@ -41,9 +39,9 @@ async def create_service_msg(self, method_name, *args, **kwargs):
4139
try:
4240
await self.widget.wait_for_change('counter')
4341
except Exception as e:
44-
self.output.append_stdout("wrong wrong: " + str(e) + '\n')
42+
return e
4543

46-
return self.widget.js_response
44+
return self.widget.response
4745

4846
def __getattr__(self, method_name):
4947
return lambda *x, **y: self.create_service_msg(method_name, *x, **y)
@@ -59,12 +57,10 @@ class NaoRobotWidget(DOMWidget):
5957
_view_module = Unicode(module_name).tag(sync=True)
6058
_view_module_version = Unicode(module_version).tag(sync=True)
6159

62-
value = Unicode('Hello World').tag(sync=True)
6360
connected = Unicode("Disconnected").tag(sync=True)
6461
status = Unicode("Not busy").tag(sync=True)
65-
response = Unicode("").tag(sync=True)
6662
counter = Integer(0).tag(sync=True)
67-
js_response = None
63+
response = None
6864

6965

7066
def __init__(self, **kwargs):
@@ -74,16 +70,19 @@ def __init__(self, **kwargs):
7470

7571
def _handle_frontend_msg(self, model, msg, buffer):
7672
print("Received frontend msg: ", msg)
77-
self.js_response = msg
73+
self.response = msg
7874

7975

8076
def wait_for_change(widget, value_name):
8177
future = asyncio.Future()
8278

8379
def get_value_change(change):
8480
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+
8786
widget.observe(get_value_change, names=value_name)
8887
return future
8988

@@ -96,9 +95,9 @@ def connect(self, ip_address="nao.local", port="80"):
9695
self.send(data)
9796

9897

99-
def service(self, output, service_name):
98+
def service(self, service_name):
10099
data = {}
101100
data["command"] = str("createService")
102101
data["service"] = str(service_name)
103102
self.send(data)
104-
return NaoRobotService(self, output, service_name)
103+
return NaoRobotService(self, service_name)

src/widget.ts

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,8 @@ export class NaoRobotModel extends DOMWidgetModel {
3535
_view_name: NaoRobotModel.view_name,
3636
_view_module: NaoRobotModel.view_module,
3737
_view_module_version: NaoRobotModel.view_module_version,
38-
value: 'Hello World',
3938
connected: 'Disconnected',
4039
status: 'Not busy',
41-
response: '',
4240
counter: 0,
4341
};
4442
}
@@ -141,29 +139,25 @@ export class NaoRobotModel extends DOMWidgetModel {
141139
return;
142140
}
143141

144-
let serviceResponse;
142+
// let serviceResponse;
145143
this.changeStatus('Running method ' + methodName);
146144

147145
const servicePromise = this._services[serviceName][methodName](...args);
148-
serviceResponse = await servicePromise.then(
146+
await servicePromise.then(
149147
(resolution: any) => {
150148
this.changeStatus('Task completed');
151-
this.set('counter', this.get('counter') + 1);
152-
return resolution;
149+
if (resolution !== undefined) {
150+
this.send(resolution)
151+
}
153152
}
154153
).catch(
155154
(rejection: string) => {
156155
this.changeStatus(rejection);
156+
this.send(rejection);
157157
}
158158
);
159159

160-
161-
if (serviceResponse !== undefined) {
162-
console.log("OOO received response ", serviceResponse);
163-
this.send(serviceResponse);
164-
this.set('status', serviceResponse.toString());
165-
}
166-
160+
this.set('counter', this.get('counter') + 1);
167161
this.save_changes();
168162
}
169163

0 commit comments

Comments
 (0)