} from '../../../types/ocpp/1.6/Transaction';
import { ErrorType } from '../../../types/ocpp/ErrorType';
import type { ResponseHandler } from '../../../types/ocpp/Responses';
+import Constants from '../../../utils/Constants';
import logger from '../../../utils/Logger';
import Utils from '../../../utils/Utils';
import type ChargingStation from '../../ChargingStation';
import { ChargingStationConfigurationUtils } from '../../ChargingStationConfigurationUtils';
-import { ChargingStationUtils } from '../../ChargingStationUtils';
import OCPPResponseService from '../OCPPResponseService';
import { OCPP16ServiceUtils } from './OCPP16ServiceUtils';
payload: JsonType,
requestPayload: JsonType
): Promise<void> {
- if (chargingStation.isRegistered() || commandName === OCPP16RequestCommand.BOOT_NOTIFICATION) {
+ if (
+ chargingStation.isRegistered() === true ||
+ commandName === OCPP16RequestCommand.BOOT_NOTIFICATION
+ ) {
if (
- this.responseHandlers.has(commandName) &&
- ChargingStationUtils.isRequestCommandSupported(commandName, chargingStation)
+ this.responseHandlers.has(commandName) === true &&
+ OCPP16ServiceUtils.isRequestCommandSupported(chargingStation, commandName) === true
) {
try {
this.validatePayload(chargingStation, commandName, payload);
break;
}
}
+ const isAuthorizeConnectorIdDefined = authorizeConnectorId !== undefined;
if (payload.idTagInfo.status === OCPP16AuthorizationStatus.ACCEPTED) {
- chargingStation.getConnectorStatus(authorizeConnectorId).idTagAuthorized = true;
+ isAuthorizeConnectorIdDefined &&
+ (chargingStation.getConnectorStatus(authorizeConnectorId).idTagAuthorized = true);
logger.debug(
- `${chargingStation.logPrefix()} IdTag ${
- requestPayload.idTag
- } authorized on connector ${authorizeConnectorId}`
+ `${chargingStation.logPrefix()} IdTag '${requestPayload.idTag}' accepted${
+ isAuthorizeConnectorIdDefined ? ` on connector ${authorizeConnectorId}` : ''
+ }`
);
} else {
- chargingStation.getConnectorStatus(authorizeConnectorId).idTagAuthorized = false;
- delete chargingStation.getConnectorStatus(authorizeConnectorId).authorizeIdTag;
+ if (isAuthorizeConnectorIdDefined) {
+ chargingStation.getConnectorStatus(authorizeConnectorId).idTagAuthorized = false;
+ delete chargingStation.getConnectorStatus(authorizeConnectorId).authorizeIdTag;
+ }
logger.debug(
- `${chargingStation.logPrefix()} IdTag ${requestPayload.idTag} refused with status '${
+ `${chargingStation.logPrefix()} IdTag '${requestPayload.idTag}' rejected with status '${
payload.idTagInfo.status
- }' on connector ${authorizeConnectorId}`
+ }'${isAuthorizeConnectorIdDefined ? ` on connector ${authorizeConnectorId}` : ''}`
);
}
}
return;
}
if (
- chargingStation.getConnectorStatus(connectorId).transactionRemoteStarted &&
+ chargingStation.getConnectorStatus(connectorId).transactionRemoteStarted === true &&
chargingStation.getAuthorizeRemoteTxRequests() &&
chargingStation.getLocalAuthListEnabled() &&
chargingStation.hasAuthorizedTags() &&
- !chargingStation.getConnectorStatus(connectorId).idTagLocalAuthorized
+ chargingStation.getConnectorStatus(connectorId).idTagLocalAuthorized === false
) {
logger.error(
chargingStation.logPrefix() +
return;
}
if (
- chargingStation.getConnectorStatus(connectorId).transactionRemoteStarted &&
+ chargingStation.getConnectorStatus(connectorId).transactionRemoteStarted === true &&
chargingStation.getAuthorizeRemoteTxRequests() &&
- chargingStation.getMayAuthorizeAtRemoteStart() &&
- !chargingStation.getConnectorStatus(connectorId).idTagLocalAuthorized &&
- !chargingStation.getConnectorStatus(connectorId).idTagAuthorized
+ chargingStation.getMustAuthorizeAtRemoteStart() &&
+ chargingStation.getConnectorStatus(connectorId).idTagLocalAuthorized === false &&
+ chargingStation.getConnectorStatus(connectorId).idTagAuthorized === false
) {
logger.error(
chargingStation.logPrefix() +
await this.resetConnectorOnStartTransactionError(chargingStation, connectorId);
return;
}
- if (chargingStation.getConnectorStatus(connectorId)?.transactionStarted) {
+ if (chargingStation.getConnectorStatus(connectorId)?.transactionStarted === true) {
logger.debug(
chargingStation.logPrefix() +
' Trying to start a transaction on an already used connector ' +
);
return;
}
- if (!Number.isInteger(payload.transactionId)) {
- logger.warn(
- `${chargingStation.logPrefix()} Trying to start a transaction on connector ${connectorId.toString()} with a non integer transaction Id ${
- payload.transactionId
- }, converting to integer`
- );
- payload.transactionId = Utils.convertToInt(payload.transactionId);
- }
+ // if (!Number.isInteger(payload.transactionId)) {
+ // logger.warn(
+ // `${chargingStation.logPrefix()} Trying to start a transaction on connector ${connectorId.toString()} with a non integer transaction Id ${
+ // payload.transactionId
+ // }, converting to integer`
+ // );
+ // payload.transactionId = Utils.convertToInt(payload.transactionId);
+ // }
if (payload.idTagInfo?.status === OCPP16AuthorizationStatus.ACCEPTED) {
chargingStation.getConnectorStatus(connectorId).transactionStarted = true;
chargingStation.stationInfo.chargingStationId +
'#' +
connectorId.toString() +
- ' for idTag ' +
- requestPayload.idTag
+ " for idTag '" +
+ requestPayload.idTag +
+ "'"
);
if (chargingStation.stationInfo.powerSharedByConnectors) {
chargingStation.powerDivider++;
connectorId,
configuredMeterValueSampleInterval
? Utils.convertToInt(configuredMeterValueSampleInterval.value) * 1000
- : 60000
+ : Constants.DEFAULT_METER_VALUES_INTERVAL
);
} else {
logger.warn(
payload.transactionId.toString() +
" REJECTED with status '" +
payload?.idTagInfo?.status +
- "', idTag " +
- requestPayload.idTag
+ "', idTag '" +
+ requestPayload.idTag +
+ "'"
);
await this.resetConnectorOnStartTransactionError(chargingStation, connectorId);
}
],
}));
if (
- !chargingStation.isChargingStationAvailable() ||
- !chargingStation.isConnectorAvailable(transactionConnectorId)
+ chargingStation.isChargingStationAvailable() === false ||
+ chargingStation.isConnectorAvailable(transactionConnectorId) === false
) {
await chargingStation.ocppRequestService.requestHandler<
OCPP16StatusNotificationRequest,
if (chargingStation.stationInfo.powerSharedByConnectors) {
chargingStation.powerDivider--;
}
+ chargingStation.resetConnectorStatus(transactionConnectorId);
logger.info(
chargingStation.logPrefix() +
' Transaction ' +
'#' +
transactionConnectorId.toString()
);
- chargingStation.resetConnectorStatus(transactionConnectorId);
} else {
logger.warn(
chargingStation.logPrefix() +