Add initial support for OCPP 1.6 firmware update simulation
[e-mobility-charging-stations-simulator.git] / src / charging-station / ChargingStation.ts
index 587ca02ff143d391c222b07ca11a9f81fdf7cb70..806bcd752cd50a2cfdc8408e8b9147e48fcaa81a 100644 (file)
@@ -43,6 +43,8 @@ import {
   type BootNotificationRequest,
   type CachedRequest,
   type ErrorCallback,
+  FirmwareStatus,
+  type FirmwareStatusNotificationRequest,
   type HeartbeatRequest,
   type IncomingRequest,
   IncomingRequestCommand,
@@ -54,6 +56,7 @@ import {
 import {
   type BootNotificationResponse,
   type ErrorResponse,
+  type FirmwareStatusNotificationResponse,
   type HeartbeatResponse,
   type MeterValuesResponse,
   RegistrationStatusEnumType,
@@ -1837,6 +1840,16 @@ export default class ChargingStation {
       });
       this.getConnectorStatus(connectorId).status = chargePointStatus;
     }
+    if (this.stationInfo?.firmwareStatus === FirmwareStatus.Installing) {
+      await this.ocppRequestService.requestHandler<
+        FirmwareStatusNotificationRequest,
+        FirmwareStatusNotificationResponse
+      >(this, RequestCommand.FIRMWARE_STATUS_NOTIFICATION, {
+        status: FirmwareStatus.Installed,
+      });
+      this.stationInfo.firmwareStatus = FirmwareStatus.Installed;
+      // TODO: bump firmware version
+    }
     // Start the ATG
     if (this.getAutomaticTransactionGeneratorConfigurationFromTemplate()?.enable === true) {
       this.startAutomaticTransactionGenerator();