@evpower/ocpp-ts
Version:
OCPP 1.6: Open Charge Point Protocol
61 lines • 4.71 kB
JavaScript
;
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