X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcharging-station%2FChargingStationUtils.ts;h=c216ed6bec8bae64bb3f2ae84bab9db91ba16d3b;hb=65554cc3fc240ee17d57c57ec60a2a0da4d757ba;hp=964c606b0d2a51234c5cfea1af844bb7ec929bbc;hpb=9d7484a4667898757b7c23be3dec7458c337cb84;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStationUtils.ts b/src/charging-station/ChargingStationUtils.ts index 964c606b..c216ed6b 100644 --- a/src/charging-station/ChargingStationUtils.ts +++ b/src/charging-station/ChargingStationUtils.ts @@ -1,31 +1,40 @@ -import { ChargingProfile, ChargingSchedulePeriod } from '../types/ocpp/ChargingProfile'; -import { ChargingProfileKindType, RecurrencyKindType } from '../types/ocpp/1.6/ChargingProfile'; +import crypto from 'crypto'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +import moment from 'moment'; + +import BaseError from '../exception/BaseError'; +import ChargingStationInfo from '../types/ChargingStationInfo'; import ChargingStationTemplate, { AmpereUnits, CurrentType, Voltage, } from '../types/ChargingStationTemplate'; -import { MeterValueMeasurand, MeterValuePhase } from '../types/ocpp/MeterValues'; - -import BaseError from '../exception/BaseError'; -import { BootNotificationRequest } from '../types/ocpp/Requests'; -import ChargingStation from './ChargingStation'; -import { ChargingStationConfigurationUtils } from './ChargingStationConfigurationUtils'; -import ChargingStationInfo from '../types/ChargingStationInfo'; -import Configuration from '../utils/Configuration'; -import Constants from '../utils/Constants'; import { SampledValueTemplate } from '../types/MeasurandPerPhaseSampledValueTemplates'; +import { ChargingProfileKindType, RecurrencyKindType } from '../types/ocpp/1.6/ChargingProfile'; +import { ChargingProfile, ChargingSchedulePeriod } from '../types/ocpp/ChargingProfile'; import { StandardParametersKey } from '../types/ocpp/Configuration'; -import Utils from '../utils/Utils'; +import { MeterValueMeasurand, MeterValuePhase } from '../types/ocpp/MeterValues'; +import { + BootNotificationRequest, + IncomingRequestCommand, + RequestCommand, +} from '../types/ocpp/Requests'; import { WebSocketCloseEventStatusString } from '../types/WebSocket'; import { WorkerProcessType } from '../types/Worker'; -import crypto from 'crypto'; -import { fileURLToPath } from 'url'; +import Configuration from '../utils/Configuration'; +import Constants from '../utils/Constants'; import logger from '../utils/Logger'; -import moment from 'moment'; -import path from 'path'; +import Utils from '../utils/Utils'; +import ChargingStation from './ChargingStation'; +import { ChargingStationConfigurationUtils } from './ChargingStationConfigurationUtils'; export class ChargingStationUtils { + private constructor() { + // This is intentional + } + public static getChargingStationId( index: number, stationTemplate: ChargingStationTemplate @@ -157,12 +166,12 @@ export class ChargingStationUtils { public static workerPoolInUse(): boolean { return [WorkerProcessType.DYNAMIC_POOL, WorkerProcessType.STATIC_POOL].includes( - Configuration.getWorkerProcess() + Configuration.getWorker().processType ); } public static workerDynamicPoolInUse(): boolean { - return Configuration.getWorkerProcess() === WorkerProcessType.DYNAMIC_POOL; + return Configuration.getWorker().processType === WorkerProcessType.DYNAMIC_POOL; } /** @@ -525,6 +534,28 @@ export class ChargingStationUtils { ); } + public static isCommandSupported( + command: RequestCommand | IncomingRequestCommand, + stationInfo: ChargingStationInfo + ): boolean { + if ( + Object.values(IncomingRequestCommand).includes(command as IncomingRequestCommand) && + !stationInfo?.commandsSupport?.incomingCommands + ) { + return true; + } + if ( + Object.values(RequestCommand).includes(command as RequestCommand) && + !stationInfo?.commandsSupport?.outgoingCommands + ) { + return true; + } + return ( + ((stationInfo?.commandsSupport?.incomingCommands[command] as boolean) ?? false) || + ((stationInfo?.commandsSupport?.outgoingCommands[command] as boolean) ?? false) + ); + } + private static getRandomSerialNumberSuffix(params?: { randomBytesLength?: number; upperCase?: boolean;