@digipair/skill-mybuddy 0.23.10 → 0.23.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js CHANGED
@@ -8,6 +8,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
8
8
 
9
9
  var mybuddy__default = /*#__PURE__*/_interopDefaultLegacy(mybuddy);
10
10
 
11
+ const TIMEOUT_READ_COMMANDS = 1000;
11
12
  let MyBuddyService = class MyBuddyService {
12
13
  async connect(params, context) {
13
14
  var _context_privates_MY_BUDDY;
@@ -51,15 +52,23 @@ let MyBuddyService = class MyBuddyService {
51
52
  return result;
52
53
  }
53
54
  async sendAngle(params, _pinsSettingsList, context) {
54
- const { device, id = 1, degree = 0, speed = 60 } = params;
55
+ const { device, id, degree, speed = 50 } = params;
55
56
  const connection = await this.connect(params, context);
56
57
  const result = connection.write(mybuddy__default["default"].sendAngle(device, id, degree, speed));
57
58
  await new Promise((resolve)=>setTimeout(resolve, 50));
58
59
  connection.close();
59
60
  return result;
60
61
  }
62
+ async sendCoord(params, _pinsSettingsList, context) {
63
+ const { device, id, coord, speed = 50 } = params;
64
+ const connection = await this.connect(params, context);
65
+ const result = connection.write(mybuddy__default["default"].sendCoord(device, id, coord, speed));
66
+ await new Promise((resolve)=>setTimeout(resolve, 50));
67
+ connection.close();
68
+ return result;
69
+ }
61
70
  async sendCoords(params, _pinsSettingsList, context) {
62
- const { device, coords, speed, mode } = params;
71
+ const { device, coords, speed = 50, mode = 0 } = params;
63
72
  const connection = await this.connect(params, context);
64
73
  const result = connection.write(mybuddy__default["default"].sendCoords(device, coords, speed, mode));
65
74
  await new Promise((resolve)=>setTimeout(resolve, 50));
@@ -228,224 +237,326 @@ let MyBuddyService = class MyBuddyService {
228
237
  // Data Retrieval
229
238
  async getAngles(params, _pinsSettingsList, context) {
230
239
  const { device } = params;
231
- let data = null;
232
240
  const connection = await this.connect(params, context);
233
- connection.on('data', (data)=>{
234
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_ANGLES, 16)) {
235
- data = mybuddy__default["default"].processReceived(data);
241
+ return new Promise((resolve, reject)=>{
242
+ const timeoutId = setTimeout(()=>{
236
243
  connection.close();
237
- }
244
+ reject('TIMEOUT_READ_COMMANDS');
245
+ }, TIMEOUT_READ_COMMANDS);
246
+ connection.on('data', (data)=>{
247
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_ANGLES, 16)) {
248
+ clearTimeout(timeoutId);
249
+ const result = mybuddy__default["default"].processReceived(data);
250
+ connection.close();
251
+ resolve(result);
252
+ }
253
+ });
254
+ connection.write(mybuddy__default["default"].getAngles(device));
238
255
  });
239
- connection.write(mybuddy__default["default"].getAngles(device));
240
- return data;
241
256
  }
242
257
  async isPowerOn(params, _pinsSettingsList, context) {
243
258
  const { device } = params;
244
- let data = null;
245
259
  const connection = await this.connect(params, context);
246
- connection.on('data', (data)=>{
247
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_POWER_ON, 16)) {
248
- data = mybuddy__default["default"].processReceived(data);
260
+ return new Promise((resolve, reject)=>{
261
+ const timeoutId = setTimeout(()=>{
249
262
  connection.close();
250
- }
263
+ reject('TIMEOUT_READ_COMMANDS');
264
+ }, TIMEOUT_READ_COMMANDS);
265
+ connection.on('data', (data)=>{
266
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_POWER_ON, 16)) {
267
+ clearTimeout(timeoutId);
268
+ const result = mybuddy__default["default"].processReceived(data);
269
+ connection.close();
270
+ resolve(result);
271
+ }
272
+ });
273
+ connection.write(mybuddy__default["default"].isPowerOn(device));
251
274
  });
252
- connection.write(mybuddy__default["default"].isPowerOn(device));
253
- return data;
254
275
  }
255
276
  async isControllerConnect(params, _pinsSettingsList, context) {
256
277
  const { device } = params;
257
- let data = null;
258
278
  const connection = await this.connect(params, context);
259
- connection.on('data', (data)=>{
260
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_CONTROLLER_CONNECTED, 16)) {
261
- data = mybuddy__default["default"].processReceived(data);
279
+ return new Promise((resolve, reject)=>{
280
+ const timeoutId = setTimeout(()=>{
262
281
  connection.close();
263
- }
282
+ reject('TIMEOUT_READ_COMMANDS');
283
+ }, TIMEOUT_READ_COMMANDS);
284
+ connection.on('data', (data)=>{
285
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_CONTROLLER_CONNECTED, 16)) {
286
+ clearTimeout(timeoutId);
287
+ const result = mybuddy__default["default"].processReceived(data);
288
+ connection.close();
289
+ resolve(result);
290
+ }
291
+ });
292
+ connection.write(mybuddy__default["default"].isControllerConnect());
264
293
  });
265
- connection.write(mybuddy__default["default"].isControllerConnect());
266
- return data;
267
294
  }
268
295
  async getCoords(params, _pinsSettingsList, context) {
269
296
  const { device } = params;
270
- let data = null;
271
297
  const connection = await this.connect(params, context);
272
- connection.on('data', (data)=>{
273
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_COORDS, 16)) {
274
- data = mybuddy__default["default"].processReceived(data);
298
+ return new Promise((resolve, reject)=>{
299
+ const timeoutId = setTimeout(()=>{
275
300
  connection.close();
276
- }
301
+ reject('TIMEOUT_READ_COMMANDS');
302
+ }, TIMEOUT_READ_COMMANDS);
303
+ connection.on('data', (data)=>{
304
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_COORDS, 16)) {
305
+ clearTimeout(timeoutId);
306
+ const result = mybuddy__default["default"].processReceived(data);
307
+ connection.close();
308
+ resolve(result);
309
+ }
310
+ });
311
+ connection.write(mybuddy__default["default"].getCoords(device));
277
312
  });
