--- /dev/null
+import { OCPP16ChargePointStatus } from '../../../types';
+import { OCPPConstants } from '../internal';
+
+export class OCPP16Constants extends OCPPConstants {
+ static readonly OCPP16ChargePointStatusChargingStationTransition = new Set<
+ [OCPP16ChargePointStatus | undefined, OCPP16ChargePointStatus | undefined]
+ >([
+ [undefined, OCPP16ChargePointStatus.Available],
+ // [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Available],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Faulted],
+ [undefined, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Available],
+ // [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Faulted],
+ [undefined, OCPP16ChargePointStatus.Faulted],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Available],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Unavailable],
+ // [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Faulted],
+ ]);
+
+ static readonly OCPP16ChargePointStatusConnectorTransition = new Set<
+ [OCPP16ChargePointStatus | undefined, OCPP16ChargePointStatus | undefined]
+ >([
+ [undefined, OCPP16ChargePointStatus.Available],
+ // [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Available],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Preparing],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Charging],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.SuspendedEV],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.SuspendedEVSE],
+ // [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Finishing],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Reserved],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Faulted],
+ // [undefined, OCPP16ChargePointStatus.Preparing],
+ [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Available],
+ // [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Preparing],
+ [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Charging],
+ [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.SuspendedEV],
+ [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.SuspendedEVSE],
+ [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Finishing],
+ // [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Reserved],
+ // [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Faulted],
+ // [undefined, OCPP16ChargePointStatus.Charging],
+ [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Available],
+ // [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Preparing],
+ // [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Charging],
+ [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.SuspendedEV],
+ [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.SuspendedEVSE],
+ [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Finishing],
+ // [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Reserved],
+ [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Faulted],
+ // [undefined, OCPP16ChargePointStatus.SuspendedEV],
+ [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Available],
+ // [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Preparing],
+ [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Charging],
+ // [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.SuspendedEV],
+ [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.SuspendedEVSE],
+ [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Finishing],
+ // [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Reserved],
+ [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Faulted],
+ // [undefined, OCPP16ChargePointStatus.SuspendedEVSE],
+ [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Available],
+ // [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Preparing],
+ [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Charging],
+ [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.SuspendedEV],
+ // [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.SuspendedEVSE],
+ [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Finishing],
+ // [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Reserved],
+ [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Faulted],
+ // [undefined, OCPP16ChargePointStatus.Finishing],
+ [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Available],
+ [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Preparing],
+ // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Charging],
+ // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.SuspendedEV],
+ // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.SuspendedEVSE],
+ // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Finishing],
+ // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Reserved],
+ [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Faulted],
+ // [undefined, OCPP16ChargePointStatus.Reserved],
+ [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Available],
+ [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Preparing],
+ // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Charging],
+ // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.SuspendedEV],
+ // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.SuspendedEVSE],
+ // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Finishing],
+ // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Reserved],
+ [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Faulted],
+ [undefined, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Available],
+ [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Preparing],
+ [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Charging],
+ [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.SuspendedEV],
+ [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.SuspendedEVSE],
+ // [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Finishing],
+ // [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Reserved],
+ // [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Unavailable],
+ [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Faulted],
+ [undefined, OCPP16ChargePointStatus.Faulted],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Available],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Preparing],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Charging],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.SuspendedEV],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.SuspendedEVSE],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Finishing],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Reserved],
+ [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Unavailable],
+ // [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Faulted],
+ ]);
+}
}
return OCPPConstants.OCPP_RESPONSE_UNLOCK_FAILED;
}
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
connectorId,
- status: OCPP16ChargePointStatus.Available,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.Available;
+ OCPP16ChargePointStatus.Available
+ );
return OCPPConstants.OCPP_RESPONSE_UNLOCKED;
}
}
chargingStation.getConnectorStatus(id).availability = commandPayload.type;
if (response === OCPPConstants.OCPP_AVAILABILITY_RESPONSE_ACCEPTED) {
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
- connectorId: id,
- status: chargePointStatus,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(id).status = chargePointStatus;
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
+ id,
+ chargePointStatus
+ );
}
}
return response;
return OCPPConstants.OCPP_AVAILABILITY_RESPONSE_SCHEDULED;
}
chargingStation.getConnectorStatus(connectorId).availability = commandPayload.type;
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
connectorId,
- status: chargePointStatus,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(connectorId).status = chargePointStatus;
+ chargePointStatus
+ );
return OCPPConstants.OCPP_AVAILABILITY_RESPONSE_ACCEPTED;
}
return OCPPConstants.OCPP_AVAILABILITY_RESPONSE_REJECTED;
const remoteStartTransactionLogMsg = `${chargingStation.logPrefix()} Transaction remotely STARTED on ${
chargingStation.stationInfo.chargingStationId
}#${transactionConnectorId.toString()} for idTag '${commandPayload.idTag}'`;
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
- connectorId: transactionConnectorId,
- status: OCPP16ChargePointStatus.Preparing,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
+ transactionConnectorId,
+ OCPP16ChargePointStatus.Preparing
+ );
const connectorStatus = chargingStation.getConnectorStatus(transactionConnectorId);
- connectorStatus.status = OCPP16ChargePointStatus.Preparing;
if (
chargingStation.isChargingStationAvailable() === true &&
chargingStation.isConnectorAvailable(transactionConnectorId) === true
if (
chargingStation.getConnectorStatus(connectorId)?.status !== OCPP16ChargePointStatus.Available
) {
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
connectorId,
- status: OCPP16ChargePointStatus.Available,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.Available;
+ OCPP16ChargePointStatus.Available
+ );
}
logger.warn(
`${chargingStation.logPrefix()} Remote starting transaction REJECTED on connector Id ${connectorId.toString()}, idTag '${idTag}', availability '${
connectorId > 0 &&
chargingStation.getConnectorStatus(connectorId)?.transactionId === transactionId
) {
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
connectorId,
- status: OCPP16ChargePointStatus.Finishing,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.Finishing;
+ OCPP16ChargePointStatus.Finishing
+ );
const stopResponse = await chargingStation.stopTransactionOnConnector(
connectorId,
OCPP16StopTransactionReason.REMOTE
connectorId > 0 &&
chargingStation.getConnectorStatus(connectorId)?.transactionStarted === false
) {
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
connectorId,
- status: OCPP16ChargePointStatus.Unavailable,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(connectorId).status =
- OCPP16ChargePointStatus.Unavailable;
+ OCPP16ChargePointStatus.Unavailable
+ );
}
}
await chargingStation.ocppRequestService.requestHandler<
chargingStation.getConnectorStatus(connectorId)?.status !==
OCPP16ChargePointStatus.Unavailable
) {
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
connectorId,
- status: OCPP16ChargePointStatus.Unavailable,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(connectorId).status =
- OCPP16ChargePointStatus.Unavailable;
+ OCPP16ChargePointStatus.Unavailable
+ );
}
}
transactionsStarted = false;
OCPP16AuthorizationStatus,
type OCPP16AuthorizeRequest,
type OCPP16AuthorizeResponse,
- type OCPP16BootNotificationRequest,
type OCPP16BootNotificationResponse,
- OCPP16ChargePointErrorCode,
OCPP16ChargePointStatus,
type OCPP16DataTransferResponse,
type OCPP16DiagnosticsStatusNotificationResponse,
OCPP16StandardParametersKey,
type OCPP16StartTransactionRequest,
type OCPP16StartTransactionResponse,
- type OCPP16StatusNotificationRequest,
type OCPP16StatusNotificationResponse,
type OCPP16StopTransactionRequest,
type OCPP16StopTransactionResponse,
transactionId: payload.transactionId,
meterValue: [chargingStation.getConnectorStatus(connectorId).transactionBeginMeterValue],
}));
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
connectorId,
- status: OCPP16ChargePointStatus.Charging,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.Charging;
+ OCPP16ChargePointStatus.Charging
+ );
logger.info(
`${chargingStation.logPrefix()} Transaction ${payload.transactionId.toString()} STARTED on ${
chargingStation.stationInfo.chargingStationId
if (
chargingStation.getConnectorStatus(connectorId)?.status !== OCPP16ChargePointStatus.Available
) {
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
connectorId,
- status: OCPP16ChargePointStatus.Available,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(connectorId).status = OCPP16ChargePointStatus.Available;
+ OCPP16ChargePointStatus.Available
+ );
}
}
chargingStation.isChargingStationAvailable() === false ||
chargingStation.isConnectorAvailable(transactionConnectorId) === false
) {
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16StatusNotificationRequest,
- OCPP16StatusNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
- connectorId: transactionConnectorId,
- status: OCPP16ChargePointStatus.Unavailable,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(transactionConnectorId).status =
- OCPP16ChargePointStatus.Unavailable;
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
+ transactionConnectorId,
+ OCPP16ChargePointStatus.Unavailable
+ );
} else {
- await chargingStation.ocppRequestService.requestHandler<
- OCPP16BootNotificationRequest,
- OCPP16BootNotificationResponse
- >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
- connectorId: transactionConnectorId,
- status: OCPP16ChargePointStatus.Available,
- errorCode: OCPP16ChargePointErrorCode.NO_ERROR,
- });
- chargingStation.getConnectorStatus(transactionConnectorId).status =
- OCPP16ChargePointStatus.Available;
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
+ transactionConnectorId,
+ OCPP16ChargePointStatus.Available
+ );
}
if (chargingStation.stationInfo.powerSharedByConnectors) {
chargingStation.powerDivider--;
MeterValueContext,
MeterValueLocation,
MeterValueUnit,
+ OCPP16ChargePointErrorCode,
+ type OCPP16ChargePointStatus,
type OCPP16ChargingProfile,
type OCPP16IncomingRequestCommand,
type OCPP16MeterValue,
OCPP16RequestCommand,
type OCPP16SampledValue,
OCPP16StandardParametersKey,
+ type OCPP16StatusNotificationRequest,
+ type OCPP16StatusNotificationResponse,
type OCPP16SupportedFeatureProfiles,
OCPPVersion,
type SampledValueTemplate,
Voltage,
} from '../../../types';
import { ACElectricUtils, Constants, DCElectricUtils, Utils, logger } from '../../../utils';
-import { OCPPServiceUtils } from '../internal';
+import { OCPP16Constants, OCPPServiceUtils } from '../internal';
export class OCPP16ServiceUtils extends OCPPServiceUtils {
public static checkFeatureProfile(
);
}
+ public static async sendAndSetConnectorStatus(
+ chargingStation: ChargingStation,
+ connectorId: number,
+ status: OCPP16ChargePointStatus,
+ errorCode: OCPP16ChargePointErrorCode = OCPP16ChargePointErrorCode.NO_ERROR
+ ) {
+ OCPP16ServiceUtils.checkConnectorStatusTransition(chargingStation, connectorId, status);
+ await chargingStation.ocppRequestService.requestHandler<
+ OCPP16StatusNotificationRequest,
+ OCPP16StatusNotificationResponse
+ >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, {
+ connectorId,
+ status,
+ errorCode,
+ });
+ chargingStation.getConnectorStatus(connectorId).status = status;
+ }
+
+ private static checkConnectorStatusTransition(
+ chargingStation: ChargingStation,
+ connectorId: number,
+ status: OCPP16ChargePointStatus
+ ): void {
+ if (
+ connectorId === 0 &&
+ !OCPP16Constants.OCPP16ChargePointStatusChargingStationTransition.has([
+ chargingStation.getConnectorStatus(connectorId).status as OCPP16ChargePointStatus,
+ status,
+ ])
+ ) {
+ logger.warn(
+ `${chargingStation.logPrefix()} Connector ${connectorId} status transition from ${
+ chargingStation.getConnectorStatus(connectorId).status
+ } to ${status} is not allowed`
+ );
+ } else if (
+ !OCPP16Constants.OCPP16ChargePointStatusConnectorTransition.has([
+ chargingStation.getConnectorStatus(connectorId).status as OCPP16ChargePointStatus,
+ status,
+ ])
+ ) {
+ logger.warn(
+ `${chargingStation.logPrefix()} Connector ${connectorId} status transition from ${
+ chargingStation.getConnectorStatus(connectorId).status
+ } to ${status} is not allowed`
+ );
+ }
+ }
+
private static buildSampledValue(
sampledValueTemplate: SampledValueTemplate,
value: number,
status: DataTransferStatus.REJECTED,
});
- private constructor() {
+ protected constructor() {
// This is intentional
}
}
+export * from './1.6/OCPP16Constants';
export * from './1.6/OCPP16IncomingRequestService';
export * from './1.6/OCPP16RequestService';
export * from './1.6/OCPP16ResponseService';
Available = 'Available',
Preparing = 'Preparing',
Charging = 'Charging',
- Occupied = 'Occupied',
SuspendedEVSE = 'SuspendedEVSE',
SuspendedEV = 'SuspendedEV',
Finishing = 'Finishing',