type AuthorizeRequest,
type AuthorizeResponse,
ChargePointErrorCode,
+ ChargingStationEvents,
type ConnectorStatus,
type ConnectorStatusEnum,
ErrorType,
isNotEmptyString,
logPrefix,
logger,
+ max,
min,
} from '../../utils';
);
}
chargingStation.getConnectorStatus(connectorId)!.status = status;
+ chargingStation.emit(ChargingStationEvents.connectorStatusChanged, {
+ connectorId,
+ ...chargingStation.getConnectorStatus(connectorId),
+ });
}
public static async isIdTagAuthorized(
}
protected static getLimitFromSampledValueTemplateCustomValue(
- value: string,
- limit: number,
- options?: { limitationEnabled?: boolean; unitMultiplier?: number },
+ value: string | undefined,
+ maxLimit: number,
+ minLimit: number,
+ options?: { limitationEnabled?: boolean; fallbackValue?: number; unitMultiplier?: number },
): number {
options = {
...{
- limitationEnabled: true,
+ limitationEnabled: false,
unitMultiplier: 1,
+ fallbackValue: 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 max(
+ min((!isNaN(parsedValue) ? parsedValue : Infinity) * options.unitMultiplier!, maxLimit),
+ minLimit,
+ );
+ }
+ return (!isNaN(parsedValue) ? parsedValue : options.fallbackValue!) * options.unitMultiplier!;
}
private static isIdTagLocalAuthorized(chargingStation: ChargingStation, idTag: string): boolean {