1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
var path = require('path');
var Fs = require( path.join(ENV.PATHS.INCLUDE_DIR, 'common', 'fileUtils.js') );
var interfaces = require( path.join(__dirname, 'iface_obj.js') );
const rosSrvName = "/rapp/rapp_audio_processing/set_noise_profile";
function svcImpl(req, resp, ros) {
if (! req.files.file) {
let response = new interfaces.client_res();
response.error = "No image file received";
resp.sendJson(response);
return;
}
var rosMsg = new interfaces.ros_req();
rosMsg.noise_audio_file = req.files.file[0];
rosMsg.audio_file_type = req.body.audio_source;
rosMsg.user = req.username;
function callback(data) {
Fs.rmFile(req.files.file[0]);
var response = parseRosbridgeMsg(data);
resp.sendJson(response);
}
function onerror(e) {
Fs.rmFile(req.files.file[0]);
var response = new interfaces.client_res();
response.error = e;
resp.sendJson(response);
}
ros.callService(rosSrvName, rosMsg, {success: callback, fail: onerror});
}
function parseRosbridgeMsg(rosbridge_msg) {
const error = rosbridge_msg.error;
var response = new interfaces.client_res();
if (error) {
response.error = error;
return response;
}
return response;
}
module.exports = svcImpl;