Commit fcc5bbfd authored by Yann Garcia's avatar Yann Garcia
Browse files

Add templates

parent 6bb83e61
Loading
Loading
Loading
Loading
+299 −24
Original line number Diff line number Diff line
@@ -10,6 +10,10 @@ module LibItsCps_Templates {
  // LibIts
  import from ETSI_ITS_CDD language "ASN.1:1997" all;
  import from CPM_PDU_Descriptions language "ASN.1:1997" all;
  import from CPM_OriginatingStationContainers language "ASN.1:1997" all;
  import from CPM_PerceivedObjectContainer language "ASN.1:1997" all;
  import from CPM_PerceptionRegionContainer language "ASN.1:1997" all;
  import from CPM_SensorInformationContainer language "ASN.1:1997" all;

  // LibItsCommon
  import from LibItsCommon_Functions all;
@@ -118,6 +122,8 @@ module LibItsCps_Templates {

  } // End of group Primitives

  group CPM_PDU_Descriptions {

    /**
     * @desc    Default Receive template for CollectivePerceptionMessage PDU
     */
@@ -133,4 +139,273 @@ module LibItsCps_Templates {
      }
    }

    template (value) CpmPayload m_cpm_payload(
                                              in template (value) ManagementContainer p_management_container,
                                              in template (value) ConstraintWrappedCpmContainers p_cpm_containers
                                              ) := {
      managementContainer := p_management_container,
      cpmContainers       := p_cpm_containers
    }

    template (present) CpmPayload mw_cpm_payload(
                                                 template (present) ManagementContainer p_management_container := ?,
                                                 template (present) ConstraintWrappedCpmContainers p_cpm_containers := ?
                                                 ) := {
      managementContainer := p_management_container,
      cpmContainers       := p_cpm_containers
    }

    template (omit) ManagementContainer m_management_container(
                                                               in template (value) TimestampIts p_timestamp_its,
                                                               in template (value) ReferencePosition p_reference_position,
                                                               in template (omit) MessageSegmentationInfo p_message_segmentation_info := omit,
                                                               in template (omit) MessageRateRange p_message_rate_range := omit
                                                               ) := {
      referenceTime      := p_timestamp_its,
      referencePosition  := p_reference_position,
      segmentationInfo   := p_message_segmentation_info,
      messageRateRange   := p_message_rate_range
    }

    template (present) ManagementContainer mw_management_container(
                                                                   template (present) TimestampIts p_timestamp_its := ?,
                                                                   template (present) ReferencePosition p_reference_position := ?,
                                                                   template MessageSegmentationInfo p_message_segmentation_info := *,
                                                                   template MessageRateRange p_message_rate_range := *
                                                                   ) := {
      referenceTime      := p_timestamp_its,
      referencePosition  := p_reference_position,
      segmentationInfo   := p_message_segmentation_info,
      messageRateRange   := p_message_rate_range
    }

    template (value) WrappedCpmContainer m_wrapped_cpm_container_originatingVehicleContainer(
                                                                                             in template (value) OriginatingVehicleContainer p_originatingVehicleContainer
                                                                                             ) := {
      containerId    := originatingVehicleContainer,
      containerData  := { OriginatingVehicleContainer := p_originatingVehicleContainer }
    }

    template (present) WrappedCpmContainer mw_wrapped_cpm_container_originatingVehicleContainer(
                                                                                                template (present) OriginatingVehicleContainer p_originatingVehicleContainer := ?
                                                                                                ) := {
      containerId    := originatingVehicleContainer,
      containerData  := { OriginatingVehicleContainer := p_originatingVehicleContainer }
    }

    template (value) WrappedCpmContainer m_wrapped_cpm_container_originatingRsuContainer(
                                                                                         in template (value) OriginatingRsuContainer p_originatingRsuContainer
                                                                                         ) := {
      containerId    := originatingRsuContainer,
      containerData  := { OriginatingRsuContainer := p_originatingRsuContainer }
    }

    template (present) WrappedCpmContainer mw_wrapped_cpm_container_originatingRsuContainer(
                                                                                            template (present) OriginatingRsuContainer p_originatingRsuContainer := ?
                                                                                            ) := {
      containerId    := originatingRsuContainer,
      containerData  := { OriginatingRsuContainer := p_originatingRsuContainer }
    }

    template (value) WrappedCpmContainer m_wrapped_cpm_container_sensorInformationContainer(
                                                                                            in template (value) SensorInformationContainer p_sensorInformationContainer
                                                                                            ) := {
      containerId    := sensorInformationContainer,
      containerData  := { SensorInformationContainer := p_sensorInformationContainer }
    }

    template (present) WrappedCpmContainer mw_wrapped_cpm_container_sensorInformationContainer(
                                                                                               template (present) SensorInformationContainer p_sensorInformationContainer := ?
                                                                                               ) := {
      containerId    := sensorInformationContainer,
      containerData  := { SensorInformationContainer := p_sensorInformationContainer }
    }

    template (value) WrappedCpmContainer m_wrapped_cpm_container_perceptionRegionContainer(
                                                                                           in template (value) PerceptionRegionContainer p_perceptionRegionContainer
                                                                                           ) := {
      containerId    := perceptionRegionContainer,
      containerData  := { PerceptionRegionContainer := p_perceptionRegionContainer }
    }

    template (present) WrappedCpmContainer mw_wrapped_cpm_container_perceptionRegionContainer(
                                                                                              template (present) PerceptionRegionContainer p_perceptionRegionContainer := ?
                                                                                              ) := {
      containerId    := perceptionRegionContainer,
      containerData  := { PerceptionRegionContainer := p_perceptionRegionContainer }
    }

    template (present) WrappedCpmContainer mw_wrapped_cpm_container_perceivedObjectContainer(
                                                                                            template (present) PerceivedObjectContainer p_perceivedObjectContainer := ?
                                                                                            ) := {
      containerId    := perceivedObjectContainer,
      containerData  := { PerceivedObjectContainer := p_perceivedObjectContainer }
    }

    template (value) WrappedCpmContainer m_wrapped_cpm_container_perceivedObjectContainer(
                                                                                             in template (value) PerceivedObjectContainer p_perceivedObjectContainer
                                                                                             ) := {
      containerId    := perceivedObjectContainer,
      containerData  := { PerceivedObjectContainer := p_perceivedObjectContainer }
    }










    template (value) MessageRateRange m_message_rate_range(
                                                           in template (value) MessageRateHz p_message_rate_min,
                                                           in template (value) MessageRateHz p_message_rate_max
                                                           ) := {
      messageRateMin := p_message_rate_min,
      messageRateMax := p_message_rate_max
    }

    template (present) MessageRateRange mw_message_rate_range(
                                                              template (present) MessageRateHz p_message_rate_min := ?,
                                                              template (present) MessageRateHz p_message_rate_max := ?
                                                              ) := {
      messageRateMin := p_message_rate_min,
      messageRateMax := p_message_rate_max
    }

  } // End of group CPM_PDU_Descriptions

  group CPM_PDU_OriginatingStationContainers {

    template (omit) OriginatingVehicleContainer m_originating_vehicle_container(
                                                                                in template (value) Wgs84Angle p_orientation_angle,
                                                                                in template (omit) CartesianAngle p_pitch_angle := omit,
                                                                                in template (omit) CartesianAngle p_roll_angle := omit,
                                                                                in template (omit) TrailerDataSet p_trailer_data_set := omit
                                                                                ) := {
      orientationAngle := p_orientation_angle,
      pitchAngle       := p_pitch_angle,
      rollAngle        := p_roll_angle,
      trailerDataSet   := p_trailer_data_set
    }

    template (present) OriginatingVehicleContainer mw_originating_vehicle_container(
                                                                                    template (present) Wgs84Angle p_orientation_angle := ?,
                                                                                    template CartesianAngle p_pitch_angle := *,
                                                                                    template CartesianAngle p_roll_angle := *,
                                                                                    template TrailerDataSet p_trailer_data_set := *
                                                                                    ) := {
      orientationAngle := p_orientation_angle,
      pitchAngle       := p_pitch_angle,
      rollAngle        := p_roll_angle,
      trailerDataSet   := p_trailer_data_set
    }

    template (omit) OriginatingRsuContainer m_OriginatingRsuContainer(
                                                                      in template (omit) MapReference p_map_reference := omit
                                                                      ) := {
      mapReference := p_map_reference
    }

    template OriginatingRsuContainer mw_OriginatingRsuContainer(
                                                                template MapReference p_map_reference := *
                                                                ) := {
      mapReference := p_map_reference
    }

  } // End of group CPM_PDU_OriginatingStationContainers

  group CPM_PDU_PerceivedObjectContainer {

    template (value) PerceivedObjectContainer m_perceived_object_container(
                                                                           in template (value) CardinalNumber1B p_number_of_perceived_objects,
                                                                           in template (value) PerceivedObjects p_perceived_objects
                                                                           ) := {
        numberOfPerceivedObjects := p_number_of_perceived_objects,
        perceivedObjects         := p_perceived_objects
    }

    template (present) PerceivedObjectContainer mw_perceived_object_container(
                                                                              template (present) CardinalNumber1B p_number_of_perceived_objects := ?,
                                                                              template (present) PerceivedObjects p_perceived_objects := ?
                                                                              ) := {
        numberOfPerceivedObjects := p_number_of_perceived_objects,
        perceivedObjects         := p_perceived_objects
    }

  } // End of group CPM_PDU_PerceivedObjectContainer

  group CPM_PDU_PerceptionRegionContainer {

    template (omit) PerceptionRegion m_perception_region(
                                                         in template (value) DeltaTimeMilliSecondSigned p_measurement_delta_time,     
                                                         in template (value) ConfidenceLevel p_perception_region_confidence,
                                                         in template (value) Shape p_perception_region_shape, 
                                                         in template (value) boolean p_shadowing_applies,
                                                         in template (omit) SequenceOfIdentifier1B p_sensor_id_list := omit,
                                                         in template (omit) CardinalNumber1B p_number_of_perceived_objects := omit,
                                                         in template (omit) PerceivedObjectIds p_perceived_object_ids := omit
                                                         ) := {
        measurementDeltaTime       := p_measurement_delta_time,     
        perceptionRegionConfidence := p_perception_region_confidence,
        perceptionRegionShape      := p_perception_region_shape, 
        shadowingApplies           := p_shadowing_applies,
        sensorIdList               := p_sensor_id_list,
        numberOfPerceivedObjects   := p_number_of_perceived_objects,
        perceivedObjectIds         := p_perceived_object_ids
    }

    template (present) PerceptionRegion mw_perception_region(
                                                             template (present) DeltaTimeMilliSecondSigned p_measurement_delta_time,     
                                                             template (present) ConfidenceLevel p_perception_region_confidence,
                                                             template (present) Shape p_perception_region_shape, 
                                                             template (present) boolean p_shadowing_applies,
                                                             template SequenceOfIdentifier1B p_sensor_id_list := *,
                                                             template CardinalNumber1B p_number_of_perceived_objects := *,
                                                             template PerceivedObjectIds p_perceived_object_ids := *
                                                             ) := {
        measurementDeltaTime       := p_measurement_delta_time,     
        perceptionRegionConfidence := p_perception_region_confidence,
        perceptionRegionShape      := p_perception_region_shape, 
        shadowingApplies           := p_shadowing_applies,
        sensorIdList               := p_sensor_id_list,
        numberOfPerceivedObjects   := p_number_of_perceived_objects,
        perceivedObjectIds         := p_perceived_object_ids
    }

  } // End of group CPM_PDU_PerceptionRegionContainer

  group CPM_PDU_SensorInformationContainer {

    template (omit) SensorInformation m_sensor_information(
                                                           in template (value) Identifier1B p_sensor_id,
                                                           in template (value) SensorType p_sensor_type,
                                                           in template (value) boolean p_shadowing_applies,
                                                           in template (omit) Shape p_perception_region_shape := omit,
                                                           in template (omit) ConfidenceLevel p_perception_region_confidence := omit
                                                           ) := {
        sensorId                   := p_sensor_id,
        sensorType                 := p_sensor_type,
        perceptionRegionShape      := p_perception_region_shape,
        perceptionRegionConfidence := p_perception_region_confidence,
        shadowingApplies           := p_shadowing_applies
    }

    template (present) SensorInformation mw_sensor_information(
                                                               template (present) Identifier1B p_sensor_id := ?,
                                                               template (present) SensorType p_sensor_type := ?,
                                                               template (present) boolean p_shadowing_applies := ?,
                                                               template Shape p_perception_region_shape := *,
                                                               template ConfidenceLevel p_perception_region_confidence := *
                                                               ) := {
        sensorId                   := p_sensor_id,
        sensorType                 := p_sensor_type,
        perceptionRegionShape      := p_perception_region_shape,
        perceptionRegionConfidence := p_perception_region_confidence,
        shadowingApplies           := p_shadowing_applies
    }

  } // End of group CPM_PDU_SensorInformationContainer

} // End of module LibItsCps_Templates
 No newline at end of file