taro-bluetooth-print 1.0.1 → 1.0.4
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/LICENSE +1 -1
- package/README.md +17 -1
- package/dist/bluetooth/index.d.ts +638 -6
- package/dist/bluetooth/index.js +2972 -34
- package/dist/bluetooth/index.js.map +1 -1
- package/dist/index.d.ts +51 -4
- package/dist/index.js +157 -4
- package/dist/index.js.map +1 -1
- package/dist/printer/index.d.ts +26 -3
- package/dist/printer/index.js +144 -8
- package/dist/printer/index.js.map +1 -1
- package/dist/printer/templates/base.d.ts +96 -0
- package/dist/printer/templates/base.js +179 -0
- package/dist/printer/templates/base.js.map +1 -0
- package/dist/printer/templates/index.d.ts +53 -0
- package/dist/printer/templates/index.js +92 -0
- package/dist/printer/templates/index.js.map +1 -0
- package/dist/printer/templates/receipt.d.ts +43 -0
- package/dist/printer/templates/receipt.js +198 -0
- package/dist/printer/templates/receipt.js.map +1 -0
- package/dist/types/index.d.ts +230 -0
- package/dist/types/index.js +46 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/config.d.ts +76 -0
- package/dist/utils/config.js +109 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/events.d.ts +99 -0
- package/dist/utils/events.js +174 -0
- package/dist/utils/events.js.map +1 -0
- package/package.json +1 -1
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -29,6 +29,22 @@
|
|
|
29
29
|
- [贡献指南](#贡献指南)
|
|
30
30
|
- [许可证](#许可证)
|
|
31
31
|
|
|
32
|
+
## 🔄 最近更新
|
|
33
|
+
|
|
34
|
+
### v1.0.4 (2024-03-13)
|
|
35
|
+
|
|
36
|
+
#### 修复
|
|
37
|
+
- 修复了多个TypeScript类型错误和接口不匹配的问题
|
|
38
|
+
- 合并了重复的`writeDataInChunks`方法实现,优化了代码结构
|
|
39
|
+
- 修复了`adapter.write`方法的参数调用不匹配问题
|
|
40
|
+
- 修复了只读属性访问和修改的问题
|
|
41
|
+
- 优化了代码中的重复定义,提高了代码质量
|
|
42
|
+
|
|
43
|
+
#### 改进
|
|
44
|
+
- 增强了蓝牙数据传输的稳定性
|
|
45
|
+
- 优化了内存使用和缓冲区管理
|
|
46
|
+
- 完善了错误处理和恢复机制
|
|
47
|
+
|
|
32
48
|
## ✨ 特性
|
|
33
49
|
|
|
34
50
|
- 🌐 **多平台支持**:微信小程序、H5、React Native、鸿蒙OS
|
|
@@ -493,7 +509,7 @@ await printer.printer.cut();
|
|
|
493
509
|
|
|
494
510
|
```bash
|
|
495
511
|
# 克隆仓库
|
|
496
|
-
git clone https://github.com/
|
|
512
|
+
git clone https://github.com/agons/taro-bluetooth-print.git
|
|
497
513
|
|
|
498
514
|
# 安装依赖
|
|
499
515
|
cd taro-bluetooth-print
|
|
@@ -1,21 +1,151 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @file Bluetooth Manager
|
|
3
|
+
* @description 蓝牙管理模块,提供蓝牙设备发现、连接、数据传输等功能
|
|
4
|
+
*
|
|
5
|
+
* @update 更新日志
|
|
6
|
+
*
|
|
7
|
+
* ## 2025-03-13
|
|
8
|
+
* ### 新增功能
|
|
9
|
+
* - 增加性能优化配置系统
|
|
10
|
+
* - 可配置缓冲池大小和策略
|
|
11
|
+
* - 支持自定义性能参数
|
|
12
|
+
* - 提供性能监控和统计
|
|
13
|
+
* - 增强缓存管理
|
|
14
|
+
* - 设备信息智能缓存
|
|
15
|
+
* - 缓冲区对象池
|
|
16
|
+
* - 自适应缓存优化
|
|
17
|
+
* - 改进数据传输
|
|
18
|
+
* - 智能分片策略
|
|
19
|
+
* - 缓冲区复用机制
|
|
20
|
+
* - 批量写入优化
|
|
21
|
+
*
|
|
22
|
+
* ### 性能优化
|
|
23
|
+
* - 内存管理优化
|
|
24
|
+
* - 引入垃圾回收机制
|
|
25
|
+
* - 内存使用监控
|
|
26
|
+
* - 资源自动释放
|
|
27
|
+
* - 传输性能优化
|
|
28
|
+
* - 动态调整传输参数
|
|
29
|
+
* - 性能数据分析
|
|
30
|
+
* - 自动优化策略
|
|
31
|
+
*
|
|
32
|
+
* ### 监控与诊断
|
|
33
|
+
* - 增强性能监控
|
|
34
|
+
* - 详细性能指标统计
|
|
35
|
+
* - 稳定性评分系统
|
|
36
|
+
* - 错误模式分析
|
|
37
|
+
* - 改进诊断工具
|
|
38
|
+
* - 内存使用分析
|
|
39
|
+
* - 性能瓶颈检测
|
|
40
|
+
* - 自动优化建议
|
|
41
|
+
*
|
|
42
|
+
* @version 2.0.0
|
|
43
|
+
* @author Your Name
|
|
44
|
+
* @copyright 2025
|
|
45
|
+
*/
|
|
46
|
+
import { BluetoothDevice, ConnectOptions, DiscoveryOptions } from '../types';
|
|
47
|
+
import type { TransmissionStats, FlowControlParams, BatchWriteOptions, BatchWriteResult, DeviceHealthInfo } from '../types';
|
|
48
|
+
interface ExtendedBatchWriteOptions extends BatchWriteOptions {
|
|
49
|
+
batchSize?: number;
|
|
50
|
+
parallel?: boolean;
|
|
51
|
+
maxParallel?: number;
|
|
52
|
+
commandDelay?: number;
|
|
53
|
+
highPriority?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 蓝牙管理器类
|
|
57
|
+
* 负责蓝牙设备的扫描、连接和通信
|
|
58
|
+
*/
|
|
2
59
|
export declare class BluetoothManager {
|
|
3
60
|
private adapter;
|
|
4
61
|
private isInitialized;
|
|
5
|
-
private connectedDeviceId;
|
|
6
62
|
private discoveryStarted;
|
|
7
|
-
private
|
|
63
|
+
private connectedDeviceId;
|
|
8
64
|
private serviceUUID;
|
|
9
65
|
private characteristicUUID;
|
|
66
|
+
private commandQueue;
|
|
67
|
+
private isProcessingQueue;
|
|
68
|
+
private discoveredDevices;
|
|
69
|
+
private transmissionStats;
|
|
70
|
+
private performanceConfig;
|
|
71
|
+
private autoReconnect;
|
|
72
|
+
private reconnectTimer;
|
|
73
|
+
private reconnectAttempts;
|
|
74
|
+
private maxReconnectAttempts;
|
|
75
|
+
private reconnectDelay;
|
|
76
|
+
private currentRecoveryDelay;
|
|
77
|
+
private recoveryTimer;
|
|
78
|
+
private lastConnectedDevice;
|
|
79
|
+
private batteryCheckInterval;
|
|
80
|
+
private flowControl;
|
|
81
|
+
private connectionHistory;
|
|
82
|
+
private connectionQualityInterval;
|
|
83
|
+
private readonly QUALITY_CHECK_INTERVAL;
|
|
84
|
+
private qualityCheckInterval;
|
|
85
|
+
private readonly RSSI_WARNING_THRESHOLD;
|
|
86
|
+
private readonly QUALITY_WARNING_THRESHOLD;
|
|
87
|
+
private recoveryAttempts;
|
|
88
|
+
private readonly MAX_RECOVERY_ATTEMPTS;
|
|
89
|
+
private readonly RECOVERY_DELAY;
|
|
90
|
+
private lastKnownState;
|
|
91
|
+
private connectionStartTime;
|
|
92
|
+
private flowControlAdjustments;
|
|
93
|
+
private lastFlowControlAdjustment;
|
|
94
|
+
private lastReconnectTime;
|
|
95
|
+
private queuePaused;
|
|
96
|
+
private queueProcessTimer;
|
|
97
|
+
private readonly QUEUE_PROCESS_INTERVAL;
|
|
98
|
+
private readonly QUEUE_MAX_SIZE;
|
|
99
|
+
private readonly DEFAULT_COMMAND_PRIORITY;
|
|
100
|
+
private readonly HIGH_PRIORITY;
|
|
101
|
+
private readonly LOW_PRIORITY;
|
|
102
|
+
private loadConnectionHistory;
|
|
103
|
+
private saveConnectionHistory;
|
|
104
|
+
private updateConnectionHistory;
|
|
105
|
+
/**
|
|
106
|
+
* 创建蓝牙管理器实例
|
|
107
|
+
*/
|
|
10
108
|
constructor();
|
|
109
|
+
/**
|
|
110
|
+
* 设置连接状态监听
|
|
111
|
+
* 用于检测意外断开并自动重连
|
|
112
|
+
*/
|
|
113
|
+
private setupConnectionStateListener;
|
|
114
|
+
/**
|
|
115
|
+
* 安排自动重连
|
|
116
|
+
*/
|
|
117
|
+
private scheduleReconnect;
|
|
118
|
+
/**
|
|
119
|
+
* 重置重连状态
|
|
120
|
+
*/
|
|
121
|
+
private resetReconnectState;
|
|
122
|
+
/**
|
|
123
|
+
* 启用自动重连
|
|
124
|
+
* @param enable 是否启用
|
|
125
|
+
* @param maxAttempts 最大尝试次数
|
|
126
|
+
* @param delay 初始延迟(毫秒)
|
|
127
|
+
*/
|
|
128
|
+
setAutoReconnect(enable: boolean, maxAttempts?: number, delay?: number): void;
|
|
11
129
|
/**
|
|
12
130
|
* 初始化蓝牙模块
|
|
13
131
|
*/
|
|
14
132
|
init(): Promise<boolean>;
|
|
15
133
|
/**
|
|
16
134
|
* 开始搜索蓝牙设备
|
|
135
|
+
* @param options 搜索选项
|
|
17
136
|
*/
|
|
18
|
-
startDiscovery(): Promise<boolean>;
|
|
137
|
+
startDiscovery(options?: DiscoveryOptions): Promise<boolean>;
|
|
138
|
+
/**
|
|
139
|
+
* 判断设备是否应该被过滤掉
|
|
140
|
+
* @param device 设备信息
|
|
141
|
+
* @param options 搜索选项
|
|
142
|
+
*/
|
|
143
|
+
private shouldFilterDevice;
|
|
144
|
+
/**
|
|
145
|
+
* 处理设备名称
|
|
146
|
+
* 有些设备名称是乱码或空,尝试修复或使用替代名称
|
|
147
|
+
*/
|
|
148
|
+
private processDeviceName;
|
|
19
149
|
/**
|
|
20
150
|
* 停止搜索蓝牙设备
|
|
21
151
|
*/
|
|
@@ -26,9 +156,10 @@ export declare class BluetoothManager {
|
|
|
26
156
|
getDiscoveredDevices(): Promise<BluetoothDevice[]>;
|
|
27
157
|
/**
|
|
28
158
|
* 连接蓝牙设备
|
|
29
|
-
* @param deviceId
|
|
159
|
+
* @param deviceId 设备ID
|
|
160
|
+
* @param options 连接选项
|
|
30
161
|
*/
|
|
31
|
-
connect(deviceId: string): Promise<boolean>;
|
|
162
|
+
connect(deviceId: string, options?: ConnectOptions): Promise<boolean>;
|
|
32
163
|
/**
|
|
33
164
|
* 断开蓝牙连接
|
|
34
165
|
*/
|
|
@@ -38,8 +169,509 @@ export declare class BluetoothManager {
|
|
|
38
169
|
* @param data 要写入的数据
|
|
39
170
|
*/
|
|
40
171
|
writeData(data: ArrayBuffer): Promise<boolean>;
|
|
172
|
+
/**
|
|
173
|
+
* 分块写入数据
|
|
174
|
+
* @param data 要写入的数据
|
|
175
|
+
* @param chunkSize 每块大小
|
|
176
|
+
* @param delayMs 每块之间的延迟时间(ms)
|
|
177
|
+
* @returns 是否全部写入成功
|
|
178
|
+
*/
|
|
179
|
+
writeDataInChunks(data: ArrayBuffer, chunkSize?: number, delayMs?: number): Promise<boolean>;
|
|
180
|
+
/**
|
|
181
|
+
* 批量写入多个命令
|
|
182
|
+
* @param commands 命令数组
|
|
183
|
+
* @param options 选项
|
|
184
|
+
*/
|
|
185
|
+
writeBatch(commands: ArrayBuffer[], options?: BatchWriteOptions): Promise<BatchWriteResult>;
|
|
186
|
+
/**
|
|
187
|
+
* 重置传输统计数据
|
|
188
|
+
*/
|
|
189
|
+
private resetTransmissionStats;
|
|
190
|
+
/**
|
|
191
|
+
* 获取传输统计信息
|
|
192
|
+
*/
|
|
193
|
+
getTransmissionStats(): TransmissionStats;
|
|
194
|
+
/**
|
|
195
|
+
* 智能调整传输参数
|
|
196
|
+
* 根据传输质量和速度优化分片大小和延迟
|
|
197
|
+
*/
|
|
198
|
+
private adjustTransmissionParams;
|
|
199
|
+
/**
|
|
200
|
+
* 手动设置流量控制参数
|
|
201
|
+
*/
|
|
202
|
+
setFlowControlParams(params: Partial<FlowControlParams>): void;
|
|
203
|
+
/**
|
|
204
|
+
* 获取当前流量控制参数
|
|
205
|
+
*/
|
|
206
|
+
getFlowControlParams(): FlowControlParams;
|
|
207
|
+
/**
|
|
208
|
+
* 检查是否已连接
|
|
209
|
+
*/
|
|
210
|
+
isConnected(): boolean;
|
|
211
|
+
/**
|
|
212
|
+
* 获取已连接的设备ID
|
|
213
|
+
*/
|
|
214
|
+
getConnectedDeviceId(): string | null;
|
|
215
|
+
/**
|
|
216
|
+
* 获取适配器初始化状态
|
|
217
|
+
*/
|
|
218
|
+
getInitStatus(): boolean;
|
|
219
|
+
/**
|
|
220
|
+
* 设置服务和特征值UUID
|
|
221
|
+
* @param serviceUUID 服务UUID
|
|
222
|
+
* @param characteristicUUID 特征值UUID
|
|
223
|
+
*/
|
|
224
|
+
setServiceUUIDs(serviceUUID: string, characteristicUUID: string): void;
|
|
41
225
|
/**
|
|
42
226
|
* 销毁蓝牙模块
|
|
43
227
|
*/
|
|
44
228
|
destroy(): Promise<boolean>;
|
|
229
|
+
/**
|
|
230
|
+
* 获取设备信息
|
|
231
|
+
* @param deviceId 设备ID(默认为当前连接的设备)
|
|
232
|
+
*/
|
|
233
|
+
getDeviceInfo(deviceId?: string): Promise<BluetoothDevice | null>;
|
|
234
|
+
/**
|
|
235
|
+
* 获取设备电量信息
|
|
236
|
+
* @param deviceId 设备ID(默认为当前连接的设备)
|
|
237
|
+
*/
|
|
238
|
+
getBatteryLevel(deviceId?: string): Promise<number | null>;
|
|
239
|
+
/**
|
|
240
|
+
* 设置低电量警告阈值并开始监控
|
|
241
|
+
* @param threshold 电量阈值百分比(0-100)
|
|
242
|
+
* @param interval 检查间隔(毫秒)
|
|
243
|
+
*/
|
|
244
|
+
startBatteryMonitoring(threshold?: number, interval?: number): void;
|
|
245
|
+
/**
|
|
246
|
+
* 停止电量监控
|
|
247
|
+
*/
|
|
248
|
+
stopBatteryMonitoring(): void;
|
|
249
|
+
/**
|
|
250
|
+
* 诊断蓝牙连接状态
|
|
251
|
+
* 用于排查和解决常见问题
|
|
252
|
+
*/
|
|
253
|
+
diagnoseConnection(): Promise<DeviceHealthInfo>;
|
|
254
|
+
/**
|
|
255
|
+
* 尝试优化连接状态
|
|
256
|
+
* 自动执行一些修复和优化操作
|
|
257
|
+
*/
|
|
258
|
+
private tryOptimizeConnection;
|
|
259
|
+
/**
|
|
260
|
+
* 设置连接保活
|
|
261
|
+
* 定期发送探测命令保持连接活跃
|
|
262
|
+
* @param enable 是否启用
|
|
263
|
+
* @param interval 间隔时间(毫秒)
|
|
264
|
+
*/
|
|
265
|
+
private keepAliveInterval;
|
|
266
|
+
setKeepAlive(enable: boolean, interval?: number): void;
|
|
267
|
+
/**
|
|
268
|
+
* 清理连接相关资源
|
|
269
|
+
* 在组件卸载或页面关闭时调用
|
|
270
|
+
*/
|
|
271
|
+
cleanup(): void;
|
|
272
|
+
/**
|
|
273
|
+
* 获取收藏的设备列表
|
|
274
|
+
*/
|
|
275
|
+
getFavoriteDevices(): BluetoothDevice[];
|
|
276
|
+
/**
|
|
277
|
+
* 设置设备收藏状态
|
|
278
|
+
* @param deviceId 设备ID
|
|
279
|
+
* @param favorite 是否收藏
|
|
280
|
+
*/
|
|
281
|
+
setDeviceFavorite(deviceId: string, favorite: boolean): boolean;
|
|
282
|
+
/**
|
|
283
|
+
* 获取最近连接的设备列表
|
|
284
|
+
* @param limit 最大数量
|
|
285
|
+
*/
|
|
286
|
+
getRecentDevices(limit?: number): BluetoothDevice[];
|
|
287
|
+
/**
|
|
288
|
+
* 清除设备历史记录
|
|
289
|
+
* @param deviceId 指定设备ID,不指定则清除所有
|
|
290
|
+
*/
|
|
291
|
+
clearDeviceHistory(deviceId?: string): void;
|
|
292
|
+
/**
|
|
293
|
+
* 启动连接质量监控
|
|
294
|
+
*/
|
|
295
|
+
startQualityMonitoring(): void;
|
|
296
|
+
/**
|
|
297
|
+
* 停止连接质量监控
|
|
298
|
+
*/
|
|
299
|
+
stopQualityMonitoring(): void;
|
|
300
|
+
/**
|
|
301
|
+
* 保存当前状态
|
|
302
|
+
*/
|
|
303
|
+
private saveCurrentState;
|
|
304
|
+
/**
|
|
305
|
+
* 恢复之前的状态
|
|
306
|
+
*/
|
|
307
|
+
private restoreState;
|
|
308
|
+
/**
|
|
309
|
+
* 智能恢复连接
|
|
310
|
+
*/
|
|
311
|
+
private attemptRecovery;
|
|
312
|
+
/**
|
|
313
|
+
* 安排恢复尝试
|
|
314
|
+
*/
|
|
315
|
+
private scheduleRecovery;
|
|
316
|
+
/**
|
|
317
|
+
* 重置恢复状态
|
|
318
|
+
*/
|
|
319
|
+
private resetRecoveryState;
|
|
320
|
+
/**
|
|
321
|
+
* 获取设备性能报告
|
|
322
|
+
*/
|
|
323
|
+
getPerformanceReport(): Promise<{
|
|
324
|
+
device: {
|
|
325
|
+
id: string | null;
|
|
326
|
+
name?: string;
|
|
327
|
+
signalStrength?: number;
|
|
328
|
+
batteryLevel?: number;
|
|
329
|
+
};
|
|
330
|
+
connection: {
|
|
331
|
+
uptime: number;
|
|
332
|
+
reconnections: number;
|
|
333
|
+
lastReconnectTime?: number;
|
|
334
|
+
quality: number;
|
|
335
|
+
};
|
|
336
|
+
transmission: {
|
|
337
|
+
totalBytesSent: number;
|
|
338
|
+
averageSpeed: number;
|
|
339
|
+
successRate: number;
|
|
340
|
+
errorRate: number;
|
|
341
|
+
retryCount: number;
|
|
342
|
+
};
|
|
343
|
+
flowControl: {
|
|
344
|
+
current: FlowControlParams;
|
|
345
|
+
adjustments: number;
|
|
346
|
+
lastAdjustmentTime?: number;
|
|
347
|
+
};
|
|
348
|
+
}>;
|
|
349
|
+
/**
|
|
350
|
+
* 获取连接运行时间(毫秒)
|
|
351
|
+
*/
|
|
352
|
+
private getConnectionUptime;
|
|
353
|
+
/**
|
|
354
|
+
* 分析并优化传输性能
|
|
355
|
+
*/
|
|
356
|
+
private analyzeAndOptimizePerformance;
|
|
357
|
+
/**
|
|
358
|
+
* 诊断并修复常见问题
|
|
359
|
+
*/
|
|
360
|
+
diagnoseAndRepair(): Promise<{
|
|
361
|
+
status: 'healthy' | 'warning' | 'error';
|
|
362
|
+
issues: string[];
|
|
363
|
+
repairs: string[];
|
|
364
|
+
success: boolean;
|
|
365
|
+
}>;
|
|
366
|
+
/**
|
|
367
|
+
* 添加命令到队列
|
|
368
|
+
* @param command 命令数据
|
|
369
|
+
* @param options 队列选项
|
|
370
|
+
*/
|
|
371
|
+
queueCommand(command: ArrayBuffer, options?: {
|
|
372
|
+
priority?: number;
|
|
373
|
+
maxRetries?: number;
|
|
374
|
+
useChunks?: boolean;
|
|
375
|
+
description?: string;
|
|
376
|
+
}): Promise<boolean>;
|
|
377
|
+
/**
|
|
378
|
+
* 启动队列处理
|
|
379
|
+
*/
|
|
380
|
+
private startQueueProcessing;
|
|
381
|
+
/**
|
|
382
|
+
* 处理命令队列
|
|
383
|
+
*/
|
|
384
|
+
private processQueue;
|
|
385
|
+
/**
|
|
386
|
+
* 按优先级排序队列
|
|
387
|
+
*/
|
|
388
|
+
private sortQueue;
|
|
389
|
+
/**
|
|
390
|
+
* 暂停队列处理
|
|
391
|
+
*/
|
|
392
|
+
pauseCommandQueue(): void;
|
|
393
|
+
/**
|
|
394
|
+
* 恢复队列处理
|
|
395
|
+
*/
|
|
396
|
+
resumeCommandQueue(): void;
|
|
397
|
+
/**
|
|
398
|
+
* 清空命令队列
|
|
399
|
+
* @param rejectRemaining 是否拒绝剩余命令
|
|
400
|
+
*/
|
|
401
|
+
clearCommandQueue(rejectRemaining?: boolean): number;
|
|
402
|
+
/**
|
|
403
|
+
* 获取队列状态
|
|
404
|
+
*/
|
|
405
|
+
getQueueStatus(): {
|
|
406
|
+
queueLength: number;
|
|
407
|
+
isPaused: boolean;
|
|
408
|
+
isProcessing: boolean;
|
|
409
|
+
highPriorityCount: number;
|
|
410
|
+
normalPriorityCount: number;
|
|
411
|
+
lowPriorityCount: number;
|
|
412
|
+
};
|
|
413
|
+
writeCommands(commands: ArrayBuffer[], options?: ExtendedBatchWriteOptions): Promise<BatchWriteResult>;
|
|
414
|
+
private powerSavingEnabled;
|
|
415
|
+
private powerSavingMode;
|
|
416
|
+
private inactivityTimer;
|
|
417
|
+
private readonly DEFAULT_INACTIVITY_TIMEOUT;
|
|
418
|
+
private inactivityTimeout;
|
|
419
|
+
private lastActivityTime;
|
|
420
|
+
private batteryCheckIntervalMs;
|
|
421
|
+
/**
|
|
422
|
+
* 设置电源管理模式
|
|
423
|
+
* @param enabled 是否启用节能模式
|
|
424
|
+
* @param mode 节能模式类型
|
|
425
|
+
* @param inactivityTimeout 不活动超时时间(毫秒)
|
|
426
|
+
*/
|
|
427
|
+
setPowerManagement(enabled: boolean, mode?: 'auto' | 'aggressive' | 'balanced' | 'performance', inactivityTimeout?: number): void;
|
|
428
|
+
/**
|
|
429
|
+
* 更新活动状态,重置不活动计时器
|
|
430
|
+
*/
|
|
431
|
+
private resetActivityTimer;
|
|
432
|
+
/**
|
|
433
|
+
* 处理不活动状态
|
|
434
|
+
*/
|
|
435
|
+
private handleInactivity;
|
|
436
|
+
/**
|
|
437
|
+
* 根据电池电量自动调整电源模式
|
|
438
|
+
*/
|
|
439
|
+
private detectBatteryAndAdjustPowerMode;
|
|
440
|
+
/**
|
|
441
|
+
* 应用指定的电源模式
|
|
442
|
+
* @param mode 电源模式
|
|
443
|
+
*/
|
|
444
|
+
private applyPowerMode;
|
|
445
|
+
/**
|
|
446
|
+
* 调整电池检查间隔
|
|
447
|
+
*/
|
|
448
|
+
private adjustBatteryCheckInterval;
|
|
449
|
+
private debugMode;
|
|
450
|
+
private debugLogEnabled;
|
|
451
|
+
private debugEvents;
|
|
452
|
+
private readonly MAX_DEBUG_EVENTS;
|
|
453
|
+
/**
|
|
454
|
+
* 启用调试模式
|
|
455
|
+
* @param enabled 是否启用
|
|
456
|
+
* @param logToConsole 是否将调试信息记录到控制台
|
|
457
|
+
*/
|
|
458
|
+
setDebugMode(enabled: boolean, logToConsole?: boolean): void;
|
|
459
|
+
/**
|
|
460
|
+
* 记录调试事件
|
|
461
|
+
* @param type 事件类型
|
|
462
|
+
* @param data 事件数据
|
|
463
|
+
*/
|
|
464
|
+
private logDebugEvent;
|
|
465
|
+
/**
|
|
466
|
+
* 获取调试事件日志
|
|
467
|
+
* @param limit 最大返回数量,0表示全部
|
|
468
|
+
*/
|
|
469
|
+
getDebugEvents(limit?: number): {
|
|
470
|
+
type: string;
|
|
471
|
+
data: any;
|
|
472
|
+
timestamp: number;
|
|
473
|
+
}[];
|
|
474
|
+
/**
|
|
475
|
+
* 清除调试事件日志
|
|
476
|
+
*/
|
|
477
|
+
clearDebugEvents(): void;
|
|
478
|
+
/**
|
|
479
|
+
* 导出诊断报告
|
|
480
|
+
* @returns 包含详细诊断信息的对象
|
|
481
|
+
*/
|
|
482
|
+
exportDiagnosticReport(): Promise<{
|
|
483
|
+
timestamp: number;
|
|
484
|
+
device: any;
|
|
485
|
+
adapter: any;
|
|
486
|
+
connection: any;
|
|
487
|
+
performance: any;
|
|
488
|
+
errors: any[];
|
|
489
|
+
events: any[];
|
|
490
|
+
config: any;
|
|
491
|
+
}>;
|
|
492
|
+
/**
|
|
493
|
+
* 自动检测和解决常见问题
|
|
494
|
+
* @returns 自动修复结果
|
|
495
|
+
*/
|
|
496
|
+
autoTroubleshoot(): Promise<{
|
|
497
|
+
issues: string[];
|
|
498
|
+
fixes: string[];
|
|
499
|
+
success: boolean;
|
|
500
|
+
remainingIssues: string[];
|
|
501
|
+
}>;
|
|
502
|
+
/**
|
|
503
|
+
* 模拟蓝牙环境,用于在没有真实设备的情况下进行测试
|
|
504
|
+
* @param mockOptions 模拟选项
|
|
505
|
+
*/
|
|
506
|
+
enableMockEnvironment(mockOptions?: {
|
|
507
|
+
simulateConnection?: boolean;
|
|
508
|
+
simulateDelay?: number;
|
|
509
|
+
simulateErrors?: boolean;
|
|
510
|
+
errorRate?: number;
|
|
511
|
+
}): void;
|
|
512
|
+
/**
|
|
513
|
+
* 获取连接活动日志
|
|
514
|
+
* 用于分析连接行为和调试问题
|
|
515
|
+
* @param maxEntries 最大条目数
|
|
516
|
+
*/
|
|
517
|
+
getConnectionActivityLog(maxEntries?: number): any[];
|
|
518
|
+
private bufferPool;
|
|
519
|
+
private deviceInfoCache;
|
|
520
|
+
private connectionStateCache;
|
|
521
|
+
private statsAggregator;
|
|
522
|
+
private performanceMonitorInterval;
|
|
523
|
+
/**
|
|
524
|
+
* 初始化性能优化系统
|
|
525
|
+
*/
|
|
526
|
+
private initPerformanceOptimizations;
|
|
527
|
+
/**
|
|
528
|
+
* 初始化缓冲区池
|
|
529
|
+
*/
|
|
530
|
+
private initBufferPool;
|
|
531
|
+
/**
|
|
532
|
+
* 从缓冲区池获取缓冲区
|
|
533
|
+
* @param size 需要的缓冲区大小
|
|
534
|
+
*/
|
|
535
|
+
private getBufferFromPool;
|
|
536
|
+
/**
|
|
537
|
+
* 将缓冲区归还池
|
|
538
|
+
* @param buffer 要归还的缓冲区
|
|
539
|
+
*/
|
|
540
|
+
private returnBufferToPool;
|
|
541
|
+
/**
|
|
542
|
+
* 启动性能监控
|
|
543
|
+
*/
|
|
544
|
+
private startPerformanceMonitoring;
|
|
545
|
+
/**
|
|
546
|
+
* 分析性能指标并进行自动优化
|
|
547
|
+
*/
|
|
548
|
+
private analyzePerformanceMetrics;
|
|
549
|
+
/**
|
|
550
|
+
* 计算稳定性分数
|
|
551
|
+
*/
|
|
552
|
+
private calculateStabilityScore;
|
|
553
|
+
/**
|
|
554
|
+
* 获取最常见的错误类型
|
|
555
|
+
*/
|
|
556
|
+
private getMostCommonError;
|
|
557
|
+
/**
|
|
558
|
+
* 裁剪性能统计数据
|
|
559
|
+
*/
|
|
560
|
+
private trimPerformanceStats;
|
|
561
|
+
/**
|
|
562
|
+
* 计算数组平均值
|
|
563
|
+
*/
|
|
564
|
+
private calculateAverage;
|
|
565
|
+
/**
|
|
566
|
+
* 计算标准差
|
|
567
|
+
*/
|
|
568
|
+
private calculateStdDev;
|
|
569
|
+
/**
|
|
570
|
+
* 启动垃圾回收计时器
|
|
571
|
+
*/
|
|
572
|
+
private startGarbageCollector;
|
|
573
|
+
/**
|
|
574
|
+
* 执行垃圾回收
|
|
575
|
+
*/
|
|
576
|
+
private performGarbageCollection;
|
|
577
|
+
/**
|
|
578
|
+
* 获取缓存的设备信息
|
|
579
|
+
*/
|
|
580
|
+
private getCachedDeviceInfo;
|
|
581
|
+
/**
|
|
582
|
+
* 更新设备信息缓存
|
|
583
|
+
*/
|
|
584
|
+
private updateDeviceInfoCache;
|
|
585
|
+
/**
|
|
586
|
+
* 记录操作耗时
|
|
587
|
+
*/
|
|
588
|
+
private recordOperationTime;
|
|
589
|
+
/**
|
|
590
|
+
* 记录错误
|
|
591
|
+
*/
|
|
592
|
+
private recordError;
|
|
593
|
+
/**
|
|
594
|
+
* 记录成功操作
|
|
595
|
+
*/
|
|
596
|
+
private recordSuccess;
|
|
597
|
+
/**
|
|
598
|
+
* 设置性能配置参数
|
|
599
|
+
* @param config 性能配置
|
|
600
|
+
*/
|
|
601
|
+
setPerformanceConfig(config: Partial<typeof this.performanceConfig>): void;
|
|
602
|
+
/**
|
|
603
|
+
* 获取当前性能配置
|
|
604
|
+
*/
|
|
605
|
+
getPerformanceConfig(): typeof this.performanceConfig;
|
|
606
|
+
/**
|
|
607
|
+
* 获取性能统计信息
|
|
608
|
+
*/
|
|
609
|
+
getPerformanceStats(): {
|
|
610
|
+
operations: {
|
|
611
|
+
write: {
|
|
612
|
+
count: number;
|
|
613
|
+
avgTime: number;
|
|
614
|
+
stdDev: number;
|
|
615
|
+
};
|
|
616
|
+
read: {
|
|
617
|
+
count: number;
|
|
618
|
+
avgTime: number;
|
|
619
|
+
stdDev: number;
|
|
620
|
+
};
|
|
621
|
+
connect: {
|
|
622
|
+
count: number;
|
|
623
|
+
avgTime: number;
|
|
624
|
+
stdDev: number;
|
|
625
|
+
};
|
|
626
|
+
discover: {
|
|
627
|
+
count: number;
|
|
628
|
+
avgTime: number;
|
|
629
|
+
stdDev: number;
|
|
630
|
+
};
|
|
631
|
+
};
|
|
632
|
+
memoryUsage: {
|
|
633
|
+
bufferPoolSize: number;
|
|
634
|
+
deviceCacheSize: number;
|
|
635
|
+
eventHistorySize: number;
|
|
636
|
+
};
|
|
637
|
+
stability: {
|
|
638
|
+
score: number;
|
|
639
|
+
consecutiveErrors: number;
|
|
640
|
+
errorDistribution: Record<string, number>;
|
|
641
|
+
};
|
|
642
|
+
};
|
|
643
|
+
/**
|
|
644
|
+
* 预热缓存,提前加载常用数据到缓存
|
|
645
|
+
* 在应用启动时或需要准备大量操作前调用,可提高后续操作速度
|
|
646
|
+
*/
|
|
647
|
+
preloadCache(): Promise<void>;
|
|
648
|
+
/**
|
|
649
|
+
* 清理缓存,释放内存
|
|
650
|
+
* @param type 指定要清理的缓存类型,默认全部
|
|
651
|
+
*/
|
|
652
|
+
clearCache(type?: 'device' | 'buffer' | 'stats' | 'all'): void;
|
|
653
|
+
/**
|
|
654
|
+
* 优化缓存大小,根据当前情况调整缓存配置
|
|
655
|
+
*/
|
|
656
|
+
optimizeCache(): void;
|
|
657
|
+
/**
|
|
658
|
+
* 找出最常用的缓冲区大小
|
|
659
|
+
*/
|
|
660
|
+
private findMostUsedBufferSizes;
|
|
661
|
+
/**
|
|
662
|
+
* 获取当前蓝牙内存使用情况
|
|
663
|
+
*/
|
|
664
|
+
getMemoryUsage(): {
|
|
665
|
+
bufferPools: {
|
|
666
|
+
size: number;
|
|
667
|
+
count: number;
|
|
668
|
+
memoryUsage: number;
|
|
669
|
+
}[];
|
|
670
|
+
totalBufferMemory: number;
|
|
671
|
+
cacheMemory: number;
|
|
672
|
+
totalMemoryUsage: number;
|
|
673
|
+
};
|
|
674
|
+
private updateTransmissionStats;
|
|
675
|
+
private mergeEventHistory;
|
|
45
676
|
}
|
|
677
|
+
export {};
|