278
- connection.write(mybuddy__default["default"].getCoords(device));
279
- return data;
280
313
  }
281
314
  async isInPosition(params, _pinsSettingsList, context) {
282
315
  const { device, data, flag } = params;
283
- let result = null;
284
316
  const connection = await this.connect(params, context);
285
- connection.on('data', (data)=>{
286
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_IN_POSITION, 16)) {
287
- result = mybuddy__default["default"].processReceived(data);
317
+ return new Promise((resolve, reject)=>{
318
+ const timeoutId = setTimeout(()=>{
288
319
  connection.close();
289
- }
320
+ reject('TIMEOUT_READ_COMMANDS');
321
+ }, TIMEOUT_READ_COMMANDS);
322
+ connection.on('data', (data)=>{
323
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_IN_POSITION, 16)) {
324
+ clearTimeout(timeoutId);
325
+ const result = mybuddy__default["default"].processReceived(data);
326
+ connection.close();
327
+ resolve(result);
328
+ }
329
+ });
330
+ connection.write(mybuddy__default["default"].isInPosition(device, data, flag));
290
331
  });
291
- connection.write(mybuddy__default["default"].isInPosition(device, data, flag));
292
- return result;
293
332
  }
294
333
  async getEncoder(params, _pinsSettingsList, context) {
295
334
  const { device, joint_id } = params;
296
- let data = null;
297
335
  const connection = await this.connect(params, context);
298
- connection.on('data', (data)=>{
299
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_ENCODER, 16)) {
300
- data = mybuddy__default["default"].processReceived(data);
336
+ return new Promise((resolve, reject)=>{
337
+ const timeoutId = setTimeout(()=>{
301
338
  connection.close();
302
- }
339
+ reject('TIMEOUT_READ_COMMANDS');
340
+ }, TIMEOUT_READ_COMMANDS);
341
+ connection.on('data', (data)=>{
342
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_ENCODER, 16)) {
343
+ clearTimeout(timeoutId);
344
+ const result = mybuddy__default["default"].processReceived(data);
345
+ connection.close();
346
+ resolve(result);
347
+ }
348
+ });
349
+ connection.write(mybuddy__default["default"].getEncoder(device, joint_id));
303
350
  });
304
- connection.write(mybuddy__default["default"].getEncoder(device, joint_id));
305
- return data;
306
351
  }
307
352
  async getEncoders(params, _pinsSettingsList, context) {
308
353
  const { device } = params;
309
- let data = null;
310
354
  const connection = await this.connect(params, context);
311
- connection.on('data', (data)=>{
312
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_ENCODER, 16)) {
313
- data = mybuddy__default["default"].processReceived(data);
355
+ return new Promise((resolve, reject)=>{
356
+ const timeoutId = setTimeout(()=>{
314
357
  connection.close();
315
- }
358
+ reject('TIMEOUT_READ_COMMANDS');
359
+ }, TIMEOUT_READ_COMMANDS);
360
+ connection.on('data', (data)=>{
361
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_ENCODER, 16)) {
362
+ clearTimeout(timeoutId);
363
+ const result = mybuddy__default["default"].processReceived(data);
364
+ connection.close();
365
+ resolve(result);
366
+ }
367
+ });
368
+ connection.write(mybuddy__default["default"].getEncoders(device));
316
369
  });
317
- connection.write(mybuddy__default["default"].getEncoders(device));
318
- return data;
319
370
  }
320
371
  async getSpeed(params, _pinsSettingsList, context) {
321
372
  const { device } = params;
322
- let data = null;
323
373
  const connection = await this.connect(params, context);
324
- connection.on('data', (data)=>{
325
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_SPEED, 16)) {
326
- data = mybuddy__default["default"].processReceived(data);
374
+ return new Promise((resolve, reject)=>{
375
+ const timeoutId = setTimeout(()=>{
327
376
  connection.close();
328
- }
377
+ reject('TIMEOUT_READ_COMMANDS');
378
+ }, TIMEOUT_READ_COMMANDS);
379
+ connection.on('data', (data)=>{
380
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_SPEED, 16)) {
381
+ clearTimeout(timeoutId);
382
+ const result = mybuddy__default["default"].processReceived(data);
383
+ connection.close();
384
+ resolve(result);
385
+ }
386
+ });
387
+ connection.write(mybuddy__default["default"].getSpeed(device));
329
388
  });
330
- connection.write(mybuddy__default["default"].getSpeed(device));
331
- return data;
332
389
  }
333
390
  async getJointMin(params, _pinsSettingsList, context) {
334
391
  const { device, joint_id } = params;
335
- let data = null;
336
392
  const connection = await this.connect(params, context);
337
- connection.on('data', (data)=>{
338
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_JOINT_MIN_ANGLE, 16)) {
339
- data = mybuddy__default["default"].processReceived(data);
393
+ return new Promise((resolve, reject)=>{
394
+ const timeoutId = setTimeout(()=>{
340
395
  connection.close();
341
- }
396
+ reject('TIMEOUT_READ_COMMANDS');
397
+ }, TIMEOUT_READ_COMMANDS);
398
+ connection.on('data', (data)=>{
399
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_JOINT_MIN_ANGLE, 16)) {
400
+ clearTimeout(timeoutId);
401
+ const result = mybuddy__default["default"].processReceived(data);
402
+ connection.close();
403
+ resolve(result);
404
+ }
405
+ });
406
+ connection.write(mybuddy__default["default"].getJointMin(device, joint_id));
342
407
  });
343
- connection.write(mybuddy__default["default"].getJointMin(device, joint_id));
344
- return data;
345
408
  }
346
409
  async getJointMax(params, _pinsSettingsList, context) {
347
410
  const { device, joint_id } = params;
348
- let data = null;
349
411
  const connection = await this.connect(params, context);
350
- connection.on('data', (data)=>{
351
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_JOINT_MAX_ANGLE, 16)) {
352
- data = mybuddy__default["default"].processReceived(data);
412
+ return new Promise((resolve, reject)=>{
413
+ const timeoutId = setTimeout(()=>{
353
414
  connection.close();
354
- }
415
+ reject('TIMEOUT_READ_COMMANDS');
416
+ }, TIMEOUT_READ_COMMANDS);
417
+ connection.on('data', (data)=>{
418
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_JOINT_MAX_ANGLE, 16)) {
419
+ clearTimeout(timeoutId);
420
+ const result = mybuddy__default["default"].processReceived(data);
421
+ connection.close();
422
+ resolve(result);
423
+ }
424
+ });
425
+ connection.write(mybuddy__default["default"].getJointMax(device, joint_id));
355
426
  });
