UNPKG

@ntrip/caster

Version:
73 lines (72 loc) 2.76 kB
"use strict"; /* * This file is part of the @ntrip/caster distribution (https://github.com/node-ntrip/caster). * Copyright (c) 2020 Nebojsa Cvetkovic. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SerialTransport = void 0; const serialport_1 = __importDefault(require("serialport")); const transport_1 = require("../transport"); class SerialTransport extends transport_1.SingleConnectionTransport { constructor(manager, options) { super(manager, options); this.options = options; } static new(options) { return (caster) => new SerialTransport(caster, options); } open() { this.serial = new serialport_1.default(this.options.port, { ...this.options.portOptions, autoOpen: false }); new Promise((resolve, reject) => { this.serial.once('open', resolve); this.serial.once('error', reject); }).then(() => { if (this.options.portOptions.disableRtsCts) this.serial.set({ dtr: false, rts: false }); try { this.connect({ type: this.options.type, mountpoint: this.options.mountpoint, source: this.options.port, stream: this.serial }); this.emit('open'); } catch (err) { this.emit('error', err); } }).catch((err) => { this.emit('error', err); }); this.serial.open(); } close() { var _a; super.close(); (_a = this.serial) === null || _a === void 0 ? void 0 : _a.close(() => this.emit('close')); } static list() { return serialport_1.default.list(); } get description() { var _a; return `serial[baud=${(_a = this.options.portOptions.baudRate) !== null && _a !== void 0 ? _a : 115200}]`; } } exports.SerialTransport = SerialTransport;