@road-labs/ocmf 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,17 @@ export interface SignedData {
6
6
  }
7
7
  export type Header = 'OCMF';
8
8
  export declare const Header: Header;
9
+ type Iso15118UserAssignment = 'ISO15118_NONE' | 'ISO15118_PNC';
10
+ type PlmnUserAssignment = 'PLMN_NONE' | 'PLMN_RING' | 'PLMN_SMS';
11
+ type ChargingPointAssignment = 'EVSEID' | 'CBIDC';
12
+ type RfidUserAssignment = 'RFID_NONE' | 'RFID_PLAIN' | 'RFID_RELATED' | 'RFID_PSK';
13
+ type OcppUserAssignment = 'OCPP_NONE' | 'OCPP_RS' | 'OCPP_AUTH' | 'OCPP_RS_TLS' | 'OCPP_AUTH_TLS' | 'OCPP_CACHE' | 'OCPP_WHITELIST' | 'OCPP_CERTIFIED';
14
+ type IdentificationLevel = 'NONE' | 'HEARSAY' | 'TRUSTED' | 'VERIFIED' | 'CERTIFIED' | 'SECURE' | 'MISMATCH' | 'INVALID' | 'OUTDATED' | 'UNKNOWN';
15
+ type IdentificationType = 'NONE' | 'DENIED' | 'UNDEFINED' | 'ISO14443' | 'ISO15693' | 'EMAID' | 'EVCCID' | 'EVCOID' | 'ISO7812' | 'CARD_TXN_NR' | 'CENTRAL' | 'CENTRAL_1' | 'CENTRAL_2' | 'LOCAL' | 'LOCAL_1' | 'LOCAL_2' | 'PHONE_NUMBER' | 'KEY_CODE';
16
+ type MeterReadingReason = 'B' | 'C' | 'X' | 'E' | 'L' | 'R' | 'A' | 'P' | 'S' | 'T';
17
+ type MeterStatus = 'N' | 'G' | 'T' | 'D' | 'R' | 'M' | 'X' | 'I' | 'O' | 'S' | 'E' | 'F';
18
+ type UserAssignment = RfidUserAssignment | OcppUserAssignment | Iso15118UserAssignment | PlmnUserAssignment;
19
+ type UnitType = 'kWh' | 'Wh' | 'mOhm' | 'uOhm';
9
20
  export interface PayloadData {
10
21
  FV?: string;
11
22
  GI?: string;
@@ -17,9 +28,9 @@ export interface PayloadData {
17
28
  MS: string;
18
29
  MF?: string;
19
30
  IS: boolean;
20
- IL?: string;
21
- IF?: string[];
22
- IT: string;
31
+ IL?: IdentificationLevel;
32
+ IF?: UserAssignment[];
33
+ IT: IdentificationType;
23
34
  ID?: string;
24
35
  TT?: string;
25
36
  CF?: string;
@@ -27,20 +38,20 @@ export interface PayloadData {
27
38
  LN?: string;
28
39
  LI?: number;
29
40
  LR: number;
30
- LU: string;
41
+ LU: Extract<UnitType, 'mOhm' | 'uOhm'>;
31
42
  };
32
- CT?: string;
43
+ CT?: ChargingPointAssignment;
33
44
  CI?: string;
34
45
  RD: {
35
46
  TM: string;
36
- TX?: 'B' | 'C' | 'X' | 'E' | 'L' | 'R' | 'A' | 'P' | 'S' | 'T';
47
+ TX?: MeterReadingReason;
37
48
  RV: number;
38
49
  RI?: string;
39
- RU: string;
50
+ RU: UnitType;
40
51
  RT?: string;
41
52
  CL?: number;
42
53
  EF?: string;
43
- ST: string;
54
+ ST: MeterStatus;
44
55
  }[];
45
56
  }
46
57
  export interface Signature {
@@ -49,3 +60,4 @@ export interface Signature {
49
60
  SM?: 'application/x-der';
50
61
  SD: string;
51
62
  }
63
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@road-labs/ocmf",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "main": "build/cjs/index.js",
5
5
  "module": "build/es2022/index.js",
6
6
  "types": "build/types/index.d.ts",
package/src/types.ts CHANGED
@@ -9,41 +9,130 @@ export interface SignedData {
9
9
  export type Header = 'OCMF';
10
10
  export const Header: Header = 'OCMF';
11
11
 
12
+ type Iso15118UserAssignment = 'ISO15118_NONE' | 'ISO15118_PNC';
13
+ type PlmnUserAssignment = 'PLMN_NONE' | 'PLMN_RING' | 'PLMN_SMS';
14
+ type ChargingPointAssignment = 'EVSEID' | 'CBIDC';
15
+
16
+ type RfidUserAssignment =
17
+ | 'RFID_NONE'
18
+ | 'RFID_PLAIN'
19
+ | 'RFID_RELATED'
20
+ | 'RFID_PSK';
21
+
22
+ type OcppUserAssignment =
23
+ | 'OCPP_NONE'
24
+ | 'OCPP_RS'
25
+ | 'OCPP_AUTH'
26
+ | 'OCPP_RS_TLS'
27
+ | 'OCPP_AUTH_TLS'
28
+ | 'OCPP_CACHE'
29
+ | 'OCPP_WHITELIST'
30
+ | 'OCPP_CERTIFIED';
31
+
32
+ type IdentificationLevel =
33
+ | 'NONE'
34
+ | 'HEARSAY'
35
+ | 'TRUSTED'
36
+ | 'VERIFIED'
37
+ | 'CERTIFIED'
38
+ | 'SECURE'
39
+ | 'MISMATCH'
40
+ | 'INVALID'
41
+ | 'OUTDATED'
42
+ | 'UNKNOWN';
43
+
44
+ type IdentificationType =
45
+ | 'NONE'
46
+ | 'DENIED'
47
+ | 'UNDEFINED'
48
+ | 'ISO14443'
49
+ | 'ISO15693'
50
+ | 'EMAID'
51
+ | 'EVCCID'
52
+ | 'EVCOID'
53
+ | 'ISO7812'
54
+ | 'CARD_TXN_NR'
55
+ | 'CENTRAL'
56
+ | 'CENTRAL_1'
57
+ | 'CENTRAL_2'
58
+ | 'LOCAL'
59
+ | 'LOCAL_1'
60
+ | 'LOCAL_2'
61
+ | 'PHONE_NUMBER'
62
+ | 'KEY_CODE';
63
+
64
+ type MeterReadingReason =
65
+ | 'B' // Begin of transaction
66
+ | 'C' // Charging
67
+ | 'X' // Exception
68
+ | 'E' // End of transaction
69
+ | 'L' // End of transaction, terminated locally
70
+ | 'R' // End of transaction, terminated remotely
71
+ | 'A' // End of transaction, due to abort
72
+ | 'P' // End of transaction, due to power failure
73
+ | 'S' // Suspended
74
+ | 'T'; // Tariff change
75
+
76
+ type MeterStatus =
77
+ | 'N' // NOT_PRESENT
78
+ | 'G' // OK
79
+ | 'T' // TIMEOUT
80
+ | 'D' // DISCONNECTED
81
+ | 'R' // NOT_FOUND
82
+ | 'M' // MANIPULATED
83
+ | 'X' // EXCHANGED
84
+ | 'I' // INCOMPATIBLE
85
+ | 'O' // OUT_OF_RANGE
86
+ | 'S' // SUBSTITUTE
87
+ | 'E' // OTHER_ERROR
88
+ | 'F'; // READ_ERROR
89
+
90
+ // This should be more restrictive if we can find a way
91
+ type UserAssignment =
92
+ | RfidUserAssignment
93
+ | OcppUserAssignment
94
+ | Iso15118UserAssignment
95
+ | PlmnUserAssignment;
96
+
97
+ type UnitType = 'kWh' | 'Wh' | 'mOhm' | 'uOhm';
98
+
12
99
  export interface PayloadData {
13
- FV?: string;
14
- GI?: string;
15
- GS?: string;
16
- GV?: string;
17
- PG: string;
18
- MV?: string;
19
- MM?: string;
20
- MS: string;
21
- MF?: string;
22
- IS: boolean;
23
- IL?: string;
24
- IF?: string[];
25
- IT: string;
26
- ID?: string;
27
- TT?: string;
28
- CF?: string;
100
+ FV?: string; // Format Version
101
+ GI?: string; // Gateway Identification
102
+ GS?: string; // Gateway Serial
103
+ GV?: string; // Gateway Version
104
+ PG: string; // Pagination
105
+ MV?: string; // Meter Vendor
106
+ MM?: string; // Meter Model
107
+ MS: string; // Meter Serial
108
+ MF?: string; // Meter Firmware
109
+ IS: boolean; // Identification Status
110
+ IL?: IdentificationLevel; // Identification Level
111
+ IF?: UserAssignment[]; // Identification Flags
112
+ IT: IdentificationType; // Identification Type
113
+ ID?: string; // Identification Data
114
+ TT?: string; // Tariff Text
115
+ CF?: string; // Charge Controller Firmware Version
29
116
  LC?: {
30
- LN?: string;
31
- LI?: number;
32
- LR: number;
33
- LU: string;
117
+ // Loss Compensation
118
+ LN?: string; // Naming
119
+ LI?: number; // Identification
120
+ LR: number; // Cable Resistance
121
+ LU: Extract<UnitType, 'mOhm' | 'uOhm'>; // Resistance Unit
34
122
  };
35
- CT?: string;
36
- CI?: string;
123
+ CT?: ChargingPointAssignment; // Charge Point Identification Type
124
+ CI?: string; // Charge Point Identification
37
125
  RD: {
38
- TM: string;
39
- TX?: 'B' | 'C' | 'X' | 'E' | 'L' | 'R' | 'A' | 'P' | 'S' | 'T';
40
- RV: number;
41
- RI?: string;
42
- RU: string;
43
- RT?: string;
44
- CL?: number;
45
- EF?: string;
46
- ST: string;
126
+ // Readings
127
+ TM: string; // Time
128
+ TX?: MeterReadingReason; // Transaction
129
+ RV: number; // Reading Value
130
+ RI?: string; // Reading Identification
131
+ RU: UnitType; // Reading Unit
132
+ RT?: string; // Reading Current Type
133
+ CL?: number; // Cumulated Loss
134
+ EF?: string; // Error Flag
135
+ ST: MeterStatus; // Status
47
136
  }[];
48
137
  }
49
138