Skip to content

PrinterStatus API ​

打印机状态监控服务,实时监控打印机状态变化。

导入 ​

typescript
import { PrinterStatus } from 'taro-bluetooth-print';

创建实例 ​

typescript
const statusMonitor = new PrinterStatus({
  pollInterval: 5000,    // 轮询间隔 ms
  timeout: 10000         // 超时时间 ms
});

方法 ​

状态监控 ​

startMonitoring(deviceId: string): void ​

开始监控设备状态。

typescript
statusMonitor.startMonitoring('printer-1');

stopMonitoring(deviceId: string): void ​

停止监控。

typescript
statusMonitor.stopMonitoring('printer-1');

getStatus(deviceId: string): DeviceStatus ​

获取当前状态。

typescript
const status = statusMonitor.getStatus('printer-1');
// 'online' | 'offline' | 'busy' | 'error' | 'paper-out' | 'cover-open'

批量操作 ​

startMonitoringAll(): void ​

监控所有已连接设备。

typescript
statusMonitor.startMonitoringAll();

stopMonitoringAll(): void ​

停止所有监控。

typescript
statusMonitor.stopMonitoringAll();

getAllStatus(): Map<string, DeviceStatus> ​

获取所有设备状态。

typescript
const allStatus = statusMonitor.getAllStatus();
allStatus.forEach((status, deviceId) => {
  console.log(`${deviceId}: ${status}`);
});

事件 ​

typescript
statusMonitor.on('status-change', (deviceId, newStatus, oldStatus) => {
  console.log(`${deviceId}: ${oldStatus} -> ${newStatus}`);
});

statusMonitor.on('offline', (deviceId) => {
  console.warn(`设备离线: ${deviceId}`);
});

statusMonitor.on('error', (deviceId, error) => {
  console.error(`设备错误: ${deviceId}`, error);
});

statusMonitor.on('paper-out', (deviceId) => {
  console.warn(`缺纸: ${deviceId}`);
});

statusMonitor.on('cover-open', (deviceId) => {
  console.warn(`盖子打开: ${deviceId}`);
});

状态类型 ​

状态说明
online在线空闲
offline离线
busy打印中
error错误
paper-out缺纸
cover-open盖子打开
overheated过热

基于 MIT 许可发布