roslib-ts 1.0.0-beta.5 → 1.0.0-beta.7

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.
@@ -0,0 +1,332 @@
1
+ declare class EventEmitter {
2
+ private events;
3
+ on(event: string, listener: Function): this;
4
+ once(event: string, listener: Function): this;
5
+ off(event: string, listener?: Function): this;
6
+ emit(event: string, ...args: any[]): boolean;
7
+ removeAllListeners(event?: string): this;
8
+ listenerCount(event: string): number;
9
+ }
10
+
11
+ interface RosOptions {
12
+ url?: string;
13
+ WebSocket?: typeof WebSocket;
14
+ }
15
+ interface RosLike {
16
+ on(event: string, listener: Function): this;
17
+ once(event: string, listener: Function): this;
18
+ off(event: string, listener?: Function): this;
19
+ emit(event: string, ...args: any[]): boolean;
20
+ callOnConnection(message: any): void;
21
+ getNextId(): string;
22
+ readonly isConnected: boolean;
23
+ }
24
+ declare class Ros extends EventEmitter implements RosLike {
25
+ private socket;
26
+ private _isConnected;
27
+ private idCounter;
28
+ private options;
29
+ constructor(options?: RosOptions);
30
+ get isConnected(): boolean;
31
+ connect(url: string): void;
32
+ close(): void;
33
+ private handleMessage;
34
+ callOnConnection(message: any): void;
35
+ getNextId(): string;
36
+ }
37
+
38
+ /**
39
+ * 事件发射器,用于内部实现
40
+ */
41
+
42
+ /**
43
+ * 连接状态枚举
44
+ */
45
+ declare enum EnhancedRosState {
46
+ /** 空闲/初始状态 */
47
+ IDLE = "IDLE",
48
+ /** 正在连接 */
49
+ CONNECTING = "CONNECTING",
50
+ /** 已连接 */
51
+ CONNECTED = "CONNECTED",
52
+ /** 正在重连 */
53
+ RECONNECTING = "RECONNECTING",
54
+ /** 已手动关闭 */
55
+ CLOSED = "CLOSED",
56
+ /** 发生错误 */
57
+ ERROR = "ERROR"
58
+ }
59
+ /**
60
+ * 构造参数
61
+ */
62
+ interface EnhancedRosOptions {
63
+ /** 默认连接地址 */
64
+ url?: string;
65
+ /** 自定义 WebSocket 实现(用于测试或特殊环境) */
66
+ WebSocket?: typeof WebSocket;
67
+ /** 首次重连延迟(毫秒) */
68
+ reconnect_min_delay?: number;
69
+ /** 最大重连延迟(毫秒) */
70
+ reconnect_max_delay?: number;
71
+ /** 心跳间隔(毫秒,≤0 则关闭心跳) */
72
+ heartbeat_interval_ms?: number;
73
+ /** 心跳函数(默认发送 ping 消息) */
74
+ heartbeat_fn?: () => void;
75
+ }
76
+ /**
77
+ * 增强版 ROS 连接封装
78
+ * 支持自动重连、心跳保活、消息队列、状态管理
79
+ */
80
+ declare class EnhancedRos extends EventEmitter implements RosLike {
81
+ /** WebSocket 实例 */
82
+ private socket;
83
+ /** 自增 ID 计数器,用于请求-响应匹配 */
84
+ private idCounter;
85
+ /** 用户配置副本 */
86
+ private options;
87
+ /** 当前连接状态 */
88
+ private _state;
89
+ /** 当前/最近一次连接地址 */
90
+ currentUrl: string | null;
91
+ /** 离线消息队列,连接成功后自动发送 */
92
+ private messageQueue;
93
+ /** 重连定时器句柄 */
94
+ private reconnectTimer;
95
+ /** 本次重连等待时长(动态退避) */
96
+ private reconnectDelayMs;
97
+ /** 最小重连延迟(配置值,默认1s) */
98
+ private readonly reconnectMinDelayMs;
99
+ /** 最大重连延迟(配置值,默认30s) */
100
+ private readonly reconnectMaxDelayMs;
101
+ /** 心跳定时器句柄 */
102
+ private heartbeatTimer;
103
+ /** 心跳间隔(配置值,默认0s不启用) */
104
+ private readonly heartbeatIntervalMs;
105
+ /** 心跳函数(默认发送 ping 消息) */
106
+ private readonly heartbeatFn?;
107
+ /** 最近一次收到服务端消息的时间戳 */
108
+ private lastServerMessageAtMs;
109
+ /** 标记是否为用户主动关闭(影响重连策略) */
110
+ private manualClose;
111
+ /** 连接代际,用于丢弃过期的重连任务 */
112
+ private connectGeneration;
113
+ /**
114
+ * 构造函数
115
+ * @param options 配置项
116
+ */
117
+ constructor(options?: EnhancedRosOptions);
118
+ /** 获取当前状态 */
119
+ get state(): EnhancedRosState;
120
+ /** 是否已连接 */
121
+ get isConnected(): boolean;
122
+ /**
123
+ * 建立连接(如已连接相同地址则忽略)
124
+ * @param url WebSocket 地址,例如 ws://localhost:9090
125
+ */
126
+ connect(url: string): void;
127
+ /**
128
+ * 手动关闭连接(不会触发自动重连)
129
+ */
130
+ close(): void;
131
+ /**
132
+ * 发送消息(离线时自动入队)
133
+ * @param message 任意 JSON 兼容对象
134
+ */
135
+ callOnConnection(message: any): void;
136
+ /**
137
+ * 获取下一个自增 ID(字符串形式)
138
+ */
139
+ getNextId(): string;
140
+ /** 状态变更并对外广播 */
141
+ private setState;
142
+ /** 连接前清理资源 */
143
+ private cleanupForConnect;
144
+ /** 清除重连定时器 */
145
+ private clearReconnectTimer;
146
+ /** 创建并绑定 WebSocket 事件 */
147
+ private openSocket;
148
+ /** 安全关闭 WebSocket */
149
+ private closeSocket;
150
+ /** 调度下一次重连(退避策略,达到最大后固定) */
151
+ private scheduleReconnect;
152
+ /** 启动心跳定时器 */
153
+ private startHeartbeat;
154
+ /** 停止心跳定时器 */
155
+ private stopHeartbeat;
156
+ /** 将离线队列全部发出 */
157
+ private flushQueue;
158
+ /** 真正发送 JSON 字符串 */
159
+ private send;
160
+ cast(message: any): void;
161
+ /** 解析并分发服务端消息 */
162
+ private handleMessage;
163
+ }
164
+
165
+ interface TopicOptions {
166
+ ros: RosLike;
167
+ name: string;
168
+ messageType: string;
169
+ compression?: string;
170
+ throttle_rate?: number;
171
+ queue_size?: number;
172
+ latch?: boolean;
173
+ queue_length?: number;
174
+ }
175
+ declare class Topic extends EventEmitter {
176
+ readonly ros: RosLike;
177
+ readonly name: string;
178
+ readonly messageType: string;
179
+ readonly compression?: string;
180
+ readonly throttle_rate?: number;
181
+ readonly queue_size?: number;
182
+ readonly latch?: boolean;
183
+ readonly queue_length?: number;
184
+ private isSubscribed;
185
+ private isAdvertised;
186
+ private advertiseId?;
187
+ /** 存储绑定的重连处理器,便于精准卸载 */
188
+ private _reconnectHandler;
189
+ constructor(options: TopicOptions);
190
+ /** 发送底层的订阅协议包 */
191
+ private _sendSubscribe;
192
+ /** 发送底层的公告协议包 */
193
+ private _sendAdvertise;
194
+ /**
195
+ * 订阅话题
196
+ * @param callback 接收消息的回调函数
197
+ */
198
+ subscribe(callback?: (message: any) => void): void;
199
+ /** 取消订阅 */
200
+ unsubscribe(): void;
201
+ /** 公告话题(作为发布者) */
202
+ advertise(): void;
203
+ /** 取消公告 */
204
+ unadvertise(): void;
205
+ /** 发布消息 */
206
+ publish(message: any): void;
207
+ /** 内部状态处理:连接关闭时重置标志位 */
208
+ private _handleClose;
209
+ }
210
+
211
+ declare class ServiceRequest {
212
+ [key: string]: any;
213
+ constructor(values?: {
214
+ [key: string]: any;
215
+ });
216
+ }
217
+ declare class ServiceResponse {
218
+ [key: string]: any;
219
+ constructor(values?: {
220
+ [key: string]: any;
221
+ });
222
+ }
223
+
224
+ interface ServiceOptions {
225
+ ros: RosLike;
226
+ name: string;
227
+ serviceType: string;
228
+ }
229
+ declare class Service extends EventEmitter {
230
+ private ros;
231
+ private name;
232
+ private serviceType;
233
+ private isAdvertised;
234
+ /** 存储绑定的重连处理器 */
235
+ private _reconnectHandler;
236
+ /** 存储服务请求处理函数,便于卸载 */
237
+ private _currentServiceCallback;
238
+ constructor(options: ServiceOptions);
239
+ callService(request: ServiceRequest, callback?: (response: ServiceResponse) => void, failedCallback?: (error: any) => void): Promise<ServiceResponse>;
240
+ /** 发送底层的服务公告协议 */
241
+ private _sendAdvertise;
242
+ /**
243
+ * 公告服务(服务端模式)
244
+ * @param callback 处理请求并返回结果的回调
245
+ */
246
+ advertise(callback: (request: ServiceRequest, response: ServiceResponse) => any): void;
247
+ /**
248
+ * 取消服务公告
249
+ */
250
+ unadvertise(): void;
251
+ /** 内部状态处理:连接关闭时重置标志位 */
252
+ private _handleClose;
253
+ }
254
+
255
+ interface ParamOptions {
256
+ ros: RosLike;
257
+ name: string;
258
+ }
259
+ declare class Param {
260
+ private ros;
261
+ private name;
262
+ constructor(options: ParamOptions);
263
+ get(callback?: (value: any) => void): Promise<any>;
264
+ set(value: any, callback?: () => void): Promise<void>;
265
+ delete(callback?: () => void): Promise<void>;
266
+ }
267
+
268
+ type Callback = (msg: any) => void;
269
+ type TopicConfigOptions = Omit<TopicOptions, 'ros' | 'name' | 'messageType'>;
270
+ declare class TopicManager {
271
+ private topics;
272
+ private pubTopics;
273
+ private ros;
274
+ constructor(ros: EnhancedRos);
275
+ /**
276
+ * 订阅指定主题
277
+ * @param name 主题名称
278
+ * @param messageType 消息类型
279
+ * @param callback 回调函数,当收到消息时调用
280
+ * @param config 订阅配置选项(可选)
281
+ */
282
+ subscribe(name: string, messageType: string, callback: Callback, config?: TopicConfigOptions): void;
283
+ unsubscribe(name: string, callback?: Callback): void;
284
+ clearAll(): void;
285
+ resubscribeAll(ros: any): void;
286
+ /**
287
+ * 发布消息到指定主题
288
+ * @param name 主题名称
289
+ * @param messageType 消息类型
290
+ * @param data 要发布的数据
291
+ * @param config 发布配置选项(可选)
292
+ * @param queueWhenOffline 是否在 ROS 连接时队列消息(默认 false)
293
+ * @returns Promise,成功时解析为 undefined,失败时拒绝
294
+ */
295
+ publish(name: string, messageType: string, data: any, config?: TopicConfigOptions, queueWhenOffline?: boolean): Promise<unknown>;
296
+ unadvertise(name: string): void;
297
+ unadvertiseAll(): void;
298
+ }
299
+ declare class ServiceManager {
300
+ private ros;
301
+ private readonly defaultTimeout;
302
+ constructor(ros: EnhancedRos, timeout?: number);
303
+ /**
304
+ * 调用服务(每次直接创建 Service 实例,带统一超时)
305
+ * @param name 服务名称
306
+ * @param serviceType 服务类型
307
+ * @param request 服务请求数据(可选)
308
+ * @param timeout 超时时间(默认 10s)
309
+ * @returns Promise,成功时解析为服务响应,失败时拒绝
310
+ */
311
+ call(name: string, serviceType: string, request?: any, timeout?: number): Promise<any>;
312
+ }
313
+ declare class ParamManager {
314
+ private ros;
315
+ private readonly defaultTimeout;
316
+ constructor(ros: EnhancedRos, timeout?: number);
317
+ /**
318
+ * 获取参数值
319
+ */
320
+ get(name: string, timeout?: number): Promise<any>;
321
+ /**
322
+ * 设置参数值
323
+ */
324
+ set(name: string, value: any): Promise<void>;
325
+ /**
326
+ * 删除参数
327
+ */
328
+ delete(name: string): Promise<void>;
329
+ }
330
+
331
+ export { EventEmitter as E, Param as P, Service as S, Topic as T, Ros as a, EnhancedRos as b, EnhancedRosState as c, ServiceRequest as d, ServiceResponse as e, TopicManager as f, ServiceManager as g, ParamManager as h };
332
+ export type { RosLike as R };
package/dist/next.cjs.js CHANGED
@@ -4,7 +4,9 @@ var index = require('./index.cjs.js');
4
4
 
