abb-rws-client 0.5.0 → 0.7.2

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 (63) hide show
  1. package/CHANGELOG.md +203 -0
  2. package/README.md +215 -28
  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 +9 -2
  27. package/dist/ResourceMapper.d.ts.map +1 -1
  28. package/dist/ResourceMapper.js +11 -3
  29. package/dist/ResourceMapper.js.map +1 -1
  30. package/dist/RobotManager.d.ts +536 -0
  31. package/dist/RobotManager.d.ts.map +1 -0
  32. package/dist/RobotManager.js +1523 -0
  33. package/dist/RobotManager.js.map +1 -0
  34. package/dist/RwsClient.d.ts +33 -3
  35. package/dist/RwsClient.d.ts.map +1 -1
  36. package/dist/RwsClient.js +74 -10
  37. package/dist/RwsClient.js.map +1 -1
  38. package/dist/RwsClient2.d.ts +438 -0
  39. package/dist/RwsClient2.d.ts.map +1 -0
  40. package/dist/RwsClient2.js +1672 -0
  41. package/dist/RwsClient2.js.map +1 -0
  42. package/dist/XhtmlParser.d.ts +24 -0
  43. package/dist/XhtmlParser.d.ts.map +1 -0
  44. package/dist/XhtmlParser.js +56 -0
  45. package/dist/XhtmlParser.js.map +1 -0
  46. package/dist/detect.d.ts +54 -0
  47. package/dist/detect.d.ts.map +1 -0
  48. package/dist/detect.js +187 -0
  49. package/dist/detect.js.map +1 -0
  50. package/dist/index.d.ts +29 -2
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +30 -2
  53. package/dist/index.js.map +1 -1
  54. package/dist/types.d.ts +2 -2
  55. package/dist/types.d.ts.map +1 -1
  56. package/dist/types.js.map +1 -1
  57. package/examples/01-quickstart-auto.mjs +20 -0
  58. package/examples/02-rws1-explicit.mjs +30 -0
  59. package/examples/03-rws2-explicit.mjs +26 -0
  60. package/examples/04-multi-robot.mjs +35 -0
  61. package/examples/05-remote-control-rmmp.mjs +52 -0
  62. package/examples/06-pull-module-source.mjs +38 -0
  63. package/package.json +30 -4
