X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcharging-station%2Focpp%2FOCPPServiceUtils.ts;h=d9d712981c816790cb4e2b6f1c09fa6cd10e7dac;hb=ee7c1da0e12c70134f31537a1c1e7040d309af5a;hp=3a1423c4679ce0561b46df3f30d58dc5da0f7189;hpb=77684af8bb6c39f9c1e2eb8e0f9ac8c0f1dd7855;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/OCPPServiceUtils.ts b/src/charging-station/ocpp/OCPPServiceUtils.ts index 3a1423c4..d9d71298 100644 --- a/src/charging-station/ocpp/OCPPServiceUtils.ts +++ b/src/charging-station/ocpp/OCPPServiceUtils.ts @@ -41,6 +41,7 @@ import { isNotEmptyString, logPrefix, logger, + max, min, } from '../../utils'; @@ -417,24 +418,27 @@ export class OCPPServiceUtils { } protected static getLimitFromSampledValueTemplateCustomValue( - value: string, - limit: number, - options?: { limitationEnabled?: boolean; unitMultiplier?: number; defaultValue?: number }, + value: string | undefined, + maxLimit: number, + minLimit: number, + options?: { limitationEnabled?: boolean; fallbackValue?: number; unitMultiplier?: number }, ): number { options = { ...{ - limitationEnabled: true, + limitationEnabled: false, unitMultiplier: 1, - defaultValue: 0, + fallbackValue: 0, }, ...options, }; - const parsedValue = parseInt(value); + const parsedValue = parseInt(value ?? ''); if (options?.limitationEnabled) { - const numberValue = !isNaN(parsedValue) ? parsedValue : Infinity; - return min(numberValue * options.unitMultiplier!, limit); + return max( + min((!isNaN(parsedValue) ? parsedValue : Infinity) * options.unitMultiplier!, maxLimit), + minLimit, + ); } - return (!isNaN(parsedValue) ? parsedValue : options.defaultValue!) * options.unitMultiplier!; + return (!isNaN(parsedValue) ? parsedValue : options.fallbackValue!) * options.unitMultiplier!; } private static isIdTagLocalAuthorized(chargingStation: ChargingStation, idTag: string): boolean {