abb-rws-client 0.2.0 → 0.7.1

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.
Files changed (71) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/README.md +364 -143
  3. package/dist/HttpSession.d.ts.map +1 -1
  4. package/dist/HttpSession.js +18 -1
  5. package/dist/HttpSession.js.map +1 -1
  6. package/dist/IRWSAdapter.d.ts +421 -0
  7. package/dist/IRWSAdapter.d.ts.map +1 -0
  8. package/dist/IRWSAdapter.js +2 -0
  9. package/dist/IRWSAdapter.js.map +1 -0
  10. package/dist/Logger.d.ts +35 -0
  11. package/dist/Logger.d.ts.map +1 -0
  12. package/dist/Logger.js +24 -0
  13. package/dist/Logger.js.map +1 -0
  14. package/dist/MultiRobotManager.d.ts +56 -0
  15. package/dist/MultiRobotManager.d.ts.map +1 -0
  16. package/dist/MultiRobotManager.js +129 -0
  17. package/dist/MultiRobotManager.js.map +1 -0
  18. package/dist/RWS1Adapter.d.ts +297 -0
  19. package/dist/RWS1Adapter.d.ts.map +1 -0
  20. package/dist/RWS1Adapter.js +870 -0
  21. package/dist/RWS1Adapter.js.map +1 -0
  22. package/dist/RWS2Adapter.d.ts +20 -0
  23. package/dist/RWS2Adapter.d.ts.map +1 -0
  24. package/dist/RWS2Adapter.js +19 -0
  25. package/dist/RWS2Adapter.js.map +1 -0
  26. package/dist/ResourceMapper.d.ts +226 -2
  27. package/dist/ResourceMapper.d.ts.map +1 -1
  28. package/dist/ResourceMapper.js +286 -3
  29. package/dist/ResourceMapper.js.map +1 -1
  30. package/dist/ResponseParser.d.ts +81 -2
  31. package/dist/ResponseParser.d.ts.map +1 -1
  32. package/dist/ResponseParser.js +309 -3
  33. package/dist/ResponseParser.js.map +1 -1
  34. package/dist/RobotManager.d.ts +536 -0
  35. package/dist/RobotManager.d.ts.map +1 -0
  36. package/dist/RobotManager.js +1523 -0
  37. package/dist/RobotManager.js.map +1 -0
  38. package/dist/RwsClient.d.ts +280 -4
  39. package/dist/RwsClient.d.ts.map +1 -1
  40. package/dist/RwsClient.js +698 -10
  41. package/dist/RwsClient.js.map +1 -1
  42. package/dist/RwsClient2.d.ts +438 -0
  43. package/dist/RwsClient2.d.ts.map +1 -0
  44. package/dist/RwsClient2.js +1672 -0
  45. package/dist/RwsClient2.js.map +1 -0
  46. package/dist/WsSubscriber.d.ts.map +1 -1
  47. package/dist/WsSubscriber.js +18 -11
  48. package/dist/WsSubscriber.js.map +1 -1
  49. package/dist/XhtmlParser.d.ts +24 -0
  50. package/dist/XhtmlParser.d.ts.map +1 -0
  51. package/dist/XhtmlParser.js +56 -0
  52. package/dist/XhtmlParser.js.map +1 -0
  53. package/dist/detect.d.ts +54 -0
  54. package/dist/detect.d.ts.map +1 -0
  55. package/dist/detect.js +187 -0
  56. package/dist/detect.js.map +1 -0
  57. package/dist/index.d.ts +30 -3
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +30 -2
  60. package/dist/index.js.map +1 -1
  61. package/dist/types.d.ts +190 -3
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js +1 -0
  64. package/dist/types.js.map +1 -1
  65. package/examples/01-quickstart-auto.mjs +20 -0
  66. package/examples/02-rws1-explicit.mjs +30 -0
  67. package/examples/03-rws2-explicit.mjs +26 -0
  68. package/examples/04-multi-robot.mjs +35 -0
  69. package/examples/05-remote-control-rmmp.mjs +52 -0
  70. package/examples/06-pull-module-source.mjs +38 -0
  71. package/package.json +31 -5
@@ -102,12 +102,18 @@ export function parseOperationMode(xml) {
102
102
  }
103
103
  /**
104
104
  * Parse a /rw/rapid/execution XML response into an ExecutionState.
105
- * XML: <li class="rap-execution"><span class="excstate">running</span></li>
105
+ * XML: <li class="rap-execution"><span class="ctrlexecstate">stopped</span><span class="cycle">forever</span></li>
106
106
  *
107
107
  * Note: some firmware versions emit the <li> with class "rap-execution-state" — we
108
108
  * try both and also fall back to a flat span search.
109
109
  */
