refactor(ui): refine configuration file type and make it conditional
[e-mobility-charging-stations-simulator.git] / ui / web / src / types / ChargingStationType.ts
index 2e79fbc8b44204fe57ea395b3aa934555ae650da..8164bce83bddcc918aea9bab1beca4afee77fbdf 100644 (file)
@@ -5,6 +5,8 @@ export type ChargingStationData = {
   stationInfo: ChargingStationInfo
   connectors: ConnectorStatus[]
   evses: EvseStatus[]
+  ocppConfiguration: ChargingStationOcppConfiguration
+  supervisionUrl: string
   wsState?:
     | typeof WebSocket.CONNECTING
     | typeof WebSocket.OPEN
@@ -24,6 +26,15 @@ export enum OCPP16FirmwareStatus {
   Installed = 'Installed'
 }
 
+export interface FirmwareUpgrade {
+  versionUpgrade?: {
+    patternGroup?: number
+    step?: number
+  }
+  reset?: boolean
+  failureStatus?: FirmwareStatus
+}
+
 export const FirmwareStatus = {
   ...OCPP16FirmwareStatus
 } as const
@@ -31,33 +42,37 @@ export type FirmwareStatus = OCPP16FirmwareStatus
 
 export type ChargingStationInfo = {
   hashId: string
+  templateIndex: number
+  templateName: string
   chargingStationId?: string
-  chargePointModel: string
-  chargePointVendor: string
-  firmwareVersionPattern?: string
-  firmwareVersion?: string
-  firmwareStatus?: FirmwareStatus
-  numberOfConnectors?: number | number[]
-  baseName: string
-  templateHash?: string
   chargeBoxSerialNumber?: string
   chargePointSerialNumber?: string
   meterSerialNumber?: string
   maximumPower?: number // Always in Watt
   maximumAmperage?: number // Always in Ampere
+  firmwareStatus?: FirmwareStatus
+  templateHash?: string
   supervisionUrls?: string | string[]
   supervisionUrlOcppConfiguration?: boolean
   supervisionUrlOcppKey?: string
   supervisionUser?: string
   supervisionPassword?: string
+  autoStart?: boolean
   ocppVersion?: OCPPVersion
   ocppProtocol?: OCPPProtocol
   ocppStrictCompliance?: boolean
   ocppPersistentConfiguration?: boolean
   stationInfoPersistentConfiguration?: boolean
+  automaticTransactionGeneratorPersistentConfiguration?: boolean
   idTagsFile?: string
+  baseName: string
   nameSuffix?: string
   fixedName?: boolean
+  chargePointModel: string
+  chargePointVendor: string
+  firmwareVersionPattern?: string
+  firmwareVersion?: string
+  firmwareUpgrade?: FirmwareUpgrade
   iccid?: string
   imsi?: string
   meterType?: string
@@ -80,6 +95,7 @@ export type ChargingStationInfo = {
   outOfOrderEndMeterValues?: boolean
   meteringPerTransaction?: boolean
   transactionDataMeterValues?: boolean
+  stopTransactionsOnStopped?: boolean
   mainVoltageMeterValues?: boolean
   phaseLineToLineVoltageMeterValues?: boolean
   customValueLimitationMeterValues?: boolean
@@ -87,6 +103,21 @@ export type ChargingStationInfo = {
   messageTriggerSupport?: Record<MessageTrigger, boolean>
 }
 
+export interface ChargingStationOcppConfiguration {
+  configurationKey?: ConfigurationKey[]
+}
+
+export type ConfigurationKey = OCPPConfigurationKey & {
+  visible?: boolean
+  reboot?: boolean
+}
+
+export type OCPPConfigurationKey = {
+  key: string
+  readonly: boolean
+  value?: string
+} & JsonObject
+
 export enum OCPP16IncomingRequestCommand {
   RESET = 'Reset',
   CLEAR_CACHE = 'ClearCache',