Introduce JSON type and use it for OCPP and internal message structure
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / 1.6 / MeterValues.ts
index 47163ffc1d784208541b7885bdceda9818f8fd90..97a7d24c9fd3396a1d7d364fec63c77fa6a347c1 100644 (file)
@@ -1,3 +1,6 @@
+import { EmptyObject } from '../../EmptyObject';
+import { JsonType } from '../../JsonType';
+
 export enum MeterValueUnit {
   WATT_HOUR = 'Wh',
   KILO_WATT_HOUR = 'kWh',
@@ -28,7 +31,7 @@ export enum MeterValueContext {
   TRIGGER = 'Trigger'
 }
 
-export enum MeterValueMeasurand {
+export enum OCPP16MeterValueMeasurand {
   CURRENT_EXPORT = 'Current.Export',
   CURRENT_IMPORT = 'Current.Import',
   CURRENT_OFFERED = 'Current.Offered',
@@ -61,7 +64,7 @@ export enum MeterValueLocation {
   OUTLET = 'Outlet'
 }
 
-export enum MeterValuePhase {
+export enum OCPP16MeterValuePhase {
   L1 = 'L1',
   L2 = 'L2',
   L3 = 'L3',
@@ -79,27 +82,26 @@ export enum MeterValueFormat {
   SIGNED_DATA = 'SignedData',
 }
 
-export interface SampledValue {
+export interface OCPP16SampledValue extends JsonType {
   value?: string;
   unit?: MeterValueUnit;
   context?: MeterValueContext;
-  measurand?: MeterValueMeasurand;
-  phase?: MeterValuePhase;
+  measurand?: OCPP16MeterValueMeasurand;
+  phase?: OCPP16MeterValuePhase;
   location?: MeterValueLocation;
   format?: MeterValueFormat;
 }
 
-export interface MeterValue {
+export interface OCPP16MeterValue extends JsonType {
   timestamp: string;
-  sampledValue: SampledValue[];
+  sampledValue: OCPP16SampledValue[];
 }
 
-export interface MeterValuesRequest {
+export interface MeterValuesRequest extends JsonType {
   connectorId: number;
   transactionId?: number;
-  meterValue: MeterValue | MeterValue[];
+  meterValue: OCPP16MeterValue[];
 }
 
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface MeterValuesResponse {}
+export type MeterValuesResponse = EmptyObject;