356
- connection.write(mybuddy__default["default"].getJointMax(device, joint_id));
357
- return data;
358
427
  }
359
428
  async isServoEnable(params, _pinsSettingsList, context) {
360
429
  const { device, servo_id } = params;
361
- let data = null;
362
430
  const connection = await this.connect(params, context);
363
- connection.on('data', (data)=>{
364
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_SERVO_ENABLE, 16)) {
365
- data = mybuddy__default["default"].processReceived(data);
431
+ return new Promise((resolve, reject)=>{
432
+ const timeoutId = setTimeout(()=>{
366
433
  connection.close();
367
- }
434
+ reject('TIMEOUT_READ_COMMANDS');
435
+ }, TIMEOUT_READ_COMMANDS);
436
+ connection.on('data', (data)=>{
437
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_SERVO_ENABLE, 16)) {
438
+ clearTimeout(timeoutId);
439
+ const result = mybuddy__default["default"].processReceived(data);
440
+ connection.close();
441
+ resolve(result);
442
+ }
443
+ });
444
+ connection.write(mybuddy__default["default"].isServoEnable(device, servo_id));
368
445
  });
369
- connection.write(mybuddy__default["default"].isServoEnable(device, servo_id));
370
- return data;
371
446
  }
372
447
  async isAllServoEnable(params, _pinsSettingsList, context) {
373
448
  const { device } = params;
374
- let data = null;
375
449
  const connection = await this.connect(params, context);
376
- connection.on('data', (data)=>{
377
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_ALL_SERVO_ENABLE, 16)) {
378
- data = mybuddy__default["default"].processReceived(data);
450
+ return new Promise((resolve, reject)=>{
451
+ const timeoutId = setTimeout(()=>{
379
452
  connection.close();
380
- }
453
+ reject('TIMEOUT_READ_COMMANDS');
454
+ }, TIMEOUT_READ_COMMANDS);
455
+ connection.on('data', (data)=>{
456
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_ALL_SERVO_ENABLE, 16)) {
457
+ clearTimeout(timeoutId);
458
+ const result = mybuddy__default["default"].processReceived(data);
459
+ connection.close();
460
+ resolve(result);
461
+ }
462
+ });
463
+ connection.write(mybuddy__default["default"].isAllServoEnable(device));
381
464
  });
382
- connection.write(mybuddy__default["default"].isAllServoEnable(device));
383
- return data;
384
465
  }
385
466
  async getServodata(params, _pinsSettingsList, context) {
386
467
  const { device, servo_no, data_id } = params;
387
- let data = null;
388
468
  const connection = await this.connect(params, context);
389
- connection.on('data', (data)=>{
390
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_SERVO_DATA, 16)) {
391
- data = mybuddy__default["default"].processReceived(data);
469
+ return new Promise((resolve, reject)=>{
470
+ const timeoutId = setTimeout(()=>{
392
471
  connection.close();
393
- }
472
+ reject('TIMEOUT_READ_COMMANDS');
473
+ }, TIMEOUT_READ_COMMANDS);
474
+ connection.on('data', (data)=>{
475
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_SERVO_DATA, 16)) {
476
+ clearTimeout(timeoutId);
477
+ const result = mybuddy__default["default"].processReceived(data);
478
+ connection.close();
479
+ resolve(result);
480
+ }
481
+ });
482
+ connection.write(mybuddy__default["default"].getServodata(device, servo_no, data_id));
394
483
  });
395
- connection.write(mybuddy__default["default"].getServodata(device, servo_no, data_id));
396
- return data;
397
484
  }
398
485
  async getDigitalInput(params, _pinsSettingsList, context) {
399
486
  const { device, pin_no } = params;
400
- let data = null;
401
487
  const connection = await this.connect(params, context);
402
- connection.on('data', (data)=>{
403
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_DIGITAL_INPUT, 16)) {
404
- data = mybuddy__default["default"].processReceived(data);
488
+ return new Promise((resolve, reject)=>{
489
+ const timeoutId = setTimeout(()=>{
405
490
  connection.close();
406
- }
491
+ reject('TIMEOUT_READ_COMMANDS');
492
+ }, TIMEOUT_READ_COMMANDS);
493
+ connection.on('data', (data)=>{
494
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_DIGITAL_INPUT, 16)) {
495
+ clearTimeout(timeoutId);
496
+ const result = mybuddy__default["default"].processReceived(data);
497
+ connection.close();
498
+ resolve(result);
499
+ }
500
+ });
501
+ connection.write(mybuddy__default["default"].getDigitalInput(device, pin_no));
407
502
  });
408
- connection.write(mybuddy__default["default"].getDigitalInput(device, pin_no));
409
- return data;
410
503
  }
411
504
  async getGripperValue(params, _pinsSettingsList, context) {
412
505
  const { device } = params;
413
- let data = null;
414
506
  const connection = await this.connect(params, context);
415
- connection.on('data', (data)=>{
416
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_GRIPPER_VALUE, 16)) {
417
- data = mybuddy__default["default"].processReceived(data);
507
+ return new Promise((resolve, reject)=>{
508
+ const timeoutId = setTimeout(()=>{
418
509
  connection.close();
419
- }
510
+ reject('TIMEOUT_READ_COMMANDS');
511
+ }, TIMEOUT_READ_COMMANDS);
512
+ connection.on('data', (data)=>{
513
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_GRIPPER_VALUE, 16)) {
514
+ clearTimeout(timeoutId);
515
+ const result = mybuddy__default["default"].processReceived(data);
516
+ connection.close();
517
+ resolve(result);
518
+ }
519
+ });
520
+ connection.write(mybuddy__default["default"].getGripperValue(device));
420
521
  });
421
- connection.write(mybuddy__default["default"].getGripperValue(device));
422
- return data;
423
522
  }
424
523
  async getBasicOutput(params, _pinsSettingsList, context) {
425
524
  const { device, pin_no } = params;
426
- let data = null;
427
525
  const connection = await this.connect(params, context);
428
- connection.on('data', (data)=>{
429
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_BASIC_INPUT, 16)) {
430
- data = mybuddy__default["default"].processReceived(data);
526
+ return new Promise((resolve, reject)=>{
527
+ const timeoutId = setTimeout(()=>{
431
528
  connection.close();
432
- }
529
+ reject('TIMEOUT_READ_COMMANDS');
530
+ }, TIMEOUT_READ_COMMANDS);
531
+ connection.on('data', (data)=>{
532
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.GET_BASIC_INPUT, 16)) {
533
+ clearTimeout(timeoutId);
534
+ const result = mybuddy__default["default"].processReceived(data);
535
+ connection.close();
536
+ resolve(result);
537
+ }
538
+ });
539
+ connection.write(mybuddy__default["default"].getBasicOutput(device, pin_no));
433
540
  });
434
- connection.write(mybuddy__default["default"].getBasicOutput(device, pin_no));
435
- return data;
436
541
  }
437
542
  async isGripperMoving(params, _pinsSettingsList, context) {
438
543
  const { device } = params;
439
- let data = null;
440
544
  const connection = await this.connect(params, context);
441
- connection.on('data', (data)=>{
442
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_GRIPPER_MOVING, 16)) {
443
- data = mybuddy__default["default"].processReceived(data);
545
+ return new Promise((resolve, reject)=>{
546
+ const timeoutId = setTimeout(()=>{
444
547
  connection.close();
445
- }
548
+ reject('TIMEOUT_READ_COMMANDS');
549
+ }, TIMEOUT_READ_COMMANDS);
550
+ connection.on('data', (data)=>{
551
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy__default["default"].COMMAND.IS_GRIPPER_MOVING, 16)) {
552
+ clearTimeout(timeoutId);
553
+ const result = mybuddy__default["default"].processReceived(data);
554
+ connection.close();
555
+ resolve(result);
556
+ }
557
+ });
558
+ connection.write(mybuddy__default["default"].isGripperMoving(device));
446
559
  });
447
- connection.write(mybuddy__default["default"].isGripperMoving(device));
448
- return data;
449
560
  }
450
561
  // TOOLS
451
562
  async sleep(params, _pinsSettingsList, context) {
@@ -461,6 +572,7 @@ const powerOn = (params, pinsSettingsList, context)=>new MyBuddyService().powerO
461
572
  const powerOff = (params, pinsSettingsList, context)=>new MyBuddyService().powerOff(params, pinsSettingsList, context);
462
573
  const releaseAllServos = (params, pinsSettingsList, context)=>new MyBuddyService().releaseAllServos(params, pinsSettingsList, context);
463
574
  const sendAngle = (params, pinsSettingsList, context)=>new MyBuddyService().sendAngle(params, pinsSettingsList, context);
575
+ const sendCoord = (params, pinsSettingsList, context)=>new MyBuddyService().sendCoord(params, pinsSettingsList, context);
464
576
  const sendCoords = (params, pinsSettingsList, context)=>new MyBuddyService().sendCoords(params, pinsSettingsList, context);
465
577
  const programPause = (params, pinsSettingsList, context)=>new MyBuddyService().programPause(params, pinsSettingsList, context);
466
578
  const programResume = (params, pinsSettingsList, context)=>new MyBuddyService().programResume(params, pinsSettingsList, context);
@@ -529,6 +641,7 @@ exports.releaseAllServos = releaseAllServos;
529
641
  exports.releaseServo = releaseServo;
530
642
  exports.sendAngle = sendAngle;
531
643
  exports.sendAngles = sendAngles;
644
+ exports.sendCoord = sendCoord;
532
645
  exports.sendCoords = sendCoords;
533
646
  exports.setBasicOutput = setBasicOutput;
534
647
  exports.setColor = setColor;
package/index.esm.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import mybuddy from '@marcbuils/mybuddy';
2
2
 
3
+ const TIMEOUT_READ_COMMANDS = 1000;
3
4
  let MyBuddyService = class MyBuddyService {
4
5
  async connect(params, context) {
5
6
  var _context_privates_MY_BUDDY;
@@ -43,15 +44,23 @@ let MyBuddyService = class MyBuddyService {
43
44
  return result;
44
45
  }
45
46
  async sendAngle(params, _pinsSettingsList, context) {
46
- const { device, id = 1, degree = 0, speed = 60 } = params;
47
+ const { device, id, degree, speed = 50 } = params;
47
48
  const connection = await this.connect(params, context);
48
49
  const result = connection.write(mybuddy.sendAngle(device, id, degree, speed));
49
50
  await new Promise((resolve)=>setTimeout(resolve, 50));
50
51
  connection.close();
51
52
  return result;
52
53
  }
54
+ async sendCoord(params, _pinsSettingsList, context) {
55
+ const { device, id, coord, speed = 50 } = params;
56
+ const connection = await this.connect(params, context);
57
+ const result = connection.write(mybuddy.sendCoord(device, id, coord, speed));
58
+ await new Promise((resolve)=>setTimeout(resolve, 50));
59
+ connection.close();
60
+ return result;
61
+ }
53
62
  async sendCoords(params, _pinsSettingsList, context) {
54
- const { device, coords, speed, mode } = params;
63
+ const { device, coords, speed = 50, mode = 0 } = params;
55
64
  const connection = await this.connect(params, context);
56
65
  const result = connection.write(mybuddy.sendCoords(device, coords, speed, mode));
57
66
  await new Promise((resolve)=>setTimeout(resolve, 50));
@@ -220,224 +229,326 @@ let MyBuddyService = class MyBuddyService {
220
229
  // Data Retrieval
221
230
  async getAngles(params, _pinsSettingsList, context) {
222
231
  const { device } = params;
223
- let data = null;
224
232
  const connection = await this.connect(params, context);
225
- connection.on('data', (data)=>{
226
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_ANGLES, 16)) {
227
- data = mybuddy.processReceived(data);
233
+ return new Promise((resolve, reject)=>{
234
+ const timeoutId = setTimeout(()=>{
228
235
  connection.close();
229
- }
236
+ reject('TIMEOUT_READ_COMMANDS');
237
+ }, TIMEOUT_READ_COMMANDS);
238
+ connection.on('data', (data)=>{
239
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_ANGLES, 16)) {
240
+ clearTimeout(timeoutId);
241
+ const result = mybuddy.processReceived(data);
242
+ connection.close();
243
+ resolve(result);
244
+ }
245
+ });
246
+ connection.write(mybuddy.getAngles(device));
230
247
  });
231
- connection.write(mybuddy.getAngles(device));
232
- return data;
233
248
  }
234
249
  async isPowerOn(params, _pinsSettingsList, context) {
235
250
  const { device } = params;
236
- let data = null;
237
251
  const connection = await this.connect(params, context);
238
- connection.on('data', (data)=>{
239
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_POWER_ON, 16)) {
240
- data = mybuddy.processReceived(data);
252
+ return new Promise((resolve, reject)=>{
253
+ const timeoutId = setTimeout(()=>{
241
254
  connection.close();
242
- }
255
+ reject('TIMEOUT_READ_COMMANDS');
256
+ }, TIMEOUT_READ_COMMANDS);
257
+ connection.on('data', (data)=>{
258
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_POWER_ON, 16)) {
259
+ clearTimeout(timeoutId);
260
+ const result = mybuddy.processReceived(data);
261
+ connection.close();
262
+ resolve(result);
263
+ }
264
+ });
265
+ connection.write(mybuddy.isPowerOn(device));
243
266
  });
244
- connection.write(mybuddy.isPowerOn(device));
245
- return data;
246
267
  }
247
268
  async isControllerConnect(params, _pinsSettingsList, context) {
248
269
  const { device } = params;
249
- let data = null;
250
270
  const connection = await this.connect(params, context);
251
- connection.on('data', (data)=>{
252
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_CONTROLLER_CONNECTED, 16)) {
253
- data = mybuddy.processReceived(data);
271
+ return new Promise((resolve, reject)=>{
272
+ const timeoutId = setTimeout(()=>{
254
273
  connection.close();
255
- }
274
+ reject('TIMEOUT_READ_COMMANDS');
275
+ }, TIMEOUT_READ_COMMANDS);
276
+ connection.on('data', (data)=>{
277
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_CONTROLLER_CONNECTED, 16)) {
278
+ clearTimeout(timeoutId);
279
+ const result = mybuddy.processReceived(data);
280
+ connection.close();
281
+ resolve(result);
282
+ }
283
+ });
284
+ connection.write(mybuddy.isControllerConnect());
256
285
  });
