X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2F1.6%2FOCPP16ServiceUtils.ts;h=cf055beb949d05f5844c86a450fd6cfc27c7f8ee;hb=366f75f699490d7e6a49714a0517b9ffe7176052;hp=00594e1c7ed664809d195ff412f6eab9e48a851e;hpb=6e2f954cbb505ad26c61d950e29685d5d49d5f00;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts b/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts index 00594e1c..cf055beb 100644 --- a/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts +++ b/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts @@ -2,6 +2,7 @@ import type { JSONSchemaType } from 'ajv'; +import { OCPP16Constants } from './OCPP16Constants'; import { type ChargingStation, hasFeatureProfile } from '../../../charging-station'; import { OCPPError } from '../../../exception'; import { @@ -14,6 +15,9 @@ import { MeterValueContext, MeterValueLocation, MeterValueUnit, + OCPP16AvailabilityType, + type OCPP16ChangeAvailabilityResponse, + OCPP16ChargePointStatus, type OCPP16ChargingProfile, type OCPP16IncomingRequestCommand, type OCPP16MeterValue, @@ -788,6 +792,29 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { return meterValues; } + public static changeAvailability = async ( + chargingStation: ChargingStation, + connectorId: number, + chargePointStatus: OCPP16ChargePointStatus, + availabilityType: OCPP16AvailabilityType, + ): Promise => { + let response: OCPP16ChangeAvailabilityResponse = + OCPP16Constants.OCPP_AVAILABILITY_RESPONSE_ACCEPTED; + const connectorStatus = chargingStation.getConnectorStatus(connectorId)!; + if (connectorStatus?.transactionStarted === true) { + response = OCPP16Constants.OCPP_AVAILABILITY_RESPONSE_SCHEDULED; + } + connectorStatus.availability = availabilityType; + if (response === OCPP16Constants.OCPP_AVAILABILITY_RESPONSE_ACCEPTED) { + await OCPP16ServiceUtils.sendAndSetConnectorStatus( + chargingStation, + connectorId, + chargePointStatus, + ); + } + return response; + }; + public static setChargingProfile( chargingStation: ChargingStation, connectorId: number,