diff --git a/examples/mksomersaultmodifiedpdx.py b/examples/mksomersaultmodifiedpdx.py
index 91b4c4b1..704c2489 100755
--- a/examples/mksomersaultmodifiedpdx.py
+++ b/examples/mksomersaultmodifiedpdx.py
@@ -101,6 +101,7 @@ def find_named_object(item_list: List[T], name: str) -> T:
# add a new "flic-flac" service
flic_flac_request = Request(
odx_id=OdxLinkId("somersault.RQ.flic_flac", doc_frags),
+ oid=None,
short_name="RQ_flic_flac",
long_name=None,
description=None,
@@ -108,6 +109,7 @@ def find_named_object(item_list: List[T], name: str) -> T:
sdgs=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -125,6 +127,7 @@ def find_named_object(item_list: List[T], name: str) -> T:
flic_flac_positive_response = Response(
odx_id=OdxLinkId("somersault.PR.flic_flac", doc_frags),
+ oid=None,
short_name="PR_flic_flac",
long_name=None,
description=None,
@@ -133,6 +136,7 @@ def find_named_object(item_list: List[T], name: str) -> T:
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -144,6 +148,7 @@ def find_named_object(item_list: List[T], name: str) -> T:
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="can_do_backward_flips",
long_name=None,
semantic=None,
@@ -162,6 +167,7 @@ def find_named_object(item_list: List[T], name: str) -> T:
flic_flac_service = DiagService(
odx_id=OdxLinkId("somersault.service.flic_flac", doc_frags),
+ oid=None,
short_name="flic_flac",
long_name=None,
description=None,
diff --git a/examples/somersaultecu.py b/examples/somersaultecu.py
index bff9f906..7bca9cb4 100755
--- a/examples/somersaultecu.py
+++ b/examples/somersaultecu.py
@@ -105,6 +105,7 @@ class SomersaultSID(IntEnum):
"doggy":
TeamMember(
odx_id=OdxLinkId("TM.Doggy", doc_frags),
+ oid=None,
short_name="Doggy",
long_name="Doggy the dog",
description=Description.from_string("
Dog is man's best friend
"),
@@ -120,6 +121,7 @@ class SomersaultSID(IntEnum):
"horsey":
TeamMember(
odx_id=OdxLinkId("TM.Horsey", doc_frags),
+ oid=None,
short_name="Horsey",
long_name="Horsey the horse",
description=Description.from_string("Trustworthy worker
"),
@@ -135,6 +137,7 @@ class SomersaultSID(IntEnum):
"slothy":
TeamMember(
odx_id=OdxLinkId("TM.Slothy", doc_frags),
+ oid=None,
short_name="Slothy",
long_name=None,
description=None,
@@ -153,6 +156,7 @@ class SomersaultSID(IntEnum):
"suncus":
CompanyData(
odx_id=OdxLinkId("CD.Suncus", doc_frags),
+ oid=None,
short_name="Suncus",
long_name="Circus of the sun",
description=Description.from_string("Prestigious group of performers
"),
@@ -184,6 +188,7 @@ class SomersaultSID(IntEnum):
"acme":
CompanyData(
odx_id=OdxLinkId("CD.ACME", doc_frags),
+ oid=None,
short_name="ACME_Corporation",
long_name=None,
description=None,
@@ -250,6 +255,7 @@ class SomersaultSID(IntEnum):
"flip":
FunctionalClass(
odx_id=OdxLinkId("somersault.FNC.flip", doc_frags),
+ oid=None,
short_name="flip",
long_name="Flip",
description=None,
@@ -257,6 +263,7 @@ class SomersaultSID(IntEnum):
"session":
FunctionalClass(
odx_id=OdxLinkId("somersault.FNC.session", doc_frags),
+ oid=None,
short_name="session",
long_name="Session",
description=None,
@@ -268,6 +275,7 @@ class SomersaultSID(IntEnum):
"attentive_admirer":
AdditionalAudience(
odx_id=OdxLinkId("somersault.AA.attentive_admirer", doc_frags),
+ oid=None,
short_name="attentive_admirer",
long_name="Attentive Admirer",
description=None,
@@ -275,6 +283,7 @@ class SomersaultSID(IntEnum):
"anyone":
AdditionalAudience(
odx_id=OdxLinkId("somersault.AA.anyone", doc_frags),
+ oid=None,
short_name="anyone",
long_name="Anyone",
description=None,
@@ -325,6 +334,7 @@ class SomersaultSID(IntEnum):
"time":
PhysicalDimension(
odx_id=OdxLinkId("somersault.PD.time", doc_frags),
+ oid=None,
short_name="time",
long_name="Time",
time_exp=1,
@@ -334,12 +344,12 @@ class SomersaultSID(IntEnum):
temperature_exp=0,
molar_amount_exp=0,
luminous_intensity_exp=0,
- oid=None,
description=None,
),
"temperature":
PhysicalDimension(
odx_id=OdxLinkId("somersault.PD.temperature", doc_frags),
+ oid=None,
short_name="temperature",
long_name="Temperature",
time_exp=0,
@@ -349,7 +359,6 @@ class SomersaultSID(IntEnum):
temperature_exp=1,
molar_amount_exp=0,
luminous_intensity_exp=0,
- oid=None,
description=None,
)
}
@@ -471,6 +480,7 @@ class SomersaultSID(IntEnum):
"num_flips":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.num_flips", doc_frags),
+ oid=None,
short_name="num_flips",
long_name=None,
description=None,
@@ -486,6 +496,7 @@ class SomersaultSID(IntEnum):
"soberness_check":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.soberness_check", doc_frags),
+ oid=None,
short_name="soberness_check",
long_name=None,
description=None,
@@ -501,6 +512,7 @@ class SomersaultSID(IntEnum):
"dizzyness_level":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.dizzyness_level", doc_frags),
+ oid=None,
short_name="dizzyness_level",
long_name=None,
description=None,
@@ -516,6 +528,7 @@ class SomersaultSID(IntEnum):
"happiness_level":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.happiness_level", doc_frags),
+ oid=None,
short_name="happiness_level",
long_name=None,
description=None,
@@ -531,6 +544,7 @@ class SomersaultSID(IntEnum):
"duration":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.duration", doc_frags),
+ oid=None,
short_name="duration",
long_name=None,
description=None,
@@ -546,6 +560,7 @@ class SomersaultSID(IntEnum):
"temperature":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.temperature", doc_frags),
+ oid=None,
short_name="temperature",
long_name=None,
description=None,
@@ -561,6 +576,7 @@ class SomersaultSID(IntEnum):
"error_code":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.error_code", doc_frags),
+ oid=None,
short_name="error_code",
long_name=None,
description=None,
@@ -576,6 +592,7 @@ class SomersaultSID(IntEnum):
"boolean":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.boolean", doc_frags),
+ oid=None,
short_name="boolean",
long_name=None,
description=None,
@@ -592,6 +609,7 @@ class SomersaultSID(IntEnum):
"uint8":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.uint8", doc_frags),
+ oid=None,
short_name="uint8",
long_name=None,
description=None,
@@ -607,6 +625,7 @@ class SomersaultSID(IntEnum):
"uint16":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.uint16", doc_frags),
+ oid=None,
short_name="uint16",
long_name=None,
description=None,
@@ -622,6 +641,7 @@ class SomersaultSID(IntEnum):
"float":
DataObjectProperty(
odx_id=OdxLinkId("somersault.DOP.float", doc_frags),
+ oid=None,
short_name="float",
long_name=None,
description=None,
@@ -644,6 +664,7 @@ class SomersaultSID(IntEnum):
"session":
Response(
odx_id=OdxLinkId("somersault.PR.session_start", doc_frags),
+ oid=None,
short_name="session",
long_name=None,
description=None,
@@ -652,6 +673,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -664,6 +686,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="can_do_backward_flips",
long_name=None,
semantic=None,
@@ -681,6 +704,7 @@ class SomersaultSID(IntEnum):
"tester_ok":
Response(
odx_id=OdxLinkId("somersault.PR.tester_present", doc_frags),
+ oid=None,
short_name="tester_present",
long_name=None,
description=None,
@@ -689,6 +713,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -701,6 +726,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="status",
long_name=None,
semantic=None,
@@ -718,6 +744,7 @@ class SomersaultSID(IntEnum):
"forward_flips_grudgingly_done":
Response(
odx_id=OdxLinkId("somersault.PR.grudging_forward", doc_frags),
+ oid=None,
short_name="grudging_forward",
long_name=None,
description=None,
@@ -726,6 +753,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -739,6 +767,7 @@ class SomersaultSID(IntEnum):
),
# TODO (?): non-byte aligned MatchingRequestParameters
MatchingRequestParameter(
+ oid=None,
short_name="num_flips_done",
long_name=None,
semantic=None,
@@ -750,6 +779,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="sault_time",
long_name=None,
semantic=None,
@@ -767,6 +797,7 @@ class SomersaultSID(IntEnum):
"forward_flips_happily_done":
Response(
odx_id=OdxLinkId("somersault.PR.happy_forward", doc_frags),
+ oid=None,
short_name="happy_forward",
long_name=None,
description=None,
@@ -775,6 +806,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -788,6 +820,7 @@ class SomersaultSID(IntEnum):
),
# TODO (?): non-byte aligned MatchingRequestParameters
MatchingRequestParameter(
+ oid=None,
short_name="num_flips_done",
long_name=None,
semantic=None,
@@ -799,6 +832,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="yeha_level",
long_name=None,
semantic=None,
@@ -816,6 +850,7 @@ class SomersaultSID(IntEnum):
"backward_flips_grudgingly_done":
Response(
odx_id=OdxLinkId("somersault.PR.grudging_backward", doc_frags),
+ oid=None,
short_name="grudging_backward",
long_name=None,
description=None,
@@ -824,6 +859,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -836,6 +872,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="num_flips_done",
long_name=None,
semantic=None,
@@ -848,6 +885,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="grumpiness_level",
long_name=None,
semantic=None,
@@ -866,6 +904,7 @@ class SomersaultSID(IntEnum):
"status_report":
Response(
odx_id=OdxLinkId("somersault.PR.status_report", doc_frags),
+ oid=None,
short_name="status_report",
long_name=None,
description=None,
@@ -874,6 +913,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -886,6 +926,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="dizzyness_level",
long_name=None,
semantic=None,
@@ -898,6 +939,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="happiness_level",
long_name=None,
semantic=None,
@@ -910,6 +952,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
TableKeyParameter(
+ oid=None,
odx_id=OdxLinkId("somersault.PR.report_status.last_pos_response_key",
doc_frags),
short_name="last_pos_response_key",
@@ -925,6 +968,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
TableStructParameter(
+ oid=None,
short_name="last_pos_response",
long_name=None,
semantic=None,
@@ -942,6 +986,7 @@ class SomersaultSID(IntEnum):
"set_operation_params":
Response(
odx_id=OdxLinkId("somersault.PR.set_operation_params", doc_frags),
+ oid=None,
short_name="set_operation_params",
long_name=None,
description=None,
@@ -950,6 +995,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -982,6 +1028,7 @@ class SomersaultSID(IntEnum):
"general":
Response(
odx_id=OdxLinkId("somersault.NR.general_negative_response", doc_frags),
+ oid=None,
short_name="general_negative_response",
long_name=None,
description=None,
@@ -990,6 +1037,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.NEGATIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1001,6 +1049,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
MatchingRequestParameter(
+ oid=None,
short_name="rq_sid",
long_name=None,
semantic=None,
@@ -1012,6 +1061,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="response_code",
long_name=None,
semantic=None,
@@ -1032,6 +1082,7 @@ class SomersaultSID(IntEnum):
"tester_nok":
Response(
odx_id=OdxLinkId("somersault.NR.tester_nok", doc_frags),
+ oid=None,
short_name="tester_nok",
long_name=None,
description=None,
@@ -1040,6 +1091,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.NEGATIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1051,6 +1103,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="rq_sid",
long_name=None,
semantic=None,
@@ -1067,6 +1120,7 @@ class SomersaultSID(IntEnum):
"flips_not_done":
Response(
odx_id=OdxLinkId("somersault.NR.flips_not_done", doc_frags),
+ oid=None,
short_name="flips_not_done",
long_name=None,
description=None,
@@ -1075,6 +1129,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.NEGATIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1086,6 +1141,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
MatchingRequestParameter(
+ oid=None,
short_name="rq_sid",
long_name=None,
semantic=None,
@@ -1097,6 +1153,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
NrcConstParameter(
+ oid=None,
short_name="reason",
long_name=None,
semantic=None,
@@ -1112,6 +1169,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="flips_successfully_done",
long_name=None,
semantic=None,
@@ -1132,6 +1190,7 @@ class SomersaultSID(IntEnum):
"general":
Response(
odx_id=OdxLinkId("GNR.too_hot", doc_frags),
+ oid=None,
short_name="too_hot",
long_name=None,
description=None,
@@ -1140,6 +1199,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.GLOBAL_NEGATIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1151,6 +1211,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="too_hot_dummy",
long_name=None,
semantic=None,
@@ -1162,6 +1223,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="too_hot_id",
long_name=None,
semantic=None,
@@ -1173,6 +1235,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="temperature",
long_name=None,
semantic=None,
@@ -1196,6 +1259,7 @@ class SomersaultSID(IntEnum):
"last_flip_details":
Table(
odx_id=last_flip_details_table_id,
+ oid=None,
short_name="last_flip_details",
long_name="Flip Details",
description=Description.from_string(
@@ -1209,6 +1273,7 @@ class SomersaultSID(IntEnum):
TableRow(
table_ref=last_flip_details_table_ref,
odx_id=OdxLinkId("somersault.table.last_flip_details.none", doc_frags),
+ oid=None,
short_name="none",
long_name="No Flips Done Yet",
key_raw="0",
@@ -1224,6 +1289,7 @@ class SomersaultSID(IntEnum):
table_ref=last_flip_details_table_ref,
odx_id=OdxLinkId("somersault.table.last_flip_details.forward_grudging",
doc_frags),
+ oid=None,
short_name="forward_grudging",
long_name="Forward Flips Grudgingly Done",
key_raw="3",
@@ -1240,6 +1306,7 @@ class SomersaultSID(IntEnum):
TableRow(
table_ref=last_flip_details_table_ref,
odx_id=OdxLinkId("somersault.table.last_flip_details.forward_happy", doc_frags),
+ oid=None,
short_name="forward_happily",
long_name="Forward Flips Happily Done",
description=None,
@@ -1255,6 +1322,7 @@ class SomersaultSID(IntEnum):
TableRow(
table_ref=last_flip_details_table_ref,
odx_id=OdxLinkId("somersault.table.last_flip_details.backward", doc_frags),
+ oid=None,
short_name="backward_grudging",
long_name="Backward Flips",
description=None,
@@ -1277,6 +1345,7 @@ class SomersaultSID(IntEnum):
"start_session":
Request(
odx_id=OdxLinkId("somersault.RQ.start_session", doc_frags),
+ oid=None,
short_name="start_session",
long_name="Start the diagnostic session & do some mischief",
description=None,
@@ -1284,6 +1353,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
parameters=[
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1296,6 +1366,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="id",
long_name=None,
semantic=None,
@@ -1312,6 +1383,7 @@ class SomersaultSID(IntEnum):
"stop_session":
Request(
odx_id=OdxLinkId("somersault.RQ.stop_session", doc_frags),
+ oid=None,
short_name="stop_session",
long_name="Terminate the current diagnostic session",
description=None,
@@ -1319,6 +1391,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
parameters=[
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1331,6 +1404,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="id",
long_name=None,
semantic=None,
@@ -1347,6 +1421,7 @@ class SomersaultSID(IntEnum):
"tester_present":
Request(
odx_id=OdxLinkId("somersault.RQ.tester_present", doc_frags),
+ oid=None,
short_name="tester_present",
long_name="Prevent the current diagnostic session from timing out",
description=None,
@@ -1354,6 +1429,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
parameters=[
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1365,6 +1441,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="id",
long_name=None,
semantic=None,
@@ -1381,6 +1458,7 @@ class SomersaultSID(IntEnum):
"set_operation_params":
Request(
odx_id=OdxLinkId("somersault.RQ.set_operation_params", doc_frags),
+ oid=None,
short_name="set_operation_params",
long_name="Specify the mode of operation for the ECU; e.g. if rings "
"of fire ought to be used for maximum effect",
@@ -1389,6 +1467,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
parameters=[
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1401,6 +1480,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="use_fire_ring",
long_name=None,
semantic=None,
@@ -1418,6 +1498,7 @@ class SomersaultSID(IntEnum):
"forward_flips":
Request(
odx_id=OdxLinkId("somersault.RQ.do_forward_flips", doc_frags),
+ oid=None,
short_name="do_forward_flips",
long_name="Do forward somersaults & some other mischief",
description=None,
@@ -1425,6 +1506,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
parameters=[
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1436,6 +1518,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="forward_soberness_check",
long_name=None,
semantic=None,
@@ -1449,6 +1532,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="num_flips",
long_name=None,
semantic=None,
@@ -1466,6 +1550,7 @@ class SomersaultSID(IntEnum):
"backward_flips":
Request(
odx_id=OdxLinkId("somersault.RQ.do_backward_flips", doc_frags),
+ oid=None,
short_name="do_backward_flips",
long_name="Do a backward somersault & some other mischief",
description=None,
@@ -1473,6 +1558,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
parameters=[
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1484,6 +1570,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="backward_soberness_check",
long_name=None,
semantic=None,
@@ -1497,6 +1584,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="num_flips",
long_name=None,
semantic=None,
@@ -1514,6 +1602,7 @@ class SomersaultSID(IntEnum):
"report_status":
Request(
odx_id=OdxLinkId("somersault.RQ.report_status", doc_frags),
+ oid=None,
short_name="report_status",
long_name="Report back the current level of dizzy- & happiness.",
description=None,
@@ -1521,6 +1610,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
parameters=[
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -1533,6 +1623,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="id",
long_name=None,
semantic=None,
@@ -1553,6 +1644,7 @@ class SomersaultSID(IntEnum):
"start_session":
DiagService(
odx_id=OdxLinkId("somersault.service.session_start", doc_frags),
+ oid=None,
short_name="session_start",
long_name=None,
description=None,
@@ -1587,6 +1679,7 @@ class SomersaultSID(IntEnum):
"stop_session":
DiagService(
odx_id=OdxLinkId("somersault.service.session_stop", doc_frags),
+ oid=None,
short_name="session_stop",
long_name=None,
description=None,
@@ -1621,6 +1714,7 @@ class SomersaultSID(IntEnum):
"tester_present":
DiagService(
odx_id=OdxLinkId("somersault.service.tester_present", doc_frags),
+ oid=None,
short_name="tester_present",
long_name=None,
description=None,
@@ -1664,6 +1758,7 @@ class SomersaultSID(IntEnum):
"set_operation_params":
DiagService(
odx_id=OdxLinkId("somersault.service.set_operation_params", doc_frags),
+ oid=None,
short_name="set_operation_params",
long_name=None,
description=None,
@@ -1696,6 +1791,7 @@ class SomersaultSID(IntEnum):
"forward_flips":
DiagService(
odx_id=OdxLinkId("somersault.service.do_forward_flips", doc_frags),
+ oid=None,
short_name="do_forward_flips",
long_name=None,
description=Description.from_string("Do a forward flip.
"),
@@ -1747,6 +1843,7 @@ class SomersaultSID(IntEnum):
"backward_flips":
DiagService(
odx_id=OdxLinkId("somersault.service.do_backward_flips", doc_frags),
+ oid=None,
short_name="do_backward_flips",
long_name=None,
description=None,
@@ -1792,6 +1889,7 @@ class SomersaultSID(IntEnum):
"report_status":
DiagService(
odx_id=OdxLinkId("somersault.service.report_status", doc_frags),
+ oid=None,
short_name="report_status",
long_name=None,
description=None,
@@ -1838,6 +1936,7 @@ class SomersaultSID(IntEnum):
SingleEcuJob(
audience=None,
odx_id=OdxLinkId("somersault.service.compulsory_program", doc_frags),
+ oid=None,
short_name="compulsory_program",
long_name="Compulsory Program",
description=Description.from_string("Do several fancy moves.
"),
@@ -2021,6 +2120,7 @@ class SomersaultSID(IntEnum):
somersault_protocol_raw = ProtocolRaw(
variant_type=DiagLayerType.PROTOCOL,
odx_id=OdxLinkId("somersault.protocol", doc_frags),
+ oid=None,
short_name="somersault_protocol",
long_name="Somersault protocol info",
description=Description.from_string(
@@ -2050,6 +2150,7 @@ class SomersaultSID(IntEnum):
somersault_base_variant_raw = BaseVariantRaw(
variant_type=DiagLayerType.BASE_VARIANT,
odx_id=OdxLinkId("somersault", doc_frags),
+ oid=None,
short_name="somersault",
long_name="Somersault base variant",
description=Description.from_string("Base variant of the somersault ECU & cetera
"),
@@ -2089,6 +2190,7 @@ class SomersaultSID(IntEnum):
somersault_lazy_ecu_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("somersault_lazy", doc_frags),
+ oid=None,
short_name="somersault_lazy",
long_name="Somersault lazy ECU",
description=Description.from_string(
@@ -2139,6 +2241,7 @@ class SomersaultSID(IntEnum):
"headstand":
Request(
odx_id=OdxLinkId("somersault_assiduous.RQ.do_headstand", doc_frags),
+ oid=None,
short_name="do_headstand",
long_name="Do a headstand & whatever else is required to entertain the customer",
description=None,
@@ -2146,6 +2249,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -2157,6 +2261,7 @@ class SomersaultSID(IntEnum):
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="duration",
long_name=None,
semantic=None,
@@ -2178,6 +2283,7 @@ class SomersaultSID(IntEnum):
"headstand_done":
Response(
odx_id=OdxLinkId("somersault_assiduous.PR.headstand_done", doc_frags),
+ oid=None,
short_name="headstand_done",
long_name=None,
description=None,
@@ -2186,6 +2292,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -2198,6 +2305,7 @@ class SomersaultSID(IntEnum):
),
# TODO (?): non-byte aligned MatchingRequestParameters
MatchingRequestParameter(
+ oid=None,
short_name="duration",
long_name=None,
semantic=None,
@@ -2218,6 +2326,7 @@ class SomersaultSID(IntEnum):
"fell_over":
Response(
odx_id=OdxLinkId("somersault_assiduous.NR.fell_over", doc_frags),
+ oid=None,
short_name="fell_over",
long_name=None,
description=None,
@@ -2226,6 +2335,7 @@ class SomersaultSID(IntEnum):
response_type=ResponseType.POSITIVE,
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
semantic=None,
@@ -2238,6 +2348,7 @@ class SomersaultSID(IntEnum):
),
# TODO (?): non-byte aligned MatchingRequestParameters
MatchingRequestParameter(
+ oid=None,
short_name="duration",
long_name=None,
semantic=None,
@@ -2258,6 +2369,7 @@ class SomersaultSID(IntEnum):
"headstand":
DiagService(
odx_id=OdxLinkId("somersault_assiduous.service.headstand", doc_frags),
+ oid=None,
short_name="headstand",
long_name=None,
description=None,
@@ -2303,6 +2415,7 @@ class SomersaultSID(IntEnum):
somersault_assiduous_ecu_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("somersault_assiduous", doc_frags),
+ oid=None,
short_name="somersault_assiduous",
long_name="Somersault assiduous ECU",
description=Description.from_string(
@@ -2362,6 +2475,7 @@ class SomersaultSID(IntEnum):
# create a "diagnosis layer container" object
somersault_dlc = DiagLayerContainer(
odx_id=OdxLinkId("DLC.somersault", doc_frags),
+ oid=None,
short_name=dlc_short_name,
long_name="Collect all saults in the summer",
description=Description.from_string(
diff --git a/odxtools/element.py b/odxtools/element.py
index 6d3b33dc..1ddc4dbf 100644
--- a/odxtools/element.py
+++ b/odxtools/element.py
@@ -15,10 +15,7 @@ class NamedElement:
description: Optional[Description]
@staticmethod
- def from_et(
- et_element: ElementTree.Element,
- doc_frags: List[OdxDocFragment],
- ) -> "NamedElement":
+ def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "NamedElement":
return NamedElement(
short_name=odxrequire(et_element.findtext("SHORT-NAME")),
@@ -30,15 +27,15 @@ def from_et(
@dataclass
class IdentifiableElement(NamedElement):
odx_id: OdxLinkId
+ oid: Optional[str]
@staticmethod
- def from_et(
- et_element: ElementTree.Element,
- doc_frags: List[OdxDocFragment],
- ) -> "IdentifiableElement":
+ def from_et(et_element: ElementTree.Element,
+ doc_frags: List[OdxDocFragment]) -> "IdentifiableElement":
kwargs = dataclass_fields_asdict(NamedElement.from_et(et_element, doc_frags))
- return IdentifiableElement(
- **kwargs,
- odx_id=odxrequire(OdxLinkId.from_et(et_element, doc_frags)),
- )
+
+ odx_id = odxrequire(OdxLinkId.from_et(et_element, doc_frags))
+ oid = et_element.get("OID")
+
+ return IdentifiableElement(**kwargs, odx_id=odx_id, oid=oid)
diff --git a/odxtools/outputparam.py b/odxtools/outputparam.py
index 21544311..ee9a283d 100644
--- a/odxtools/outputparam.py
+++ b/odxtools/outputparam.py
@@ -16,7 +16,6 @@
@dataclass
class OutputParam(IdentifiableElement):
dop_base_ref: OdxLinkRef
- oid: Optional[str]
semantic: Optional[str]
@staticmethod
@@ -25,9 +24,8 @@ def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) ->
kwargs = dataclass_fields_asdict(IdentifiableElement.from_et(et_element, doc_frags))
dop_base_ref = odxrequire(OdxLinkRef.from_et(et_element.find("DOP-BASE-REF"), doc_frags))
semantic = et_element.get("SEMANTIC")
- oid = et_element.get("OID")
- return OutputParam(dop_base_ref=dop_base_ref, semantic=semantic, oid=oid, **kwargs)
+ return OutputParam(dop_base_ref=dop_base_ref, semantic=semantic, **kwargs)
def _build_odxlinks(self) -> Dict[OdxLinkId, Any]:
return {}
diff --git a/odxtools/parameters/parameter.py b/odxtools/parameters/parameter.py
index d121022e..3420bb95 100644
--- a/odxtools/parameters/parameter.py
+++ b/odxtools/parameters/parameter.py
@@ -40,6 +40,7 @@ class Parameter(NamedElement):
define any non-positionable parameter types.
"""
+ oid: Optional[str]
byte_position: Optional[int]
bit_position: Optional[int]
semantic: Optional[str]
@@ -51,6 +52,7 @@ def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) ->
kwargs = dataclass_fields_asdict(NamedElement.from_et(et_element, doc_frags))
+ oid = et_element.get("OID")
semantic = et_element.get("SEMANTIC")
sdgs = [
SpecialDataGroup.from_et(sdge, doc_frags) for sdge in et_element.iterfind("SDGS/SDG")
@@ -63,6 +65,7 @@ def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) ->
bit_position = int(bit_position_str) if bit_position_str is not None else None
return Parameter(
+ oid=oid,
byte_position=byte_position,
bit_position=bit_position,
semantic=semantic,
diff --git a/odxtools/physicaldimension.py b/odxtools/physicaldimension.py
index 7ddb1646..c73af95b 100644
--- a/odxtools/physicaldimension.py
+++ b/odxtools/physicaldimension.py
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: MIT
from dataclasses import dataclass
-from typing import Any, Dict, List, Optional
+from typing import Any, Dict, List
from xml.etree import ElementTree
from .element import IdentifiableElement
@@ -41,7 +41,6 @@ class PhysicalDimension(IdentifiableElement):
)
```
"""
- oid: Optional[str]
length_exp: int
mass_exp: int
time_exp: int
@@ -54,7 +53,6 @@ class PhysicalDimension(IdentifiableElement):
def from_et(et_element: ElementTree.Element,
doc_frags: List[OdxDocFragment]) -> "PhysicalDimension":
kwargs = dataclass_fields_asdict(IdentifiableElement.from_et(et_element, doc_frags))
- oid = et_element.get("OID")
def read_optional_int(element: ElementTree.Element, name: str) -> int:
if val_str := element.findtext(name):
@@ -71,7 +69,6 @@ def read_optional_int(element: ElementTree.Element, name: str) -> int:
luminous_intensity_exp = read_optional_int(et_element, "LUMINOUS-INTENSITY-EXP")
return PhysicalDimension(
- oid=oid,
length_exp=length_exp,
mass_exp=mass_exp,
time_exp=time_exp,
diff --git a/odxtools/templates/macros/printAudience.xml.jinja2 b/odxtools/templates/macros/printAudience.xml.jinja2
index f6fbdc9a..6740ed5c 100644
--- a/odxtools/templates/macros/printAudience.xml.jinja2
+++ b/odxtools/templates/macros/printAudience.xml.jinja2
@@ -6,7 +6,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printAdditionalAudience(audience) -%}
-
+
{{ peid.printElementIdSubtags(audience)|indent(1) }}
{%- endmacro -%}
diff --git a/odxtools/templates/macros/printCompanyData.xml.jinja2 b/odxtools/templates/macros/printCompanyData.xml.jinja2
index 5f429a17..98ad5202 100644
--- a/odxtools/templates/macros/printCompanyData.xml.jinja2
+++ b/odxtools/templates/macros/printCompanyData.xml.jinja2
@@ -8,7 +8,7 @@
{%- import('macros/printDescription.xml.jinja2') as pd %}
{%- macro printCompanyData(company_data) %}
-
+
{{ peid.printElementIdSubtags(company_data)|indent(1) }}
{%- if company_data.roles is not none %}
@@ -20,7 +20,7 @@
{%- if company_data.team_members is not none %}
{%- for team_member in company_data.team_members %}
-
+
{{ peid.printElementIdSubtags(team_member)|indent(3) }}
{%- if team_member.roles is not none %}
diff --git a/odxtools/templates/macros/printComparam.xml.jinja2 b/odxtools/templates/macros/printComparam.xml.jinja2
index 6b3c0587..9ca3d028 100644
--- a/odxtools/templates/macros/printComparam.xml.jinja2
+++ b/odxtools/templates/macros/printComparam.xml.jinja2
@@ -38,7 +38,7 @@
{%- endmacro %}
{%- macro printSimpleComparam(cp) %}
-
{%- else %}
-
+
{{dtc.short_name}}
{{dtc.trouble_code}}
{%- if dtc.display_trouble_code is not none %}
diff --git a/odxtools/templates/macros/printDiagComm.xml.jinja2 b/odxtools/templates/macros/printDiagComm.xml.jinja2
index 980e43c4..4aeca8ef 100644
--- a/odxtools/templates/macros/printDiagComm.xml.jinja2
+++ b/odxtools/templates/macros/printDiagComm.xml.jinja2
@@ -9,7 +9,7 @@
{%- import('macros/printSpecialData.xml.jinja2') as psd %}
{%- macro printDiagCommAttribs(dc) -%}
-ID="{{dc.odx_id.local_id}}"
+{{-peid.printElementIdAttribs(dc)}}
{{-make_xml_attrib("SEMANTIC", dc.semantic)}}
{{-make_xml_attrib("DIAGNOSTIC-CLASS", dc.diagnostic_class and dc.diagnostic_class.value)}}
{{-make_bool_xml_attrib("IS-MANDATORY", dc.is_mandatory_raw)}}
diff --git a/odxtools/templates/macros/printDiagLayer.xml.jinja2 b/odxtools/templates/macros/printDiagLayer.xml.jinja2
index cefb511a..abf8ff92 100644
--- a/odxtools/templates/macros/printDiagLayer.xml.jinja2
+++ b/odxtools/templates/macros/printDiagLayer.xml.jinja2
@@ -27,7 +27,7 @@
{%- import('macros/printAdminData.xml.jinja2') as pad %}
{%- macro printDiagLayerAttribs(dl) -%}
-{#- #} ID="{{dl.diag_layer_raw.odx_id.local_id}}"{# -#}
+{#- #} {{-peid.printElementIdAttribs(dl)}}{# -#}
{%- endmacro -%}
{%- macro printDiagLayerSubtags(dl) -%}
diff --git a/odxtools/templates/macros/printDiagVariable.xml.jinja2 b/odxtools/templates/macros/printDiagVariable.xml.jinja2
index ddf37a8b..60feb7eb 100644
--- a/odxtools/templates/macros/printDiagVariable.xml.jinja2
+++ b/odxtools/templates/macros/printDiagVariable.xml.jinja2
@@ -7,7 +7,7 @@
{%- import('macros/printDescription.xml.jinja2') as pd %}
{%- macro printDiagVariable(diag_var) -%}
-
+
{{ peid.printElementIdSubtags(diag_variable)|indent(2) }}
{%- if diag_variable.admin_data is not none %}
{{ pad.printAdminData(diag_variable.admin_data)|indent(2) }}
@@ -16,7 +16,7 @@
{%- if diag_variable.sw_variables %}
{%- for sw_var in diag_variable.sw_variables %}
-
+
{{ peid.printElementIdSubtags(sw_var)|indent(6) }}
{%- if sw_var.origin is not none %}
{{ sw_var.origin }}
@@ -60,7 +60,7 @@
{%- endmacro -%}
{%- macro printVariableGroup(var_group) -%}
-
+
{{ peid.printElementIdSubtags(diag_variable)|indent(2) }}
{%- endmacro -%}
diff --git a/odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2 b/odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2
index e98758e6..25a1109b 100644
--- a/odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2
+++ b/odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2
@@ -6,7 +6,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printStaticField(demf) -%}
-
+
{{ peid.printElementIdSubtags(demf)|indent(1) }}
diff --git a/odxtools/templates/macros/printDynamicLengthField.xml.jinja2 b/odxtools/templates/macros/printDynamicLengthField.xml.jinja2
index dfeb73ea..fc729d9f 100644
--- a/odxtools/templates/macros/printDynamicLengthField.xml.jinja2
+++ b/odxtools/templates/macros/printDynamicLengthField.xml.jinja2
@@ -6,7 +6,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printDynamicLengthField(dlf) -%}
-
+
{{ peid.printElementIdSubtags(dlf)|indent(1) }}
{{dlf.offset}}
diff --git a/odxtools/templates/macros/printElementId.xml.jinja2 b/odxtools/templates/macros/printElementId.xml.jinja2
index ca5219fa..da83bd42 100644
--- a/odxtools/templates/macros/printElementId.xml.jinja2
+++ b/odxtools/templates/macros/printElementId.xml.jinja2
@@ -5,6 +5,11 @@
{%- import('macros/printDescription.xml.jinja2') as pd %}
+{%- macro printElementIdAttribs(obj) -%}
+{#- #} {{- make_xml_attrib("ID", obj.odx_id.local_id) }}
+{#- #} {{- make_xml_attrib("OID", getattr(obj, "oid", none)) -}}
+{%- endmacro -%}
+
{%- macro printElementIdSubtags(obj) -%}
{{ obj.short_name }}
{%- if obj.long_name %}
diff --git a/odxtools/templates/macros/printEndOfPdu.xml.jinja2 b/odxtools/templates/macros/printEndOfPdu.xml.jinja2
index 2f1cef45..2b35eb31 100644
--- a/odxtools/templates/macros/printEndOfPdu.xml.jinja2
+++ b/odxtools/templates/macros/printEndOfPdu.xml.jinja2
@@ -6,7 +6,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printEndOfPdu(eopdu) -%}
-
+
{{ peid.printElementIdSubtags(eopdu)|indent(1) }}
{%- if eopdu.max_number_of_items is not none %}
diff --git a/odxtools/templates/macros/printEnvDataDesc.xml.jinja2 b/odxtools/templates/macros/printEnvDataDesc.xml.jinja2
index 34cde9e9..e5ca0d03 100644
--- a/odxtools/templates/macros/printEnvDataDesc.xml.jinja2
+++ b/odxtools/templates/macros/printEnvDataDesc.xml.jinja2
@@ -6,7 +6,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printEnvDataDesc(env_data_desc) %}
-
+
{{ peid.printElementIdSubtags(env_data_desc)|indent(1) }}
diff --git a/odxtools/templates/macros/printFunctionalClass.xml.jinja2 b/odxtools/templates/macros/printFunctionalClass.xml.jinja2
index 3b11ed97..1a8d59bf 100644
--- a/odxtools/templates/macros/printFunctionalClass.xml.jinja2
+++ b/odxtools/templates/macros/printFunctionalClass.xml.jinja2
@@ -7,7 +7,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printFunctionalClass(fc) -%}
-
+
{{ peid.printElementIdSubtags(fc)|indent(1) }}
{%- endmacro -%}
diff --git a/odxtools/templates/macros/printMux.xml.jinja2 b/odxtools/templates/macros/printMux.xml.jinja2
index 8519acd7..b948486a 100644
--- a/odxtools/templates/macros/printMux.xml.jinja2
+++ b/odxtools/templates/macros/printMux.xml.jinja2
@@ -8,7 +8,7 @@
{%- import('macros/printDOP.xml.jinja2') as pdop %}
{%- macro printMux(mux) %}
-
{{ peid.printElementIdSubtags(mux)|indent(1) }}
diff --git a/odxtools/templates/macros/printParam.xml.jinja2 b/odxtools/templates/macros/printParam.xml.jinja2
index 6c711328..bded934b 100644
--- a/odxtools/templates/macros/printParam.xml.jinja2
+++ b/odxtools/templates/macros/printParam.xml.jinja2
@@ -11,8 +11,8 @@
{%- set semattrib = make_xml_attrib("SEMANTIC", param.semantic) -%}
{%- if param.parameter_type == "TABLE-KEY" %}
+ {{-peid.printElementIdAttribs(param)}}
+ xsi:type="{{param.parameter_type}}">
{%- elif param.parameter_type == "SYSTEM" %}
+
{{ peid.printElementIdSubtags(ps) | indent(1) }}
{{ ps.pdu_protocol_type }}
{{ ps.physical_link_type }}
diff --git a/odxtools/templates/macros/printRequest.xml.jinja2 b/odxtools/templates/macros/printRequest.xml.jinja2
index 5dcdce27..ef3d6d1d 100644
--- a/odxtools/templates/macros/printRequest.xml.jinja2
+++ b/odxtools/templates/macros/printRequest.xml.jinja2
@@ -9,7 +9,7 @@
{%- import('macros/printSpecialData.xml.jinja2') as psd %}
{%- macro printRequest(request) -%}
-
+
{{ peid.printElementIdSubtags(request)|indent(1) }}
{%- if request.parameters %}
diff --git a/odxtools/templates/macros/printResponse.xml.jinja2 b/odxtools/templates/macros/printResponse.xml.jinja2
index 6066cae0..fc07ac6d 100644
--- a/odxtools/templates/macros/printResponse.xml.jinja2
+++ b/odxtools/templates/macros/printResponse.xml.jinja2
@@ -8,7 +8,7 @@
{%- import('macros/printSpecialData.xml.jinja2') as psd %}
{%- macro printResponse(resp, tag_name="POS-RESPONSE") -%}
-<{{tag_name}} ID="{{resp.odx_id.local_id}}">
+<{{tag_name}} {{-peid.printElementIdAttribs(resp)}}>
{{ peid.printElementIdSubtags(resp)|indent(1) }}
{%- if resp.parameters %}
diff --git a/odxtools/templates/macros/printSingleEcuJob.xml.jinja2 b/odxtools/templates/macros/printSingleEcuJob.xml.jinja2
index 5292a1aa..5d7730b1 100644
--- a/odxtools/templates/macros/printSingleEcuJob.xml.jinja2
+++ b/odxtools/templates/macros/printSingleEcuJob.xml.jinja2
@@ -73,7 +73,7 @@
{%- endmacro -%}
{%- macro printOutputParam(param) -%}
-
{{ peid.printElementIdSubtags(param)|indent(1) }}
diff --git a/odxtools/templates/macros/printSpecialData.xml.jinja2 b/odxtools/templates/macros/printSpecialData.xml.jinja2
index 64134ab2..c3f75586 100644
--- a/odxtools/templates/macros/printSpecialData.xml.jinja2
+++ b/odxtools/templates/macros/printSpecialData.xml.jinja2
@@ -17,7 +17,7 @@
{%- endmacro %}
{%- macro printSdgCaption(sdg_caption) %}
-
+
{{ peid.printElementIdSubtags(sdg_caption)|indent(1) }}
{%- endmacro %}
diff --git a/odxtools/templates/macros/printState.xml.jinja2 b/odxtools/templates/macros/printState.xml.jinja2
index 20f05032..ec520b0d 100644
--- a/odxtools/templates/macros/printState.xml.jinja2
+++ b/odxtools/templates/macros/printState.xml.jinja2
@@ -6,7 +6,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printState(state) -%}
-
+
{{ peid.printElementIdSubtags(state)|indent(1) }}
{%- endmacro -%}
diff --git a/odxtools/templates/macros/printStateChart.xml.jinja2 b/odxtools/templates/macros/printStateChart.xml.jinja2
index 61b12839..0fecfc47 100644
--- a/odxtools/templates/macros/printStateChart.xml.jinja2
+++ b/odxtools/templates/macros/printStateChart.xml.jinja2
@@ -8,7 +8,7 @@
{%- import('macros/printStateTransition.xml.jinja2') as pst %}
{%- macro printStateChart(state_chart) -%}
-
+
{{ peid.printElementIdSubtags(state_chart)|indent(1) }}
{{state_chart.semantic}}
{%- if state_chart.state_transitions %}
diff --git a/odxtools/templates/macros/printStateTransition.xml.jinja2 b/odxtools/templates/macros/printStateTransition.xml.jinja2
index 494fa64f..d7f99691 100644
--- a/odxtools/templates/macros/printStateTransition.xml.jinja2
+++ b/odxtools/templates/macros/printStateTransition.xml.jinja2
@@ -6,7 +6,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printStateTransition(state_transition) -%}
-
+
{{ peid.printElementIdSubtags(state_transition)|indent(1) }}
diff --git a/odxtools/templates/macros/printStaticField.xml.jinja2 b/odxtools/templates/macros/printStaticField.xml.jinja2
index 675b04ac..c9d6c2eb 100644
--- a/odxtools/templates/macros/printStaticField.xml.jinja2
+++ b/odxtools/templates/macros/printStaticField.xml.jinja2
@@ -6,7 +6,7 @@
{%- import('macros/printElementId.xml.jinja2') as peid %}
{%- macro printStaticField(sf) -%}
-
+
{{ peid.printElementIdSubtags(sf)|indent(1) }}
{{sf.fixed_number_of_items}}
diff --git a/odxtools/templates/macros/printStructure.xml.jinja2 b/odxtools/templates/macros/printStructure.xml.jinja2
index 8252db8a..48bba586 100644
--- a/odxtools/templates/macros/printStructure.xml.jinja2
+++ b/odxtools/templates/macros/printStructure.xml.jinja2
@@ -7,7 +7,7 @@
{%- import('macros/printParam.xml.jinja2') as pp %}
{%- macro printStructure(st) -%}
-
+
{{ peid.printElementIdSubtags(st)|indent(1) }}
{%- if st.byte_size is not none %}
{{st.byte_size}}
diff --git a/odxtools/templates/macros/printTable.xml.jinja2 b/odxtools/templates/macros/printTable.xml.jinja2
index 5cf1b083..5c55915a 100644
--- a/odxtools/templates/macros/printTable.xml.jinja2
+++ b/odxtools/templates/macros/printTable.xml.jinja2
@@ -8,7 +8,7 @@
{%- import('macros/printDescription.xml.jinja2') as pd %}
{%- macro printTable(table) %}
-
{{ peid.printElementIdSubtags(table)|indent(1) }}
{%- if table.key_dop_ref %}
@@ -16,7 +16,7 @@
{%- endif %}
{%- for table_row in table.table_rows_raw %}
{%- if hasattr(table_row, "key") %}
-
{{table_row.short_name}}
{%- if table_row.long_name %}
diff --git a/odxtools/templates/macros/printUnitSpec.xml.jinja2 b/odxtools/templates/macros/printUnitSpec.xml.jinja2
index 7d123b2c..c4836b12 100644
--- a/odxtools/templates/macros/printUnitSpec.xml.jinja2
+++ b/odxtools/templates/macros/printUnitSpec.xml.jinja2
@@ -35,8 +35,7 @@
{%- macro printUnit(unit) -%}
-
+
{{ peid.printElementIdSubtags(unit)|indent(1) }}
{{ unit.display_name }}
{%- if unit.factor_si_to_unit is not none %}
@@ -52,7 +51,7 @@
{%- endmacro -%}
{%- macro printUnitGroup(group) -%}
-
+
{{ peid.printElementIdSubtags(group)|indent(1) }}
{{ group.category.value }}
{%- if group.unit_refs %}
@@ -66,8 +65,7 @@
{%- endmacro -%}
{%- macro printPhysicalDimesion(dim) -%}
-
+
{{ peid.printElementIdSubtags(dim)|indent(1) }}
{%- if dim.length_exp %}
{{ dim.length_exp }}
diff --git a/odxtools/unit.py b/odxtools/unit.py
index a5642451..18eda947 100644
--- a/odxtools/unit.py
+++ b/odxtools/unit.py
@@ -53,7 +53,6 @@ class Unit(IdentifiableElement):
```
"""
display_name: str
- oid: Optional[str]
factor_si_to_unit: Optional[float]
offset_si_to_unit: Optional[float]
physical_dimension_ref: Optional[OdxLinkRef]
@@ -64,7 +63,7 @@ def __post_init__(self) -> None:
@staticmethod
def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "Unit":
kwargs = dataclass_fields_asdict(IdentifiableElement.from_et(et_element, doc_frags))
- oid = et_element.get("OID")
+
display_name = odxrequire(et_element.findtext("DISPLAY-NAME"))
def read_optional_float(element: ElementTree.Element, name: str) -> Optional[float]:
@@ -80,7 +79,6 @@ def read_optional_float(element: ElementTree.Element, name: str) -> Optional[flo
return Unit(
display_name=display_name,
- oid=oid,
factor_si_to_unit=factor_si_to_unit,
offset_si_to_unit=offset_si_to_unit,
physical_dimension_ref=physical_dimension_ref,
diff --git a/odxtools/writepdxfile.py b/odxtools/writepdxfile.py
index 7ad05869..360d9eb1 100644
--- a/odxtools/writepdxfile.py
+++ b/odxtools/writepdxfile.py
@@ -140,6 +140,7 @@ def write_pdx_file(
out_file.write(data_file.read())
jinja_env = jinja2.Environment(loader=jinja2.FileSystemLoader(templates_dir))
+ jinja_env.globals["getattr"] = getattr
jinja_env.globals["hasattr"] = hasattr
jinja_env.globals["odxraise"] = jinja2_odxraise_helper
jinja_env.globals["make_xml_attrib"] = make_xml_attrib
diff --git a/tests/test_decoding.py b/tests/test_decoding.py
index 37f20b9d..0af1e9b8 100644
--- a/tests/test_decoding.py
+++ b/tests/test_decoding.py
@@ -66,6 +66,7 @@ def test_prefix_tree_construction(self) -> None:
is_highlow_byte_order_raw=None,
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -77,6 +78,7 @@ def test_prefix_tree_construction(self) -> None:
sdgs=[],
)
req_param2 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter_2",
long_name=None,
description=None,
@@ -89,6 +91,7 @@ def test_prefix_tree_construction(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -101,6 +104,7 @@ def test_prefix_tree_construction(self) -> None:
odxlinks.update({req.odx_id: req})
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -128,6 +132,7 @@ def test_prefix_tree_construction(self) -> None:
)
req2_param2 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter_3",
long_name=None,
description=None,
@@ -140,6 +145,7 @@ def test_prefix_tree_construction(self) -> None:
)
req2 = Request(
odx_id=OdxLinkId("request_id2", doc_frags),
+ oid=None,
short_name="request_sn2",
long_name=None,
description=None,
@@ -151,6 +157,7 @@ def test_prefix_tree_construction(self) -> None:
odxlinks.update({req2.odx_id: req2})
resp2_param2 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter_4",
long_name=None,
description=None,
@@ -163,6 +170,7 @@ def test_prefix_tree_construction(self) -> None:
)
resp2 = Response(
odx_id=OdxLinkId("response_id2", doc_frags),
+ oid=None,
short_name="response_sn2",
long_name=None,
description=None,
@@ -176,6 +184,7 @@ def test_prefix_tree_construction(self) -> None:
service2 = DiagService(
odx_id=OdxLinkId("service_id2", doc_frags),
+ oid=None,
short_name="service_sn2",
long_name=None,
description=None,
@@ -205,6 +214,7 @@ def test_prefix_tree_construction(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -263,6 +273,7 @@ def test_decode_request_coded_const(self) -> None:
is_highlow_byte_order_raw=None,
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -274,6 +285,7 @@ def test_decode_request_coded_const(self) -> None:
sdgs=[],
)
req_param2 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter_2",
long_name=None,
description=None,
@@ -286,6 +298,7 @@ def test_decode_request_coded_const(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -297,6 +310,7 @@ def test_decode_request_coded_const(self) -> None:
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -325,6 +339,7 @@ def test_decode_request_coded_const(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -383,6 +398,7 @@ def test_decode_nrc_const(self) -> None:
)
dop = DataObjectProperty(
odx_id=OdxLinkId("dop.id", doc_frags),
+ oid=None,
short_name="dop_sn",
long_name="example dop",
description=None,
@@ -401,6 +417,7 @@ def test_decode_nrc_const(self) -> None:
physical_constr=None,
)
param1 = CodedConstParameter(
+ oid=None,
short_name="param1",
long_name=None,
description=None,
@@ -412,6 +429,7 @@ def test_decode_nrc_const(self) -> None:
sdgs=[],
)
param2 = NrcConstParameter(
+ oid=None,
short_name="param2",
long_name=None,
description=None,
@@ -423,6 +441,7 @@ def test_decode_nrc_const(self) -> None:
sdgs=[],
)
param3 = ValueParameter(
+ oid=None,
short_name="param3",
long_name=None,
description=None,
@@ -436,6 +455,7 @@ def test_decode_nrc_const(self) -> None:
)
resp = Response(
odx_id=OdxLinkId("response_id", doc_frags),
+ oid=None,
short_name="response_sn",
long_name=None,
description=None,
@@ -448,6 +468,7 @@ def test_decode_nrc_const(self) -> None:
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -455,6 +476,7 @@ def test_decode_nrc_const(self) -> None:
sdgs=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="req_param1",
long_name=None,
description=None,
@@ -471,6 +493,7 @@ def test_decode_nrc_const(self) -> None:
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -500,6 +523,7 @@ def test_decode_nrc_const(self) -> None:
base_variant_raw = BaseVariantRaw(
variant_type=DiagLayerType.BASE_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -576,6 +600,7 @@ def test_decode_request_coded_const_undefined_byte_position(self) -> None:
is_highlow_byte_order_raw=None,
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -587,6 +612,7 @@ def test_decode_request_coded_const_undefined_byte_position(self) -> None:
sdgs=[],
)
req_param2 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter_2",
long_name=None,
description=None,
@@ -598,6 +624,7 @@ def test_decode_request_coded_const_undefined_byte_position(self) -> None:
sdgs=[],
)
req_param3 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter_3",
long_name=None,
description=None,
@@ -609,6 +636,7 @@ def test_decode_request_coded_const_undefined_byte_position(self) -> None:
sdgs=[],
)
req_param4 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter_4",
long_name=None,
description=None,
@@ -621,6 +649,7 @@ def test_decode_request_coded_const_undefined_byte_position(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -634,6 +663,7 @@ def test_decode_request_coded_const_undefined_byte_position(self) -> None:
odxlinks.update({req.odx_id: req})
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -662,6 +692,7 @@ def test_decode_request_coded_const_undefined_byte_position(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -746,6 +777,7 @@ def test_decode_request_structure(self) -> None:
physical_type=DataType.A_INT32)
dop = DataObjectProperty(
odx_id=OdxLinkId("dop.odx_id", doc_frags),
+ oid=None,
short_name="dop_sn",
long_name=None,
description=None,
@@ -760,6 +792,7 @@ def test_decode_request_structure(self) -> None:
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -772,6 +805,7 @@ def test_decode_request_structure(self) -> None:
)
struct_param1 = CodedConstParameter(
+ oid=None,
short_name="struct_param_1",
long_name=None,
description=None,
@@ -783,6 +817,7 @@ def test_decode_request_structure(self) -> None:
sdgs=[],
)
struct_param2 = ValueParameter(
+ oid=None,
short_name="struct_param_2",
long_name=None,
description=None,
@@ -796,6 +831,7 @@ def test_decode_request_structure(self) -> None:
)
struct = Structure(
odx_id=OdxLinkId("struct_id", doc_frags),
+ oid=None,
short_name="struct",
long_name=None,
description=None,
@@ -805,6 +841,7 @@ def test_decode_request_structure(self) -> None:
byte_size=None,
)
req_param2 = ValueParameter(
+ oid=None,
short_name="structured_param",
long_name=None,
description=None,
@@ -819,6 +856,7 @@ def test_decode_request_structure(self) -> None:
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -829,6 +867,7 @@ def test_decode_request_structure(self) -> None:
)
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -857,6 +896,7 @@ def test_decode_request_structure(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -939,6 +979,7 @@ def test_static_field_coding(self) -> None:
physical_type=DataType.A_INT32)
dop = DataObjectProperty(
odx_id=OdxLinkId("static_field.dop.id", doc_frags),
+ oid=None,
short_name="static_field_dop_sn",
long_name=None,
description=None,
@@ -953,6 +994,7 @@ def test_static_field_coding(self) -> None:
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -965,6 +1007,7 @@ def test_static_field_coding(self) -> None:
)
struct_param1 = ValueParameter(
+ oid=None,
short_name="static_field_struct_param_1",
long_name=None,
description=None,
@@ -977,6 +1020,7 @@ def test_static_field_coding(self) -> None:
sdgs=[],
)
struct_param2 = ValueParameter(
+ oid=None,
short_name="static_field_struct_param_2",
long_name=None,
description=None,
@@ -990,6 +1034,7 @@ def test_static_field_coding(self) -> None:
)
struct = Structure(
odx_id=OdxLinkId("static_field_struct.id", doc_frags),
+ oid=None,
short_name="static_field_struct",
long_name=None,
description=None,
@@ -1000,6 +1045,7 @@ def test_static_field_coding(self) -> None:
)
static_field = StaticField(
odx_id=OdxLinkId("static_field.id", doc_frags),
+ oid=None,
short_name="static_field_sn",
long_name=None,
description=None,
@@ -1014,6 +1060,7 @@ def test_static_field_coding(self) -> None:
item_byte_size=3,
)
req_param2 = ValueParameter(
+ oid=None,
short_name="static_field_param",
long_name=None,
description=None,
@@ -1028,6 +1075,7 @@ def test_static_field_coding(self) -> None:
req = Request(
odx_id=OdxLinkId("static_field.request.id", doc_frags),
+ oid=None,
short_name="static_field_request_sn",
long_name=None,
description=None,
@@ -1038,6 +1086,7 @@ def test_static_field_coding(self) -> None:
)
service = DiagService(
odx_id=OdxLinkId("static_field.service.id", doc_frags),
+ oid=None,
short_name="static_field_service_sn",
long_name=None,
description=None,
@@ -1066,6 +1115,7 @@ def test_static_field_coding(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl.id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -1184,6 +1234,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
dop = DataObjectProperty(
odx_id=OdxLinkId("demf.dop.id", doc_frags),
+ oid=None,
short_name="demf_dop_sn",
long_name=None,
description=None,
@@ -1198,6 +1249,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
)
dyn_end_dop = DataObjectProperty(
odx_id=OdxLinkId("demf.end_dop.id", doc_frags),
+ oid=None,
short_name="demf_end_dop_sn",
long_name=None,
description=None,
@@ -1217,6 +1269,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -1228,6 +1281,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
sdgs=[],
)
req_param1_1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -1240,6 +1294,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
)
struct_param1 = CodedConstParameter(
+ oid=None,
short_name="struct_param_1",
long_name=None,
description=None,
@@ -1251,6 +1306,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
sdgs=[],
)
struct_param2 = ValueParameter(
+ oid=None,
short_name="struct_param_2",
long_name=None,
description=None,
@@ -1264,6 +1320,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
)
struct = Structure(
odx_id=OdxLinkId("demf_struct.id", doc_frags),
+ oid=None,
short_name="demf_struct",
long_name=None,
description=None,
@@ -1274,6 +1331,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
)
demf = DynamicEndmarkerField(
odx_id=OdxLinkId("demf.id", doc_frags),
+ oid=None,
short_name="demf_sn",
long_name=None,
description=None,
@@ -1287,6 +1345,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
dyn_end_dop_ref=dyn_end_dop_ref,
)
req_param2 = ValueParameter(
+ oid=None,
short_name="demf_param",
long_name=None,
description=None,
@@ -1299,6 +1358,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
sdgs=[],
)
req_demf_endmarker_param = ReservedParameter(
+ oid=None,
short_name="demf_endmarker",
long_name=None,
description=None,
@@ -1309,6 +1369,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
sdgs=[],
)
req_param3 = CodedConstParameter(
+ oid=None,
short_name="demf_post_param",
long_name=None,
description=None,
@@ -1322,6 +1383,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
req = Request(
odx_id=OdxLinkId("demf.request.id", doc_frags),
+ oid=None,
short_name="demf_request_sn",
long_name=None,
description=None,
@@ -1336,6 +1398,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
# field is at the end of the PDU, so no endmarker is added
req_end_of_pdu = Request(
odx_id=OdxLinkId("demf_eopdu.request.id", doc_frags),
+ oid=None,
short_name="demf_eopdu_request_sn",
long_name=None,
description=None,
@@ -1347,6 +1410,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
service = DiagService(
odx_id=OdxLinkId("demf.service.id", doc_frags),
+ oid=None,
short_name="demf_service_sn",
long_name=None,
description=None,
@@ -1374,6 +1438,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
)
service_eopdu = DiagService(
odx_id=OdxLinkId("demf.service_eopdu.id", doc_frags),
+ oid=None,
short_name="demf_service_eopdu_sn",
long_name=None,
description=None,
@@ -1402,6 +1467,7 @@ def test_dynamic_endmarker_field_coding(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl.id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -1549,6 +1615,7 @@ def test_dynamic_length_field_coding(self) -> None:
physical_type=DataType.A_INT32)
dop = DataObjectProperty(
odx_id=OdxLinkId("dlf.dop.id", doc_frags),
+ oid=None,
short_name="dlf_dop_sn",
long_name=None,
description=None,
@@ -1563,6 +1630,7 @@ def test_dynamic_length_field_coding(self) -> None:
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -1575,6 +1643,7 @@ def test_dynamic_length_field_coding(self) -> None:
)
struct_param1 = CodedConstParameter(
+ oid=None,
short_name="struct_param_1",
long_name=None,
description=None,
@@ -1586,6 +1655,7 @@ def test_dynamic_length_field_coding(self) -> None:
sdgs=[],
)
struct_param2 = ValueParameter(
+ oid=None,
short_name="struct_param_2",
long_name=None,
description=None,
@@ -1599,6 +1669,7 @@ def test_dynamic_length_field_coding(self) -> None:
)
struct = Structure(
odx_id=OdxLinkId("dlf_struct.id", doc_frags),
+ oid=None,
short_name="dlf_struct",
long_name=None,
description=None,
@@ -1611,6 +1682,7 @@ def test_dynamic_length_field_coding(self) -> None:
byte_position=1, bit_position=3, dop_ref=OdxLinkRef.from_id(dop.odx_id))
dlf = DynamicLengthField(
odx_id=OdxLinkId("dlf.id", doc_frags),
+ oid=None,
short_name="dlf_sn",
long_name=None,
description=None,
@@ -1625,6 +1697,7 @@ def test_dynamic_length_field_coding(self) -> None:
determine_number_of_items=det_num_items,
)
req_param2 = ValueParameter(
+ oid=None,
short_name="dlf_param",
long_name=None,
description=None,
@@ -1639,6 +1712,7 @@ def test_dynamic_length_field_coding(self) -> None:
req = Request(
odx_id=OdxLinkId("dlf.request.id", doc_frags),
+ oid=None,
short_name="dlf_request_sn",
long_name=None,
description=None,
@@ -1649,6 +1723,7 @@ def test_dynamic_length_field_coding(self) -> None:
)
service = DiagService(
odx_id=OdxLinkId("dlf.service.id", doc_frags),
+ oid=None,
short_name="dlf_service_sn",
long_name=None,
description=None,
@@ -1677,6 +1752,7 @@ def test_dynamic_length_field_coding(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl.id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -1783,6 +1859,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
physical_type=DataType.A_INT32)
dop = DataObjectProperty(
odx_id=OdxLinkId("dop.id", doc_frags),
+ oid=None,
short_name="dop_sn",
long_name=None,
description=None,
@@ -1797,6 +1874,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -1809,6 +1887,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
)
struct_param1 = CodedConstParameter(
+ oid=None,
short_name="struct_param_1",
long_name=None,
description=None,
@@ -1820,6 +1899,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
sdgs=[],
)
struct_param2 = ValueParameter(
+ oid=None,
short_name="struct_param_2",
long_name=None,
description=None,
@@ -1833,6 +1913,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
)
struct = Structure(
odx_id=OdxLinkId("struct_id", doc_frags),
+ oid=None,
short_name="struct",
long_name=None,
description=None,
@@ -1843,6 +1924,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
)
eopf = EndOfPduField(
odx_id=OdxLinkId("eopf_id", doc_frags),
+ oid=None,
short_name="eopf_sn",
long_name=None,
description=None,
@@ -1857,6 +1939,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
is_visible_raw=True,
)
req_param2 = ValueParameter(
+ oid=None,
short_name="eopf_param",
long_name=None,
description=None,
@@ -1871,6 +1954,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -1881,6 +1965,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
)
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -1909,6 +1994,7 @@ def test_decode_request_end_of_pdu_field(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -2015,6 +2101,7 @@ def test_decode_request_linear_compu_method(self) -> None:
)
dop = DataObjectProperty(
odx_id=OdxLinkId("linear.dop.id", doc_frags),
+ oid=None,
short_name="linear_dop_sn",
long_name=None,
description=None,
@@ -2028,6 +2115,7 @@ def test_decode_request_linear_compu_method(self) -> None:
physical_constr=None,
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -2039,6 +2127,7 @@ def test_decode_request_linear_compu_method(self) -> None:
sdgs=[],
)
req_param2 = ValueParameter(
+ oid=None,
short_name="value_parameter_2",
long_name=None,
description=None,
@@ -2052,6 +2141,7 @@ def test_decode_request_linear_compu_method(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -2063,6 +2153,7 @@ def test_decode_request_linear_compu_method(self) -> None:
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -2091,6 +2182,7 @@ def test_decode_request_linear_compu_method(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -2162,6 +2254,7 @@ def test_decode_response(self) -> None:
is_highlow_byte_order_raw=None,
)
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -2173,6 +2266,7 @@ def test_decode_response(self) -> None:
sdgs=[],
)
req_param2 = CodedConstParameter(
+ oid=None,
short_name="req_param",
long_name=None,
description=None,
@@ -2185,6 +2279,7 @@ def test_decode_response(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -2195,6 +2290,7 @@ def test_decode_response(self) -> None:
)
resp_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -2206,6 +2302,7 @@ def test_decode_response(self) -> None:
sdgs=[],
)
resp_param2 = MatchingRequestParameter(
+ oid=None,
short_name="matching_req_param",
long_name=None,
description=None,
@@ -2218,6 +2315,7 @@ def test_decode_response(self) -> None:
)
pos_response = Response(
odx_id=OdxLinkId("pos_response_id", doc_frags),
+ oid=None,
short_name="pos_response_sn",
long_name=None,
description=None,
@@ -2229,6 +2327,7 @@ def test_decode_response(self) -> None:
)
resp_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -2240,6 +2339,7 @@ def test_decode_response(self) -> None:
sdgs=[],
)
resp_param2 = MatchingRequestParameter(
+ oid=None,
short_name="matching_req_param",
long_name=None,
description=None,
@@ -2252,6 +2352,7 @@ def test_decode_response(self) -> None:
)
neg_response = Response(
odx_id=OdxLinkId("neg_response_id", doc_frags),
+ oid=None,
short_name="neg_response_sn",
long_name=None,
description=None,
@@ -2264,6 +2365,7 @@ def test_decode_response(self) -> None:
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -2292,6 +2394,7 @@ def test_decode_response(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -2358,6 +2461,7 @@ def test_code_dtc(self) -> None:
dtc1 = DiagnosticTroubleCode(
odx_id=OdxLinkId("dtcID1", doc_frags),
+ oid=None,
short_name="P34_sn",
long_name=None,
description=None,
@@ -2371,6 +2475,7 @@ def test_code_dtc(self) -> None:
dtc2 = DiagnosticTroubleCode(
odx_id=OdxLinkId("dtcID2", doc_frags),
+ oid=None,
short_name="P56_sn",
long_name=None,
description=None,
@@ -2383,6 +2488,7 @@ def test_code_dtc(self) -> None:
)
dop = DtcDop(
odx_id=OdxLinkId("dtc.dop.odx_id", doc_frags),
+ oid=None,
short_name="dtc_dop_sn",
long_name=None,
description=None,
@@ -2397,6 +2503,7 @@ def test_code_dtc(self) -> None:
)
odxlinks.update(dop._build_odxlinks())
resp_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -2408,6 +2515,7 @@ def test_code_dtc(self) -> None:
sdgs=[],
)
resp_param2 = ValueParameter(
+ oid=None,
short_name="DTC_Param",
long_name=None,
description=None,
@@ -2421,6 +2529,7 @@ def test_code_dtc(self) -> None:
)
pos_response = Response(
odx_id=OdxLinkId("pos_response_id", doc_frags),
+ oid=None,
short_name="pos_response_sn",
long_name=None,
description=None,
@@ -2452,6 +2561,7 @@ def setUp(self) -> None:
odxlinks = OdxLinkDatabase()
self.dop_bytes_termination_end_of_pdu = DataObjectProperty(
odx_id=OdxLinkId("DOP_ID", doc_frags),
+ oid=None,
short_name="DOP",
long_name=None,
description=None,
@@ -2479,6 +2589,7 @@ def setUp(self) -> None:
dop = self.dop_bytes_termination_end_of_pdu
odxlinks.update(dop._build_odxlinks())
self.parameter_termination_end_of_pdu = ValueParameter(
+ oid=None,
short_name="min_max_parameter",
long_name=None,
description=None,
@@ -2492,6 +2603,7 @@ def setUp(self) -> None:
)
self.parameter_sid = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -2522,6 +2634,7 @@ def test_min_max_length_type_end_of_pdu(self) -> None:
req_param2 = self.parameter_termination_end_of_pdu
request = Request(
odx_id=OdxLinkId("request", doc_frags),
+ oid=None,
short_name="Request",
long_name=None,
description=None,
@@ -2546,6 +2659,7 @@ def test_min_max_length_type_end_of_pdu_in_structure(self) -> None:
structure = Structure(
odx_id=OdxLinkId("structure_id", doc_frags),
+ oid=None,
short_name="Structure_with_End_of_PDU_termination",
long_name=None,
description=None,
@@ -2558,6 +2672,7 @@ def test_min_max_length_type_end_of_pdu_in_structure(self) -> None:
req_param1 = self.parameter_sid
req_param2 = ValueParameter(
+ oid=None,
short_name="min_max_parameter",
long_name=None,
description=None,
@@ -2572,6 +2687,7 @@ def test_min_max_length_type_end_of_pdu_in_structure(self) -> None:
request = Request(
odx_id=OdxLinkId("request", doc_frags),
+ oid=None,
short_name="Request",
long_name=None,
description=None,
@@ -2614,6 +2730,7 @@ def test_physical_constant_parameter(self) -> None:
offset = 0x34
dop = DataObjectProperty(
odx_id=OdxLinkId("DOP_ID", doc_frags),
+ oid=None,
short_name="DOP",
long_name=None,
description=None,
@@ -2652,6 +2769,7 @@ def test_physical_constant_parameter(self) -> None:
)
odxlinks.update(dop._build_odxlinks())
req_param1 = CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -2663,6 +2781,7 @@ def test_physical_constant_parameter(self) -> None:
sdgs=[],
)
req_param2 = PhysicalConstantParameter(
+ oid=None,
short_name="physical_constant_parameter",
long_name=None,
description=None,
@@ -2676,6 +2795,7 @@ def test_physical_constant_parameter(self) -> None:
)
request = Request(
odx_id=OdxLinkId("request", doc_frags),
+ oid=None,
short_name="Request",
long_name=None,
description=None,
diff --git a/tests/test_diag_coded_types.py b/tests/test_diag_coded_types.py
index c9958297..8c879c6c 100644
--- a/tests/test_diag_coded_types.py
+++ b/tests/test_diag_coded_types.py
@@ -202,6 +202,7 @@ def test_end_to_end(self) -> None:
"certificateClient":
DataObjectProperty(
odx_id=OdxLinkId("BV.dummy_DL.DOP.certificateClient", doc_frags),
+ oid=None,
short_name="certificateClient",
long_name=None,
description=None,
@@ -220,6 +221,7 @@ def test_end_to_end(self) -> None:
# Request
request = Request(
odx_id=OdxLinkId("BV.dummy_DL.RQ.sendCertificate", doc_frags),
+ oid=None,
short_name="sendCertificate",
long_name=None,
description=None,
@@ -227,6 +229,7 @@ def test_end_to_end(self) -> None:
sdgs=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -238,6 +241,7 @@ def test_end_to_end(self) -> None:
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="certificateClient",
long_name=None,
description=Description.from_string("The certificate to verify."),
@@ -258,6 +262,7 @@ def test_end_to_end(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("BV.dummy_DL", doc_frags),
+ oid=None,
short_name="dummy_DL",
long_name=None,
description=None,
@@ -378,6 +383,7 @@ def test_decode_param_info_length_type_uint(self) -> None:
length_key_ref = OdxLinkRef.from_id(length_key_id)
length_key = LengthKeyParameter(
odx_id=length_key_id,
+ oid=None,
short_name="length_key",
long_name=None,
description=None,
@@ -410,6 +416,7 @@ def test_encode_param_info_length_type_uint(self) -> None:
length_key_id = OdxLinkId("param.length_key", doc_frags)
length_key = LengthKeyParameter(
odx_id=length_key_id,
+ oid=None,
short_name="length_key",
long_name=None,
description=None,
@@ -497,6 +504,7 @@ def test_end_to_end(self) -> None:
"uint8_times_8":
DataObjectProperty(
odx_id=OdxLinkId("BV.dummy_DL.DOP.uint8_times_8", doc_frags),
+ oid=None,
short_name="uint8_times_8",
long_name=None,
description=None,
@@ -513,6 +521,7 @@ def test_end_to_end(self) -> None:
"certificateClient":
DataObjectProperty(
odx_id=OdxLinkId("BV.dummy_DL.DOP.certificateClient", doc_frags),
+ oid=None,
short_name="certificateClient",
long_name=None,
description=None,
@@ -531,6 +540,7 @@ def test_end_to_end(self) -> None:
# Request using LengthKeyParameter and ParamLengthInfoType
request = Request(
odx_id=OdxLinkId("BV.dummy_DL.RQ.sendCertificate", doc_frags),
+ oid=None,
short_name="sendCertificate",
long_name=None,
description=None,
@@ -538,6 +548,7 @@ def test_end_to_end(self) -> None:
sdgs=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -555,6 +566,7 @@ def test_end_to_end(self) -> None:
semantic=None,
# LengthKeyParams have an ID to be referenced by a ParamLengthInfoType (which is a diag coded type)
odx_id=OdxLinkId("param.dummy_length_key", doc_frags),
+ oid=None,
byte_position=1,
bit_position=None,
# The DOP multiplies the coded value by 8, since the length key ref expects the number of bits.
@@ -563,6 +575,7 @@ def test_end_to_end(self) -> None:
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="certificateClient",
long_name=None,
description=Description.from_string("The certificate to verify."),
@@ -583,6 +596,7 @@ def test_end_to_end(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.BASE_VARIANT,
odx_id=OdxLinkId("BV.dummy_DL", doc_frags),
+ oid=None,
short_name="dummy_DL",
long_name=None,
description=None,
@@ -854,6 +868,7 @@ def test_end_to_end(self) -> None:
"certificateClient":
DataObjectProperty(
odx_id=OdxLinkId("BV.dummy_DL.DOP.certificateClient", doc_frags),
+ oid=None,
short_name="certificateClient",
long_name=None,
description=None,
@@ -872,6 +887,7 @@ def test_end_to_end(self) -> None:
# Request
request = Request(
odx_id=OdxLinkId("BV.dummy_DL.RQ.sendCertificate", doc_frags),
+ oid=None,
short_name="sendCertificate",
long_name=None,
description=None,
@@ -879,6 +895,7 @@ def test_end_to_end(self) -> None:
sdgs=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="SID",
long_name=None,
description=None,
@@ -890,6 +907,7 @@ def test_end_to_end(self) -> None:
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="certificateClient",
long_name=None,
description=Description.from_string("The certificate to verify."),
@@ -903,6 +921,7 @@ def test_end_to_end(self) -> None:
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="dummy",
long_name=None,
description=None,
@@ -921,6 +940,7 @@ def test_end_to_end(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.BASE_VARIANT,
odx_id=OdxLinkId("BV.dummy_DL", doc_frags),
+ oid=None,
short_name="dummy_DL",
long_name=None,
description=None,
diff --git a/tests/test_diag_data_dictionary_spec.py b/tests/test_diag_data_dictionary_spec.py
index a58e235c..15587bdc 100644
--- a/tests/test_diag_data_dictionary_spec.py
+++ b/tests/test_diag_data_dictionary_spec.py
@@ -53,6 +53,7 @@ def test_initialization(self) -> None:
dtc_dop = DtcDop(
odx_id=OdxLinkId("test_ddds.dop.dtc_dop", doc_frags),
+ oid=None,
short_name="dtc_dop",
long_name=None,
description=None,
@@ -64,6 +65,7 @@ def test_initialization(self) -> None:
dtcs_raw=[
DiagnosticTroubleCode(
odx_id=OdxLinkId("test_ddds.dop.dtc_dop.DTC.X10", doc_frags),
+ oid=None,
short_name="X10",
long_name=None,
description=None,
@@ -81,6 +83,7 @@ def test_initialization(self) -> None:
dop_1 = DataObjectProperty(
odx_id=OdxLinkId("test_ddds.dop.the_dop", doc_frags),
+ oid=None,
short_name="the_dop",
long_name=None,
description=None,
@@ -96,6 +99,7 @@ def test_initialization(self) -> None:
dop_2 = DataObjectProperty(
odx_id=OdxLinkId("test_ddds.dop.another_dop", doc_frags),
+ oid=None,
short_name="another_dop",
long_name=None,
description=None,
@@ -113,6 +117,7 @@ def test_initialization(self) -> None:
flip_quality_ref = OdxLinkRef.from_id(flip_quality_id)
table = Table(
odx_id=flip_quality_id,
+ oid=None,
short_name="flip_quality",
long_name="Flip Quality",
description=None,
@@ -124,6 +129,7 @@ def test_initialization(self) -> None:
table_rows_raw=[
TableRow(
odx_id=OdxLinkId("test_ddds.table.flip_quality.average", doc_frags),
+ oid=None,
table_ref=flip_quality_ref,
short_name="average",
long_name="Average",
@@ -138,6 +144,7 @@ def test_initialization(self) -> None:
),
TableRow(
odx_id=OdxLinkId("test_ddds.table.flip_quality.good", doc_frags),
+ oid=None,
table_ref=flip_quality_ref,
short_name="good",
long_name="Good",
@@ -152,6 +159,7 @@ def test_initialization(self) -> None:
),
TableRow(
odx_id=OdxLinkId("test_ddds.table.flip_quality.best", doc_frags),
+ oid=None,
table_ref=flip_quality_ref,
short_name="best",
long_name="Best",
@@ -170,6 +178,7 @@ def test_initialization(self) -> None:
env_data = EnvironmentData(
odx_id=OdxLinkId("test_ddds.env_data.flip_env_data", doc_frags),
+ oid=None,
short_name="flip_env_data",
long_name="Flip Env Data",
description=None,
@@ -177,6 +186,7 @@ def test_initialization(self) -> None:
sdgs=[],
parameters=NamedItemList([
ValueParameter(
+ oid=None,
short_name="flip_speed",
long_name="Flip Speed",
description=None,
@@ -189,6 +199,7 @@ def test_initialization(self) -> None:
sdgs=[],
),
PhysicalConstantParameter(
+ oid=None,
short_name="flip_direction",
long_name="Flip Direction",
description=None,
@@ -208,6 +219,7 @@ def test_initialization(self) -> None:
env_data_desc = EnvironmentDataDescription(
odx_id=OdxLinkId("test_ddds.env_data_desc.flip_env_data_desc", doc_frags),
+ oid=None,
short_name="flip_env_data_desc",
long_name="Flip Env Data Desc",
description=None,
@@ -221,6 +233,7 @@ def test_initialization(self) -> None:
mux_case1_struct = Structure(
odx_id=OdxLinkId("ddds_test.mux.case1.struct", doc_frags),
+ oid=None,
short_name="mux_case1_struct",
long_name=None,
description=None,
@@ -228,6 +241,7 @@ def test_initialization(self) -> None:
sdgs=[],
parameters=NamedItemList([
ValueParameter(
+ oid=None,
short_name="min_donation",
long_name=None,
description=None,
@@ -240,6 +254,7 @@ def test_initialization(self) -> None:
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="min_surface_softness",
long_name=None,
description=None,
@@ -257,6 +272,7 @@ def test_initialization(self) -> None:
mux_case2_struct = Structure(
odx_id=OdxLinkId("ddds_test.mux.case2.struct", doc_frags),
+ oid=None,
short_name="mux_case2_struct",
long_name=None,
description=None,
@@ -264,6 +280,7 @@ def test_initialization(self) -> None:
sdgs=[],
parameters=NamedItemList([
ValueParameter(
+ oid=None,
short_name="min_temperature",
long_name=None,
description=None,
@@ -281,6 +298,7 @@ def test_initialization(self) -> None:
mux = Multiplexer(
odx_id=OdxLinkId("test_ddds.multiplexer.flip_precondition", doc_frags),
+ oid=None,
short_name="flip_precondition",
long_name="Preconditions for doing flips",
description=None,
diff --git a/tests/test_ecu_variant_matching.py b/tests/test_ecu_variant_matching.py
index b1f7dc88..9fa19099 100644
--- a/tests/test_ecu_variant_matching.py
+++ b/tests/test_ecu_variant_matching.py
@@ -27,6 +27,7 @@
def dummy_response(monkeypatch: pytest.MonkeyPatch) -> Response:
resp = Response(
odx_id=OdxLinkId(local_id="dummy_resp", doc_fragments=doc_frags),
+ oid=None,
short_name="dummy_resp",
long_name=None,
description=None,
@@ -52,6 +53,7 @@ def decode(message: bytes) -> Dict[str, Any]:
def ident_service(monkeypatch: pytest.MonkeyPatch, dummy_response: Response) -> DiagService:
dummy_req = Request(
odx_id=OdxLinkId(local_id="dummy_req", doc_fragments=doc_frags),
+ oid=None,
short_name="dummy_req",
long_name=None,
description=None,
@@ -64,6 +66,7 @@ def ident_service(monkeypatch: pytest.MonkeyPatch, dummy_response: Response) ->
diagService = DiagService(
odx_id=OdxLinkId(local_id="identService", doc_fragments=doc_frags),
+ oid=None,
short_name="identService",
long_name=None,
description=None,
@@ -101,6 +104,7 @@ def encode_request() -> bytes:
def supplier_service(monkeypatch: pytest.MonkeyPatch, dummy_response: Response) -> DiagService:
dummy_req = Request(
odx_id=OdxLinkId(local_id="dummy_req", doc_fragments=doc_frags),
+ oid=None,
short_name="dummy_req",
long_name=None,
description=None,
@@ -113,6 +117,7 @@ def supplier_service(monkeypatch: pytest.MonkeyPatch, dummy_response: Response)
diagService = DiagService(
odx_id=OdxLinkId(local_id="supplierService", doc_fragments=doc_frags),
+ oid=None,
short_name="supplierService",
long_name=None,
description=None,
@@ -198,6 +203,7 @@ def ecu_variant_1(
raw_layer = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId(local_id="ecu_variant1", doc_fragments=doc_frags),
+ oid=None,
short_name="ecu_variant1",
long_name=None,
description=None,
@@ -238,6 +244,7 @@ def ecu_variant_2(
raw_layer = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId(local_id="ecu_variant2", doc_fragments=doc_frags),
+ oid=None,
short_name="ecu_variant2",
long_name=None,
description=None,
@@ -279,6 +286,7 @@ def ecu_variant_3(
raw_layer = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId(local_id="ecu_variant3", doc_fragments=doc_frags),
+ oid=None,
short_name="ecu_variant3",
long_name=None,
description=None,
diff --git a/tests/test_encoding.py b/tests/test_encoding.py
index 8d30a555..f4333007 100644
--- a/tests/test_encoding.py
+++ b/tests/test_encoding.py
@@ -49,6 +49,7 @@ def test_encode_coded_const_infer_order(self) -> None:
is_condensed_raw=None,
)
param1 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter",
long_name=None,
description=None,
@@ -60,6 +61,7 @@ def test_encode_coded_const_infer_order(self) -> None:
sdgs=[],
)
param2 = CodedConstParameter(
+ oid=None,
short_name="coded_const_parameter",
long_name=None,
description=None,
@@ -72,6 +74,7 @@ def test_encode_coded_const_infer_order(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -92,6 +95,7 @@ def test_encode_coded_const_reorder(self) -> None:
is_condensed_raw=None,
)
param1 = CodedConstParameter(
+ oid=None,
short_name="param1",
long_name=None,
description=None,
@@ -103,6 +107,7 @@ def test_encode_coded_const_reorder(self) -> None:
sdgs=[],
)
param2 = CodedConstParameter(
+ oid=None,
short_name="param2",
long_name=None,
description=None,
@@ -115,6 +120,7 @@ def test_encode_coded_const_reorder(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -162,6 +168,7 @@ def test_encode_linear(self) -> None:
physical_type=DataType.A_UINT32)
dop = DataObjectProperty(
odx_id=OdxLinkId("dop.id", doc_frags),
+ oid=None,
short_name="dop_sn",
long_name="example dop",
description=None,
@@ -176,6 +183,7 @@ def test_encode_linear(self) -> None:
)
odxlinks.update({dop.odx_id: dop})
param1 = ValueParameter(
+ oid=None,
short_name="value_parameter",
long_name=None,
description=None,
@@ -189,6 +197,7 @@ def test_encode_linear(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request.id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -222,6 +231,7 @@ def test_encode_nrc_const(self) -> None:
)
dop = DataObjectProperty(
odx_id=OdxLinkId("dop.id", doc_frags),
+ oid=None,
short_name="dop_sn",
long_name="example dop",
description=None,
@@ -240,6 +250,7 @@ def test_encode_nrc_const(self) -> None:
physical_constr=None,
)
param1 = CodedConstParameter(
+ oid=None,
short_name="param1",
long_name=None,
description=None,
@@ -251,6 +262,7 @@ def test_encode_nrc_const(self) -> None:
sdgs=[],
)
param2 = NrcConstParameter(
+ oid=None,
short_name="param2",
long_name=None,
description=None,
@@ -262,6 +274,7 @@ def test_encode_nrc_const(self) -> None:
sdgs=[],
)
param3 = ValueParameter(
+ oid=None,
short_name="param3",
long_name=None,
description=None,
@@ -275,6 +288,7 @@ def test_encode_nrc_const(self) -> None:
)
resp = Response(
odx_id=OdxLinkId("response_id", doc_frags),
+ oid=None,
short_name="response_sn",
long_name=None,
description=None,
@@ -287,6 +301,7 @@ def test_encode_nrc_const(self) -> None:
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -294,6 +309,7 @@ def test_encode_nrc_const(self) -> None:
sdgs=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="req_param1",
long_name=None,
description=None,
@@ -310,6 +326,7 @@ def test_encode_nrc_const(self) -> None:
service = DiagService(
odx_id=OdxLinkId("service_id", doc_frags),
+ oid=None,
short_name="service_sn",
long_name=None,
description=None,
@@ -339,6 +356,7 @@ def test_encode_nrc_const(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("dl_id", doc_frags),
+ oid=None,
short_name="dl_sn",
long_name=None,
description=None,
@@ -403,6 +421,7 @@ def test_encode_env_data_desc(self) -> None:
)
dop = DataObjectProperty(
odx_id=OdxLinkId("dop.id", doc_frags),
+ oid=None,
short_name="dop_sn",
long_name="example dop",
description=None,
@@ -431,6 +450,7 @@ def test_encode_env_data_desc(self) -> None:
)
dtc_dop = DtcDop(
odx_id=OdxLinkId("dtcdop.id", doc_frags),
+ oid=None,
short_name="dtcdop_sn",
long_name=None,
description=Description(
@@ -451,6 +471,7 @@ def test_encode_env_data_desc(self) -> None:
dtcs_raw=[
DiagnosticTroubleCode(
odx_id=OdxLinkId("DTCs.first_trouble", doc_frags),
+ oid=None,
short_name="first_trouble",
long_name=None,
description=None,
@@ -462,6 +483,7 @@ def test_encode_env_data_desc(self) -> None:
sdgs=[]),
DiagnosticTroubleCode(
odx_id=OdxLinkId("DTCs.follow_up_trouble", doc_frags),
+ oid=None,
short_name="follow_up_trouble",
long_name=None,
description=None,
@@ -473,6 +495,7 @@ def test_encode_env_data_desc(self) -> None:
sdgs=[]),
DiagnosticTroubleCode(
odx_id=OdxLinkId("DTCs.screwed_up_hard", doc_frags),
+ oid=None,
short_name="screwed_up_hard",
long_name=None,
description=None,
@@ -489,6 +512,7 @@ def test_encode_env_data_desc(self) -> None:
env_data_desc = EnvironmentDataDescription(
odx_id=OdxLinkId("DTCs.trouble_explanation", doc_frags),
+ oid=None,
short_name="trouble_explanation",
long_name=None,
description=None,
@@ -499,6 +523,7 @@ def test_encode_env_data_desc(self) -> None:
env_datas=[
EnvironmentData(
odx_id=OdxLinkId("DTCs.trouble_explanation.boiler_plate", doc_frags),
+ oid=None,
short_name="boiler_plate",
long_name=None,
description=None,
@@ -509,6 +534,7 @@ def test_encode_env_data_desc(self) -> None:
dtc_values=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="blabla_boiler",
long_name=None,
description=None,
@@ -522,6 +548,7 @@ def test_encode_env_data_desc(self) -> None:
])),
EnvironmentData(
odx_id=OdxLinkId("DTCs.trouble_explanation.reason_for_1", doc_frags),
+ oid=None,
short_name="reason_for_1",
long_name=None,
description=None,
@@ -532,6 +559,7 @@ def test_encode_env_data_desc(self) -> None:
dtc_values=[0x112233],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="blabla_1",
long_name=None,
description=None,
@@ -545,6 +573,7 @@ def test_encode_env_data_desc(self) -> None:
])),
EnvironmentData(
odx_id=OdxLinkId("DTCs.trouble_explanation.reason_for_2", doc_frags),
+ oid=None,
short_name="reason_for_2",
long_name=None,
description=None,
@@ -555,6 +584,7 @@ def test_encode_env_data_desc(self) -> None:
dtc_values=[0x445566],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="blabla_3",
long_name=None,
description=None,
@@ -566,6 +596,7 @@ def test_encode_env_data_desc(self) -> None:
sdgs=[],
),
CodedConstParameter(
+ oid=None,
short_name="blabla_2",
long_name=None,
description=None,
@@ -582,6 +613,7 @@ def test_encode_env_data_desc(self) -> None:
)
param1 = ValueParameter(
+ oid=None,
short_name="DTC",
long_name=None,
description=None,
@@ -594,6 +626,7 @@ def test_encode_env_data_desc(self) -> None:
sdgs=[],
)
param2 = ValueParameter(
+ oid=None,
short_name="dtc_info",
long_name=None,
description=Description(
@@ -609,6 +642,7 @@ def test_encode_env_data_desc(self) -> None:
resp = Response(
odx_id=OdxLinkId("DTCs.report_dtc.answer", doc_frags),
+ oid=None,
short_name="report_dtc_answer",
long_name=None,
description=None,
@@ -672,6 +706,7 @@ def test_encode_overlapping(self) -> None:
is_condensed_raw=None,
)
param1 = CodedConstParameter(
+ oid=None,
short_name="code",
long_name=None,
description=None,
@@ -683,6 +718,7 @@ def test_encode_overlapping(self) -> None:
sdgs=[],
)
param2 = CodedConstParameter(
+ oid=None,
short_name="part1",
long_name=None,
description=None,
@@ -694,6 +730,7 @@ def test_encode_overlapping(self) -> None:
sdgs=[],
)
param3 = CodedConstParameter(
+ oid=None,
short_name="part2",
long_name=None,
description=None,
@@ -706,6 +743,7 @@ def test_encode_overlapping(self) -> None:
)
req = Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
long_name=None,
description=None,
@@ -720,6 +758,7 @@ def test_encode_overlapping(self) -> None:
def _create_request(self, parameters: List[Parameter]) -> Request:
return Request(
odx_id=OdxLinkId("request_id", doc_frags),
+ oid=None,
short_name="request_sn",
parameters=NamedItemList(parameters),
long_name=None,
@@ -756,6 +795,7 @@ def test_bit_mask(self) -> None:
inner_dop = DataObjectProperty(
odx_id=OdxLinkId('dop.inner', doc_frags),
+ oid=None,
short_name="inner_dop",
long_name=None,
description=None,
@@ -770,6 +810,7 @@ def test_bit_mask(self) -> None:
outer_dop = DataObjectProperty(
odx_id=OdxLinkId('dop.outer', doc_frags),
+ oid=None,
short_name="outer_dop",
long_name=None,
description=None,
@@ -790,6 +831,7 @@ def test_bit_mask(self) -> None:
# Inner
inner_param = ValueParameter(
+ oid=None,
short_name="inner_param",
long_name=None,
description=None,
@@ -806,6 +848,7 @@ def test_bit_mask(self) -> None:
# Outer
outer_param = ValueParameter(
+ oid=None,
short_name="outer_param",
long_name=None,
description=None,
diff --git a/tests/test_singleecujob.py b/tests/test_singleecujob.py
index 0f53d587..b7b54486 100644
--- a/tests/test_singleecujob.py
+++ b/tests/test_singleecujob.py
@@ -65,18 +65,21 @@ class Context(NamedTuple):
self.context = Context(
extensiveTask=FunctionalClass(
odx_id=OdxLinkId("ID.extensiveTask", doc_frags),
+ oid=None,
short_name="extensiveTask",
long_name=None,
description=None,
),
specialAudience=AdditionalAudience(
odx_id=OdxLinkId("ID.specialAudience", doc_frags),
+ oid=None,
short_name="specialAudience",
long_name=None,
description=None,
),
inputDOP=DataObjectProperty(
odx_id=OdxLinkId("ID.inputDOP", doc_frags),
+ oid=None,
short_name="inputDOP",
long_name=None,
description=None,
@@ -135,6 +138,7 @@ class Context(NamedTuple):
),
outputDOP=DataObjectProperty(
odx_id=OdxLinkId("ID.outputDOP", doc_frags),
+ oid=None,
short_name="outputDOP",
long_name=None,
description=None,
@@ -180,6 +184,7 @@ class Context(NamedTuple):
),
negOutputDOP=DataObjectProperty(
odx_id=OdxLinkId("ID.negOutputDOP", doc_frags),
+ oid=None,
short_name="negOutputDOP",
long_name=None,
description=None,
@@ -259,6 +264,7 @@ class Context(NamedTuple):
self.singleecujob_object = SingleEcuJob(
odx_id=OdxLinkId("ID.JumpStart", doc_frags),
+ oid=None,
short_name="JumpStart",
long_name=None,
description=None,
@@ -366,6 +372,7 @@ def test_write_odx(self) -> None:
jinja_env.globals["odxraise"] = jinja2_odxraise_helper
jinja_env.globals["make_xml_attrib"] = make_xml_attrib
jinja_env.globals["make_bool_xml_attrib"] = make_bool_xml_attrib
+ jinja_env.globals["getattr"] = getattr
jinja_env.globals["hasattr"] = hasattr
# Small template
@@ -393,6 +400,7 @@ def test_default_lists(self) -> None:
"""Test that empty lists are assigned to list-attributes if no explicit value is passed."""
sej = SingleEcuJob(
odx_id=OdxLinkId("ID.SomeID", doc_frags),
+ oid=None,
short_name="SN.SomeShortName",
long_name=None,
description=None,
@@ -433,6 +441,7 @@ def test_resolve_odxlinks(self) -> None:
ecu_variant_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("ID.bv", doc_frags),
+ oid=None,
short_name="bv",
long_name=None,
description=None,
diff --git a/tests/test_unit_spec.py b/tests/test_unit_spec.py
index 3edaca28..f0293754 100644
--- a/tests/test_unit_spec.py
+++ b/tests/test_unit_spec.py
@@ -111,6 +111,7 @@ def test_resolve_odxlinks(self) -> None:
)
dop = DataObjectProperty(
odx_id=OdxLinkId("dop_id", doc_frags),
+ oid=None,
short_name="dop_sn",
admin_data=None,
long_name=None,
@@ -131,6 +132,7 @@ def test_resolve_odxlinks(self) -> None:
dl_raw = EcuVariantRaw(
variant_type=DiagLayerType.ECU_VARIANT,
odx_id=OdxLinkId("BV_id", doc_frags),
+ oid=None,
short_name="BaseVariant",
long_name=None,
description=None,
@@ -162,6 +164,7 @@ def test_resolve_odxlinks(self) -> None:
requests=NamedItemList([
Request(
odx_id=OdxLinkId("rq_id", doc_frags),
+ oid=None,
short_name="rq_sn",
admin_data=None,
long_name=None,
@@ -169,6 +172,7 @@ def test_resolve_odxlinks(self) -> None:
sdgs=[],
parameters=NamedItemList([
CodedConstParameter(
+ oid=None,
short_name="sid",
long_name=None,
description=None,
@@ -180,6 +184,7 @@ def test_resolve_odxlinks(self) -> None:
sdgs=[],
),
ValueParameter(
+ oid=None,
short_name="time",
long_name=None,
description=None,