Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SPATEM/MAPEM Support #28

Merged
merged 126 commits into from
Nov 26, 2024
Merged

SPATEM/MAPEM Support #28

merged 126 commits into from
Nov 26, 2024

Conversation

lreiher
Copy link
Member

@lreiher lreiher commented Jul 10, 2024

This PR finally brings the long-anticipated support for SPATEM and MAPEM.

Relevant Changes

  • newly generated packages etsi_its_spatem_coding, etsi_its_spatem_msgs, etsi_its_spatem_conversion, etsi_its_mapem_coding, etsi_its_mapem_msgs, etsi_its_mapem_conversion
  • major switch back to codegen-py
    • codegen-rust (originally added in Alternative gen for .msg and conversion headers #17) is now only used to generate the CPM TS, as the Python asn1tools does not support the ASN.1 CLASS keyword
    • all other message types are processed using the original codegen-py
    • the main reason for switching back is that codegen-py is better maintaineable for us core maintainers; adding support for SPATEM/MAPEM was way easier here
    • this change is causing some breaking changes in existing message types, see below

Limitations

  • RegionalExtension is not yet supported

Breaking Changes

etsi_its_cam_msgs
  • PathDeltaTime.msg
    - int64 value
    - int64 MIN = 1
    - int64 MAX = 65535
    - int64 TEN_MILLI_SECONDS_IN_PAST = 1
    + uint16 value
    + uint16 MIN = 1
    + uint16 MAX = 65535
    + uint16 TEN_MILLI_SECONDS_IN_PAST = 1
  • ProtectedZoneRadius.msg
    - int64 value
    - int64 MIN = 1
    - int64 MAX = 255
    - int64 ONE_METER = 1
    + uint8 value
    + uint8 MIN = 1
    + uint8 MAX = 255
    + uint8 ONE_METER = 1
etsi_its_cam_ts_msgs
  • CAM.msg
    - int64 HEADER_MIN = 0
  • PathDeltaTime.msg
    - int64 value
    - int64 MIN = 1
    - int64 MAX = 65535
    - int64 TEN_MILLI_SECONDS_IN_PAST = 1
    + uint16 value
    + uint16 MIN = 1
    + uint16 MAX = 65535
    + uint16 TEN_MILLI_SECONDS_IN_PAST = 1
  • ProtectedZoneRadius.msg
    - int64 value
    - int64 MIN = 1
    - int64 MAX = 255
    - int64 ONE_METER = 1
    + uint8 value
    + uint8 MIN = 1
    + uint8 MAX = 255
    + uint8 ONE_METER = 1
etsi_its_denm_msgs
  • ManagementContainer.msg
    - uint32 VALIDITY_DURATION_DEFAULT = 600
    + uint16 VALIDITY_DURATION_DEFAULT = 600
  • PathDeltaTime.msg
    - int64 value
    - int64 MIN = 1
    - int64 MAX = 65535
    - int64 TEN_MILLI_SECONDS_IN_PAST = 1
    + uint16 value
    + uint16 MIN = 1
    + uint16 MAX = 65535
    + uint16 TEN_MILLI_SECONDS_IN_PAST = 1
  • PositioningSolutionType.msg
    - uint8 S_GNS_SPLUS_DR = 3
    - uint8 D_GNS_SPLUS_DR = 4
    + uint8 S_GNSS_PLUS_D_R = 3
    + uint8 D_GNSS_PLUS_D_R = 4
  • PositionOfPillars.msg
    - int64 MIN_SIZE = 1
    - int64 MAX_SIZE = 3
    + uint8 MIN_SIZE = 1
    + uint8 MAX_SIZE = 3
  • ReferenceDenms.msg
    - int64 MIN_SIZE = 1
    - int64 MAX_SIZE = 3
    + uint8 MIN_SIZE = 1
    + uint8 MAX_SIZE = 8
  • RestrictedTypes.msg
    - int64 MIN_SIZE = 1
    - int64 MAX_SIZE = 3
    + uint8 MIN_SIZE = 1
    + uint8 MAX_SIZE = 3
  • VehicleIdentification.msg
    - WMInumber w_m_inumber
    - bool w_m_inumber_is_present
    
    - VDS v_ds
    - bool v_ds_is_present
    + WMInumber wm_inumber
    + bool wm_inumber_is_present
    
    + VDS vds
    + bool vds_is_present
etsi_its_vam_ts_msgs
  • PathDeltaTime.msg
    - int64 value
    - int64 MIN = 1
    - int64 MAX = 65535
    - int64 TEN_MILLI_SECONDS_IN_PAST = 1
    + uint16 value
    + uint16 MIN = 1
    + uint16 MAX = 65535
    + uint16 TEN_MILLI_SECONDS_IN_PAST = 1
  • PathPointPredicted.msg
    - DeltaAltitude delta_altitude
    - int16 DELTA_ALTITUDE_DEFAULT = 12800
    
    - AltitudeConfidence altitude_confidence
    + DeltaAltitude delta_altitude
    + uint16 DELTA_ALTITUDE_DEFAULT = 12800
    
    + AltitudeConfidence altitude_confidence
    + uint8 ALTITUDE_CONFIDENCE_DEFAULT = 15
  • RestrictedTypes.msg
    - int64 MIN_SIZE = 0
    - int64 MAX_SIZE = 15
    + uint8 MIN_SIZE = 0
    + uint8 MAX_SIZE = 15
  • RadialShapesList.msg
    - int64 MIN_SIZE = 1
    - int64 MAX_SIZE = 16
    + uint8 MIN_SIZE = 1
    + uint8 MAX_SIZE = 16
  • SequenceOfCartesianPosition3d.msg
    - int64 MIN_SIZE = 1
    - int64 MAX_SIZE = 16
    + uint8 MIN_SIZE = 1
    + uint8 MAX_SIZE = 16
  • SequenceOfSafeDistanceIndication.msg
    - int64 MIN_SIZE = 1
    - int64 MAX_SIZE = 8
    + uint8 MIN_SIZE = 1
    + uint8 MAX_SIZE = 8
  • SequenceOfTrajectoryInterceptionIndication.msg
    - int64 MIN_SIZE = 1
    - int64 MAX_SIZE = 8
    + uint8 MIN_SIZE = 1
    + uint8 MAX_SIZE = 8

lreiher and others added 30 commits November 6, 2023 00:27
duplicates in its-pdu and dsrc resolved by commenting them in dsrc for now
@lreiher lreiher changed the title [WIP] SPATEM/MAPEM Support SPATEM/MAPEM Support Nov 25, 2024
@lreiher lreiher marked this pull request as ready for review November 25, 2024 17:19
.vscode/launch.json Outdated Show resolved Hide resolved
.vscode/launch.json Outdated Show resolved Hide resolved
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add samples for SPATEM and MAPEM to etsi_its_msgs_utils.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not that easy, I would prefer to do it with the plugin MR.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test with naive sample or test with recorded MAPEM/SPATEM, then implement more advanced sample in visualization PR.

README.md Show resolved Hide resolved
utils/codegen/codegen-py/asn1CodeGenerationUtils.py Outdated Show resolved Hide resolved
utils/codegen/codegen-py/asn1CodeGenerationUtils.py Outdated Show resolved Hide resolved
utils/codegen/codegen-py/asn1CodeGenerationUtils.py Outdated Show resolved Hide resolved
@lreiher
Copy link
Member Author

lreiher commented Nov 25, 2024

Also mention limitations in README?

utils/codegen/asn1ToC/asn1ToC.py Outdated Show resolved Hide resolved
utils/codegen/asn1ToC/asn1ToC.py Outdated Show resolved Hide resolved
utils/codegen/asn1ToC/asn1ToC.py Show resolved Hide resolved
@jpbusch jpbusch merged commit a286151 into main Nov 26, 2024
38 checks passed
@jpbusch jpbusch deleted the feature/spatem-mapem branch November 26, 2024 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants