Skip to content

Commit 776f5c0

Browse files
klemmpnxPietfried
andauthored
EV 355: part II: update schemas and enforce required property (#272)
* update schemas from csv Signed-off-by: Fabian Klemm <fabian.klemm@pionix.de> * add websocketpongTimeout schema Signed-off-by: Fabian Klemm <fabian.klemm@pionix.de> * update ctrl component variables; correct templates Signed-off-by: Fabian Klemm <fabian.klemm@pionix.de> * introduce RequiredComponentVariable; adjust code generation Signed-off-by: Fabian Klemm <fabian.klemm@pionix.de> * fix treatment of required component variables (AuthCacheLifeTime; get_latest_meter_value_filtered signature) Signed-off-by: Fabian Klemm <fabian.klemm@pionix.de> * remove shell=True Signed-off-by: Fabian Klemm <fabian.klemm@pionix.de> * Apply suggestions from code review Co-authored-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> Signed-off-by: Fabian Klemm <fabian.klemm@pionix.de> --------- Signed-off-by: Fabian Klemm <fabian.klemm@pionix.de> Co-authored-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com>
1 parent 6aa9c90 commit 776f5c0

21 files changed

+226
-181
lines changed

config/v201/component_schemas/standardized/AlignedDataCtrlr.json

+2
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"AlignedDataMeasurands": {
5656
"variable_name": "Measurands",
5757
"characteristics": {
58+
"valuesList": "Current.Export,Current.Import,Current.Offered,Energy.Active.Export.Register,Energy.Active.Import.Register,Energy.Reactive.Export.Register,Energy.Reactive.Import.Register,Energy.Active.Export.Interval,Energy.Active.Import.Interval,Energy.Reactive.Export.Interval,Energy.Reactive.Import.Interval,Frequency,Power.Active.Export,Power.Active.Import,Power.Factor,Power.Offered,Power.Reactive.Export,Power.Reactive.Import,Voltage",
5859
"supportsMonitoring": true,
5960
"dataType": "MemberList"
6061
},
@@ -119,6 +120,7 @@
119120
"AlignedDataTxEndedMeasurands": {
120121
"variable_name": "TxEndedMeasurands",
121122
"characteristics": {
123+
"valuesList": "Current.Export,Current.Import,Current.Offered,Energy.Active.Export.Register,Energy.Active.Import.Register,Energy.Reactive.Export.Register,Energy.Reactive.Import.Register,Energy.Active.Export.Interval,Energy.Active.Import.Interval,Energy.Reactive.Export.Interval,Energy.Reactive.Import.Interval,Frequency,Power.Active.Export,Power.Active.Import,Power.Factor,Power.Offered,Power.Reactive.Export,Power.Reactive.Import,Voltage",
122124
"supportsMonitoring": true,
123125
"dataType": "MemberList"
124126
},

config/v201/component_schemas/standardized/AuthCacheCtrlr.json

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"AuthCachePolicy": {
5555
"variable_name": "Policy",
5656
"characteristics": {
57+
"valuesList": "LRU,LFU,FIFO,CUSTOM",
5758
"supportsMonitoring": true,
5859
"dataType": "OptionList"
5960
},

config/v201/component_schemas/standardized/ClockCtrlr.json

+2
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"NtpSource": {
6767
"variable_name": "NtpSource",
6868
"characteristics": {
69+
"valuesList": "DHCP,manual",
6970
"supportsMonitoring": true,
7071
"dataType": "OptionList"
7172
},
@@ -127,6 +128,7 @@
127128
"TimeSource": {
128129
"variable_name": "TimeSource",
129130
"characteristics": {
131+
"valuesList": "Heartbeat,NTP,GPS,RealTimeClock,MobileNetwork,RadioTimeTransmitter",
130132
"supportsMonitoring": true,
131133
"dataType": "SequenceList"
132134
},

config/v201/component_schemas/standardized/DisplayMessageCtrlr.json

+2
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"DisplayMessageSupportedFormats": {
6767
"variable_name": "SupportedFormats",
6868
"characteristics": {
69+
"valuesList": "ASCII,HTML,URI,UTF8",
6970
"supportsMonitoring": true,
7071
"dataType": "MemberList"
7172
},
@@ -81,6 +82,7 @@
8182
"DisplayMessageSupportedPriorities": {
8283
"variable_name": "SupportedPriorities",
8384
"characteristics": {
85+
"valuesList": "AlwaysFront,InFront,NormalCycle",
8486
"supportsMonitoring": true,
8587
"dataType": "MemberList"
8688
},

config/v201/component_schemas/standardized/ISO15118Ctrlr.json

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
"RequestedEnergyTransferMode": {
8181
"variable_name": "RequestedEnergyTransferMode",
8282
"characteristics": {
83+
"valuesList": "DC,AC_single_phase,AC_two_phase,AC_three_phase",
8384
"supportsMonitoring": true,
8485
"dataType": "OptionList"
8586
},

config/v201/component_schemas/standardized/InternalCtrlr.json

+25-5
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@
197197
"SupportedCiphers12": {
198198
"variable_name": "SupportedCiphers12",
199199
"characteristics": {
200+
"valuesList": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384",
200201
"supportsMonitoring": true,
201202
"dataType": "MemberList"
202203
},
@@ -213,6 +214,7 @@
213214
"SupportedCiphers13": {
214215
"variable_name": "SupportedCiphers13",
215216
"characteristics": {
217+
"valuesList": "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256",
216218
"supportsMonitoring": true,
217219
"dataType": "MemberList"
218220
},
@@ -259,6 +261,7 @@
259261
"LogMessagesFormat": {
260262
"variable_name": "LogMessagesFormat",
261263
"characteristics": {
264+
"valuesList": "log,html,console,console_detailed",
262265
"supportsMonitoring": true,
263266
"dataType": "MemberList"
264267
},
@@ -275,6 +278,7 @@
275278
"SupportedChargingProfilePurposeTypes": {
276279
"variable_name": "SupportedChargingProfilePurposeTypes",
277280
"characteristics": {
281+
"valuesList": "ChargePointMaxProfile,TxDefaultProfile,TxProfile",
278282
"supportsMonitoring": true,
279283
"dataType": "MemberList"
280284
},
@@ -370,10 +374,25 @@
370374
"default": "hello there",
371375
"type": "string"
372376
},
377+
"WebsocketPongTimeout": {
378+
"variable_name": "WebsocketPongTimeout",
379+
"characteristics": {
380+
"supportsMonitoring": true,
381+
"dataType": "integer"
382+
},
383+
"attributes": [
384+
{
385+
"type": "Actual",
386+
"mutability": "ReadOnly"
387+
}
388+
],
389+
"default": "5",
390+
"type": "integer"
391+
},
373392
"MaxCustomerInformationDataLength": {
374393
"variable_name": "MaxCustomerInformationDataLength",
375394
"characteristics": {
376-
"minLimit": 0,
395+
"minLimit": 512,
377396
"supportsMonitoring": true,
378397
"dataType": "integer"
379398
},
@@ -389,7 +408,6 @@
389408
"type": "integer"
390409
},
391410
"V2GCertificateExpireCheckInitialDelaySeconds": {
392-
"description": "Seconds to wait after boot notification to first check the V2G leaf certificate for expiration and potential renewal",
393411
"variable_name": "V2GCertificateExpireCheckInitialDelaySeconds",
394412
"characteristics": {
395413
"supportsMonitoring": true,
@@ -401,11 +419,11 @@
401419
"mutability": "ReadOnly"
402420
}
403421
],
422+
"description": "Seconds to wait after boot notification to first check the V2G leaf certificate for expiration and potential renewal",
404423
"default": "60",
405424
"type": "integer"
406425
},
407426
"V2GCertificateExpireCheckIntervalSeconds": {
408-
"description": "Seconds between two checks for V2G leaf certificate expiration and potential renewal",
409427
"variable_name": "V2GCertificateExpireCheckIntervalSeconds",
410428
"characteristics": {
411429
"supportsMonitoring": true,
@@ -417,11 +435,11 @@
417435
"mutability": "ReadOnly"
418436
}
419437
],
438+
"description": "Seconds between two checks for V2G leaf certificate expiration and potential renewal",
420439
"default": "43200",
421440
"type": "integer"
422441
},
423442
"ClientCertificateExpireCheckInitialDelaySeconds": {
424-
"description": "Seconds to wait after boot notification to first check the client certificate for expiration and potential renewal",
425443
"variable_name": "ClientCertificateExpireCheckInitialDelaySeconds",
426444
"characteristics": {
427445
"supportsMonitoring": true,
@@ -433,11 +451,11 @@
433451
"mutability": "ReadOnly"
434452
}
435453
],
454+
"description": "Seconds to wait after boot notification to first check the client certificate for expiration and potential renewal",
436455
"default": "60",
437456
"type": "integer"
438457
},
439458
"ClientCertificateExpireCheckIntervalSeconds": {
440-
"description": "Seconds between two checks for client certificate expiration and potential renewal",
441459
"variable_name": "ClientCertificateExpireCheckIntervalSeconds",
442460
"characteristics": {
443461
"supportsMonitoring": true,
@@ -449,6 +467,7 @@
449467
"mutability": "ReadOnly"
450468
}
451469
],
470+
"description": "Seconds between two checks for client certificate expiration and potential renewal",
452471
"default": "43200",
453472
"type": "integer"
454473
}
@@ -459,6 +478,7 @@
459478
"ChargePointModel",
460479
"ChargePointVendor",
461480
"FirmwareVersion",
481+
"LogMessagesFormat",
462482
"NetworkConnectionProfiles",
463483
"NumberOfConnectors",
464484
"SupportedCiphers12",

config/v201/component_schemas/standardized/MonitoringCtrlr.json

+2
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
"MonitoringBase": {
117117
"variable_name": "MonitoringBase",
118118
"characteristics": {
119+
"valuesList": "All,FactoryDefault,HardwiredOnly",
119120
"supportsMonitoring": true,
120121
"dataType": "OptionList"
121122
},
@@ -146,6 +147,7 @@
146147
"ActiveMonitoringBase": {
147148
"variable_name": "ActiveMonitoringBase",
148149
"characteristics": {
150+
"valuesList": "All,FactoryDefault,HardwiredOnly",
149151
"supportsMonitoring": true,
150152
"dataType": "OptionList"
151153
},

config/v201/component_schemas/standardized/OCPPCommCtrlr.json

+3
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"FileTransferProtocols": {
3838
"variable_name": "FileTransferProtocols",
3939
"characteristics": {
40+
"valuesList": "FTP,FTPS,HTTP,HTTPS,SFTP",
4041
"supportsMonitoring": true,
4142
"dataType": "MemberList"
4243
},
@@ -121,6 +122,7 @@
121122
"NetworkConfigurationPriority": {
122123
"variable_name": "NetworkConfigurationPriority",
123124
"characteristics": {
125+
"valuesList": "1,2",
124126
"supportsMonitoring": true,
125127
"dataType": "string"
126128
},
@@ -170,6 +172,7 @@
170172
"PublicKeyWithSignedMeterValue": {
171173
"variable_name": "PublicKeyWithSignedMeterValue",
172174
"characteristics": {
175+
"valuesList": "Never,OncePerTransaction,EveryMeterValue",
173176
"supportsMonitoring": true,
174177
"dataType": "OptionList"
175178
},

config/v201/component_schemas/standardized/SampledDataCtrlr.json

+3
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"SampledDataTxEndedMeasurands": {
7272
"variable_name": "TxEndedMeasurands",
7373
"characteristics": {
74+
"valuesList": "Current.Export,Current.Import,Current.Offered,Energy.Active.Export.Register,Energy.Active.Import.Register,Energy.Reactive.Export.Register,Energy.Reactive.Import.Register,Energy.Active.Export.Interval,Energy.Active.Import.Interval,Energy.Reactive.Export.Interval,Energy.Reactive.Import.Interval,Frequency,Power.Active.Export,Power.Active.Import,Power.Factor,Power.Offered,Power.Reactive.Export,Power.Reactive.Import,Voltage",
7475
"supportsMonitoring": true,
7576
"dataType": "MemberList"
7677
},
@@ -87,6 +88,7 @@
8788
"SampledDataTxStartedMeasurands": {
8889
"variable_name": "TxStartedMeasurands",
8990
"characteristics": {
91+
"valuesList": "Current.Export,Current.Import,Current.Offered,Energy.Active.Export.Register,Energy.Active.Import.Register,Energy.Reactive.Export.Register,Energy.Reactive.Import.Register,Energy.Active.Export.Interval,Energy.Active.Import.Interval,Energy.Reactive.Export.Interval,Energy.Reactive.Import.Interval,Frequency,Power.Active.Export,Power.Active.Import,Power.Factor,Power.Offered,Power.Reactive.Export,Power.Reactive.Import,Voltage",
9092
"supportsMonitoring": true,
9193
"dataType": "MemberList"
9294
},
@@ -120,6 +122,7 @@
120122
"SampledDataTxUpdatedMeasurands": {
121123
"variable_name": "TxUpdatedMeasurands",
122124
"characteristics": {
125+
"valuesList": "Current.Export,Current.Import,Current.Offered,Energy.Active.Export.Register,Energy.Active.Import.Register,Energy.Reactive.Export.Register,Energy.Reactive.Import.Register,Energy.Active.Export.Interval,Energy.Active.Import.Interval,Energy.Reactive.Export.Interval,Energy.Reactive.Import.Interval,Frequency,Power.Active.Export,Power.Active.Import,Power.Factor,Power.Offered,Power.Reactive.Export,Power.Reactive.Import,Voltage",
123126
"supportsMonitoring": true,
124127
"dataType": "MemberList"
125128
},

config/v201/component_schemas/standardized/SecurityCtrlr.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@
174174
"required": [
175175
"CertificateEntries",
176176
"OrganizationName",
177-
"SecurityProfile",
178-
"Identity"
177+
"SecurityCtrlrIdentity",
178+
"SecurityProfile"
179179
]
180180
}

config/v201/component_schemas/standardized/SmartChargingCtrlr.json

+1
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@
159159
"ChargingScheduleChargingRateUnit": {
160160
"variable_name": "RateUnit",
161161
"characteristics": {
162+
"valuesList": "A,W",
162163
"supportsMonitoring": true,
163164
"dataType": "MemberList"
164165
},

config/v201/component_schemas/standardized/TxCtrlr.json

+2
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
"TxStartPoint": {
118118
"variable_name": "TxStartPoint",
119119
"characteristics": {
120+
"valuesList": "ParkingBayOccupancy,EVConnected,Authorized,PowerPathClosed,EnergyTransfer,DataSigned",
120121
"supportsMonitoring": true,
121122
"dataType": "MemberList"
122123
},
@@ -133,6 +134,7 @@
133134
"TxStopPoint": {
134135
"variable_name": "TxStopPoint",
135136
"characteristics": {
137+
"valuesList": "ParkingBayOccupancy,EVConnected,Authorized,PowerPathClosed,EnergyTransfer,DataSigned",
136138
"supportsMonitoring": true,
137139
"dataType": "MemberList"
138140
},

include/ocpp/v201/charge_point.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ class ChargePoint : ocpp::ChargingStationBase {
266266
void handle_variable_changed(const SetVariableData& set_variable_data);
267267
bool validate_set_variable(const SetVariableData& set_variable_data);
268268
MeterValue get_latest_meter_value_filtered(const MeterValue& meter_value, ReadingContextEnum context,
269-
const ComponentVariable& component_variable);
269+
const RequiredComponentVariable& component_variable);
270270

271271
/// \brief Changes all unoccupied connectors to unavailable. If a transaction is running schedule an availabilty
272272
/// change

0 commit comments

Comments
 (0)