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,129 @@
1
+ import * as crypto from 'crypto';
2
+ import { RobotManager } from './RobotManager.js';
3
+ /**
4
+ * Manages multiple RobotManager instances.
5
+ * One robot is "active" at a time — all panels display that robot's state.
6
+ */
7
+ export class MultiRobotManager {
8
+ managers = new Map();
9
+ configMap = new Map();
10
+ _activeId = null;
11
+ handlers = [];
12
+ errorListener = null;
13
+ // ── Accessors ──────────────────────────────────────────────────────────────
14
+ /** The currently selected robot's manager, or null if no robots configured. */
15
+ get active() {
16
+ return this._activeId ? (this.managers.get(this._activeId) ?? null) : null;
17
+ }
18
+ get activeId() { return this._activeId; }
19
+ /** All robots with their configs and managers. */
20
+ get entries() {
21
+ return [...this.managers.entries()].map(([id, manager]) => ({
22
+ id, config: this.configMap.get(id), manager,
23
+ }));
24
+ }
25
+ get configs() { return [...this.configMap.values()]; }
26
+ // ── State interface (satisfies providers that only need state) ─────────────
27
+ get state() {
28
+ return this.active?.state ?? {
29
+ connected: false, host: '', ctrlstate: null, opmode: null,
30
+ execstate: null, execCycle: null, speedRatio: null, coldetstate: null,
31
+ tasks: [], modules: [], mechunits: [], joints: null, cartesian: null,
32
+ cartesianFull: null, identity: null, systemInfo: null, eventLog: [], ioSignals: [],
33
+ };
34
+ }
35
+ onDidChange(fn) { this.handlers.push(fn); }
36
+ /**
37
+ * Install an error listener that gets attached to every current AND future
38
+ * RobotManager. Convenience for hosts that want a single sink for connection
39
+ * failures across all robots.
40
+ */
41
+ onError(fn) {
42
+ this.errorListener = fn;
43
+ for (const mgr of this.managers.values()) {
44
+ mgr.onError(fn);
45
+ }
46
+ }
47
+ // Delegated methods for providers that call manager methods directly
48
+ async listDirectory(remotePath) {
49
+ const m = this.active;
50
+ if (!m) {
51
+ throw new Error('No active robot');
52
+ }
53
+ return m.listDirectory(remotePath);
54
+ }
55
+ // ── Robot management ───────────────────────────────────────────────────────
56
+ addRobot(config) {
57
+ const mgr = new RobotManager();
58
+ mgr.onDidChange(() => this.notify());
59
+ if (this.errorListener) {
60
+ mgr.onError(this.errorListener);
61
+ }
62
+ this.managers.set(config.id, mgr);
63
+ this.configMap.set(config.id, config);
64
+ if (!this._activeId) {
65
+ this._activeId = config.id;
66
+ }
67
+ this.notify();
68
+ }
69
+ updateConfig(id, patch) {
70
+ const existing = this.configMap.get(id);
71
+ if (existing) {
72
+ this.configMap.set(id, { ...existing, ...patch });
73
+ this.notify();
74
+ }
75
+ }
76
+ removeRobot(id) {
77
+ this.managers.get(id)?.disconnect().catch(() => { });
78
+ this.managers.delete(id);
79
+ this.configMap.delete(id);
80
+ if (this._activeId === id) {
81
+ this._activeId = [...this.managers.keys()][0] ?? null;
82
+ }
83
+ this.notify();
84
+ }
85
+ setActive(id) {
86
+ if (this.managers.has(id)) {
87
+ this._activeId = id;
88
+ this.notify();
89
+ }
90
+ }
91
+ // ── Per-robot connect/disconnect ───────────────────────────────────────────
92
+ async connectRobot(id) {
93
+ const mgr = this.managers.get(id);
94
+ const cfg = this.configMap.get(id);
95
+ if (!mgr || !cfg) {
96
+ throw new Error(`Robot ${id} not found`);
97
+ }
98
+ // Pass stored port/useHttps so same-host robots go to different ports
99
+ await mgr.connect(cfg.host, cfg.username, cfg.password, cfg.port, cfg.useHttps);
100
+ // If RobotManager auto-recovered a different port (RobotStudio reassigned it),
101
+ // persist the new port so future connects skip the scan step.
102
+ const actualPort = mgr.currentPort;
103
+ const actualUseHttps = mgr.currentUseHttps;
104
+ if (actualPort !== undefined && actualPort !== cfg.port) {
105
+ this.configMap.set(id, { ...cfg, port: actualPort, useHttps: actualUseHttps });
106
+ }
107
+ if (!this.active?.state.connected) {
108
+ this._activeId = id;
109
+ }
110
+ this.notify();
111
+ }
112
+ async disconnectRobot(id) {
113
+ await this.managers.get(id)?.disconnect();
114
+ }
115
+ // ── Serialization ──────────────────────────────────────────────────────────
116
+ /** Create a MultiRobotManager from persisted configs, with backward compatibility for legacy single-robot settings. */
117
+ static fromConfigs(configs) {
118
+ const m = new MultiRobotManager();
119
+ configs.forEach(c => m.addRobot(c));
120
+ return m;
121
+ }
122
+ /** Generate a new robot config ID. */
123
+ static newId() {
124
+ return crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).slice(2);
125
+ }
126
+ // ── Internal ───────────────────────────────────────────────────────────────
127
+ notify() { this.handlers.forEach(h => h()); }
128
+ }
129
+ //# sourceMappingURL=MultiRobotManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiRobotManager.js","sourceRoot":"","sources":["../src/MultiRobotManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,297 @@
1
+ import { RwsClient } from './RwsClient.js';
2
+ import type { ExecutionCycle, JointTarget, RobTarget, RapidSymbolSearchParams, RestartMode, MastershipDomain, SubscriptionResource, SubscriptionEvent } from './types.js';
3
+ import type { IRWSAdapter } from './IRWSAdapter.js';
4
+ interface RWS1Credentials {
5
+ host: string;
6
+ port: number;
7
+ username: string;
8
+ password: string;
9
+ }
10
+ /**
11
+ * RWS 1.0 adapter — thin wrapper around RwsClient (abb-rws-client).
12
+ * Every method delegates directly; zero logic change from pre-adapter behavior.
13
+ * Targets ABB IRC5 controllers running RobotWare 6.x.
14
+ */
15
+ export declare class RWS1Adapter implements IRWSAdapter {
16
+ private readonly client;
17
+ private readonly creds?;
18
+ constructor(client: RwsClient, creds?: RWS1Credentials | undefined);
19
+ connect(): Promise<void>;
20
+ disconnect(): Promise<void>;
21
+ getSessionCookie(): string | null;
22
+ getControllerState(): Promise<import("./types.js").ControllerState>;
23
+ setControllerState(s: 'motoron' | 'motoroff'): Promise<void>;
24
+ getOperationMode(): Promise<import("./types.js").OperationMode>;
25
+ getSpeedRatio(): Promise<number>;
26
+ setSpeedRatio(r: number): Promise<void>;
27
+ getCollisionDetectionState(): Promise<import("./types.js").CollisionDetectionState>;
28
+ lockOperationMode(pin: string, p?: boolean): Promise<void>;
29
+ unlockOperationMode(): Promise<void>;
30
+ setOperationMode(mode: 'AUTO' | 'MANR' | 'MANF'): Promise<void>;
31
+ getRapidExecutionState(): Promise<import("./types.js").ExecutionState>;
32
+ getRapidExecutionInfo(): Promise<import("./types.js").ExecutionInfo>;
33
+ startRapid(): Promise<void>;
34
+ stopRapid(): Promise<void>;
35
+ resetRapid(): Promise<void>;
36
+ setExecutionCycle(c: ExecutionCycle): Promise<void>;
37
+ getRapidTasks(): Promise<import("./types.js").RapidTask[]>;
38
+ activateRapidTask(t: string): Promise<void>;
39
+ deactivateRapidTask(t: string): Promise<void>;
40
+ activateAllRapidTasks(): Promise<void>;
41
+ deactivateAllRapidTasks(): Promise<void>;
42
+ listModules(task: string): Promise<string[]>;
43
+ /** RWS 1.0 module-list also exposes name + type (SysMod / ProgMod) per entry. */
44
+ listModulesDetailed(task: string): Promise<Array<{
45
+ name: string;
46
+ type: string;
47
+ }>>;
48
+ loadModule(task: string, path: string, r?: boolean): Promise<void>;
49
+ unloadModule(task: string, name: string): Promise<void>;
50
+ getRapidVariable(t: string, m: string, s: string): Promise<string>;
51
+ setRapidVariable(t: string, m: string, s: string, v: string): Promise<void>;
52
+ validateRapidValue(t: string, v: string, d: string): Promise<boolean>;
53
+ getRapidSymbolProperties(t: string, m: string, s: string): Promise<import("./types.js").RapidSymbolProperties>;
54
+ searchRapidSymbols(p: RapidSymbolSearchParams): Promise<import("./types.js").RapidSymbolInfo[]>;
55
+ getActiveUiInstruction(): Promise<import("./types.js").UiInstruction | null>;
56
+ setUiInstructionParam(su: string, up: string, v: string): Promise<void>;
57
+ getJointPositions(u?: string): Promise<JointTarget>;
58
+ getCartesianFull(u?: string): Promise<import("./types.js").CartesianFull>;
59
+ /** RwsClient has no listMechunits — IRC5 always has ROB_1 as the standard mechunit. */
60
+ listMechunits(): Promise<string[]>;
61
+ getSystemInfo(): Promise<import("./types.js").SystemInfo>;
62
+ getControllerIdentity(): Promise<import("./types.js").ControllerIdentity>;
63
+ getControllerClock(): Promise<import("./types.js").ControllerClock>;
64
+ setControllerClock(Y: number, Mo: number, D: number, H: number, Mi: number, S: number): Promise<void>;
65
+ restartController(m: RestartMode): Promise<void>;
66
+ getEventLog(d?: number, l?: string): Promise<import("./types.js").ElogMessage[]>;
67
+ clearEventLog(d?: number): Promise<void>;
68
+ clearAllEventLogs(): Promise<void>;
69
+ listAllSignals(s?: number, l?: number): Promise<import("./types.js").Signal[]>;
70
+ readSignal(n: string, d: string, name: string): Promise<import("./types.js").Signal>;
71
+ writeSignal(n: string, d: string, name: string, v: string): Promise<void>;
72
+ listNetworks(): Promise<import("./types.js").IoNetwork[]>;
73
+ listDevices(network: string): Promise<import("./types.js").IoDevice[]>;
74
+ listDirectory(path: string): Promise<import("./types.js").FileEntry[]>;
75
+ readFile(path: string): Promise<string>;
76
+ uploadFile(path: string, content: string): Promise<void>;
77
+ deleteFile(path: string): Promise<void>;
78
+ createDirectory(parent: string, dir: string): Promise<void>;
79
+ copyFile(src: string, dst: string): Promise<void>;
80
+ requestMastership(d: MastershipDomain): Promise<void>;
81
+ releaseMastership(d: MastershipDomain): Promise<void>;
82
+ /** Request mastership on all domains (cfg + motion + rapid) at once. */
83
+ requestMastershipAll(): Promise<void>;
84
+ /** Release mastership on all domains at once. */
85
+ releaseMastershipAll(): Promise<void>;
86
+ /**
87
+ * RWS 1.0 doesn't expose `request-with-id` / `release-with-id` — those are
88
+ * RWS 2.0 / RobotWare 7+ additions. The `?` in the IRWSAdapter signature
89
+ * means we don't have to implement on this side; calls just throw.
90
+ */
91
+ /**
92
+ * RWS 1.0 doesn't expose a watchdog endpoint — heartbeat is RWS 2.0 only.
93
+ * The optional method on IRWSAdapter is left undefined here so callers can
94
+ * feature-detect (`if ('resetMastershipWatchdog' in adapter)`).
95
+ */
96
+ /** Read mastership status for one domain. */
97
+ getMastershipStatus(d: MastershipDomain): Promise<{
98
+ mastership: string;
99
+ uid?: string;
100
+ application?: string;
101
+ }>;
102
+ /** List mastership domains (RWS 1.0: ['cfg', 'motion', 'rapid']). */
103
+ listMastershipDomains(): Promise<string[]>;
104
+ listSystemDevices(): Promise<Array<{
105
+ id: string;
106
+ name: string;
107
+ }>>;
108
+ getDeviceTree(group: string): Promise<string>;
109
+ listAllIoDevices(): Promise<Array<{
110
+ name: string;
111
+ network: string;
112
+ lstate: string;
113
+ pstate: string;
114
+ address: string;
115
+ }>>;
116
+ /**
117
+ * Forward kinematics on RWS 1.0. Same VC-license caveat as IK.
118
+ */
119
+ calcCartesianFromJoints(joints: JointTarget, mechunit?: string, tool?: string, wobj?: string): Promise<RobTarget>;
120
+ subscribe(resources: SubscriptionResource[], handler: (event: SubscriptionEvent) => void): Promise<() => Promise<void>>;
121
+ /** Monotonic counter required by RWS jog endpoint (rejects duplicate ccount values). */
122
+ private jogCcount;
123
+ jog(params: {
124
+ mode: 'Joint' | 'Cartesian';
125
+ axes: [number, number, number, number, number, number];
126
+ speed: number;
127
+ mechunit?: string;
128
+ }): Promise<void>;
129
+ /**
130
+ * Generic GET that returns `_embedded._state[0]` (single resource) or [] (list).
131
+ * Most RWS 1.0 endpoints with `?json=1` return this HAL-like envelope.
132
+ * Returns empty result for HTTP 204 (no content) — common on /ctrl/options etc.
133
+ */
134
+ private rws1Get;
135
+ /** Generic POST that throws on >=400, returns the parsed JSON body. */
136
+ private rws1Post;
137
+ getRobotType(): Promise<{
138
+ type: string;
139
+ variant?: string;
140
+ }>;
141
+ getLicenseInfo(): Promise<{
142
+ entries: Array<Record<string, string>>;
143
+ }>;
144
+ listProducts(): Promise<Array<Record<string, string>>>;
145
+ getEnergyStats(): Promise<Record<string, string>>;
146
+ getReturnCode(code: number, lang?: string): Promise<{
147
+ code: number;
148
+ title: string;
149
+ desc: string;
150
+ } | null>;
151
+ listControllerOptions(): Promise<Array<{
152
+ name: string;
153
+ description?: string;
154
+ }>>;
155
+ getMotionChangeCount(): Promise<number>;
156
+ getMotionErrorState(): Promise<{
157
+ state: string;
158
+ details?: Record<string, string>;
159
+ }>;
160
+ getNonMotionExecution(): Promise<boolean>;
161
+ setNonMotionExecution(enabled: boolean): Promise<void>;
162
+ getMechunitInfo(mechunit?: string): Promise<Record<string, string>>;
163
+ getMechunitBaseFrame(mechunit?: string): Promise<{
164
+ x: number;
165
+ y: number;
166
+ z: number;
167
+ q1: number;
168
+ q2: number;
169
+ q3: number;
170
+ q4: number;
171
+ }>;
172
+ getMechunitAxes(mechunit?: string): Promise<Array<Record<string, string>>>;
173
+ getActiveTool(mechunit?: string): Promise<{
174
+ name: string;
175
+ data?: Record<string, string>;
176
+ }>;
177
+ getActiveWobj(mechunit?: string): Promise<{
178
+ name: string;
179
+ data?: Record<string, string>;
180
+ }>;
181
+ getActivePayload(mechunit?: string): Promise<{
182
+ name: string;
183
+ data?: Record<string, string>;
184
+ }>;
185
+ listAliasIO(): Promise<Array<{
186
+ alias: string;
187
+ signal: string;
188
+ }>>;
189
+ getProgramPointer(task: string): Promise<{
190
+ module?: string;
191
+ routine?: string;
192
+ row?: number;
193
+ col?: number;
194
+ }>;
195
+ getMotionPointer(task: string): Promise<{
196
+ module?: string;
197
+ routine?: string;
198
+ row?: number;
199
+ col?: number;
200
+ }>;
201
+ listCfgDomains(): Promise<string[]>;
202
+ listCfgTypes(domain: string): Promise<string[]>;
203
+ listCfgInstances(domain: string, type: string): Promise<string[]>;
204
+ getCfgInstance(domain: string, type: string, instance: string): Promise<Record<string, string>>;
205
+ listBackups(): Promise<Array<{
206
+ name: string;
207
+ created?: string;
208
+ size?: number;
209
+ }>>;
210
+ getBackupStatus(): Promise<{
211
+ active: boolean;
212
+ progress?: number;
213
+ phase?: string;
214
+ }>;
215
+ getRmmpPrivilege(): Promise<string>;
216
+ requestRmmp(level?: 'modify' | 'exclusive'): Promise<void>;
217
+ createBackup(name: string): Promise<void>;
218
+ restoreBackup(name: string): Promise<void>;
219
+ listProgress(): Promise<Array<{
220
+ id: string;
221
+ state: string;
222
+ }>>;
223
+ getProgress(id: string): Promise<{
224
+ state: string;
225
+ details?: Record<string, string>;
226
+ } | null>;
227
+ listDipcQueues(): Promise<Array<{
228
+ name: string;
229
+ size?: number;
230
+ }>>;
231
+ createDipcQueue(name: string, options?: {
232
+ maxsize?: number;
233
+ maxmessages?: number;
234
+ }): Promise<void>;
235
+ sendDipcMessage(queue: string, payload: string, type?: 'string' | 'num' | 'dnum' | 'bool'): Promise<void>;
236
+ readDipcMessage(queue: string): Promise<{
237
+ payload: string;
238
+ type: string;
239
+ } | null>;
240
+ removeDipcQueue(name: string): Promise<void>;
241
+ getSafetyStatus(): Promise<{
242
+ state: string;
243
+ details?: Record<string, string>;
244
+ }>;
245
+ listSafetyZones(): Promise<Array<Record<string, string>>>;
246
+ runCyclicBrakeCheck(): Promise<void>;
247
+ getVirtualTime(): Promise<{
248
+ time: number;
249
+ running: boolean;
250
+ speed?: number;
251
+ }>;
252
+ setVirtualTimeRunning(running: boolean): Promise<void>;
253
+ setVirtualTimeScale(scale: number): Promise<void>;
254
+ listVisionSystems(): Promise<Array<{
255
+ name: string;
256
+ status?: string;
257
+ }>>;
258
+ getVisionSystemInfo(name: string): Promise<Record<string, string>>;
259
+ triggerVisionJob(system: string): Promise<void>;
260
+ saveModule(task: string, moduleName: string, filepath: string): Promise<void>;
261
+ listModuleRoutines(task: string, moduleName: string): Promise<Array<{
262
+ name: string;
263
+ type: string;
264
+ }>>;
265
+ listBreakpoints(task: string): Promise<Array<{
266
+ module: string;
267
+ row: number;
268
+ col?: number;
269
+ }>>;
270
+ holdToRun(task: string, action: 'press' | 'release'): Promise<void>;
271
+ startProductionMode(): Promise<void>;
272
+ getNetworkConfig(): Promise<Record<string, string>>;
273
+ getDnsConfig(): Promise<Record<string, string>>;
274
+ getRoutingTable(): Promise<Array<Record<string, string>>>;
275
+ getTimezone(): Promise<{
276
+ tz: string;
277
+ raw: Record<string, string>;
278
+ }>;
279
+ getCompatibility(): Promise<{
280
+ compatible: boolean;
281
+ details?: Record<string, string>;
282
+ }>;
283
+ setMechunitForJogging(mechunit: string): Promise<void>;
284
+ setRobtargetForJogging(target: {
285
+ x: number;
286
+ y: number;
287
+ z: number;
288
+ q1: number;
289
+ q2: number;
290
+ q3: number;
291
+ q4: number;
292
+ }): Promise<void>;
293
+ calcJointsFromCartesian(pos: RobTarget, seedJoints?: JointTarget, mechunit?: string): Promise<JointTarget>;
294
+ private digestPost;
295
+ }
296
+ export {};
297
+ //# sourceMappingURL=RWS1Adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RWS1Adapter.d.ts","sourceRoot":"","sources":["../src/RWS1Adapter.ts"],"names":[],"mappings":"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"}