257
- connection.write(mybuddy.isControllerConnect());
258
- return data;
259
286
  }
260
287
  async getCoords(params, _pinsSettingsList, context) {
261
288
  const { device } = params;
262
- let data = null;
263
289
  const connection = await this.connect(params, context);
264
- connection.on('data', (data)=>{
265
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_COORDS, 16)) {
266
- data = mybuddy.processReceived(data);
290
+ return new Promise((resolve, reject)=>{
291
+ const timeoutId = setTimeout(()=>{
267
292
  connection.close();
268
- }
293
+ reject('TIMEOUT_READ_COMMANDS');
294
+ }, TIMEOUT_READ_COMMANDS);
295
+ connection.on('data', (data)=>{
296
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_COORDS, 16)) {
297
+ clearTimeout(timeoutId);
298
+ const result = mybuddy.processReceived(data);
299
+ connection.close();
300
+ resolve(result);
301
+ }
302
+ });
303
+ connection.write(mybuddy.getCoords(device));
269
304
  });
270
- connection.write(mybuddy.getCoords(device));
271
- return data;
272
305
  }
273
306
  async isInPosition(params, _pinsSettingsList, context) {
274
307
  const { device, data, flag } = params;
275
- let result = null;
276
308
  const connection = await this.connect(params, context);
277
- connection.on('data', (data)=>{
278
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_IN_POSITION, 16)) {
279
- result = mybuddy.processReceived(data);
309
+ return new Promise((resolve, reject)=>{
310
+ const timeoutId = setTimeout(()=>{
280
311
  connection.close();
281
- }
312
+ reject('TIMEOUT_READ_COMMANDS');
313
+ }, TIMEOUT_READ_COMMANDS);
314
+ connection.on('data', (data)=>{
315
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_IN_POSITION, 16)) {
316
+ clearTimeout(timeoutId);
317
+ const result = mybuddy.processReceived(data);
318
+ connection.close();
319
+ resolve(result);
320
+ }
321
+ });
322
+ connection.write(mybuddy.isInPosition(device, data, flag));
282
323
  });
283
- connection.write(mybuddy.isInPosition(device, data, flag));
284
- return result;
285
324
  }
286
325
  async getEncoder(params, _pinsSettingsList, context) {
287
326
  const { device, joint_id } = params;
288
- let data = null;
289
327
  const connection = await this.connect(params, context);
290
- connection.on('data', (data)=>{
291
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_ENCODER, 16)) {
292
- data = mybuddy.processReceived(data);
328
+ return new Promise((resolve, reject)=>{
329
+ const timeoutId = setTimeout(()=>{
293
330
  connection.close();
294
- }
331
+ reject('TIMEOUT_READ_COMMANDS');
332
+ }, TIMEOUT_READ_COMMANDS);
333
+ connection.on('data', (data)=>{
334
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_ENCODER, 16)) {
335
+ clearTimeout(timeoutId);
336
+ const result = mybuddy.processReceived(data);
337
+ connection.close();
338
+ resolve(result);
339
+ }
340
+ });
341
+ connection.write(mybuddy.getEncoder(device, joint_id));
295
342
  });
296
- connection.write(mybuddy.getEncoder(device, joint_id));
297
- return data;
298
343
  }
