X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcharging-station%2Focpp%2FOCPPServiceUtils.ts;h=8036079a4b2031c67613bf69ec5744e59cd9ae65;hb=856e8f67312da4acabeff1bd8452f02658a22fdb;hp=ee4134bb0a192f8db9f27075557f1e176ad4d58c;hpb=5398cecf45b4bdab604d0e6aff8a96dcc67d5ae9;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/OCPPServiceUtils.ts b/src/charging-station/ocpp/OCPPServiceUtils.ts index ee4134bb..8036079a 100644 --- a/src/charging-station/ocpp/OCPPServiceUtils.ts +++ b/src/charging-station/ocpp/OCPPServiceUtils.ts @@ -15,6 +15,7 @@ import { type AuthorizeRequest, type AuthorizeResponse, ChargePointErrorCode, + ChargingStationEvents, type ConnectorStatus, type ConnectorStatusEnum, ErrorType, @@ -226,6 +227,10 @@ export class OCPPServiceUtils { ); } chargingStation.getConnectorStatus(connectorId)!.status = status; + chargingStation.emit(ChargingStationEvents.connectorStatusChanged, { + connectorId, + ...chargingStation.getConnectorStatus(connectorId), + }); } public static async isIdTagAuthorized( @@ -414,20 +419,21 @@ export class OCPPServiceUtils { protected static getLimitFromSampledValueTemplateCustomValue( value: string, limit: number, - options?: { limitationEnabled?: boolean; unitMultiplier?: number }, + options?: { limitationEnabled?: boolean; unitMultiplier?: number; defaultValue?: number }, ): number { options = { ...{ limitationEnabled: true, unitMultiplier: 1, + defaultValue: 0, }, ...options, }; - const parsedInt = parseInt(value); - const numberValue = isNaN(parsedInt) ? Infinity : parsedInt; - return options?.limitationEnabled - ? min(numberValue * options.unitMultiplier!, limit) - : numberValue * options.unitMultiplier!; + const parsedValue = parseInt(value); + if (options?.limitationEnabled) { + return min((!isNaN(parsedValue) ? parsedValue : Infinity) * options.unitMultiplier!, limit); + } + return (!isNaN(parsedValue) ? parsedValue : options.defaultValue!) * options.unitMultiplier!; } private static isIdTagLocalAuthorized(chargingStation: ChargingStation, idTag: string): boolean {