@@ -0,0 +1,438 @@
1
+ import type { ControllerState, OperationMode, ExecutionState, ExecutionCycle, ExecutionInfo, CollisionDetectionState, RapidTask, JointTarget, CartesianFull, RobTarget, SystemInfo, ControllerIdentity, ControllerClock, ElogMessage, Signal, IoNetwork, IoDevice, FileEntry, RapidSymbolProperties, RapidSymbolInfo, RapidSymbolSearchParams, UiInstruction, RestartMode, MastershipDomain, SubscriptionResource, SubscriptionEvent } from './types.js';
2
+ /**
3
+ * RWS 2.0 protocol client for ABB OmniCore controllers (RobotWare 7.x).
4
+ *
5
+ * Companion to `RwsClient` (RWS 1.0 / IRC5 / RobotWare 6.x). If you don't know
6
+ * which protocol your controller uses, prefer `createClient(host)` from this
7
+ * package — it probes the auth challenge and returns the right client.
8
+ *
9
+ * Key differences vs RWS 1.0 (all confirmed by live virtual-controller probing):
10
+ * - HTTP Basic auth instead of Digest
11
+ * - Path-based actions: /rw/rapid/execution/stop (not ?action=stop)
12
+ * - XHTML responses only (Accept: application/xhtml+xml;v=2.0)
13
+ * - Mastership domains: 'edit' replaces both 'cfg' and 'rapid'
14
+ * - FileService home: 'HOME' not '$HOME'
15
+ * - Self-signed TLS on virtual controllers → rejectUnauthorized: false
16
+ */
17
+ export declare class RwsClient2 {
18
+ private readonly baseUrl;
19
+ private lastReqTime;
20
+ private static readonly MIN_MS;
21
+ private readonly authHeader;
22
+ private readonly httpsAgent;
23
+ private readonly httpAgent;
24
+ private readonly isHttps;
25
+ /** Session cookie set by the controller on first auth — REQUIRED to avoid creating
26
+ * a new session per request (controller's session pool fills in seconds otherwise). */
27
+ private sessionCookie;
28
+ /** Signal name → {network, device} — populated by listAllSignals for writeSignal lookups */
29
+ private readonly sigCoords;
30
+ constructor(baseUrl: string, username: string, password: string);
31
+ /**
32
+ * Core HTTP request. acceptExtra lists additional success status codes beyond 200/204.
33
+ * Used by subscribe() to accept HTTP 201 (Created) from POST /subscription.
34
+ */
35
+ private req;
36
+ connect(): Promise<void>;
37
+ disconnect(): Promise<void>;
38
+ getSessionCookie(): string | null;
39
+ getControllerState(): Promise<ControllerState>;
40
+ setControllerState(state: 'motoron' | 'motoroff'): Promise<void>;
41
+ getOperationMode(): Promise<OperationMode>;
42
+ getSpeedRatio(): Promise<number>;
43
+ /**
44
+ * Set the speed ratio (0-100). Live-verified format on OmniCore VC RW7.21
45
+ * via scripts/probe-speedratio.js (2026-05-07):
46
+ * ✓ POST /rw/panel/speedratio?action=setspeedratio body speed-ratio=N
47
+ * (RWS 1.0 wire format — OmniCore kept the legacy path)
48
+ * Requires `edit` mastership: 403 "user does not have required
49
+ * mastership" without it.
50
+ * ✗ POST /rw/panel/speedratio body speedratio=N → 400 "Invalid input form data"
51
+ * ✗ POST /rw/panel/speedratio/set → 404 (path doesn't exist)
52
+ *
53
+ * Acquires `edit` mastership internally and releases it after.
54
+ */
55
+ setSpeedRatio(ratio: number): Promise<void>;
56
+ getCollisionDetectionState(): Promise<CollisionDetectionState>;
57
+ lockOperationMode(pin: string, permanent?: boolean): Promise<void>;
58
+ unlockOperationMode(): Promise<void>;
59
+ /**
60
+ * Switch the controller's operation mode. **Virtual controllers only** —
61
+ * real hardware respects the FlexPendant key switch.
62
+ *
63
+ * Endpoint + wire format — ALL live-verified on OmniCore VC RW7.x via
64
+ * scripts/probe-opmode-write.js (2026-05-07):
65
+ * ✓ POST /rw/panel/opmode body opmode=auto → AUTO (200 OK)
66
+ * ✓ POST /rw/panel/opmode body opmode=man → MANR (200 OK)
67
+ * ✓ POST /rw/panel/opmode body opmode=manf → MANF (200 OK) — NOTE: `manf`,
68
+ * NOT `manfs` as RWS 1.0 uses. RWS 2.0 dropped the 's'.
69
+ * ✗ POST /rw/panel/opmode/set → 404 (path doesn't exist)
70
+ * ✗ POST /rw/panel/opmode body opmode=AUTO → 400 invalid value
71
+ * ✗ POST /rw/panel/opmode body opmode=manr → 400 invalid value
72
+ *
73
+ * The wire value is lowercase and uses the RWS 1.0 abbreviations *except*
74
+ * for MANF (`manf` on RWS 2.0 vs `manfs` on RWS 1.0). And NEITHER matches
75
+ * the GET-response casing (`AUTO`/`MANR`/`MANF`). This asymmetry is one
76
+ * of the documented protocol quirks of RWS 2.0.
77
+ *
78
+ * Side note: the controller pops up a confirmation dialog on the FlexPendant
79
+ * after the call returns 200 OK; the operator must approve before the mode
80
+ * actually flips. There is no API path to bypass this — UAS-grant changes
81
+ * are FlexPendant-only by design.
82
+ */
83
+ setOperationMode(mode: 'AUTO' | 'MANR' | 'MANF'): Promise<void>;
84
+ getRapidExecutionState(): Promise<ExecutionState>;
85
+ getRapidExecutionInfo(): Promise<ExecutionInfo>;
86
+ startRapid(): Promise<void>;
87
+ stopRapid(): Promise<void>;
88
+ resetRapid(): Promise<void>;
89
+ setExecutionCycle(cycle: ExecutionCycle): Promise<void>;
90
+ getRapidTasks(): Promise<RapidTask[]>;
91
+ activateRapidTask(task: string): Promise<void>;
92
+ deactivateRapidTask(task: string): Promise<void>;
93
+ activateAllRapidTasks(): Promise<void>;
94
+ deactivateAllRapidTasks(): Promise<void>;
95
+ listModules(task: string): Promise<string[]>;
96
+ /**
97
+ * Returns each loaded module's name + type (SysMod | ProgMod | …).
98
+ * Single round-trip — same endpoint as `listModules` but exposes more fields.
99
+ */
100
+ listModulesDetailed(task: string): Promise<Array<{
101
+ name: string;
102
+ type: string;
103
+ }>>;
104
+ loadModule(task: string, path: string, replace?: boolean): Promise<void>;
105
+ unloadModule(task: string, name: string): Promise<void>;
106
+ getRapidVariable(task: string, module: string, symbol: string): Promise<string>;
107
+ setRapidVariable(task: string, module: string, symbol: string, value: string): Promise<void>;
108
+ validateRapidValue(task: string, value: string, datatype: string): Promise<boolean>;
109
+ getRapidSymbolProperties(task: string, module: string, symbol: string): Promise<RapidSymbolProperties>;
110
+ searchRapidSymbols(params: RapidSymbolSearchParams): Promise<RapidSymbolInfo[]>;
111
+ getActiveUiInstruction(): Promise<UiInstruction | null>;
112
+ setUiInstructionParam(stackurl: string, uiparam: string, value: string): Promise<void>;
113
+ getJointPositions(mechunit?: string): Promise<JointTarget>;
114
+ getCartesianFull(mechunit?: string): Promise<CartesianFull>;
115
+ listMechunits(): Promise<string[]>;
116
+ getSystemInfo(): Promise<SystemInfo>;
117
+ getControllerIdentity(): Promise<ControllerIdentity>;
118
+ getControllerClock(): Promise<ControllerClock>;
119
+ setControllerClock(year: number, month: number, day: number, hour: number, min: number, sec: number): Promise<void>;
120
+ restartController(mode?: RestartMode): Promise<void>;
121
+ getEventLog(domain?: number): Promise<ElogMessage[]>;
122
+ clearEventLog(domain?: number): Promise<void>;
123
+ clearAllEventLogs(): Promise<void>;
124
+ listAllSignals(start?: number, limit?: number): Promise<Signal[]>;
125
+ readSignal(network: string, device: string, name: string): Promise<Signal>;
126
+ writeSignal(network: string, device: string, name: string, value: string): Promise<void>;
127
+ listNetworks(): Promise<IoNetwork[]>;
128
+ listDevices(network: string): Promise<IoDevice[]>;
129
+ private rws2Path;
130
+ listDirectory(path: string): Promise<FileEntry[]>;
131
+ readFile(path: string): Promise<string>;
132
+ uploadFile(path: string, content: string): Promise<void>;
133
+ deleteFile(path: string): Promise<void>;
134
+ /**
135
+ * Create a directory under `parentPath`. Live-verified RWS 2.0 API:
136
+ * POST /fileservice/{parent}/create
137
+ * body: fs-newname={dirName}
138
+ *
139
+ * The earlier shape (`/fileservice/{parent}/{dirName}/create` with no body)
140
+ * returned 404 because the controller treated `{parent}/{dirName}` as the
141
+ * parent and looked for an already-existing `{dirName}` segment.
142
+ */
143
+ createDirectory(parentPath: string, dirName: string): Promise<void>;
144
+ copyFile(sourcePath: string, destPath: string): Promise<void>;
145
+ listCfgDomains(): Promise<string[]>;
146
+ listCfgTypes(domain: string): Promise<string[]>;
147
+ listCfgInstances(domain: string, type: string): Promise<string[]>;
148
+ getCfgInstance(domain: string, type: string, instance: string): Promise<Record<string, string>>;
149
+ setCfgInstance(domain: string, type: string, instance: string, attrs: Record<string, string>): Promise<void>;
150
+ createCfgInstance(domain: string, type: string, instance: string, attrs: Record<string, string>): Promise<void>;
151
+ removeCfgInstance(domain: string, type: string, instance: string): Promise<void>;
152
+ loadCfgFile(filepath: string, action?: 'add' | 'replace' | 'add-with-reset'): Promise<void>;
153
+ saveCfgFile(domain: string, filepath: string): Promise<void>;
154
+ listBackups(): Promise<Array<{
155
+ name: string;
156
+ created?: string;
157
+ size?: number;
158
+ }>>;
159
+ createBackup(name: string): Promise<void>;
160
+ restoreBackup(name: string): Promise<void>;
161
+ getBackupStatus(): Promise<{
162
+ active: boolean;
163
+ progress?: number;
164
+ phase?: string;
165
+ }>;
166
+ getActiveTool(mechunit?: string): Promise<{
167
+ name: string;
168
+ data?: Record<string, string>;
169
+ }>;
170
+ getActiveWobj(mechunit?: string): Promise<{
171
+ name: string;
172
+ data?: Record<string, string>;
173
+ }>;
174
+ getActivePayload(mechunit?: string): Promise<{
175
+ name: string;
176
+ data?: Record<string, string>;
177
+ }>;
178
+ setActiveTool(mechunit: string, toolName: string): Promise<void>;
179
+ setActiveWobj(mechunit: string, wobjName: string): Promise<void>;
180
+ callServiceRoutine(task: string, routineName: string, args?: Record<string, string>): Promise<void>;
181
+ listDipcQueues(): Promise<Array<{
182
+ name: string;
183
+ size?: number;
184
+ }>>;
185
+ createDipcQueue(name: string, options?: {
186
+ maxsize?: number;
187
+ maxmessages?: number;
188
+ }): Promise<void>;
189
+ sendDipcMessage(queue: string, payload: string, type?: 'string' | 'num' | 'dnum' | 'bool'): Promise<void>;
190
+ readDipcMessage(queue: string, timeoutMs?: number): Promise<{
191
+ payload: string;
192
+ type: string;
193
+ } | null>;
194
+ removeDipcQueue(name: string): Promise<void>;
195
+ private rws2Domain;
196
+ requestMastership(domain: MastershipDomain): Promise<void>;
197
+ releaseMastership(domain: MastershipDomain): Promise<void>;
198
+ /** Request mastership on ALL domains at once (RWS 2.0). Cheaper than calling per-domain. */
199
+ requestMastershipAll(): Promise<void>;
200
+ /** Release mastership on ALL domains at once (RWS 2.0). */
201
+ releaseMastershipAll(): Promise<void>;
202
+ /**
203
+ * Request mastership on `domain` and receive a numeric ID token. Use the ID
204
+ * with `releaseMastershipWithId()` from a different session — useful when a
205
+ * client needs mastership to outlive the cookie that acquired it (e.g. a
206
+ * webapp that periodically reconnects). Token-based release is the only way
207
+ * to free a stuck mastership after session loss without a controller restart.
208
+ */
209
+ requestMastershipWithId(domain: MastershipDomain): Promise<number>;
210
+ /**
211
+ * Release mastership previously acquired via `requestMastershipWithId()`.
212
+ * Body parameter is `mastershipid` (no dash — controller-specific naming
213
+ * confirmed via 400 "Invalid value" probing; the dash variant returns the
214
+ * same error code as a missing value).
215
+ */
216
+ releaseMastershipWithId(domain: MastershipDomain, id: number): Promise<void>;
217
+ /**
218
+ * Reset the edit-mastership watchdog (RobotWare 7.8+). The controller has a
219
+ * heartbeat timer (default 2000 ms, configurable via `SYS/MASTER_BOOL/HeartBeat`);
220
+ * if the holding client doesn't ping during execution, motors go off and execution
221
+ * stops. Call this periodically (every ~1s) when holding mastership during a long
222
+ * RAPID run. No-op on RW6.x and on configurations with `Select=false`.
223
+ */
224
+ resetMastershipWatchdog(): Promise<void>;
225
+ /** Read mastership status for one domain — returns 'nomaster' | 'remote' | 'local' | similar. */
226
+ getMastershipStatus(domain: MastershipDomain): Promise<{
227
+ mastership: string;
228
+ uid?: string;
229
+ application?: string;
230
+ }>;
231
+ /** List all mastership domains the controller exposes (typically `['edit', 'motion']`). */
232
+ listMastershipDomains(): Promise<string[]>;
233
+ /**
234
+ * List the top-level device groupings (typically HW_DEVICES, SW_RESOURCES).
235
+ * This is the entry point for the controller's hardware inventory tree.
236
+ * Drill into each group with `getDeviceTree(group)`.
237
+ */
238
+ listSystemDevices(): Promise<Array<{
239
+ id: string;
240
+ name: string;
241
+ }>>;
242
+ /** Drill into a device group (e.g. 'HW_DEVICES'). Returns sub-tree as raw XHTML map. */
243
+ getDeviceTree(group: string): Promise<string>;
244
+ /**
245
+ * List ALL configured I/O devices across every network in one call.
246
+ * (`listDevices(network)` is the per-network variant — both are fine; this
247
+ * one's handy when you want a flat overview without enumerating networks first.)
248
+ */
249
+ listAllIoDevices(): Promise<Array<{
250
+ name: string;
251
+ network: string;
252
+ lstate: string;
253
+ pstate: string;
254
+ address: string;
255
+ }>>;
256
+ /**
257
+ * Forward kinematics: compute Cartesian pose from joint angles.
258
+ * Mirror of `calcJointsFromCartesian()` (which is inverse kinematics).
259
+ *
260
+ * Note: like IK, virtual controllers without the PC Interface (616-1) option
261
+ * generally reject this — the response comes back HTTP 200 but the body
262
+ * contains a retcode error link instead of the result. Real hardware with
263
+ * PC Interface licensed returns a valid pose.
264
+ */
265
+ calcCartesianFromJoints(joints: JointTarget, mechunit?: string, tool?: string, wobj?: string): Promise<RobTarget>;
266
+ listVisionSystems(): Promise<Array<{
267
+ name: string;
268
+ status?: string;
269
+ }>>;
270
+ getVisionSystemInfo(name: string): Promise<Record<string, string>>;
271
+ listVisionJobs(system: string): Promise<Array<{
272
+ name: string;
273
+ active?: boolean;
274
+ }>>;
275
+ triggerVisionJob(system: string, job: string): Promise<void>;
276
+ getSafetyStatus(): Promise<{
277
+ state: string;
278
+ details?: Record<string, string>;
279
+ }>;
280
+ listSafetyZones(): Promise<Array<Record<string, string>>>;
281
+ runCyclicBrakeCheck(): Promise<void>;
282
+ getVirtualTime(): Promise<{
283
+ time: number;
284
+ running: boolean;
285
+ speed?: number;
286
+ timeSlice?: number;
287
+ }>;
288
+ setVirtualTimeRunning(running: boolean): Promise<void>;
289
+ setVirtualTimeScale(scale: number): Promise<void>;
290
+ listCertificates(): Promise<Array<{
291
+ name: string;
292
+ subject?: string;
293
+ expires?: string;
294
+ }>>;
295
+ uploadCertificate(name: string, pem: string): Promise<void>;
296
+ removeCertificate(name: string): Promise<void>;
297
+ getRegistry(): Promise<Record<string, string>>;
298
+ compressPath(source: string, destination: string): Promise<void>;
299
+ listFileVolumes(): Promise<string[]>;
300
+ setProgramPointer(task: string, params: {
301
+ module?: string;
302
+ routine: string;
303
+ row?: number;
304
+ col?: number;
305
+ }): Promise<void>;
306
+ setPPToCursor(task: string, module: string, row: number, col: number): Promise<void>;
307
+ stepRapid(task: string, mode: 'into' | 'over' | 'out'): Promise<void>;
308
+ holdToRun(task: string, action: 'press' | 'release'): Promise<void>;
309
+ listBreakpoints(task: string): Promise<Array<{
310
+ module: string;
311
+ row: number;
312
+ col?: number;
313
+ }>>;
314
+ setBreakpoint(task: string, module: string, row: number, col?: number): Promise<void>;
315
+ removeBreakpoint(task: string, module: string, row: number, col?: number): Promise<void>;
316
+ getMechunitBaseFrame(mechunit?: string): Promise<{
317
+ x: number;
318
+ y: number;
319
+ z: number;
320
+ q1: number;
321
+ q2: number;
322
+ q3: number;
323
+ q4: number;
324
+ }>;
325
+ setMechunitBaseFrame(mechunit: string, frame: {
326
+ x: number;
327
+ y: number;
328
+ z: number;
329
+ q1: number;
330
+ q2: number;
331
+ q3: number;
332
+ q4: number;
333
+ }): Promise<void>;
334
+ getMechunitAxes(mechunit?: string): Promise<Array<Record<string, string>>>;
335
+ getMechunitPjoints(mechunit?: string): Promise<Record<string, number>>;
336
+ getMechunitInfo(mechunit?: string): Promise<Record<string, string>>;
337
+ getModuleSource(task: string, moduleName: string): Promise<string>;
338
+ getModuleInfo(task: string, moduleName: string): Promise<Record<string, string>>;
339
+ listModuleSymbols(task: string, moduleName: string): Promise<Array<{
340
+ name: string;
341
+ type: string;
342
+ dattyp?: string;
343
+ }>>;
344
+ getTaskStructuralChangeCount(task: string): Promise<number>;
345
+ getTaskMotion(task: string): Promise<Record<string, string>>;
346
+ getTaskActivationRecord(task: string): Promise<Record<string, string>>;
347
+ getTaskProgramInfo(task: string): Promise<Record<string, string>>;
348
+ /**
349
+ * Maps a SubscriptionResource to the RWS 2.0 path;stateParam string.
350
+ * Semicolons must NOT be URL-encoded — the controller requires them literal.
351
+ */
352
+ private static rws2ResourcePath;
353
+ /**
354
+ * Map a resource URL path back to its friendly name for handleSubscriptionEvent.
355
+ * Works with both /rw/panel/ctrlstate (RWS 1.0) and /rw/panel/ctrl-state (RWS 2.0).
356
+ */
357
+ static resourcePathToName(path: string): string;
358
+ subscribe(resources: SubscriptionResource[], handler: (event: SubscriptionEvent) => void): Promise<() => Promise<void>>;
359
+ /**
360
+ * Effective RMMP privilege held by THIS session.
361
+ * The controller's /users/rmmp returns whoever currently holds the privilege —
362
+ * we have to check `rmmpheldbyme` to know whether it's us or some other user.
363
+ * Returns 'none' if another user holds it (we'd need to re-request for our own session).
364
+ */
365
+ getRmmpPrivilege(): Promise<string>;
366
+ /** Request 'modify' privilege. Triggers a FlexPendant approval popup. */
367
+ requestRmmp(level?: 'modify' | 'exclusive'): Promise<void>;
368
+ /** Monotonic counter required by /rw/motionsystem/jog (controller rejects same value twice). */
369
+ private jogCcount;
370
+ jog(params: {
371
+ mode: 'Joint' | 'Cartesian';
372
+ axes: [number, number, number, number, number, number];
373
+ speed: number;
374
+ mechunit?: string;
375
+ }): Promise<void>;
376
+ getLicenseInfo(): Promise<{
377
+ entries: Array<Record<string, string>>;
378
+ }>;
379
+ listProducts(): Promise<Array<Record<string, string>>>;
380
+ getRobotType(): Promise<{
381
+ type: string;
382
+ variant?: string;
383
+ }>;
384
+ getEnergyStats(): Promise<Record<string, string>>;
385
+ getReturnCode(code: number, lang?: string): Promise<{
386
+ code: number;
387
+ title: string;
388
+ desc: string;
389
+ } | null>;
390
+ listControllerOptions(): Promise<Array<{
391
+ name: string;
392
+ description?: string;
393
+ }>>;
394
+ listFeatures(): Promise<Array<Record<string, string>>>;
395
+ getMotionChangeCount(): Promise<number>;
396
+ getMotionErrorState(): Promise<{
397
+ state: string;
398
+ details?: Record<string, string>;
399
+ }>;
400
+ getNonMotionExecution(): Promise<boolean>;
401
+ setNonMotionExecution(enabled: boolean): Promise<void>;
402
+ getCollisionPredictionMode(): Promise<string>;
403
+ setCollisionPredictionMode(mode: string): Promise<void>;
404
+ getEnableRequest(): Promise<{
405
+ state: string;
406
+ raw: Record<string, string>;
407
+ }>;
408
+ listAliasIO(): Promise<Array<{
409
+ alias: string;
410
+ signal: string;
411
+ }>>;
412
+ getTaskSelection(): Promise<{
413
+ selected: string[];
414
+ available: string[];
415
+ }>;
416
+ setTaskSelection(tasks: string[]): Promise<void>;
417
+ getProgramPointer(task: string): Promise<{
418
+ module?: string;
419
+ routine?: string;
420
+ row?: number;
421
+ col?: number;
422
+ executionType?: string;
423
+ }>;
424
+ getMotionPointer(task: string): Promise<{
425
+ module?: string;
426
+ routine?: string;
427
+ row?: number;
428
+ col?: number;
429
+ state?: string;
430
+ }>;
431
+ calcJointsFromCartesian(pos: RobTarget, seedJoints?: JointTarget, mechunit?: string): Promise<JointTarget>;
432
+ /**
433
+ * Send a DELETE request to an absolute URL (used to clean up subscriptions).
434
+ * The URL is absolute (https://host:port/poll/{id}) so we can't use req() directly.
435
+ */
436
+ private reqDelete;
437
+ }
438
+ //# sourceMappingURL=RwsClient2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RwsClient2.d.ts","sourceRoot":"","sources":["../src/RwsClient2.ts"],"names":[],"mappings":"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"}