UNPKG

@evpower/ocpp-ts

Version:

OCPP 1.6: Open Charge Point Protocol

61 lines 4.71 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Client = void 0; const events_1 = __importDefault(require("events")); const ws_1 = __importDefault(require("ws")); const Protocol_1 = require("./Protocol"); const schemas_1 = require("./schemas"); class Client extends events_1.default { constructor(cpId, protocolTimeout = 30000) { super(); this.connection = null; this.cpId = cpId; this.protocolTimeout = protocolTimeout; } getCpId() { return this.cpId; } setConnection(connection) { this.connection = connection; } callRequest(request, payload) { if (this.connection) { return this.connection.callRequest(request, payload); } return Promise.reject('Charging point not connected to central system'); } connect(centralSystemUrl, headers) { this.ws = new ws_1.default(centralSystemUrl + this.getCpId(), [schemas_1.OCPP_PROTOCOL_1_6], { perMessageDeflate: false, protocolVersion: 13, headers, }); this.ws.on('upgrade', (res) => { if (!res.headers['sec-websocket-protocol']) { this.emit('error', new Error(`Server doesn't support protocol ${schemas_1.OCPP_PROTOCOL_1_6}`)); } }); this.ws.on('close', (code, reason) => { this.setConnection(null); this.emit('close', code, reason); }); this.ws.on('open', () => { if (this.ws) { this.setConnection(new Protocol_1.Protocol(this, this.ws, this.protocolTimeout)); this.emit('connect'); } }); this.ws.on('error', (err) => { this.emit('error', err); }); } close(code, reason) { this.connection?.socket.close(code, reason); this.ws?.close(code, reason); } } exports.Client = Client; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltcGwvQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUFrQztBQUVsQyw0Q0FBMkI7QUFDM0IseUNBQXNDO0FBQ3RDLHVDQUE4QztBQUU5QyxNQUFhLE1BQU8sU0FBUSxnQkFBWTtJQVV0QyxZQUFZLElBQVksRUFBRSxlQUFlLEdBQUcsS0FBSztRQUMvQyxLQUFLLEVBQUUsQ0FBQztRQVRGLGVBQVUsR0FBb0IsSUFBSSxDQUFDO1FBVXpDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ3pDLENBQUM7SUFFUyxPQUFPO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFUyxhQUFhLENBQUMsVUFBMkI7UUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVTLFdBQVcsQ0FBQyxPQUFlLEVBQUUsT0FBWTtRQUNqRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVTLE9BQU8sQ0FBQyxnQkFBd0IsRUFBRSxPQUE2QjtRQUN2RSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksWUFBUyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLDJCQUFpQixDQUFDLEVBQUU7WUFDOUUsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixlQUFlLEVBQUUsRUFBRTtZQUNuQixPQUFPO1NBQ1IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsMkJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEYsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBWSxFQUFFLE1BQWMsRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUN0QixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksbUJBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBYSxFQUFFLE1BQWU7UUFDekMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUVGO0FBbEVELHdCQWtFQyJ9