299
344
  async getEncoders(params, _pinsSettingsList, context) {
300
345
  const { device } = params;
301
- let data = null;
302
346
  const connection = await this.connect(params, context);
303
- connection.on('data', (data)=>{
304
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_ENCODER, 16)) {
305
- data = mybuddy.processReceived(data);
347
+ return new Promise((resolve, reject)=>{
348
+ const timeoutId = setTimeout(()=>{
306
349
  connection.close();
307
- }
350
+ reject('TIMEOUT_READ_COMMANDS');
351
+ }, TIMEOUT_READ_COMMANDS);
352
+ connection.on('data', (data)=>{
353
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_ENCODER, 16)) {
354
+ clearTimeout(timeoutId);
355
+ const result = mybuddy.processReceived(data);
356
+ connection.close();
357
+ resolve(result);
358
+ }
359
+ });
360
+ connection.write(mybuddy.getEncoders(device));
308
361
  });
309
- connection.write(mybuddy.getEncoders(device));
310
- return data;
311
362
  }
312
363
  async getSpeed(params, _pinsSettingsList, context) {
313
364
  const { device } = params;
314
- let data = null;
315
365
  const connection = await this.connect(params, context);
316
- connection.on('data', (data)=>{
317
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_SPEED, 16)) {
318
- data = mybuddy.processReceived(data);
366
+ return new Promise((resolve, reject)=>{
367
+ const timeoutId = setTimeout(()=>{
319
368
  connection.close();
320
- }
369
+ reject('TIMEOUT_READ_COMMANDS');
370
+ }, TIMEOUT_READ_COMMANDS);
371
+ connection.on('data', (data)=>{
372
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_SPEED, 16)) {
373
+ clearTimeout(timeoutId);
374
+ const result = mybuddy.processReceived(data);
375
+ connection.close();
376
+ resolve(result);
377
+ }
378
+ });
379
+ connection.write(mybuddy.getSpeed(device));
321
380
  });
322
- connection.write(mybuddy.getSpeed(device));
323
- return data;
324
381
  }
325
382
  async getJointMin(params, _pinsSettingsList, context) {
326
383
  const { device, joint_id } = params;
327
- let data = null;
328
384
  const connection = await this.connect(params, context);
329
- connection.on('data', (data)=>{
330
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_JOINT_MIN_ANGLE, 16)) {
331
- data = mybuddy.processReceived(data);
385
+ return new Promise((resolve, reject)=>{
386
+ const timeoutId = setTimeout(()=>{
332
387
  connection.close();
333
- }
388
+ reject('TIMEOUT_READ_COMMANDS');
389
+ }, TIMEOUT_READ_COMMANDS);
390
+ connection.on('data', (data)=>{
391
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_JOINT_MIN_ANGLE, 16)) {
392
+ clearTimeout(timeoutId);
393
+ const result = mybuddy.processReceived(data);
394
+ connection.close();
395
+ resolve(result);
396
+ }
397
+ });
398
+ connection.write(mybuddy.getJointMin(device, joint_id));
334
399
  });
335
- connection.write(mybuddy.getJointMin(device, joint_id));
336
- return data;
337
400
  }
338
401
  async getJointMax(params, _pinsSettingsList, context) {
339
402
  const { device, joint_id } = params;
340
- let data = null;
341
403
  const connection = await this.connect(params, context);
342
- connection.on('data', (data)=>{
343
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_JOINT_MAX_ANGLE, 16)) {
344
- data = mybuddy.processReceived(data);
404
+ return new Promise((resolve, reject)=>{
405
+ const timeoutId = setTimeout(()=>{
345
406
  connection.close();
346
- }
407
+ reject('TIMEOUT_READ_COMMANDS');
408
+ }, TIMEOUT_READ_COMMANDS);
409
+ connection.on('data', (data)=>{
410
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_JOINT_MAX_ANGLE, 16)) {
411
+ clearTimeout(timeoutId);
412
+ const result = mybuddy.processReceived(data);
413
+ connection.close();
414
+ resolve(result);
415
+ }
416
+ });
417
+ connection.write(mybuddy.getJointMax(device, joint_id));
347
418
  });
348
- connection.write(mybuddy.getJointMax(device, joint_id));
349
- return data;
350
419
  }
351
420
  async isServoEnable(params, _pinsSettingsList, context) {
352
421
  const { device, servo_id } = params;
353
- let data = null;
354
422
  const connection = await this.connect(params, context);
355
- connection.on('data', (data)=>{
356
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_SERVO_ENABLE, 16)) {
357
- data = mybuddy.processReceived(data);
423
+ return new Promise((resolve, reject)=>{
424
+ const timeoutId = setTimeout(()=>{
358
425
  connection.close();
359
- }
426
+ reject('TIMEOUT_READ_COMMANDS');
427
+ }, TIMEOUT_READ_COMMANDS);
428
+ connection.on('data', (data)=>{
429
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_SERVO_ENABLE, 16)) {
430
+ clearTimeout(timeoutId);
431
+ const result = mybuddy.processReceived(data);
432
+ connection.close();
433
+ resolve(result);
434
+ }
435
+ });
436
+ connection.write(mybuddy.isServoEnable(device, servo_id));
360
437
  });
361
- connection.write(mybuddy.isServoEnable(device, servo_id));
362
- return data;
363
438
  }
364
439
  async isAllServoEnable(params, _pinsSettingsList, context) {
365
440
  const { device } = params;
366
- let data = null;
367
441
  const connection = await this.connect(params, context);
368
- connection.on('data', (data)=>{
369
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_ALL_SERVO_ENABLE, 16)) {
370
- data = mybuddy.processReceived(data);
442
+ return new Promise((resolve, reject)=>{
443
+ const timeoutId = setTimeout(()=>{
371
444
  connection.close();
372
- }
445
+ reject('TIMEOUT_READ_COMMANDS');
446
+ }, TIMEOUT_READ_COMMANDS);
447
+ connection.on('data', (data)=>{
448
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_ALL_SERVO_ENABLE, 16)) {
449
+ clearTimeout(timeoutId);
450
+ const result = mybuddy.processReceived(data);
451
+ connection.close();
452
+ resolve(result);
453
+ }
454
+ });
455
+ connection.write(mybuddy.isAllServoEnable(device));
373
456
  });
374
- connection.write(mybuddy.isAllServoEnable(device));
375
- return data;
376
457
  }
