openc3 5.9.0 → 5.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/openc3/api/limits_api.rb +4 -20
- data/lib/openc3/api/target_api.rb +11 -8
- data/lib/openc3/api/tlm_api.rb +29 -38
- data/lib/openc3/models/auth_model.rb +18 -6
- data/lib/openc3/models/cvt_model.rb +113 -50
- data/lib/openc3/models/target_model.rb +43 -1
- data/lib/openc3/utilities/local_mode.rb +1 -1
- data/lib/openc3/version.rb +5 -5
- data/templates/tool_angular/package.json +2 -2
- data/templates/tool_react/package.json +1 -1
- data/templates/tool_svelte/src/services/openc3-api.js +174 -174
- data/templates/tool_vue/package.json +2 -2
- data/templates/widget/package.json +2 -2
- metadata +2 -2
@@ -20,10 +20,10 @@
|
|
20
20
|
# if purchased from OpenC3, Inc.
|
21
21
|
*/
|
22
22
|
|
23
|
-
import axios from
|
23
|
+
import axios from "./axios.js";
|
24
24
|
|
25
25
|
export class OpenC3Api {
|
26
|
-
id = 1
|
26
|
+
id = 1;
|
27
27
|
|
28
28
|
constructor() {}
|
29
29
|
|
@@ -31,20 +31,20 @@ export class OpenC3Api {
|
|
31
31
|
try {
|
32
32
|
let refreshed = await OpenC3Auth.updateToken(
|
33
33
|
OpenC3Auth.defaultMinValidity
|
34
|
-
)
|
34
|
+
);
|
35
35
|
if (refreshed) {
|
36
|
-
OpenC3Auth.setTokens()
|
36
|
+
OpenC3Auth.setTokens();
|
37
37
|
}
|
38
38
|
} catch (error) {
|
39
|
-
OpenC3Auth.login()
|
39
|
+
OpenC3Auth.login();
|
40
40
|
}
|
41
|
-
this.id = this.id + 1
|
41
|
+
this.id = this.id + 1;
|
42
42
|
try {
|
43
|
-
kwparams[
|
43
|
+
kwparams["scope"] = window.openc3Scope;
|
44
44
|
const response = await axios.post(
|
45
|
-
|
45
|
+
"/openc3-api/api",
|
46
46
|
{
|
47
|
-
jsonrpc:
|
47
|
+
jsonrpc: "2.0",
|
48
48
|
method: method,
|
49
49
|
params: params,
|
50
50
|
id: this.id,
|
@@ -53,11 +53,11 @@ export class OpenC3Api {
|
|
53
53
|
{
|
54
54
|
headers: {
|
55
55
|
Authorization: localStorage.openc3Token,
|
56
|
-
|
56
|
+
"Content-Type": "application/json-rpc",
|
57
57
|
...headerOptions,
|
58
58
|
},
|
59
59
|
}
|
60
|
-
)
|
60
|
+
);
|
61
61
|
// var data = response.data
|
62
62
|
// if (data.error) {
|
63
63
|
// var err = new Error()
|
@@ -66,53 +66,53 @@ export class OpenC3Api {
|
|
66
66
|
// console.log(data.error.data.backtrace.join('\n'))
|
67
67
|
// throw err
|
68
68
|
// }
|
69
|
-
return response.data.result
|
69
|
+
return response.data.result;
|
70
70
|
} catch (error) {
|
71
|
-
var err = new Error()
|
71
|
+
var err = new Error();
|
72
72
|
if (error.response) {
|
73
73
|
// The request was made and the server responded with a
|
74
74
|
// status code that falls out of the range of 2xx
|
75
|
-
err.name = error.response.data.error.data.class
|
76
|
-
err.message = error.response.data.error.data.message
|
75
|
+
err.name = error.response.data.error.data.class;
|
76
|
+
err.message = error.response.data.error.data.message;
|
77
77
|
} else if (error.request) {
|
78
78
|
// The request was made but no response was received, `error.request`
|
79
79
|
// is an instance of XMLHttpRequest in the browser and an instance
|
80
80
|
// of http.ClientRequest in Node.js
|
81
|
-
err.name =
|
82
|
-
err.message =
|
81
|
+
err.name = "Request error";
|
82
|
+
err.message = "Request error, no response received";
|
83
83
|
} else {
|
84
84
|
// Something happened in setting up the request and triggered an Error
|
85
|
-
err.name =
|
85
|
+
err.name = "Unknown error";
|
86
86
|
}
|
87
87
|
// console.log(error)
|
88
|
-
throw err
|
88
|
+
throw err;
|
89
89
|
}
|
90
90
|
}
|
91
91
|
|
92
92
|
decode_openc3_type(val) {
|
93
|
-
if (val !== null && typeof val ===
|
94
|
-
if (val.json_class ==
|
95
|
-
if (val.raw ==
|
96
|
-
return NaN
|
97
|
-
} else if (val.raw ==
|
98
|
-
return Infinity
|
99
|
-
} else if (val.raw ==
|
100
|
-
return -Infinity
|
93
|
+
if (val !== null && typeof val === "object") {
|
94
|
+
if (val.json_class == "Float" && val.raw) {
|
95
|
+
if (val.raw == "NaN") {
|
96
|
+
return NaN;
|
97
|
+
} else if (val.raw == "Infinity") {
|
98
|
+
return Infinity;
|
99
|
+
} else if (val.raw == "-Infinity") {
|
100
|
+
return -Infinity;
|
101
101
|
}
|
102
102
|
}
|
103
103
|
}
|
104
|
-
return null
|
104
|
+
return null;
|
105
105
|
}
|
106
106
|
|
107
107
|
encode_openc3_type(val) {
|
108
108
|
if (Number.isNaN(val)) {
|
109
|
-
return { json_class:
|
109
|
+
return { json_class: "Float", raw: "NaN" };
|
110
110
|
} else if (val == Number.POSITIVE_INFINITY) {
|
111
|
-
return { json_class:
|
111
|
+
return { json_class: "Float", raw: "Infinity" };
|
112
112
|
} else if (val == Number.NEGATIVE_INFINITY) {
|
113
|
-
return { json_class:
|
113
|
+
return { json_class: "Float", raw: "-Infinity" };
|
114
114
|
}
|
115
|
-
return null
|
115
|
+
return null;
|
116
116
|
}
|
117
117
|
|
118
118
|
ensure_offline_access() {
|
@@ -120,13 +120,13 @@ export class OpenC3Api {
|
|
120
120
|
if (needed) {
|
121
121
|
if (localStorage.openc3OfflineToken) {
|
122
122
|
this.set_offline_access(localStorage.openc3OfflineToken).then(() => {
|
123
|
-
delete localStorage.openc3OfflineToken
|
124
|
-
})
|
123
|
+
delete localStorage.openc3OfflineToken;
|
124
|
+
});
|
125
125
|
} else {
|
126
|
-
OpenC3Auth.getOfflineAccess()
|
126
|
+
OpenC3Auth.getOfflineAccess();
|
127
127
|
}
|
128
128
|
}
|
129
|
-
})
|
129
|
+
});
|
130
130
|
}
|
131
131
|
|
132
132
|
// ***********************************************
|
@@ -134,123 +134,123 @@ export class OpenC3Api {
|
|
134
134
|
// ***********************************************
|
135
135
|
|
136
136
|
offline_access_needed() {
|
137
|
-
return this.exec(
|
137
|
+
return this.exec("offline_access_needed", []);
|
138
138
|
}
|
139
139
|
|
140
140
|
set_offline_access(offline_access_token) {
|
141
|
-
return this.exec(
|
141
|
+
return this.exec("set_offline_access", [offline_access_token]);
|
142
142
|
}
|
143
143
|
|
144
144
|
get_all_interface_info() {
|
145
|
-
return this.exec(
|
145
|
+
return this.exec("get_all_interface_info", []);
|
146
146
|
}
|
147
147
|
|
148
148
|
map_target_to_interface(target_name, interface_name) {
|
149
|
-
return this.exec(
|
149
|
+
return this.exec("map_target_to_interface", [target_name, interface_name]);
|
150
150
|
}
|
151
151
|
|
152
152
|
connect_interface(interface_name, ...interface_params) {
|
153
153
|
if (interface_params.length > 0) {
|
154
|
-
return this.exec(
|
154
|
+
return this.exec("connect_interface", [
|
155
155
|
interface_name,
|
156
156
|
...interface_params,
|
157
|
-
])
|
157
|
+
]);
|
158
158
|
} else {
|
159
|
-
return this.exec(
|
159
|
+
return this.exec("connect_interface", [interface_name]);
|
160
160
|
}
|
161
161
|
}
|
162
162
|
|
163
163
|
disconnect_interface(interface_name) {
|
164
|
-
return this.exec(
|
164
|
+
return this.exec("disconnect_interface", [interface_name]);
|
165
165
|
}
|
166
166
|
|
167
167
|
get_all_router_info() {
|
168
|
-
return this.exec(
|
168
|
+
return this.exec("get_all_router_info", []);
|
169
169
|
}
|
170
170
|
|
171
171
|
connect_router(router_name) {
|
172
|
-
return this.exec(
|
172
|
+
return this.exec("connect_router", [router_name]);
|
173
173
|
}
|
174
174
|
|
175
175
|
disconnect_router(router_name) {
|
176
|
-
return this.exec(
|
176
|
+
return this.exec("disconnect_router", [router_name]);
|
177
177
|
}
|
178
178
|
|
179
179
|
get_target_interfaces() {
|
180
|
-
return this.exec(
|
180
|
+
return this.exec("get_target_interfaces", []);
|
181
181
|
}
|
182
182
|
|
183
183
|
// DEPRECATED
|
184
184
|
get_all_target_info() {
|
185
|
-
return this.exec(
|
185
|
+
return this.exec("get_all_target_info", []);
|
186
186
|
}
|
187
187
|
|
188
188
|
get_tlm_cnts(target_commands) {
|
189
|
-
return this.exec(
|
189
|
+
return this.exec("get_tlm_cnts", [target_commands]);
|
190
190
|
}
|
191
191
|
|
192
192
|
get_item(target, packet, item) {
|
193
|
-
return this.exec(
|
193
|
+
return this.exec("get_item", [target, packet, item]);
|
194
194
|
}
|
195
195
|
|
196
196
|
get_parameter(target, packet, item) {
|
197
|
-
return this.exec(
|
197
|
+
return this.exec("get_parameter", [target, packet, item]);
|
198
198
|
}
|
199
199
|
|
200
200
|
get_all_packet_logger_info() {
|
201
|
-
return this.exec(
|
201
|
+
return this.exec("get_all_packet_logger_info", []);
|
202
202
|
}
|
203
203
|
|
204
204
|
start_logging() {
|
205
|
-
return this.exec(
|
205
|
+
return this.exec("start_logging", []);
|
206
206
|
}
|
207
207
|
|
208
208
|
stop_logging() {
|
209
|
-
return this.exec(
|
209
|
+
return this.exec("stop_logging", []);
|
210
210
|
}
|
211
211
|
|
212
212
|
start_cmd_log(log_writer_name) {
|
213
|
-
return this.exec(
|
213
|
+
return this.exec("start_cmd_log", [log_writer_name]);
|
214
214
|
}
|
215
215
|
|
216
216
|
start_tlm_log(log_writer_name) {
|
217
|
-
return this.exec(
|
217
|
+
return this.exec("start_tlm_log", [log_writer_name]);
|
218
218
|
}
|
219
219
|
|
220
220
|
stop_cmd_log(log_writer_name) {
|
221
|
-
return this.exec(
|
221
|
+
return this.exec("stop_cmd_log", [log_writer_name]);
|
222
222
|
}
|
223
223
|
|
224
224
|
stop_tlm_log(log_writer_name) {
|
225
|
-
return this.exec(
|
225
|
+
return this.exec("stop_tlm_log", [log_writer_name]);
|
226
226
|
}
|
227
227
|
|
228
228
|
get_server_status() {
|
229
|
-
return this.exec(
|
229
|
+
return this.exec("get_server_status", []);
|
230
230
|
}
|
231
231
|
|
232
232
|
get_limits_sets() {
|
233
|
-
return this.exec(
|
233
|
+
return this.exec("get_limits_sets", []);
|
234
234
|
}
|
235
235
|
|
236
236
|
get_limits_set() {
|
237
|
-
return this.exec(
|
237
|
+
return this.exec("get_limits_set", []);
|
238
238
|
}
|
239
239
|
|
240
240
|
set_limits_set(limits_set) {
|
241
|
-
return this.exec(
|
241
|
+
return this.exec("set_limits_set", [limits_set]);
|
242
242
|
}
|
243
243
|
|
244
244
|
get_background_tasks() {
|
245
|
-
return this.exec(
|
245
|
+
return this.exec("get_background_tasks", []);
|
246
246
|
}
|
247
247
|
|
248
248
|
start_background_task(name) {
|
249
|
-
return this.exec(
|
249
|
+
return this.exec("start_background_task", [name]);
|
250
250
|
}
|
251
251
|
|
252
252
|
stop_background_task(name) {
|
253
|
-
return this.exec(
|
253
|
+
return this.exec("stop_background_task", [name]);
|
254
254
|
}
|
255
255
|
|
256
256
|
// ***********************************************
|
@@ -258,179 +258,179 @@ export class OpenC3Api {
|
|
258
258
|
// ***********************************************
|
259
259
|
|
260
260
|
get_target(target_name) {
|
261
|
-
return this.exec(
|
261
|
+
return this.exec("get_target", [target_name]);
|
262
262
|
}
|
263
263
|
|
264
|
-
|
265
|
-
return this.exec(
|
264
|
+
get_target_names() {
|
265
|
+
return this.exec("get_target_names", []);
|
266
266
|
}
|
267
267
|
|
268
268
|
get_telemetry(target_name, packet_name) {
|
269
|
-
return this.exec(
|
269
|
+
return this.exec("get_telemetry", [target_name, packet_name]);
|
270
270
|
}
|
271
271
|
|
272
272
|
get_all_telemetry(target_name) {
|
273
|
-
return this.exec(
|
273
|
+
return this.exec("get_all_telemetry", [target_name]);
|
274
274
|
}
|
275
275
|
|
276
276
|
get_all_telemetry_names(target_name) {
|
277
|
-
return this.exec(
|
277
|
+
return this.exec("get_all_telemetry_names", [target_name]);
|
278
278
|
}
|
279
279
|
|
280
280
|
async get_tlm_packet(target_name, packet_name, value_type, stale_time = 30) {
|
281
|
-
const data = await this.exec(
|
281
|
+
const data = await this.exec("get_tlm_packet", [target_name, packet_name], {
|
282
282
|
type: value_type,
|
283
283
|
stale_time: stale_time,
|
284
|
-
})
|
284
|
+
});
|
285
285
|
// Make sure data isn't null or undefined. Note this is the only valid use of == or !=
|
286
286
|
if (data != null) {
|
287
|
-
var len = data.length
|
288
|
-
var converted = null
|
287
|
+
var len = data.length;
|
288
|
+
var converted = null;
|
289
289
|
for (var i = 0; i < len; i++) {
|
290
|
-
converted = this.decode_openc3_type(data[i][1])
|
290
|
+
converted = this.decode_openc3_type(data[i][1]);
|
291
291
|
if (converted !== null) {
|
292
|
-
data[i][1] = converted
|
292
|
+
data[i][1] = converted;
|
293
293
|
}
|
294
294
|
}
|
295
295
|
}
|
296
|
-
return data
|
296
|
+
return data;
|
297
297
|
}
|
298
298
|
|
299
299
|
get_packet_derived_items(target_name, packet_name) {
|
300
|
-
return this.exec(
|
300
|
+
return this.exec("get_packet_derived_items", [target_name, packet_name]);
|
301
301
|
}
|
302
302
|
|
303
303
|
get_tlm_buffer(target_name, packet_name) {
|
304
|
-
return this.exec(
|
304
|
+
return this.exec("get_tlm_buffer", [target_name, packet_name]);
|
305
305
|
}
|
306
306
|
|
307
307
|
async get_tlm_values(items, stale_time = 30) {
|
308
|
-
const data = await this.exec(
|
308
|
+
const data = await this.exec("get_tlm_values", [items], {
|
309
309
|
stale_time: stale_time,
|
310
|
-
})
|
311
|
-
var len = data[0].length
|
312
|
-
var converted = null
|
310
|
+
});
|
311
|
+
var len = data[0].length;
|
312
|
+
var converted = null;
|
313
313
|
for (var i = 0; i < len; i++) {
|
314
|
-
converted = this.decode_openc3_type(data[0][i])
|
314
|
+
converted = this.decode_openc3_type(data[0][i]);
|
315
315
|
if (converted !== null) {
|
316
|
-
data[0][i] = converted
|
316
|
+
data[0][i] = converted;
|
317
317
|
}
|
318
318
|
}
|
319
|
-
return data
|
319
|
+
return data;
|
320
320
|
}
|
321
321
|
|
322
322
|
get_limits(target_name, packet_name, item_name) {
|
323
|
-
return this.exec(
|
323
|
+
return this.exec("get_limits", [target_name, packet_name, item_name]);
|
324
324
|
}
|
325
325
|
|
326
|
-
async tlm(target_name, packet_name, item_name, value_type =
|
327
|
-
let data = null
|
326
|
+
async tlm(target_name, packet_name, item_name, value_type = "CONVERTED") {
|
327
|
+
let data = null;
|
328
328
|
// Check for the single string syntax: tlm("TGT PKT ITEM")
|
329
329
|
if (packet_name === undefined) {
|
330
|
-
data = await this.exec(
|
330
|
+
data = await this.exec("tlm", [target_name]);
|
331
331
|
// Check for the single string syntax with type: tlm("TGT PKT ITEM", "RAW")
|
332
332
|
} else if (item_name === undefined) {
|
333
333
|
if (
|
334
|
-
[
|
334
|
+
["RAW", "CONVERTED", "FORMATTED", "WITH_UNITS"].includes(packet_name)
|
335
335
|
) {
|
336
|
-
data = await this.exec(
|
336
|
+
data = await this.exec("tlm", [target_name], { type: packet_name });
|
337
337
|
} else {
|
338
|
-
var err = new Error()
|
339
|
-
err.name =
|
340
|
-
err.message = `Invalid data type ${packet_name}. Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS
|
341
|
-
throw err
|
338
|
+
var err = new Error();
|
339
|
+
err.name = "TypeError";
|
340
|
+
err.message = `Invalid data type ${packet_name}. Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS.`;
|
341
|
+
throw err;
|
342
342
|
}
|
343
343
|
} else {
|
344
|
-
data = await this.exec(
|
344
|
+
data = await this.exec("tlm", [target_name, packet_name, item_name], {
|
345
345
|
type: value_type,
|
346
|
-
})
|
346
|
+
});
|
347
347
|
}
|
348
|
-
var converted = this.decode_openc3_type(data)
|
348
|
+
var converted = this.decode_openc3_type(data);
|
349
349
|
if (converted !== null) {
|
350
|
-
data = converted
|
350
|
+
data = converted;
|
351
351
|
}
|
352
|
-
return data
|
352
|
+
return data;
|
353
353
|
}
|
354
354
|
|
355
355
|
async inject_tlm(
|
356
356
|
target_name,
|
357
357
|
packet_name,
|
358
358
|
item_hash = null,
|
359
|
-
value_type =
|
359
|
+
value_type = "CONVERTED"
|
360
360
|
) {
|
361
361
|
data = await this.exec(
|
362
|
-
|
362
|
+
"inject_tlm",
|
363
363
|
[target_name, packet_name, item_hash],
|
364
364
|
{
|
365
365
|
type: value_type,
|
366
366
|
}
|
367
|
-
)
|
367
|
+
);
|
368
368
|
}
|
369
369
|
|
370
370
|
set_tlm(target_name, packet_name, item_name, value_type) {
|
371
|
-
return this.exec(
|
371
|
+
return this.exec("set_tlm", [target_name, packet_name, item_name], {
|
372
372
|
type: value_type,
|
373
|
-
})
|
373
|
+
});
|
374
374
|
}
|
375
375
|
|
376
376
|
override_tlm(target_name, packet_name, item_name, value_type) {
|
377
|
-
return this.exec(
|
377
|
+
return this.exec("override_tlm", [target_name, packet_name, item_name], {
|
378
378
|
type: value_type,
|
379
|
-
})
|
379
|
+
});
|
380
380
|
}
|
381
381
|
|
382
382
|
get_overrides() {
|
383
|
-
return this.exec(
|
383
|
+
return this.exec("get_overrides");
|
384
384
|
}
|
385
385
|
|
386
386
|
normalize_tlm(target_name, packet_name, item_name, value_type) {
|
387
|
-
return this.exec(
|
387
|
+
return this.exec("normalize_tlm", [target_name, packet_name, item_name], {
|
388
388
|
type: value_type,
|
389
|
-
})
|
389
|
+
});
|
390
390
|
}
|
391
391
|
|
392
392
|
get_all_commands(target_name) {
|
393
|
-
return this.exec(
|
393
|
+
return this.exec("get_all_commands", [target_name]);
|
394
394
|
}
|
395
395
|
|
396
396
|
get_all_command_names(target_name) {
|
397
|
-
return this.exec(
|
397
|
+
return this.exec("get_all_command_names", [target_name]);
|
398
398
|
}
|
399
399
|
|
400
400
|
get_command(target_name, command_name) {
|
401
|
-
return this.exec(
|
401
|
+
return this.exec("get_command", [target_name, command_name]);
|
402
402
|
}
|
403
403
|
|
404
404
|
get_cmd_cnts(target_commands) {
|
405
|
-
return this.exec(
|
405
|
+
return this.exec("get_cmd_cnts", [target_commands]);
|
406
406
|
}
|
407
407
|
|
408
408
|
get_cmd_value(
|
409
409
|
target_name,
|
410
410
|
packet_name,
|
411
411
|
parameter_name,
|
412
|
-
value_type =
|
412
|
+
value_type = "CONVERTED"
|
413
413
|
) {
|
414
|
-
return this.exec(
|
414
|
+
return this.exec("get_cmd_value", [
|
415
415
|
target_name,
|
416
416
|
packet_name,
|
417
417
|
parameter_name,
|
418
418
|
value_type,
|
419
|
-
])
|
419
|
+
]);
|
420
420
|
}
|
421
421
|
|
422
422
|
get_cmd_buffer(target_name, packet_name) {
|
423
|
-
return this.exec(
|
423
|
+
return this.exec("get_cmd_buffer", [target_name, packet_name]);
|
424
424
|
}
|
425
425
|
|
426
426
|
// Implementation of functionality shared by cmd methods with param_lists.
|
427
427
|
_cmd(method, target_name, command_name, param_list, headerOptions) {
|
428
|
-
var converted = null
|
428
|
+
var converted = null;
|
429
429
|
for (var key in param_list) {
|
430
430
|
if (Object.prototype.hasOwnProperty.call(param_list, key)) {
|
431
|
-
converted = this.encode_openc3_type(param_list[key])
|
431
|
+
converted = this.encode_openc3_type(param_list[key]);
|
432
432
|
if (converted !== null) {
|
433
|
-
param_list[key] = converted
|
433
|
+
param_list[key] = converted;
|
434
434
|
}
|
435
435
|
}
|
436
436
|
}
|
@@ -439,208 +439,208 @@ export class OpenC3Api {
|
|
439
439
|
[target_name, command_name, param_list],
|
440
440
|
{},
|
441
441
|
headerOptions
|
442
|
-
)
|
442
|
+
);
|
443
443
|
}
|
444
444
|
|
445
445
|
get_cmd_hazardous(target_name, command_name, param_list) {
|
446
446
|
if (command_name === undefined) {
|
447
|
-
return this.exec(
|
447
|
+
return this.exec("get_cmd_hazardous", target_name);
|
448
448
|
} else {
|
449
449
|
return this._cmd(
|
450
|
-
|
450
|
+
"get_cmd_hazardous",
|
451
451
|
target_name,
|
452
452
|
command_name,
|
453
453
|
param_list
|
454
|
-
)
|
454
|
+
);
|
455
455
|
}
|
456
456
|
}
|
457
457
|
|
458
458
|
cmd(target_name, command_name, param_list, headerOptions = {}) {
|
459
459
|
if (command_name === undefined) {
|
460
|
-
return this.exec(
|
460
|
+
return this.exec("cmd", target_name, {}, headerOptions);
|
461
461
|
} else {
|
462
462
|
return this._cmd(
|
463
|
-
|
463
|
+
"cmd",
|
464
464
|
target_name,
|
465
465
|
command_name,
|
466
466
|
param_list,
|
467
467
|
headerOptions
|
468
|
-
)
|
468
|
+
);
|
469
469
|
}
|
470
470
|
}
|
471
471
|
|
472
472
|
cmd_no_range_check(target_name, command_name, param_list) {
|
473
473
|
if (command_name === undefined) {
|
474
|
-
return this.exec(
|
474
|
+
return this.exec("cmd_no_range_check", target_name);
|
475
475
|
} else {
|
476
476
|
return this._cmd(
|
477
|
-
|
477
|
+
"cmd_no_range_check",
|
478
478
|
target_name,
|
479
479
|
command_name,
|
480
480
|
param_list
|
481
|
-
)
|
481
|
+
);
|
482
482
|
}
|
483
483
|
}
|
484
484
|
|
485
485
|
cmd_raw(target_name, command_name, param_list) {
|
486
486
|
if (command_name === undefined) {
|
487
|
-
return this.exec(
|
487
|
+
return this.exec("cmd_raw", target_name);
|
488
488
|
} else {
|
489
|
-
return this._cmd(
|
489
|
+
return this._cmd("cmd_raw", target_name, command_name, param_list);
|
490
490
|
}
|
491
491
|
}
|
492
492
|
|
493
493
|
cmd_raw_no_range_check(target_name, command_name, param_list) {
|
494
494
|
if (command_name === undefined) {
|
495
|
-
return this.exec(
|
495
|
+
return this.exec("cmd_raw_no_range_check", target_name);
|
496
496
|
} else {
|
497
497
|
return this._cmd(
|
498
|
-
|
498
|
+
"cmd_raw_no_range_check",
|
499
499
|
target_name,
|
500
500
|
command_name,
|
501
501
|
param_list
|
502
|
-
)
|
502
|
+
);
|
503
503
|
}
|
504
504
|
}
|
505
505
|
|
506
506
|
cmd_no_hazardous_check(target_name, command_name, param_list) {
|
507
507
|
if (command_name === undefined) {
|
508
|
-
return this.exec(
|
508
|
+
return this.exec("cmd_no_hazardous_check", target_name);
|
509
509
|
} else {
|
510
510
|
return this._cmd(
|
511
|
-
|
511
|
+
"cmd_no_hazardous_check",
|
512
512
|
target_name,
|
513
513
|
command_name,
|
514
514
|
param_list
|
515
|
-
)
|
515
|
+
);
|
516
516
|
}
|
517
517
|
}
|
518
518
|
|
519
519
|
cmd_no_checks(target_name, command_name, param_list) {
|
520
520
|
if (command_name === undefined) {
|
521
|
-
return this.exec(
|
521
|
+
return this.exec("cmd_no_checks", target_name);
|
522
522
|
} else {
|
523
|
-
return this._cmd(
|
523
|
+
return this._cmd("cmd_no_checks", target_name, command_name, param_list);
|
524
524
|
}
|
525
525
|
}
|
526
526
|
|
527
527
|
cmd_raw_no_hazardous_check(target_name, command_name, param_list) {
|
528
528
|
if (command_name === undefined) {
|
529
|
-
return this.exec(
|
529
|
+
return this.exec("cmd_raw_no_hazardous_check", target_name);
|
530
530
|
} else {
|
531
531
|
return this._cmd(
|
532
|
-
|
532
|
+
"cmd_raw_no_hazardous_check",
|
533
533
|
target_name,
|
534
534
|
command_name,
|
535
535
|
param_list
|
536
|
-
)
|
536
|
+
);
|
537
537
|
}
|
538
538
|
}
|
539
539
|
|
540
540
|
cmd_raw_no_checks(target_name, command_name, param_list) {
|
541
541
|
if (command_name === undefined) {
|
542
|
-
return this.exec(
|
542
|
+
return this.exec("cmd_raw_no_checks", target_name);
|
543
543
|
} else {
|
544
544
|
return this._cmd(
|
545
|
-
|
545
|
+
"cmd_raw_no_checks",
|
546
546
|
target_name,
|
547
547
|
command_name,
|
548
548
|
param_list
|
549
|
-
)
|
549
|
+
);
|
550
550
|
}
|
551
551
|
}
|
552
552
|
|
553
553
|
build_command(target_name, command_name, param_list) {
|
554
554
|
if (command_name === undefined) {
|
555
|
-
return this.exec(
|
555
|
+
return this.exec("build_command", target_name);
|
556
556
|
} else {
|
557
|
-
return this._cmd(
|
557
|
+
return this._cmd("build_command", target_name, command_name, param_list);
|
558
558
|
}
|
559
559
|
}
|
560
560
|
|
561
561
|
get_interface_names() {
|
562
|
-
return this.exec(
|
562
|
+
return this.exec("get_interface_names", []);
|
563
563
|
}
|
564
564
|
|
565
565
|
send_raw(interface_name, data) {
|
566
|
-
return this.exec(
|
566
|
+
return this.exec("send_raw", [interface_name, data]);
|
567
567
|
}
|
568
568
|
|
569
569
|
list_configs(tool) {
|
570
|
-
return this.exec(
|
570
|
+
return this.exec("list_configs", [tool]);
|
571
571
|
}
|
572
572
|
|
573
573
|
load_config(tool, name) {
|
574
|
-
return this.exec(
|
574
|
+
return this.exec("load_config", [tool, name]);
|
575
575
|
}
|
576
576
|
|
577
577
|
save_config(tool, name, data) {
|
578
|
-
return this.exec(
|
578
|
+
return this.exec("save_config", [tool, name, data]);
|
579
579
|
}
|
580
580
|
|
581
581
|
delete_config(tool, name) {
|
582
|
-
return this.exec(
|
582
|
+
return this.exec("delete_config", [tool, name]);
|
583
583
|
}
|
584
584
|
|
585
585
|
enable_limits(target, packet, item) {
|
586
|
-
return this.exec(
|
586
|
+
return this.exec("enable_limits", [target, packet, item]);
|
587
587
|
}
|
588
588
|
|
589
589
|
disable_limits(target, packet, item) {
|
590
|
-
return this.exec(
|
590
|
+
return this.exec("disable_limits", [target, packet, item]);
|
591
591
|
}
|
592
592
|
|
593
593
|
get_out_of_limits() {
|
594
|
-
return this.exec(
|
594
|
+
return this.exec("get_out_of_limits", []);
|
595
595
|
}
|
596
596
|
|
597
597
|
get_overall_limits_state(ignored) {
|
598
|
-
return this.exec(
|
598
|
+
return this.exec("get_overall_limits_state", [ignored]);
|
599
599
|
}
|
600
600
|
|
601
601
|
list_settings() {
|
602
|
-
return this.exec(
|
602
|
+
return this.exec("list_settings", []);
|
603
603
|
}
|
604
604
|
|
605
605
|
get_all_settings() {
|
606
|
-
return this.exec(
|
606
|
+
return this.exec("get_all_settings", []);
|
607
607
|
}
|
608
608
|
|
609
609
|
get_setting(name) {
|
610
|
-
return this.exec(
|
610
|
+
return this.exec("get_setting", [name]);
|
611
611
|
}
|
612
612
|
|
613
613
|
get_settings(array) {
|
614
|
-
return this.exec(
|
614
|
+
return this.exec("get_settings", array);
|
615
615
|
}
|
616
616
|
|
617
617
|
save_setting(name, data) {
|
618
|
-
return this.exec(
|
618
|
+
return this.exec("save_setting", [name, data]);
|
619
619
|
}
|
620
620
|
|
621
621
|
get_metrics() {
|
622
|
-
return this.exec(
|
622
|
+
return this.exec("get_metrics", []);
|
623
623
|
}
|
624
624
|
|
625
625
|
// TODO: Currently unused but seemed like a useful function
|
626
626
|
async hashString(string) {
|
627
627
|
if (window.isSecureContext) {
|
628
628
|
// Encode the string as an arrayBuffer which the subtle crypto API uses
|
629
|
-
const arrayBuffer = new TextEncoder().encode(string)
|
629
|
+
const arrayBuffer = new TextEncoder().encode(string);
|
630
630
|
// Use the subtle crypto API to perform a SHA256 Sum of the array buffer
|
631
631
|
// The resulting hash is stored in an array buffer
|
632
632
|
const hashAsArrayBuffer = await crypto.subtle.digest(
|
633
|
-
|
633
|
+
"SHA-256",
|
634
634
|
arrayBuffer
|
635
|
-
)
|
635
|
+
);
|
636
636
|
// To create a string we will get the hexadecimal value of each byte of the array buffer
|
637
637
|
// This gets us an array where each byte of the array buffer becomes one item in the array
|
638
|
-
const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer)
|
638
|
+
const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer);
|
639
639
|
// We then convert it to a regular array so we can convert each item to hexadecimal strings
|
640
640
|
// Where to characters of 0-9 or a-f represent a number between 0 and 16, containing 4 bits of information, so 2 of them is 8 bits (1 byte).
|
641
641
|
return Array.from(uint8ViewOfHash)
|
642
|
-
.map((b) => b.toString(16).padStart(2,
|
643
|
-
.join(
|
642
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
643
|
+
.join("");
|
644
644
|
}
|
645
645
|
// else ?
|
646
646
|
}
|