5
5
 
6
6
 
7
+ exports.ActionClient = index.ActionClient;
7
8
  exports.EventEmitter = index.EventEmitter;
9
+ exports.Goal = index.Goal;
8
10
  exports.Param = index.Param;
9
11
  exports.ParamManager = index.ParamManager;
10
12
  exports.Ros = index.EnhancedRos;
@@ -1 +1 @@
1
- {"version":3,"file":"next.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"next.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
package/dist/next.d.ts CHANGED
@@ -1 +1 @@
1
- export { EventEmitter, Param, ParamManager, EnhancedRos as Ros, EnhancedRosState as RosState, Service, ServiceManager, ServiceRequest, ServiceResponse, Ros as SimpleRos, Topic, TopicManager } from './index.js';
1
+ export { ActionClient, EventEmitter, Goal, Param, ParamManager, EnhancedRos as Ros, EnhancedRosState as RosState, Service, ServiceManager, ServiceRequest, ServiceResponse, Ros as SimpleRos, Topic, TopicManager } from './index.js';
package/dist/next.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- export { EventEmitter, Param, ParamManager, EnhancedRos as Ros, EnhancedRosState as RosState, Service, ServiceManager, ServiceRequest, ServiceResponse, Ros as SimpleRos, Topic, TopicManager } from './index.esm.js';
1
+ export { ActionClient, EventEmitter, Goal, Param, ParamManager, EnhancedRos as Ros, EnhancedRosState as RosState, Service, ServiceManager, ServiceRequest, ServiceResponse, Ros as SimpleRos, Topic, TopicManager } from './index.esm.js';
2
2
  //# sourceMappingURL=next.esm.js.map
@@ -0,0 +1,40 @@
1
+ import EventEmitter from './EventEmitter';
2
+ import { RosLike } from './Ros';
3
+ import Topic from './Topic';
4
+ export interface ActionClientOptions {
5
+ ros: RosLike;
6
+ serverName: string;
7
+ actionName: string;
8
+ timeout?: number;
9
+ omitFeedback?: boolean;
10
+ omitStatus?: boolean;
11
+ omitResult?: boolean;
12
+ }
13
+ export default class ActionClient extends EventEmitter {
14
+ ros: RosLike;
15
+ serverName: string;
16
+ actionName: string;
17
+ timeout?: number;
18
+ omitFeedback?: boolean;
19
+ omitStatus?: boolean;
20
+ omitResult?: boolean;
21
+ goals: {
22
+ [key: string]: EventEmitter;
23
+ };
24
+ feedbackListener: Topic;
25
+ statusListener: Topic;
26
+ resultListener: Topic;
27
+ goalTopic: Topic;
28
+ cancelTopic: Topic;
29
+ private receivedStatus;
30
+ constructor(options: ActionClientOptions);
31
+ /**
32
+ * Cancel all goals associated with this ActionClient.
33
+ */
34
+ cancel(): void;
35
+ /**
36
+ * Unsubscribe and unadvertise all topics associated with this ActionClient.
37
+ */
38
+ dispose(): void;
39
+ }
40
+ //# sourceMappingURL=ActionClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionClient.d.ts","sourceRoot":"","sources":["../../src/ActionClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IAC7C,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC;IAEvC,gBAAgB,EAAE,KAAK,CAAC;IACxB,cAAc,EAAE,KAAK,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;IACtB,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;IAE1B,OAAO,CAAC,cAAc,CAAkB;gBAE5B,OAAO,EAAE,mBAAmB;IA6FxC;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;CAahB"}
@@ -0,0 +1,27 @@
1
+ import EventEmitter from './EventEmitter';
2
+ import ActionClient from './ActionClient';
3
+ export interface GoalOptions {
4
+ actionClient: ActionClient;
5
+ goalMessage: any;
6
+ }
7
+ export default class Goal extends EventEmitter {
8
+ actionClient: ActionClient;
9
+ goalMessage: any;
10
+ isFinished: boolean;
11
+ goalID: string;
12
+ status: any;
13
+ result: any;
14
+ feedback: any;
15
+ constructor(options: GoalOptions);
16
+ /**
17
+ * Send the goal to the action server.
18
+ *
19
+ * @param timeout - A timeout length for the goal's result.
20
+ */
21
+ send(timeout?: number): void;
22
+ /**
23
+ * Cancel the current goal.
24
+ */
25
+ cancel(): void;
26
+ }
27
+ //# sourceMappingURL=Goal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Goal.d.ts","sourceRoot":"","sources":["../../src/Goal.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC;IACjB,UAAU,EAAE,OAAO,CAAS;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,EAAE,GAAG,CAAC;gBAET,OAAO,EAAE,WAAW;IAwChC;;;;OAIG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAW5B;;OAEG;IACH,MAAM,IAAI,IAAI;CAMf"}
@@ -1,5 +1,7 @@
1
1
  import { default as EnhancedRos } from "./EnhancedRos";
2
+ import { TopicOptions } from "./Topic";
2
3
  type Callback = (msg: any) => void;
4
+ type TopicConfigOptions = Omit<TopicOptions, 'ros' | 'name' | 'messageType'>;
3
5
  export declare class TopicManager {
4
6
  private topics;
5
7
  private pubTopics;
@@ -10,8 +12,9 @@ export declare class TopicManager {
10
12
  * @param name 主题名称
11
13
  * @param messageType 消息类型
12
14
  * @param callback 回调函数,当收到消息时调用
15
+ * @param config 订阅配置选项(可选)
13
16
  */
14
- subscribe(name: string, messageType: string, callback: Callback): void;
17
+ subscribe(name: string, messageType: string, callback: Callback, config?: TopicConfigOptions): void;
15
18
  unsubscribe(name: string, callback?: Callback): void;
16
19
  clearAll(): void;
17
20
  resubscribeAll(ros: any): void;
@@ -20,10 +23,11 @@ export declare class TopicManager {
20
23
  * @param name 主题名称
21
24
  * @param messageType 消息类型
22
25
  * @param data 要发布的数据
26
+ * @param config 发布配置选项(可选)
23
27
  * @param queueWhenOffline 是否在 ROS 连接时队列消息(默认 false)
24
28
  * @returns Promise,成功时解析为 undefined,失败时拒绝
25
29
  */
26
- publish(name: string, messageType: string, data: any, queueWhenOffline?: boolean): Promise<unknown>;
30
+ publish(name: string, messageType: string, data: any, config?: TopicConfigOptions, queueWhenOffline?: boolean): Promise<unknown>;
27
31
  unadvertise(name: string): void;
28
32
  unadvertiseAll(): void;
29
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RosManagers.d.ts","sourceRoot":"","sources":["../../src/RosManagers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAoB,MAAM,eAAe,CAAC;AAMzE,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;AAQnC,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,SAAS,CAA4D;IAC7E,OAAO,CAAC,GAAG,CAAc;gBAEb,GAAG,EAAE,WAAW;IAG5B;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IA6B/D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAkB7C,QAAQ;IAOR,cAAc,CAAC,GAAG,EAAE,GAAG;IAUvB;;;;;;;OAOG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,EACT,gBAAgB,UAAQ;IAqC1B,WAAW,CAAC,IAAI,EAAE,MAAM;IAOxB,cAAc;CAMf;AACD,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAEpC,GAAG,EAAE,WAAW,EAAE,OAAO,SAAQ;IAK7C;;;;;;;OAOG;IACH,IAAI,CACF,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,GAAG,EACb,OAAO,SAAsB,GAC5B,OAAO,CAAC,GAAG,CAAC;CAkDhB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAEpC,GAAG,EAAE,WAAW,EAAE,OAAO,SAAQ;IAI7C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAA4B,GAAG,OAAO,CAAC,GAAG,CAAC;IA6BtE;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBpC"}
1
+ {"version":3,"file":"RosManagers.d.ts","sourceRoot":"","sources":["../../src/RosManagers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;AAClC,KAAK,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC;AAQ9E,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,SAAS,CAA4D;IAC7E,OAAO,CAAC,GAAG,CAAc;gBAEb,GAAG,EAAE,WAAW;IAG5B;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,kBAAkB;IA6B5F,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAkB7C,QAAQ;IAOR,cAAc,CAAC,GAAG,EAAE,GAAG;IAUvB;;;;;;;;OAQG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,EACT,MAAM,CAAC,EAAE,kBAAkB,EAC3B,gBAAgB,UAAQ;IAsC1B,WAAW,CAAC,IAAI,EAAE,MAAM;IAOxB,cAAc;CAMf;AACD,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAEpC,GAAG,EAAE,WAAW,EAAE,OAAO,SAAQ;IAK7C;;;;;;;OAOG;IACH,IAAI,CACF,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,GAAG,EACb,OAAO,SAAsB,GAC5B,OAAO,CAAC,GAAG,CAAC;CAkDhB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAEpC,GAAG,EAAE,WAAW,EAAE,OAAO,SAAQ;IAI7C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAA4B,GAAG,OAAO,CAAC,GAAG,CAAC;IA6BtE;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBpC"}
@@ -1,6 +1,6 @@
1
1
  import EventEmitter from "./EventEmitter";
2
2
  import { RosLike } from "./Ros";
3
- interface TopicOptions {
3
+ export interface TopicOptions {
4
4
  ros: RosLike;
5
5
  name: string;
6
6
  messageType: string;
@@ -45,5 +45,4 @@ export default class Topic extends EventEmitter {
45
45
  /** 内部状态处理:连接关闭时重置标志位 */
46
46
  private _handleClose;
47
47
  }
48
- export {};
49
48
  //# sourceMappingURL=Topic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Topic.d.ts","sourceRoot":"","sources":["../../src/Topic.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,UAAU,YAAY;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,YAAY;IAC7C,SAAgB,GAAG,EAAE,OAAO,CAAC;IAC7B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC,SAAgB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpC,SAAgB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhC,SAAgB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,wBAAwB;IACxB,OAAO,CAAC,iBAAiB,CAAa;gBAE1B,OAAO,EAAE,YAAY;IAuBjC,iBAAiB;IACjB,OAAO,CAAC,cAAc;IActB,iBAAiB;IACjB,OAAO,CAAC,cAAc;IActB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAqBlD,WAAW;IACX,WAAW,IAAI,IAAI;IAoBnB,kBAAkB;IAClB,SAAS,IAAI,IAAI;IAUjB,WAAW;IACX,WAAW,IAAI,IAAI;IAmBnB,WAAW;IACX,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAgB3B,wBAAwB;IACxB,OAAO,CAAC,YAAY,CAGlB;CACH"}
1
+ {"version":3,"file":"Topic.d.ts","sourceRoot":"","sources":["../../src/Topic.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,YAAY;IAC7C,SAAgB,GAAG,EAAE,OAAO,CAAC;IAC7B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC,SAAgB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpC,SAAgB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhC,SAAgB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,wBAAwB;IACxB,OAAO,CAAC,iBAAiB,CAAa;gBAE1B,OAAO,EAAE,YAAY;IAuBjC,iBAAiB;IACjB,OAAO,CAAC,cAAc;IActB,iBAAiB;IACjB,OAAO,CAAC,cAAc;IActB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAqBlD,WAAW;IACX,WAAW,IAAI,IAAI;IAoBnB,kBAAkB;IAClB,SAAS,IAAI,IAAI;IAUjB,WAAW;IACX,WAAW,IAAI,IAAI;IAmBnB,WAAW;IACX,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAgB3B,wBAAwB;IACxB,OAAO,CAAC,YAAY,CAGlB;CACH"}
@@ -4,6 +4,8 @@ export { default as Topic } from './Topic';
4
4
  export { default as Service } from './Service';
5
5
  export { default as ServiceRequest, ServiceResponse } from './ServiceRequest';
6
6
  export { default as Param } from './Param';
7
+ export { default as ActionClient } from './ActionClient';
8
+ export { default as Goal } from './Goal';
7
9
  export { default as EventEmitter } from './EventEmitter';
8
10
  export { TopicManager, ServiceManager, ParamManager } from './RosManagers';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -4,6 +4,8 @@ export { default as Topic } from './Topic';
4
4
  export { default as Service } from './Service';
5
5
  export { default as ServiceRequest, ServiceResponse } from './ServiceRequest';
6
6
  export { default as Param } from './Param';
7
+ export { default as ActionClient } from './ActionClient';
8
+ export { default as Goal } from './Goal';
7
9
  export { default as EventEmitter } from './EventEmitter';
8
10
  export { TopicManager, ServiceManager, ParamManager } from './RosManagers';
9
11
  //# sourceMappingURL=next.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../src/next.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../src/next.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "roslib-ts",
3
- "version": "1.0.0-beta.5",
3
+ "version": "1.0.0-beta.7",
4
4
  "description": "Stable ROSLIB with EnhancedRos (Beta)",
5
5
  "author": "naviai",
6
6
  "license": "MIT",