110
110
  export function parseExecutionState(xml) {
111
+ return parseExecutionInfo(xml).state;
112
+ }
113
+ /**
114
+ * Parse a /rw/rapid/execution XML response into ExecutionInfo (state + cycle).
115
+ */
116
+ export function parseExecutionInfo(xml) {
111
117
  let raw = extractSpanValue(xml, 'rap-execution', 'ctrlexecstate') ??
112
118
  extractSpanValue(xml, 'rap-execution', 'excstate') ??
113
119
  extractSpanValue(xml, 'rap-execution-state', 'ctrlexecstate') ??
@@ -118,13 +124,16 @@ export function parseExecutionState(xml) {
118
124
  throw new RwsError('PARSE_ERROR: missing ctrlexecstate/excstate in execution response', 'PARSE_ERROR');
119
125
  }
120
126
  raw = raw.toLowerCase();
121
- // 'stop' is the value the IRC5 returns; normalise to 'stopped'
122
127
  if (raw === 'stop')
123
128
  raw = 'stopped';
124
129
  if (raw !== 'running' && raw !== 'stopped') {
125
130
  throw new RwsError(`PARSE_ERROR: unknown execution state "${raw}"`, 'PARSE_ERROR');
126
131
  }
127
- return raw;
132
+ const cycle = extractSpanValue(xml, 'rap-execution', 'cycle') ??
133
+ extractSpanValue(xml, 'rap-execution-state', 'cycle') ??
134
+ extractSpanValueFlat(xml, 'cycle') ??
135
+ 'asis';
136
+ return { state: raw, cycle };
128
137
  }
