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 许可发布