private workerImplementation?: WorkerAbstract<ChargingStationWorkerData>
private readonly uiServer?: AbstractUIServer
private storage?: Storage
- private readonly chargingStationsByTemplate: Map<string, TemplateChargingStations>
+ private readonly templatesChargingStations: Map<string, TemplateChargingStations>
private readonly version: string = version
private initializedCounters: boolean
private started: boolean
this.started = false
this.starting = false
this.stopping = false
- this.chargingStationsByTemplate = new Map<string, TemplateChargingStations>()
+ this.templatesChargingStations = new Map<string, TemplateChargingStations>()
this.uiServer = UIServerFactory.getUIServerImplementation(
Configuration.getConfigurationSection<UIServerConfiguration>(ConfigurationSection.uiServer)
)
}
public get numberOfChargingStationTemplates (): number {
- return this.chargingStationsByTemplate.size
+ return this.templatesChargingStations.size
}
public get numberOfConfiguredChargingStations (): number {
- return [...this.chargingStationsByTemplate.values()].reduce(
+ return [...this.templatesChargingStations.values()].reduce(
(accumulator, value) => accumulator + value.configured,
0
)
public getLastIndex (templateName: string): number {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- const indexes = [...this.chargingStationsByTemplate.get(templateName)!.indexes]
+ const indexes = [...this.templatesChargingStations.get(templateName)!.indexes]
.concat(0)
.sort((a, b) => a - b)
for (let i = 0; i < indexes.length - 1; i++) {
}
private get numberOfAddedChargingStations (): number {
- return [...this.chargingStationsByTemplate.values()].reduce(
+ return [...this.templatesChargingStations.values()].reduce(
(accumulator, value) => accumulator + value.added,
0
)
}
private get numberOfStartedChargingStations (): number {
- return [...this.chargingStationsByTemplate.values()].reduce(
+ return [...this.templatesChargingStations.values()].reduce(
(accumulator, value) => accumulator + value.started,
0
)
for (const stationTemplateUrl of Configuration.getStationTemplateUrls()!) {
try {
const nbStations =
- this.chargingStationsByTemplate.get(parse(stationTemplateUrl.file).name)
- ?.configured ?? stationTemplateUrl.numberOfStations
+ this.templatesChargingStations.get(parse(stationTemplateUrl.file).name)?.configured ??
+ stationTemplateUrl.numberOfStations
for (let index = 1; index <= nbStations; index++) {
await this.addChargingStation(index, stationTemplateUrl.file)
}
private readonly workerEventDeleted = (data: ChargingStationData): void => {
this.uiServer?.chargingStations.delete(data.stationInfo.hashId)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- --this.chargingStationsByTemplate.get(data.stationInfo.templateName)!.added
- this.chargingStationsByTemplate
- .get(data.stationInfo.templateName)
- ?.indexes.delete(data.stationInfo.templateIndex)
+ const templateChargingStations = this.templatesChargingStations.get(
+ data.stationInfo.templateName
+ )!
+ --templateChargingStations.added
+ templateChargingStations.indexes.delete(data.stationInfo.templateIndex)
logger.info(
`${this.logPrefix()} ${moduleName}.workerEventDeleted: Charging station ${
data.stationInfo.chargingStationId
private readonly workerEventStarted = (data: ChargingStationData): void => {
this.uiServer?.chargingStations.set(data.stationInfo.hashId, data)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- ++this.chargingStationsByTemplate.get(data.stationInfo.templateName)!.started
+ ++this.templatesChargingStations.get(data.stationInfo.templateName)!.started
logger.info(
`${this.logPrefix()} ${moduleName}.workerEventStarted: Charging station ${
data.stationInfo.chargingStationId
private readonly workerEventStopped = (data: ChargingStationData): void => {
this.uiServer?.chargingStations.set(data.stationInfo.hashId, data)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- --this.chargingStationsByTemplate.get(data.stationInfo.templateName)!.started
+ --this.templatesChargingStations.get(data.stationInfo.templateName)!.started
logger.info(
`${this.logPrefix()} ${moduleName}.workerEventStopped: Charging station ${
data.stationInfo.chargingStationId
if (isNotEmptyArray(stationTemplateUrls)) {
for (const stationTemplateUrl of stationTemplateUrls) {
const templateName = parse(stationTemplateUrl.file).name
- this.chargingStationsByTemplate.set(templateName, {
+ this.templatesChargingStations.set(templateName, {
configured: stationTemplateUrl.numberOfStations,
added: 0,
started: 0,
})
this.uiServer?.chargingStationTemplates.add(templateName)
}
- if (this.chargingStationsByTemplate.size !== stationTemplateUrls.length) {
+ if (this.templatesChargingStations.size !== stationTemplateUrls.length) {
console.error(
chalk.red(
"'stationTemplateUrls' contains duplicate entries, please check your configuration"
),
options
})
- const templateName = parse(stationTemplateFile).name
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- ++this.chargingStationsByTemplate.get(templateName)!.added
- this.chargingStationsByTemplate.get(templateName)?.indexes.add(index)
+ const templateChargingStations = this.templatesChargingStations.get(
+ parse(stationTemplateFile).name
+ )!
+ ++templateChargingStations.added
+ templateChargingStations.indexes.add(index)
}
private gracefulShutdown (): void {
return Constants.DEFAULT_HEARTBEAT_INTERVAL
}
+ public setSupervisionUrls (urls: string | string[], saveStationInfo = true): void {
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ this.stationInfo!.supervisionUrls = urls
+ if (saveStationInfo) {
+ this.saveStationInfo()
+ }
+ this.configuredSupervisionUrl = this.getConfiguredSupervisionUrl()
+ }
+
public setSupervisionUrl (url: string): void {
if (
this.stationInfo?.supervisionUrlOcppConfiguration === true &&
) {
setConfigurationKeyValue(this, this.stationInfo.supervisionUrlOcppKey, url)
} else {
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- this.stationInfo!.supervisionUrls = url
- this.saveStationInfo()
- this.configuredSupervisionUrl = this.getConfiguredSupervisionUrl()
+ this.setSupervisionUrls(url)
}
}
stationInfoFromFile.templateHash === stationInfoFromTemplate.templateHash
) {
return setChargingStationOptions(
+ this,
{ ...Constants.DEFAULT_STATION_INFO, ...stationInfoFromFile },
options
)
stationInfoFromTemplate
)
return setChargingStationOptions(
+ this,
{ ...Constants.DEFAULT_STATION_INFO, ...stationInfoFromTemplate },
options
)