377
458
  async getServodata(params, _pinsSettingsList, context) {
378
459
  const { device, servo_no, data_id } = params;
379
- let data = null;
380
460
  const connection = await this.connect(params, context);
381
- connection.on('data', (data)=>{
382
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_SERVO_DATA, 16)) {
383
- data = mybuddy.processReceived(data);
461
+ return new Promise((resolve, reject)=>{
462
+ const timeoutId = setTimeout(()=>{
384
463
  connection.close();
385
- }
464
+ reject('TIMEOUT_READ_COMMANDS');
465
+ }, TIMEOUT_READ_COMMANDS);
466
+ connection.on('data', (data)=>{
467
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_SERVO_DATA, 16)) {
468
+ clearTimeout(timeoutId);
469
+ const result = mybuddy.processReceived(data);
470
+ connection.close();
471
+ resolve(result);
472
+ }
473
+ });
474
+ connection.write(mybuddy.getServodata(device, servo_no, data_id));
386
475
  });
387
- connection.write(mybuddy.getServodata(device, servo_no, data_id));
388
- return data;
389
476
  }
390
477
  async getDigitalInput(params, _pinsSettingsList, context) {
391
478
  const { device, pin_no } = params;
392
- let data = null;
393
479
  const connection = await this.connect(params, context);
394
- connection.on('data', (data)=>{
395
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_DIGITAL_INPUT, 16)) {
396
- data = mybuddy.processReceived(data);
480
+ return new Promise((resolve, reject)=>{
481
+ const timeoutId = setTimeout(()=>{
397
482
  connection.close();
398
- }
483
+ reject('TIMEOUT_READ_COMMANDS');
484
+ }, TIMEOUT_READ_COMMANDS);
485
+ connection.on('data', (data)=>{
486
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_DIGITAL_INPUT, 16)) {
487
+ clearTimeout(timeoutId);
488
+ const result = mybuddy.processReceived(data);
489
+ connection.close();
490
+ resolve(result);
491
+ }
492
+ });
493
+ connection.write(mybuddy.getDigitalInput(device, pin_no));
399
494
  });
400
- connection.write(mybuddy.getDigitalInput(device, pin_no));
401
- return data;
402
495
  }
403
496
  async getGripperValue(params, _pinsSettingsList, context) {
404
497
  const { device } = params;
405
- let data = null;
406
498
  const connection = await this.connect(params, context);
407
- connection.on('data', (data)=>{
408
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_GRIPPER_VALUE, 16)) {
409
- data = mybuddy.processReceived(data);
499
+ return new Promise((resolve, reject)=>{
500
+ const timeoutId = setTimeout(()=>{
410
501
  connection.close();
411
- }
502
+ reject('TIMEOUT_READ_COMMANDS');
503
+ }, TIMEOUT_READ_COMMANDS);
504
+ connection.on('data', (data)=>{
505
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_GRIPPER_VALUE, 16)) {
506
+ clearTimeout(timeoutId);
507
+ const result = mybuddy.processReceived(data);
508
+ connection.close();
509
+ resolve(result);
510
+ }
511
+ });
512
+ connection.write(mybuddy.getGripperValue(device));
412
513
  });
413
- connection.write(mybuddy.getGripperValue(device));
414
- return data;
415
514
  }
416
515
  async getBasicOutput(params, _pinsSettingsList, context) {
417
516
  const { device, pin_no } = params;
418
- let data = null;
419
517
  const connection = await this.connect(params, context);
420
- connection.on('data', (data)=>{
421
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_BASIC_INPUT, 16)) {
422
- data = mybuddy.processReceived(data);
518
+ return new Promise((resolve, reject)=>{
519
+ const timeoutId = setTimeout(()=>{
423
520
  connection.close();
424
- }
521
+ reject('TIMEOUT_READ_COMMANDS');
522
+ }, TIMEOUT_READ_COMMANDS);
523
+ connection.on('data', (data)=>{
524
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.GET_BASIC_INPUT, 16)) {
525
+ clearTimeout(timeoutId);
526
+ const result = mybuddy.processReceived(data);
527
+ connection.close();
528
+ resolve(result);
529
+ }
530
+ });
531
+ connection.write(mybuddy.getBasicOutput(device, pin_no));
425
532
  });
426
- connection.write(mybuddy.getBasicOutput(device, pin_no));
427
- return data;
428
533
  }
429
534
  async isGripperMoving(params, _pinsSettingsList, context) {
430
535
  const { device } = params;
431
- let data = null;
432
536
  const connection = await this.connect(params, context);
433
- connection.on('data', (data)=>{
434
- if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_GRIPPER_MOVING, 16)) {
435
- data = mybuddy.processReceived(data);
537
+ return new Promise((resolve, reject)=>{
538
+ const timeoutId = setTimeout(()=>{
436
539
  connection.close();
437
- }
540
+ reject('TIMEOUT_READ_COMMANDS');
541
+ }, TIMEOUT_READ_COMMANDS);
542
+ connection.on('data', (data)=>{
543
+ if (data[0] === 0xfe && data[1] === 0xfe && data[2] === device && data[4] === parseInt(mybuddy.COMMAND.IS_GRIPPER_MOVING, 16)) {
544
+ clearTimeout(timeoutId);
545
+ const result = mybuddy.processReceived(data);
546
+ connection.close();
547
+ resolve(result);
548
+ }
549
+ });
550
+ connection.write(mybuddy.isGripperMoving(device));
438
551
  });
439
- connection.write(mybuddy.isGripperMoving(device));
440
- return data;
441
552
  }
442
553
  // TOOLS
