Type comparison issue, should be migrated to typescript.
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
}
],
"import/no-nodejs-modules": 0,
}
],
"import/no-nodejs-modules": 0,
- "flowtype/no-types-missing-file-annotation": 0
+ "flowtype/no-types-missing-file-annotation": 0,
+ "max-len": [
+ "warn",
+ {
+ "code": 180,
+ "ignoreComments": true,
+ "ignoreUrls": true,
+ "ignoreStrings": true,
+ "ignoreTemplateLiterals": true,
+ "ignoreRegExpLiterals": true,
+ "ignorePattern": "(^(import|export)|(public|private))\\s.+;"
+ }
+ ]
"runtimeArgs": [
"run-script", "start:debug"
],
"runtimeArgs": [
"run-script", "start:debug"
],
+ "port": 9229,
+ "stopOnEntry": true
-}
\ No newline at end of file
"main": "src/index.js",
"scripts": {
"start": "node src/index.js",
"main": "src/index.js",
"scripts": {
"start": "node src/index.js",
- "start:debug": "node --inspect-brk src/index.js",
+ "start:debug": "node --inspect src/index.js",
"start:prof": "node --prof src/index.js",
"start:doctorprof": "clinic doctor -- node src/index.js",
"start:flameprof": "clinic flame -- node src/index.js",
"start:prof": "node --prof src/index.js",
"start:doctorprof": "clinic doctor -- node src/index.js",
"start:flameprof": "clinic flame -- node src/index.js",
- // At first start, send Bootnotification
+ // At first start, send BootNotification
try {
this.sendMessage(uuid(), this._bootNotificationMessage, Constants.OCPP_JSON_CALL_MESSAGE, 'BootNotification');
} catch (error) {
try {
this.sendMessage(uuid(), this._bootNotificationMessage, Constants.OCPP_JSON_CALL_MESSAGE, 'BootNotification');
} catch (error) {
// determine number of customized connectors
let lastConnector;
for (lastConnector in connectorsConfig) {
// determine number of customized connectors
let lastConnector;
for (lastConnector in connectorsConfig) {
- if (lastConnector === 0 && this._stationInfo.usedConnectorId0) {
+ if (Utils.convertToInt(lastConnector) === 0 && this._stationInfo.usedConnectorId0) {
this._connectors[lastConnector] = connectorsConfig[lastConnector];
}
}
this._connectors[lastConnector] = connectorsConfig[lastConnector];
}
}
}
handleResponseStartTransaction(payload, requestPayload) {
}
handleResponseStartTransaction(payload, requestPayload) {
- this._connectors[requestPayload.connectorId] = {
- transactionStarted: false,
- idTag: requestPayload.idTag,
- };
+ this._connectors[requestPayload.connectorId].transactionStarted = false;
+ this._connectors[requestPayload.connectorId].idTag = requestPayload.idTag;
+
if (payload.idTagInfo.status === 'Accepted') {
for (const connector in this._connectors) {
if (payload.idTagInfo.status === 'Accepted') {
for (const connector in this._connectors) {
- if (connector === requestPayload.connectorId) {
+ if (Utils.convertToInt(connector) === requestPayload.connectorId) {
this._connectors[connector].transactionStarted = true;
this._connectors[connector].transactionId = payload.transactionId;
this._connectors[connector].lastConsumptionValue = 0;
this._connectors[connector].lastSoC = 0;
this._connectors[connector].transactionStarted = true;
this._connectors[connector].transactionId = payload.transactionId;
this._connectors[connector].lastConsumptionValue = 0;
this._connectors[connector].lastSoC = 0;
- logger.info(this._basicFormatLog() + ' Transaction ' + this._connectors[connector].transactionId + ' STARTED on ' + this._stationInfo.name + '#' + requestPayload.connectorId);
+ logger.info(this._basicFormatLog() + ' Transaction ' + this._connectors[connector].transactionId + ' STARTED on ' + this._stationInfo.name + '#' + requestPayload.connectorId + ' with idTag ' + requestPayload.idTag);
this.sendStatusNotification(requestPayload.connectorId, 'Charging');
const configuredMeterInterval = this._configuration.configurationKey.find((value) => value.key === 'meterValueInterval');
this.startMeterValues(requestPayload.connectorId,
this.sendStatusNotification(requestPayload.connectorId, 'Charging');
const configuredMeterInterval = this._configuration.configurationKey.find((value) => value.key === 'meterValueInterval');
this.startMeterValues(requestPayload.connectorId,
} else {
logger.error(this._basicFormatLog() + ' Starting transaction id ' + payload.transactionId + ' REJECTED with status ' + payload.idTagInfo.status + ', idTag ' + requestPayload.idTag);
for (const connector in this._connectors) {
} else {
logger.error(this._basicFormatLog() + ' Starting transaction id ' + payload.transactionId + ' REJECTED with status ' + payload.idTagInfo.status + ', idTag ' + requestPayload.idTag);
for (const connector in this._connectors) {
- if (connector === requestPayload.connectorId) {
+ if (Utils.convertToInt(connector) === requestPayload.connectorId) {
this._resetTransactionOnConnector(connector);
}
}
this._resetTransactionOnConnector(connector);
}
}
await this.sendError(messageId, error);
}
} else {
await this.sendError(messageId, error);
}
} else {
await this.sendError(messageId, new OCPPError(Constants.OCPP_ERROR_NOT_IMPLEMENTED, 'Not implemented', {}));
throw new Error(`${commandName} is not implemented ${JSON.stringify(commandPayload, null, ' ')}`);
}
await this.sendError(messageId, new OCPPError(Constants.OCPP_ERROR_NOT_IMPLEMENTED, 'Not implemented', {}));
throw new Error(`${commandName} is not implemented ${JSON.stringify(commandPayload, null, ' ')}`);
}
await this.sendMessage(messageId, result, Constants.OCPP_JSON_CALL_RESULT_MESSAGE);
}
await this.sendMessage(messageId, result, Constants.OCPP_JSON_CALL_RESULT_MESSAGE);
}
if (this._authorizedKeys.find((value) => value === commandPayload.idTag)) {
// Authorization successful start transaction
setTimeout(() => this.sendStartTransaction(transactionConnectorID, commandPayload.idTag), 500);
if (this._authorizedKeys.find((value) => value === commandPayload.idTag)) {
// Authorization successful start transaction
setTimeout(() => this.sendStartTransaction(transactionConnectorID, commandPayload.idTag), 500);
+ logger.info(this._basicFormatLog() + ' Transaction remotely STARTED on ' + this._stationInfo.name + '#' + transactionConnectorID + ' with idTag ' + commandPayload.idTag);
return Constants.OCPP_RESPONSE_ACCEPTED;
}
// Start authorization checks
return Constants.OCPP_RESPONSE_ACCEPTED;
}
// Start authorization checks
+ logger.error(this._basicFormatLog() + ' Remote starting transaction REJECTED with status ' + commandPayload.idTagInfo.status + ', idTag ' + commandPayload.idTag);
return Constants.OCPP_RESPONSE_REJECTED;
}
// No local authorization check required => start transaction
setTimeout(() => this.sendStartTransaction(transactionConnectorID, commandPayload.idTag), 500);
return Constants.OCPP_RESPONSE_REJECTED;
}
// No local authorization check required => start transaction
setTimeout(() => this.sendStartTransaction(transactionConnectorID, commandPayload.idTag), 500);
+ logger.info(this._basicFormatLog() + ' Transaction remotely STARTED on ' + this._stationInfo.name + '#' + transactionConnectorID + ' with idTag ' + commandPayload.idTag);
return Constants.OCPP_RESPONSE_ACCEPTED;
}
return Constants.OCPP_RESPONSE_ACCEPTED;
}
}
async startMeterValues(connectorID, interval, self) {
}
async startMeterValues(connectorID, interval, self) {
- // if (!this._connectors[connectorID].transactionStarted) {
- // logger.debug(`${self._basicFormatLog()} Trying to start meter values on connector ID ${connectorID} with no transaction`);
- // } else if (this._connectors[connectorID].transactionStarted && !this._connectors[connectorID].transactionId) {
- // logger.debug(`${self._basicFormatLog()} Trying to start meter values on connector ID ${connectorID} with no transaction id`);
- // }
+ if (!this._connectors[connectorID].transactionStarted) {
+ logger.debug(`${self._basicFormatLog()} Trying to start meter values on connector ID ${connectorID} with no transaction`);
+ } else if (this._connectors[connectorID].transactionStarted && !this._connectors[connectorID].transactionId) {
+ logger.debug(`${self._basicFormatLog()} Trying to start meter values on connector ID ${connectorID} with no transaction id`);
+ }
this._connectors[connectorID].transactionInterval = setInterval(async () => {
const sendMeterValues = performance.timerify(this.sendMeterValues);
this._performanceObserver.observe({
this._connectors[connectorID].transactionInterval = setInterval(async () => {
const sendMeterValues = performance.timerify(this.sendMeterValues);
this._performanceObserver.observe({