UNPKG

@mmote/niimbluelib

Version:

Library for the communication with NIIMBOT printers

47 lines (46 loc) 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.D110MV4PrintTask = void 0; const packets_1 = require("../packets"); const AbstractPrintTask_1 = require("./AbstractPrintTask"); /** * @category Print tasks */ class D110MV4PrintTask extends AbstractPrintTask_1.AbstractPrintTask { printInit() { return this.abstraction.sendAll([ packets_1.PacketGenerator.setDensity(this.printOptions.density), packets_1.PacketGenerator.setLabelType(this.printOptions.labelType), packets_1.PacketGenerator.printStart9b(this.printOptions.totalPages, this.printOptions.color, this.printOptions.speed), ]); } async printPage(image, quantity) { this.checkAddPage(quantity ?? 1); // B21_PRO does not respond on first packet after PrintStart if using Bluetooth connection. // Originally PrintStatus is sent, no response waited. const statusPacket = packets_1.PacketGenerator.printStatus(); statusPacket.oneWay = true; await this.abstraction.send(statusPacket); return this.abstraction.sendAll([ packets_1.PacketGenerator.setPageSize13b(image.rows, image.cols, quantity ?? 1), ...packets_1.PacketGenerator.writeImageData(image, { printheadPixels: this.printheadPixels() }), packets_1.PacketGenerator.pageEnd(), ], this.printOptions.pageTimeoutMs); } waitForFinished() { this.abstraction.setPacketTimeout(this.printOptions.statusTimeoutMs); return this.abstraction .waitUntilPrintFinishedByStatusPoll(this.printOptions.totalPages ?? 1, this.printOptions.statusPollIntervalMs) .finally(() => this.abstraction.setDefaultPacketTimeout()); } async printEnd() { // B21_PRO drops the first packet after PrintEnd. // Originally `Heartbeat` is sent, no response waited. const pkt = packets_1.PacketGenerator.heartbeat(packets_1.HeartbeatType.Advanced1); pkt.oneWay = true; const result = await this.abstraction.printEnd(); await this.abstraction.send(pkt); return result; } } exports.D110MV4PrintTask = D110MV4PrintTask;