443
554
  async sleep(params, _pinsSettingsList, context) {
@@ -453,6 +564,7 @@ const powerOn = (params, pinsSettingsList, context)=>new MyBuddyService().powerO
453
564
  const powerOff = (params, pinsSettingsList, context)=>new MyBuddyService().powerOff(params, pinsSettingsList, context);
454
565
  const releaseAllServos = (params, pinsSettingsList, context)=>new MyBuddyService().releaseAllServos(params, pinsSettingsList, context);
455
566
  const sendAngle = (params, pinsSettingsList, context)=>new MyBuddyService().sendAngle(params, pinsSettingsList, context);
567
+ const sendCoord = (params, pinsSettingsList, context)=>new MyBuddyService().sendCoord(params, pinsSettingsList, context);
456
568
  const sendCoords = (params, pinsSettingsList, context)=>new MyBuddyService().sendCoords(params, pinsSettingsList, context);
457
569
  const programPause = (params, pinsSettingsList, context)=>new MyBuddyService().programPause(params, pinsSettingsList, context);
458
570
  const programResume = (params, pinsSettingsList, context)=>new MyBuddyService().programResume(params, pinsSettingsList, context);
@@ -492,4 +604,4 @@ const getBasicOutput = (params, pinsSettingsList, context)=>new MyBuddyService()
492
604
  const isGripperMoving = (params, pinsSettingsList, context)=>new MyBuddyService().isGripperMoving(params, pinsSettingsList, context);
493
605
  const sleep = (params, pinsSettingsList, context)=>new MyBuddyService().sleep(params, pinsSettingsList, context);
494
606
 
495
- export { focusServo, getAngles, getBasicOutput, getCoords, getDigitalInput, getEncoder, getEncoders, getGripperValue, getJointMax, getJointMin, getServodata, getSpeed, isAllServoEnable, isControllerConnect, isGripperMoving, isInPosition, isPowerOn, isServoEnable, jogAngle, jogCoord, jogStop, powerOff, powerOn, programPause, programResume, releaseAllServos, releaseServo, sendAngle, sendAngles, sendCoords, setBasicOutput, setColor, setDigitalOutput, setEncoder, setEncoders, setGripperIni, setGripperState, setGripperValue, setPinMode, setServoCalibration, setServoData, setSpeed, sleep, stop };
607
+ export { focusServo, getAngles, getBasicOutput, getCoords, getDigitalInput, getEncoder, getEncoders, getGripperValue, getJointMax, getJointMin, getServodata, getSpeed, isAllServoEnable, isControllerConnect, isGripperMoving, isInPosition, isPowerOn, isServoEnable, jogAngle, jogCoord, jogStop, powerOff, powerOn, programPause, programResume, releaseAllServos, releaseServo, sendAngle, sendAngles, sendCoord, sendCoords, setBasicOutput, setColor, setDigitalOutput, setEncoder, setEncoders, setGripperIni, setGripperState, setGripperValue, setPinMode, setServoCalibration, setServoData, setSpeed, sleep, stop };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digipair/skill-mybuddy",
3
- "version": "0.23.10",
3
+ "version": "0.23.12",
4
4
  "dependencies": {
5
5
  "@marcbuils/mybuddy": "^0.0.9"
6
6
  },
package/schema.json CHANGED
@@ -164,6 +164,51 @@
164
164
  "x-events": []
165
165
  }
166
166
  },
167
+ "/sendCoord": {
168
+ "post": {
169
+ "tags": ["service"],
170
+ "summary": "Envoie les coordonnées",
171
+ "parameters": [
172
+ {
173
+ "name": "device",
174
+ "summary": "Identifiant du device",
175
+ "required": true,
176
+ "description": "Identifiant du device concerné (0 = Tous, 1 = Bras gauche, 2 = Bras droit, 3 = Corps)",
177
+ "schema": {
178
+ "type": "number"
179
+ }
180
+ },
181
+ {
182
+ "name": "id",
183
+ "summary": "Coordonnée à modifier",
184
+ "required": true,
185
+ "description": "Identifiant de la coordonnée à envoyer",
186
+ "schema": {
187
+ "type": "number"
188
+ }
189
+ },
190
+ {
191
+ "name": "coord",
192
+ "summary": "Valeur",
193
+ "required": true,
194
+ "description": "Valeur de la coordonnée à envoyer",
195
+ "schema": {
196
+ "type": "number"
197
+ }
198
+ },
199
+ {
200
+ "name": "speed",
201
+ "summary": "Vitesse",
202
+ "required": false,
203
+ "description": "Vitesse de déplacement",
204
+ "schema": {
205
+ "type": "number"
206
+ }
207
+ }
208
+ ],
209
+ "x-events": []
210
+ }
211
+ },
167
212
  "/sendCoords": {
168
213
  "post": {
169
214
  "tags": ["service"],
@@ -1,10 +1,11 @@
1
1
  import { PinsSettings } from '@digipair/engine';
2
2
  export declare const sendAngles: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
3
- export declare const getAngles: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
3
+ export declare const getAngles: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
4
4
  export declare const powerOn: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
5
5
  export declare const powerOff: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
6
6
  export declare const releaseAllServos: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
7
7
  export declare const sendAngle: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
8
+ export declare const sendCoord: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
8
9
  export declare const sendCoords: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
9
10
  export declare const programPause: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
10
11
  export declare const programResume: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
@@ -26,20 +27,20 @@ export declare const setGripperValue: (params: any, pinsSettingsList: PinsSettin
26
27
  export declare const setGripperIni: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
27
28
  export declare const setBasicOutput: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
28
29
  export declare const setColor: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
29
- export declare const isPowerOn: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
30
- export declare const isControllerConnect: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
31
- export declare const getCoords: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
32
- export declare const isInPosition: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
33
- export declare const getEncoder: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
34
- export declare const getEncoders: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
35
- export declare const getSpeed: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
36
- export declare const getJointMin: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
37
- export declare const getJointMax: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
38
- export declare const isServoEnable: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
39
- export declare const isAllServoEnable: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
40
- export declare const getServodata: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
41
- export declare const getDigitalInput: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
42
- export declare const getGripperValue: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
43
- export declare const getBasicOutput: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
44
- export declare const isGripperMoving: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<null>;
30
+ export declare const isPowerOn: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
31
+ export declare const isControllerConnect: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
32
+ export declare const getCoords: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
33
+ export declare const isInPosition: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
34
+ export declare const getEncoder: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
35
+ export declare const getEncoders: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
36
+ export declare const getSpeed: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
37
+ export declare const getJointMin: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
38
+ export declare const getJointMax: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
39
+ export declare const isServoEnable: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
40
+ export declare const isAllServoEnable: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
41
+ export declare const getServodata: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
42
+ export declare const getDigitalInput: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
43
+ export declare const getGripperValue: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
44
+ export declare const getBasicOutput: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
45
+ export declare const isGripperMoving: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<unknown>;
45
46
  export declare const sleep: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
File without changes