129
138
  /**
130
139
  * Parse a /rw/mechunit/{unit}/joint-target XML response into a JointTarget.
@@ -273,6 +282,303 @@ export function parseRapidTasks(xml) {
273
282
  };
274
283
  });
275
284
  }
285
+ /**
286
+ * Parse a /rw/panel/speedratio response into a number (0–100).
287
+ * XML: <li class="pnl-speedratio"><span class="speedratio">100</span></li>
288
+ */
289
+ export function parseSpeedRatio(xml) {
290
+ const raw = requireSpan(xml, 'pnl-speedratio', 'speedratio', 'parseSpeedRatio');
291
+ return requireFloat(raw, 'speedratio');
292
+ }
293
+ /**
294
+ * Parse a /rw/rapid/symbol/data/... response — returns the raw value string.
295
+ * XML: <li class="rap-data"><span class="value">42</span></li>
296
+ * The caller interprets the string (number, bool, array, record, etc.).
297
+ */
298
+ export function parseRapidSymbolValue(xml) {
299
+ const val = extractSpanValue(xml, 'rap-data', 'value');
300
+ if (val === undefined) {
301
+ throw new RwsError('PARSE_ERROR: missing <span class="value"> in rap-data', 'PARSE_ERROR');
302
+ }
303
+ return val;
304
+ }
305
+ /**
306
+ * Parse a /rw/motionsystem/mechunits/{unit}/cartesian response into a CartesianFull.
307
+ * XML: <li class="ms-mechunit-cartesian">
308
+ * <span class="x">...</span>...<span class="j1">0</span>...
309
+ * </li>
310
+ */
311
+ export function parseCartesianFull(xml) {
312
+ const liPattern = /<li[^>]*class="[^"]*\bms-mechunit-cartesian\b[^"]*"[^>]*>(.*?)<\/li>/is;
313
+ const liMatch = xml.match(liPattern);
314
+ if (!liMatch) {
315
+ throw new RwsError('PARSE_ERROR: missing <li class="ms-mechunit-cartesian">', 'PARSE_ERROR');
316
+ }
317
+ const block = liMatch[1];
318
+ function getField(cls) {
319
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
320
+ if (!m)
321
+ throw new RwsError(`PARSE_ERROR: missing <span class="${cls}"> in cartesian`, 'PARSE_ERROR');
322
+ return requireFloat(m[1].trim(), cls);
323
+ }
324
+ return {
325
+ x: getField('x'), y: getField('y'), z: getField('z'),
326
+ q1: getField('q1'), q2: getField('q2'), q3: getField('q3'), q4: getField('q4'),
327
+ j1: getField('j1'), j4: getField('j4'), j6: getField('j6'), jx: getField('jx'),
328
+ };
329
+ }
330
+ /**
331
+ * Parse a /rw/iosystem/networks response into an array of IoNetwork.
332
+ * XML: <li class="ios-network-li"><span class="name">...</span>...</li>
333
+ */
334
+ export function parseNetworks(xml) {
335
+ const blocks = [...xml.matchAll(/<li[^>]*class="[^"]*\bios-network-li\b[^"]*"[^>]*>.*?<\/li>/gis)];
336
+ return blocks.map(([block]) => {
337
+ function get(cls) {
338
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
339
+ return m ? decodeEntities(m[1].trim()) : '';
340
+ }
341
+ return { name: get('name'), pstate: get('pstate'), lstate: get('lstate') };
342
+ });
343
+ }
344
+ /**
345
+ * Parse a /rw/iosystem/devices?network=... response into an array of IoDevice.
346
+ * XML: <li class="ios-device-li" title="Local/DRV_1"><span class="name">...</span>...</li>
347
+ */
348
+ export function parseDevices(xml) {
349
+ const blocks = [...xml.matchAll(/<li[^>]*class="[^"]*\bios-device-li\b[^"]*"[^>]*title="([^"]*)"[^>]*>.*?<\/li>/gis)];
350
+ return blocks.map(([block, titleAttr]) => {
351
+ function get(cls) {
352
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
353
+ return m ? decodeEntities(m[1].trim()) : '';
354
+ }
355
+ // title is "Network/DeviceName"
356
+ const parts = titleAttr.split('/');
357
+ const network = parts.length >= 2 ? parts[0] : '';
358
+ return {
359
+ name: get('name'),
360
+ network,
361
+ lstate: get('lstate'),
362
+ pstate: get('pstate'),
363
+ address: get('address'),
364
+ };
365
+ });
366
+ }
367
+ /**
368
+ * Parse a /rw/system response into SystemInfo.
369
+ * XML: <li class="sys-system-li">...</li> + <li class="sys-option-li">...</li>
370
+ */
371
+ export function parseSystemInfo(xml) {
372
+ const sysPattern = /<li[^>]*class="[^"]*\bsys-system-li\b[^"]*"[^>]*>(.*?)<\/li>/is;
373
+ const sysMatch = xml.match(sysPattern);
374
+ if (!sysMatch)
375
+ throw new RwsError('PARSE_ERROR: missing sys-system-li', 'PARSE_ERROR');
376
+ const block = sysMatch[1];
377
+ function get(cls) {
378
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
379
+ return m ? decodeEntities(m[1].trim()) : '';
380
+ }
381
+ const options = [...xml.matchAll(/<li[^>]*class="[^"]*\bsys-option-li\b[^"]*"[^>]*>.*?<span[^>]*class="[^"]*\boption\b[^"]*"[^>]*>(.*?)<\/span>.*?<\/li>/gis)]
382
+ .map(([, opt]) => decodeEntities(opt.trim()))
383
+ .filter(Boolean);
384
+ return {
385
+ name: get('name'),
386
+ rwVersion: get('rwversion') || `${get('major')}.${get('minor')}.${get('build')}`,
387
+ sysid: get('sysid'),
388
+ startTime: get('starttm'),
389
+ options,
390
+ };
391
+ }
392
+ /**
393
+ * Parse a /ctrl/identity response into ControllerIdentity.
394
+ * XML: <li class="ctrl-identity-info"><span class="ctrl-name">...</span>...</li>
395
+ */
396
+ export function parseControllerIdentity(xml) {
397
+ const liPattern = /<li[^>]*class="[^"]*\bctrl-identity-info\b[^"]*"[^>]*>(.*?)<\/li>/is;
398
+ const liMatch = xml.match(liPattern);
399
+ if (!liMatch)
400
+ throw new RwsError('PARSE_ERROR: missing ctrl-identity-info', 'PARSE_ERROR');
401
+ const block = liMatch[1];
402
+ function get(cls) {
403
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
404
+ return m ? decodeEntities(m[1].trim()) : '';
405
+ }
406
+ return {
407
+ name: get('ctrl-name'),
408
+ id: get('ctrl-id'),
409
+ type: get('ctrl-type'),
410
+ mac: get('ctrl-mac'),
411
+ };
412
+ }
413
+ /**
414
+ * Parse a /rw/elog/{domain} response into an array of ElogMessage.
415
+ * XML: <li class="elog-message-li" title="/rw/elog/0/14073">...</li>
416
+ */
417
+ export function parseElogMessages(xml) {
418
+ const blocks = [...xml.matchAll(/<li[^>]*class="[^"]*\belog-message-li\b[^"]*"[^>]*title="([^"]*)"[^>]*>.*?<\/li>/gis)];
419
+ return blocks.map(([block, titleAttr]) => {
420
+ function get(cls) {
421
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
422
+ return m ? decodeEntities(m[1].trim()) : '';
423
+ }
424
+ // Extract seqnum from title: "/rw/elog/0/14073" → 14073
425
+ const seqMatch = titleAttr.match(/\/(\d+)$/);
426
+ const seqnum = seqMatch ? parseInt(seqMatch[1], 10) : 0;
427
+ return {
428
+ seqnum,
429
+ code: parseInt(get('code'), 10) || 0,
430
+ msgtype: parseInt(get('msgtype'), 10) || 1,
431
+ timestamp: get('tstamp'),
432
+ srcName: get('src-name'),
433
+ title: get('title'),
434
+ desc: get('desc'),
435
+ causes: get('causes'),
436
+ consequences: get('conseqs'),
437
+ actions: get('actions'),
438
+ };
439
+ });
440
+ }
441
+ /**
442
+ * Parse a /fileservice/{path} directory listing response into FileEntry[].
443
+ * XML: <li class="fs-file" title="filename.mod">...</li>
444
+ * <li class="fs-dir" title="DirName">...</li>
445
+ */
446
+ export function parseDirectory(xml) {
447
+ const fileBlocks = [...xml.matchAll(/<li[^>]*class="[^"]*\bfs-file\b[^"]*"[^>]*title="([^"]*)"[^>]*>.*?<\/li>/gis)];
448
+ const dirBlocks = [...xml.matchAll(/<li[^>]*class="[^"]*\bfs-dir\b[^"]*"[^>]*title="([^"]*)"[^>]*>.*?<\/li>/gis)];
449
+ function get(block, cls) {
450
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
451
+ return m ? decodeEntities(m[1].trim()) : '';
452
+ }
453
+ const files = fileBlocks.map(([block, name]) => ({
454
+ name,
455
+ type: 'file',
456
+ size: get(block, 'fs-size') ? parseInt(get(block, 'fs-size'), 10) : undefined,
457
+ created: get(block, 'fs-cdate') || undefined,
458
+ modified: get(block, 'fs-mdate') || undefined,
459
+ readonly: get(block, 'fs-readonly') === 'true',
460
+ }));
461
+ const dirs = dirBlocks.map(([block, name]) => ({
462
+ name,
463
+ type: 'dir',
464
+ created: get(block, 'fs-cdate') || undefined,
465
+ modified: get(block, 'fs-mdate') || undefined,
466
+ }));
467
+ return [...dirs, ...files];
468
+ }
469
+ const VALID_COLLISION_STATES = new Set([
470
+ 'INIT', 'TRIGGERED', 'CONFIRMED', 'TRIGGERED_ACK',
471
+ ]);
472
+ /**
473
+ * Parse a /rw/panel/coldetstate response into a CollisionDetectionState.
474
+ * XML: <li class="pnl-coldetstate"><span class="coldetstate">INIT</span></li>
475
+ */
476
+ export function parseCollisionDetectionState(xml) {
477
+ const raw = requireSpan(xml, 'pnl-coldetstate', 'coldetstate', 'parseCollisionDetectionState');
478
+ const upper = raw.toUpperCase();
479
+ if (!VALID_COLLISION_STATES.has(upper)) {
480
+ // Return INIT as safe fallback for unknown values (firmware may add new states)
481
+ return 'INIT';
482
+ }
483
+ return upper;
484
+ }
485
+ /**
486
+ * Parse a /rw/rapid/symbol/properties/... response into RapidSymbolProperties.
487
+ * XML: <li class="rap-sympropvar" title="RAPID/T_ROB1/user/reg1">...</li>
488
+ */
489
+ export function parseRapidSymbolProperties(xml) {
490
+ const liPattern = /<li[^>]*class="[^"]*\brap-sympropvar\b[^"]*"[^>]*>(.*?)<\/li>/is;
491
+ const liMatch = xml.match(liPattern);
492
+ if (!liMatch) {
493
+ throw new RwsError('PARSE_ERROR: missing <li class="rap-sympropvar">', 'PARSE_ERROR');
494
+ }
495
+ const block = liMatch[1];
496
+ function get(cls) {
497
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
498
+ return m ? decodeEntities(m[1].trim()) : '';
499
+ }
500
+ // Extract symburl from the <li title="..."> attribute
501
+ const titleMatch = xml.match(/<li[^>]*class="[^"]*\brap-sympropvar\b[^"]*"[^>]*title="([^"]*)"[^>]*>/i);
502
+ const symburl = titleMatch ? titleMatch[1] : get('symburl');
503
+ return {
504
+ symburl,
505
+ symtyp: get('symtyp'),
506
+ named: get('named').toLowerCase() === 'true',
507
+ dattyp: get('dattyp'),
508
+ ndim: parseInt(get('ndim') || '0', 10),
509
+ dim: get('dim'),
510
+ heap: get('heap').toLowerCase() === 'true',
511
+ linked: get('linked').toLowerCase() === 'true',
512
+ local: get('local').toLowerCase() === 'true',
513
+ ro: get('ro').toLowerCase() === 'true',
514
+ taskvar: get('taskvar').toLowerCase() === 'true',
515
+ storage: get('storage'),
516
+ typurl: get('typurl'),
517
+ };
518
+ }
519
+ /**
520
+ * Parse a GET /ctrl/clock response into ControllerClock.
521
+ * XML: <li class="ctrl-clock-info"><span class="datetime">2015-06-18 T 12:56:07</span></li>
522
+ */
523
+ export function parseControllerClock(xml) {
524
+ const val = extractSpanValue(xml, 'ctrl-clock-info', 'datetime') ?? extractSpanValueFlat(xml, 'datetime');
525
+ if (!val) {
526
+ throw new RwsError('PARSE_ERROR: missing datetime in ctrl-clock-info', 'PARSE_ERROR');
527
+ }
528
+ return { datetime: val };
529
+ }
530
+ /**
531
+ * Parse a GET /rw/rapid/uiinstr/active response into a UiInstruction.
532
+ * XML: <li class="rap-uiactive-li"><span class="instr">TPReadNum</span>...</li>
533
+ * Returns null if no UI instruction is currently active.
534
+ */
535
+ export function parseActiveUiInstruction(xml) {
536
+ const liPattern = /<li[^>]*class="[^"]*\brap-uiactive-li\b[^"]*"[^>]*>(.*?)<\/li>/is;
537
+ const liMatch = xml.match(liPattern);
538
+ if (!liMatch)
539
+ return null;
540
+ const block = liMatch[1];
541
+ function get(cls) {
542
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
543
+ return m ? decodeEntities(m[1].trim()) : '';
544
+ }
545
+ const instr = get('instr');
546
+ if (!instr)
547
+ return null; // no active instruction
548
+ return {
549
+ instr,
550
+ event: get('event'),
551
+ stack: get('stack'),
552
+ execlv: get('execlv'),
553
+ msg: get('msg'),
554
+ };
555
+ }
556
+ /**
557
+ * Parse a RAPID symbol search response into RapidSymbolInfo[].
558
+ * XML: multiple <li class="rap-sympropvar-li"> elements.
559
+ */
560
+ export function parseRapidSymbolSearch(xml) {
561
+ const blocks = [...xml.matchAll(/<li[^>]*class="[^"]*\brap-sympropvar-li\b[^"]*"[^>]*>.*?<\/li>/gis)];
562
+ return blocks.map(([block]) => {
563
+ function get(cls) {
564
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
565
+ return m ? decodeEntities(m[1].trim()) : '';
566
+ }
567
+ // Extract symburl from title attr or span
568
+ const titleMatch = block.match(/<li[^>]*title="([^"]*)"[^>]*>/i);
569
+ const symburl = titleMatch ? titleMatch[1] : get('symburl');
570
+ return {
571
+ symburl,
572
+ name: get('name'),
573
+ symtyp: get('symtyp'),
574
+ dattyp: get('dattyp'),
575
+ ndim: parseInt(get('ndim') || '0', 10),
576
+ local: get('local').toLowerCase() === 'true',
577
+ ro: get('rdonly').toLowerCase() === 'true' || get('ro').toLowerCase() === 'true',
578
+ taskvar: get('taskvar').toLowerCase() === 'true',
579
+ };
580
+ });
581
+ }
276
582
  /**
277
583
  * Extract the subscription ID from a Location header value returned by POST /subscription.
278
584
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseParser.js","sourceRoot":"","sources":["../src/ResponseParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResponseParser.js","sourceRoot":"","sources":["../src/ResponseParser.ts"],"names":[],"mappings":"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"}