repositories
/
e-mobility-charging-stations-simulator.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: properly handle template relative file path within a directory
[e-mobility-charging-stations-simulator.git]
/
src
/
charging-station
/
ChargingStation.ts
diff --git
a/src/charging-station/ChargingStation.ts
b/src/charging-station/ChargingStation.ts
index b6e381e1e400f96796bf53068871a69a46349304..82fba5adad98c6629a6579b8e7c8516df38bb7bb 100644
(file)
--- a/
src/charging-station/ChargingStation.ts
+++ b/
src/charging-station/ChargingStation.ts
@@
-8,7
+8,7
@@
import { URL } from 'node:url'
import { parentPort } from 'node:worker_threads'
import { millisecondsToSeconds, secondsToMilliseconds } from 'date-fns'
import { parentPort } from 'node:worker_threads'
import { millisecondsToSeconds, secondsToMilliseconds } from 'date-fns'
-import
merge from 'just-merge
'
+import
{ mergeDeepRight } from 'rambda
'
import { type RawData, WebSocket } from 'ws'
import { AutomaticTransactionGenerator } from './AutomaticTransactionGenerator.js'
import { type RawData, WebSocket } from 'ws'
import { AutomaticTransactionGenerator } from './AutomaticTransactionGenerator.js'
@@
-88,7
+88,6
@@
import {
FirmwareStatus,
type FirmwareStatusNotificationRequest,
type FirmwareStatusNotificationResponse,
FirmwareStatus,
type FirmwareStatusNotificationRequest,
type FirmwareStatusNotificationResponse,
- type FirmwareUpgrade,
type HeartbeatRequest,
type HeartbeatResponse,
type IncomingRequest,
type HeartbeatRequest,
type HeartbeatResponse,
type IncomingRequest,
@@
-544,8
+543,8
@@
export class ChargingStation extends EventEmitter {
} else {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
this.stationInfo!.supervisionUrls = url
} else {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
this.stationInfo!.supervisionUrls = url
- this.saveStationInfo()
this.configuredSupervisionUrl = this.getConfiguredSupervisionUrl()
this.configuredSupervisionUrl = this.getConfiguredSupervisionUrl()
+ this.saveStationInfo()
}
}
}
}
@@
-1163,6
+1162,7
@@
export class ChargingStation extends EventEmitter {
}
const stationInfo = stationTemplateToStationInfo(stationTemplate)
stationInfo.hashId = getHashId(this.index, stationTemplate)
}
const stationInfo = stationTemplateToStationInfo(stationTemplate)
stationInfo.hashId = getHashId(this.index, stationTemplate)
+ stationInfo.templateIndex = this.index
stationInfo.templateName = parse(this.templateFile).name
stationInfo.chargingStationId = getChargingStationId(this.index, stationTemplate)
createSerialNumber(stationTemplate, stationInfo)
stationInfo.templateName = parse(this.templateFile).name
stationInfo.chargingStationId = getChargingStationId(this.index, stationTemplate)
createSerialNumber(stationTemplate, stationInfo)
@@
-1192,7
+1192,7
@@
export class ChargingStation extends EventEmitter {
} does not match firmware version pattern '${stationInfo.firmwareVersionPattern}'`
)
}
} does not match firmware version pattern '${stationInfo.firmwareVersionPattern}'`
)
}
- stationInfo.firmwareUpgrade = merge
<FirmwareUpgrade>
(
+ stationInfo.firmwareUpgrade = merge
DeepRight
(
{
versionUpgrade: {
step: 1
{
versionUpgrade: {
step: 1
@@
-1216,6
+1216,11
@@
export class ChargingStation extends EventEmitter {
stationInfo = this.getConfigurationFromFile()?.stationInfo
if (stationInfo != null) {
delete stationInfo.infoHash
stationInfo = this.getConfigurationFromFile()?.stationInfo
if (stationInfo != null) {
delete stationInfo.infoHash
+ delete (stationInfo as ChargingStationTemplate).numberOfConnectors
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+ if (stationInfo.templateIndex == null) {
+ stationInfo.templateIndex = this.index
+ }
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (stationInfo.templateName == null) {
stationInfo.templateName = parse(this.templateFile).name
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (stationInfo.templateName == null) {
stationInfo.templateName = parse(this.templateFile).name
@@
-1717,7
+1722,7
@@
export class ChargingStation extends EventEmitter {
} else {
delete configurationData.configurationKey
}
} else {
delete configurationData.configurationKey
}
- configurationData = merge
<ChargingStationConfiguration>
(
+ configurationData = merge
DeepRight
(
configurationData,
buildChargingStationAutomaticTransactionGeneratorConfiguration(this)
)
configurationData,
buildChargingStationAutomaticTransactionGeneratorConfiguration(this)
)
@@
-1819,6
+1824,7
@@
export class ChargingStation extends EventEmitter {
private async onOpen (): Promise<void> {
if (this.isWebSocketConnectionOpened()) {
private async onOpen (): Promise<void> {
if (this.isWebSocketConnectionOpened()) {
+ this.emit(ChargingStationEvents.updated)
logger.info(
`${this.logPrefix()} Connection to OCPP server through ${this.wsConnectionUrl.href} succeeded`
)
logger.info(
`${this.logPrefix()} Connection to OCPP server through ${this.wsConnectionUrl.href} succeeded`
)
@@
-1881,6
+1887,7
@@
export class ChargingStation extends EventEmitter {
private onClose (code: WebSocketCloseEventStatusCode, reason: Buffer): void {
this.emit(ChargingStationEvents.disconnected)
private onClose (code: WebSocketCloseEventStatusCode, reason: Buffer): void {
this.emit(ChargingStationEvents.disconnected)
+ this.emit(ChargingStationEvents.updated)
switch (code) {
// Normal close
case WebSocketCloseEventStatusCode.CLOSE_NORMAL:
switch (code) {
// Normal close
case WebSocketCloseEventStatusCode.CLOSE_NORMAL:
@@
-1900,12
+1907,13
@@
export class ChargingStation extends EventEmitter {
)}' and reason '${reason.toString()}'`
)
this.started &&
)}' and reason '${reason.toString()}'`
)
this.started &&
- this.reconnect().catch(error =>
- logger.error(`${this.logPrefix()} Error while reconnecting:`, error)
- )
+ this.reconnect()
+ .then(() => {
+ this.emit(ChargingStationEvents.updated)
+ })
+ .catch(error => logger.error(`${this.logPrefix()} Error while reconnecting:`, error))
break
}
break
}
- this.emit(ChargingStationEvents.updated)
}
private getCachedRequest (
}
private getCachedRequest (