import type { JSONSchemaType } from 'ajv';
-import { OCPP16ServiceUtils } from './OCPP16ServiceUtils';
+import { type ChargingStation, ChargingStationConfigurationUtils } from '../../../charging-station';
import { OCPPError } from '../../../exception';
import {
type ChangeAvailabilityResponse,
type OCPP16DataTransferResponse,
type OCPP16DiagnosticsStatusNotificationResponse,
type OCPP16FirmwareStatusNotificationResponse,
+ type OCPP16GetCompositeScheduleResponse,
type OCPP16HeartbeatResponse,
OCPP16IncomingRequestCommand,
type OCPP16MeterValuesRequest,
type SetChargingProfileResponse,
type UnlockConnectorResponse,
} from '../../../types';
-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 { OCPPResponseService } from '../OCPPResponseService';
+import { Constants, Utils, logger } from '../../../utils';
+import { OCPP16ServiceUtils, OCPPResponseService } from '../internal';
const moduleName = 'OCPP16ResponseService';
private jsonSchemas: Map<OCPP16RequestCommand, JSONSchemaType<JsonObject>>;
public constructor() {
- if (new.target?.name === moduleName) {
- throw new TypeError(`Cannot construct ${new.target?.name} instances directly`);
- }
+ // if (new.target?.name === moduleName) {
+ // throw new TypeError(`Cannot construct ${new.target?.name} instances directly`);
+ // }
super(OCPPVersion.VERSION_16);
this.responseHandlers = new Map<OCPP16RequestCommand, ResponseHandler>([
[OCPP16RequestCommand.BOOT_NOTIFICATION, this.handleResponseBootNotification.bind(this)],
'constructor'
),
],
+ [
+ OCPP16IncomingRequestCommand.GET_COMPOSITE_SCHEDULE,
+ OCPP16ServiceUtils.parseJsonSchemaFile<OCPP16GetCompositeScheduleResponse>(
+ '../../../assets/json-schemas/ocpp/1.6/GetCompositeScheduleResponse.json',
+ moduleName,
+ 'constructor'
+ ),
+ ],
[
OCPP16IncomingRequestCommand.SET_CHARGING_PROFILE,
OCPP16ServiceUtils.parseJsonSchemaFile<SetChargingProfileResponse>(
{ visible: false },
{ overwrite: true, save: true }
);
- chargingStation.heartbeatSetInterval
- ? chargingStation.restartHeartbeat()
- : chargingStation.startHeartbeat();
+ OCPP16ServiceUtils.startHeartbeatInterval(chargingStation, payload.interval);
}
if (Object.values(RegistrationStatusEnumType).includes(payload.status)) {
const logMsg = `${chargingStation.logPrefix()} Charging station in '${
chargingStation.getConnectorStatus(connectorId)?.transactionRemoteStarted === true &&
chargingStation.getAuthorizeRemoteTxRequests() === true &&
chargingStation.getLocalAuthListEnabled() === true &&
- chargingStation.hasAuthorizedTags() &&
+ chargingStation.hasIdTags() &&
chargingStation.getConnectorStatus(connectorId)?.idTagLocalAuthorized === false
) {
logger.error(
}
if (
chargingStation.getConnectorStatus(connectorId)?.status !==
- OCPP16ChargePointStatus.AVAILABLE &&
- chargingStation.getConnectorStatus(connectorId)?.status !== OCPP16ChargePointStatus.PREPARING
+ OCPP16ChargePointStatus.Available &&
+ chargingStation.getConnectorStatus(connectorId)?.status !== OCPP16ChargePointStatus.Preparing
) {
logger.error(
`${chargingStation.logPrefix()} Trying to start a transaction on connector ${connectorId.toString()} with status ${
OCPP16StatusNotificationResponse
>(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
connectorId,
- status: OCPP16ChargePointStatus.CHARGING,
+ status: OCPP16ChargePointStatus.Charging,
errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
});
- chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.CHARGING;
+ chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.Charging;
logger.info(
`${chargingStation.logPrefix()} Transaction ${payload.transactionId.toString()} STARTED on ${
chargingStation.stationInfo.chargingStationId
): Promise<void> {
chargingStation.resetConnectorStatus(connectorId);
if (
- chargingStation.getConnectorStatus(connectorId)?.status !== OCPP16ChargePointStatus.AVAILABLE
+ chargingStation.getConnectorStatus(connectorId)?.status !== OCPP16ChargePointStatus.Available
) {
await chargingStation.ocppRequestService.requestHandler<
OCPP16StatusNotificationRequest,
OCPP16StatusNotificationResponse
>(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
connectorId,
- status: OCPP16ChargePointStatus.AVAILABLE,
+ status: OCPP16ChargePointStatus.Available,
errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
});
- chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.AVAILABLE;
+ chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.Available;
}
}
OCPP16StatusNotificationResponse
>(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
connectorId: transactionConnectorId,
- status: OCPP16ChargePointStatus.UNAVAILABLE,
+ status: OCPP16ChargePointStatus.Unavailable,
errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
});
chargingStation.getConnectorStatus(transactionConnectorId).status =
- OCPP16ChargePointStatus.UNAVAILABLE;
+ OCPP16ChargePointStatus.Unavailable;
} else {
await chargingStation.ocppRequestService.requestHandler<
OCPP16BootNotificationRequest,
OCPP16BootNotificationResponse
>(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
connectorId: transactionConnectorId,
- status: OCPP16ChargePointStatus.AVAILABLE,
+ status: OCPP16ChargePointStatus.Available,
errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
});
chargingStation.getConnectorStatus(transactionConnectorId).status =
- OCPP16ChargePointStatus.AVAILABLE;
+ OCPP16ChargePointStatus.Available;
}
if (chargingStation.stationInfo.powerSharedByConnectors) {
chargingStation.powerDivider--;