diff --git a/package.json b/package.json index 94d9f51..2d54149 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "clean": "rimraf ./dist", "build": "npm run clean && tsc", "start": "node src", - "dev": "nodemon --ext js,ts,mts,mjs ./src/index.ts --exec ts-node-esm" + "dev": "nodemon --ext js,ts,mts,mjs,json ./src/index.ts --exec ts-node-esm" }, "keywords": [], "author": "", diff --git a/src/Printer.mts b/src/Printer.mts index 6d5719a..02a68af 100644 --- a/src/Printer.mts +++ b/src/Printer.mts @@ -1,76 +1,14 @@ import { PrinterInfo, PrinterModel, - PrinterObjectIDConfig, PrinterObjectIDs, Varbind, VarbindString } from './types.mjs' -import snmp from 'net-snmp' +import { printerObjectIDConfigs } from './printerObjectIDConfigs.mjs' -const printerObjectIDConfigs: PrinterObjectIDConfig[] = [ - { - model: 'm3655idn', - objectIds: { - model: '1.3.6.1.2.1.25.3.2.1.3.1', - serial: '1.3.6.1.2.1.43.5.1.1.17.1', - counter: '1.3.6.1.4.1.1347.43.10.1.1.12.1.1', - toners: { - black: { - current: '1.3.6.1.2.1.43.11.1.1.9.1.1', - max: '1.3.6.1.2.1.43.11.1.1.8.1.1', - model: '1.3.6.1.2.1.43.11.1.1.6.1.1' - } - } - } - }, - { - model: 'p6235cdn', - objectIds: { - model: '1.3.6.1.2.1.25.3.2.1.3.1', - serial: '1.3.6.1.2.1.43.5.1.1.17.1', - counter: '1.3.6.1.4.1.1347.43.10.1.1.12.1.1', - toners: { - black: { - current: '1.3.6.1.2.1.43.11.1.1.9.1.4', - max: '1.3.6.1.2.1.43.11.1.1.8.1.4', - model: '1.3.6.1.2.1.43.11.1.1.6.1.4' - }, - cyan: { - current: '1.3.6.1.2.1.43.11.1.1.9.1.1', - max: '1.3.6.1.2.1.43.11.1.1.8.1.1', - model: '1.3.6.1.2.1.43.11.1.1.6.1.1' - }, - magenta: { - current: '1.3.6.1.2.1.43.11.1.1.9.1.2', - max: '1.3.6.1.2.1.43.11.1.1.8.1.2', - model: '1.3.6.1.2.1.43.11.1.1.6.1.2' - }, - yellow: { - current: '1.3.6.1.2.1.43.11.1.1.9.1.3', - max: '1.3.6.1.2.1.43.11.1.1.8.1.3', - model: '1.3.6.1.2.1.43.11.1.1.6.1.3' - } - } - } - }, - { - model: 'm2040dn', - objectIds: { - model: '1.3.6.1.2.1.25.3.2.1.3.1', - serial: '1.3.6.1.2.1.43.5.1.1.17.1', - counter: '1.3.6.1.4.1.1347.43.10.1.1.12.1.1', - toners: { - black: { - current: '1.3.6.1.2.1.43.11.1.1.9.1.1', - max: '1.3.6.1.2.1.43.11.1.1.8.1.1', - model: '1.3.6.1.2.1.43.11.1.1.6.1.1' - } - } - } - } -] +import snmp from 'net-snmp' export class Printer { constructor(name: string, ip: string, model: PrinterModel) { @@ -205,14 +143,14 @@ export class Printer { } async getPrinterInfo(): Promise { - const session = snmp.createSession(this.ip, 'public') - return new Promise((resolve, reject) => { + const session = snmp.createSession(this.ip, 'public') session.get(this.oIDsArray(), (error, varbinds) => { const varbindsString = this.deBufferizeVarbinds(varbinds) const info = this.objectIDsToPrinterInfo(varbindsString) resolve(info) + session.close() }) }) } diff --git a/src/printerObjectIDConfigs.mts b/src/printerObjectIDConfigs.mts new file mode 100644 index 0000000..4012722 --- /dev/null +++ b/src/printerObjectIDConfigs.mts @@ -0,0 +1,64 @@ +import { PrinterObjectIDConfig } from './types.mjs' + +export const printerObjectIDConfigs: PrinterObjectIDConfig[] = [ + { + model: 'm3655idn', + objectIds: { + model: '1.3.6.1.2.1.25.3.2.1.3.1', + serial: '1.3.6.1.2.1.43.5.1.1.17.1', + counter: '1.3.6.1.4.1.1347.43.10.1.1.12.1.1', + toners: { + black: { + current: '1.3.6.1.2.1.43.11.1.1.9.1.1', + max: '1.3.6.1.2.1.43.11.1.1.8.1.1', + model: '1.3.6.1.2.1.43.11.1.1.6.1.1' + } + } + } + }, + { + model: 'p6235cdn', + objectIds: { + model: '1.3.6.1.2.1.25.3.2.1.3.1', + serial: '1.3.6.1.2.1.43.5.1.1.17.1', + counter: '1.3.6.1.4.1.1347.43.10.1.1.12.1.1', + toners: { + black: { + current: '1.3.6.1.2.1.43.11.1.1.9.1.4', + max: '1.3.6.1.2.1.43.11.1.1.8.1.4', + model: '1.3.6.1.2.1.43.11.1.1.6.1.4' + }, + cyan: { + current: '1.3.6.1.2.1.43.11.1.1.9.1.1', + max: '1.3.6.1.2.1.43.11.1.1.8.1.1', + model: '1.3.6.1.2.1.43.11.1.1.6.1.1' + }, + magenta: { + current: '1.3.6.1.2.1.43.11.1.1.9.1.2', + max: '1.3.6.1.2.1.43.11.1.1.8.1.2', + model: '1.3.6.1.2.1.43.11.1.1.6.1.2' + }, + yellow: { + current: '1.3.6.1.2.1.43.11.1.1.9.1.3', + max: '1.3.6.1.2.1.43.11.1.1.8.1.3', + model: '1.3.6.1.2.1.43.11.1.1.6.1.3' + } + } + } + }, + { + model: 'm2040dn', + objectIds: { + model: '1.3.6.1.2.1.25.3.2.1.3.1', + serial: '1.3.6.1.2.1.43.5.1.1.17.1', + counter: '1.3.6.1.4.1.1347.43.10.1.1.12.1.1', + toners: { + black: { + current: '1.3.6.1.2.1.43.11.1.1.9.1.1', + max: '1.3.6.1.2.1.43.11.1.1.8.1.1', + model: '1.3.6.1.2.1.43.11.1.1.6.1.1' + } + } + } + } +]