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.
- package/CHANGELOG.md +203 -0
- package/README.md +215 -28
- package/dist/HttpSession.d.ts.map +1 -1
- package/dist/HttpSession.js +18 -1
- package/dist/HttpSession.js.map +1 -1
- package/dist/IRWSAdapter.d.ts +421 -0
- package/dist/IRWSAdapter.d.ts.map +1 -0
- package/dist/IRWSAdapter.js +2 -0
- package/dist/IRWSAdapter.js.map +1 -0
- package/dist/Logger.d.ts +35 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +24 -0
- package/dist/Logger.js.map +1 -0
- package/dist/MultiRobotManager.d.ts +56 -0
- package/dist/MultiRobotManager.d.ts.map +1 -0
- package/dist/MultiRobotManager.js +129 -0
- package/dist/MultiRobotManager.js.map +1 -0
- package/dist/RWS1Adapter.d.ts +297 -0
- package/dist/RWS1Adapter.d.ts.map +1 -0
- package/dist/RWS1Adapter.js +870 -0
- package/dist/RWS1Adapter.js.map +1 -0
- package/dist/RWS2Adapter.d.ts +20 -0
- package/dist/RWS2Adapter.d.ts.map +1 -0
- package/dist/RWS2Adapter.js +19 -0
- package/dist/RWS2Adapter.js.map +1 -0
- package/dist/ResourceMapper.d.ts +9 -2
- package/dist/ResourceMapper.d.ts.map +1 -1
- package/dist/ResourceMapper.js +11 -3
- package/dist/ResourceMapper.js.map +1 -1
- package/dist/RobotManager.d.ts +536 -0
- package/dist/RobotManager.d.ts.map +1 -0
- package/dist/RobotManager.js +1523 -0
- package/dist/RobotManager.js.map +1 -0
- package/dist/RwsClient.d.ts +33 -3
- package/dist/RwsClient.d.ts.map +1 -1
- package/dist/RwsClient.js +74 -10
- package/dist/RwsClient.js.map +1 -1
- package/dist/RwsClient2.d.ts +438 -0
- package/dist/RwsClient2.d.ts.map +1 -0
- package/dist/RwsClient2.js +1672 -0
- package/dist/RwsClient2.js.map +1 -0
- package/dist/XhtmlParser.d.ts +24 -0
- package/dist/XhtmlParser.d.ts.map +1 -0
- package/dist/XhtmlParser.js +56 -0
- package/dist/XhtmlParser.js.map +1 -0
- package/dist/detect.d.ts +54 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +187 -0
- package/dist/detect.js.map +1 -0
- package/dist/index.d.ts +29 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/examples/01-quickstart-auto.mjs +20 -0
- package/examples/02-rws1-explicit.mjs +30 -0
- package/examples/03-rws2-explicit.mjs +26 -0
- package/examples/04-multi-robot.mjs +35 -0
- package/examples/05-remote-control-rmmp.mjs +52 -0
- package/examples/06-pull-module-source.mjs +38 -0
- 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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"}
|