Commit e79bcb2a authored by garciay's avatar garciay
Browse files

Bug fixed in ETSI IS ATSs

parent 95f4fa9f
Loading
Loading
Loading
Loading
+7 −21
Original line number Original line Diff line number Diff line
@@ -11,27 +11,13 @@ module LibItsBtp_TypesAndValues {
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_BasicTypesAndValues all;
    
    
    // LibIts
    // LibIts
    import from CAM_PDU_Descriptions language "ASN.1:1997" {
    import from CAM_PDU_Descriptions language "ASN.1:1997" all;
        type CAM
    import from DENM_PDU_Descriptions language "ASN.1:1997" all;
    };
    import from MAPEM_PDU_Descriptions language "ASN.1:1997" all;
    import from DENM_PDU_Descriptions language "ASN.1:1997" {
    import from SPATEM_PDU_Descriptions language "ASN.1:1997" all;
        type DENM
    import from IVIM_PDU_Descriptions language "ASN.1:1997" all;
    };
    import from SREM_PDU_Descriptions language "ASN.1:1997" all;
    import from MAPEM_PDU_Descriptions language "ASN.1:1997" {
    import from SSEM_PDU_Descriptions language "ASN.1:1997" all;
        type MAPEM
    };
    import from SPATEM_PDU_Descriptions language "ASN.1:1997" {
        type SPATEM
    };
    import from IVIM_PDU_Descriptions language "ASN.1:1997" {
        type IVIM
    };
    import from SREM_PDU_Descriptions language "ASN.1:1997" {
        type SREM
    };
    import from SSEM_PDU_Descriptions language "ASN.1:1997" {
        type SSEM
    };
    
    
    group btpPdus {
    group btpPdus {
     
     
+6 −5
Original line number Original line Diff line number Diff line
@@ -318,17 +318,18 @@ module LibItsIvim_Templates {
         * @param p_iviIdentificationNumber The IVIM identification number
         * @param p_iviIdentificationNumber The IVIM identification number
         * @param p_iviStatus               The IVIM status
         * @param p_iviStatus               The IVIM status
         */
         */
        template (value) IVIManagementContainer m_iviManagementContainer(
        template (omit) IVIManagementContainer m_iviManagementContainer(
                                                                         in template (value) Provider p_serviceProviderId, 
                                                                         in template (value) Provider p_serviceProviderId, 
                                                                         in template (value) IviIdentificationNumber p_iviIdentificationNumber,
                                                                         in template (value) IviIdentificationNumber p_iviIdentificationNumber,
                                                                         in template (value) IviStatus p_iviStatus
                                                                        in template (value) IviStatus p_iviStatus,
                                                                        in template (omit) IVIManagementContainer.connectedIviStructures p_connectedIviStructures := omit
        ) := {
        ) := {
            serviceProviderId       := p_serviceProviderId, 
            serviceProviderId       := p_serviceProviderId, 
            iviIdentificationNumber := p_iviIdentificationNumber,
            iviIdentificationNumber := p_iviIdentificationNumber,
            timeStamp               := f_getCurrentTime(),
            timeStamp               := f_getCurrentTime(),
            validFrom               := omit,
            validFrom               := omit,
            validTo                 := omit,
            validTo                 := omit,
            connectedIviStructures  := omit,
            connectedIviStructures  := p_connectedIviStructures,
            iviStatus               := p_iviStatus
            iviStatus               := p_iviStatus
        } // End of template m_iviManagementContainer
        } // End of template m_iviManagementContainer
        
        
@@ -346,8 +347,8 @@ module LibItsIvim_Templates {
            serviceProviderId       := p_serviceProviderId, 
            serviceProviderId       := p_serviceProviderId, 
            iviIdentificationNumber := p_iviIdentificationNumber,
            iviIdentificationNumber := p_iviIdentificationNumber,
            timeStamp               := *,
            timeStamp               := *,
            validFrom               := omit,
            validFrom               := *,
            validTo                 := omit,
            validTo                 := *,
            connectedIviStructures  := *,
            connectedIviStructures  := *,
            iviStatus               := p_iviStatus
            iviStatus               := p_iviStatus
        } // End of template mw_iviManagementContainer
        } // End of template mw_iviManagementContainer
+72 −13
Original line number Original line Diff line number Diff line
@@ -541,6 +541,8 @@ module LibItsMapemSpatem_Templates {
        
        
        group spatemTemplates {
        group spatemTemplates {
            
            
            group spatemTemplatesSend {
                
            /**
            /**
             * @desc    Send default template for SPAT Message
             * @desc    Send default template for SPAT Message
             */
             */
@@ -567,15 +569,16 @@ module LibItsMapemSpatem_Templates {
            template (value) IntersectionStateList m_intersections := { m_intersection };
            template (value) IntersectionStateList m_intersections := { m_intersection };
            
            
            template (value) IntersectionState m_intersection := {
            template (value) IntersectionState m_intersection := {
                name                := omit,
                    name                := omit,                                                // Human readable name for intersection to be used only in debug mode
                id                  := m_intersectionReferenceID,
                    id                  := m_intersectionReferenceID,                           // A globally unique value set, consisting of a  regionID and 
                                                                                                // intersection ID assignment provides a unique mapping to the intersection MAP in question which provides complete location and approach/move/lane data
                revision            := PX_INTERSECTIONSTATE_REVISION,
                revision            := PX_INTERSECTIONSTATE_REVISION,
                status              := PX_STATUS,
                    status              := IntersectionStatusObject_manualControlIsEnabled_,    // General status of the controller(s)
                moy                 := omit,
                    moy                 := omit,                                                // Minute of current UTC year used only with messages to be archived 
                timeStamp           := omit,
                    timeStamp           := omit,                                                // The mSec point in the current UTC minute that this message was constructed
                enabledLanes        := omit,
                    enabledLanes        := { 1, 2 },                                            // A list of lanes where the RevocableLane bit has been set which are now active andtherefore part of the current intersection
                states              := m_movements,
                    states              := m_movements,                                         // Each Movement is given in turn and contains its signal phase state, mapping to the lanes it applies to, and point in time it will end, and it may contain both active and future states
                maneuverAssistList  := omit,
                    maneuverAssistList  := omit,                                                // Assist data
                regional            := omit
                regional            := omit
            }
            }
            
            
@@ -585,19 +588,73 @@ module LibItsMapemSpatem_Templates {
                movementName           := omit,
                movementName           := omit,
                signalGroup            := PX_SIGNAL_GROUP_ID,    
                signalGroup            := PX_SIGNAL_GROUP_ID,    
                state_time_speed       := m_movementEventList,
                state_time_speed       := m_movementEventList,
                maneuverAssistList     := omit,
                    maneuverAssistList     := { m_connectionManeuverAssist(1) },
                regional               := omit
                regional               := omit
            }
            }
            
            
            template (value) MovementEventList m_movementEventList := { m_movementEvent };
            template (value) MovementEventList m_movementEventList := { m_movementEvent };
            
            
            template (value) MovementEvent m_movementEvent := {
                template (omit) MovementEvent m_movementEvent(
                eventState      := stop_Then_Proceed,
                                                              in template (value) MovementPhaseState p_eventState := stop_Then_Proceed,
                timing          := omit,
                                                              in template (omit) TimeChangeDetails p_timing := omit,
                speeds          := omit,
                                                              in template (omit) MovementEvent.speeds p_speeds := omit
                ) := {
                    eventState      := stop_Then_Proceed,   // Consisting of: Phase state (the basic 11 states) and Directional, protected, or permissive state
                    timing          := p_timing,            // Timing Data in UTC time stamps for event includes start and min/max end times of phase confidence and estimated next occurrence
                    speeds          := p_speeds,            // Various speed advisories for use by general and specific types of vehicles supporting green-wave and other flow needs
                    regional        := omit 
                }
                
                template (omit) ConnectionManeuverAssist m_connectionManeuverAssist(
                                                                                    in template (value) LaneConnectionID p_connectionID,
                                                                                    in template (omit) ZoneLength p_queueLength := omit,
                                                                                    in template (omit) ZoneLength p_availableStorageLength := omit,
                                                                                    in template (omit) WaitOnStopline p_waitOnStop := omit,
                                                                                    in template (omit) PedestrianBicycleDetect p_pedBicycleDetect := omit
                ) := { 
                    connectionID            := p_connectionID,
                    queueLength             := p_queueLength,
                    availableStorageLength  := p_availableStorageLength,
                    waitOnStop              := p_waitOnStop,
                    pedBicycleDetect        := p_pedBicycleDetect,
                regional        := omit 
            }
            
                template (omit) TimeChangeDetails m_itmeChangeDetails(
                                                                      in template (value) TimeMark p_minEndTime,
                                                                      in template (omit) TimeMark p_startTime := omit,
                                                                      in template (omit) TimeMark p_maxEndTime := omit,
                                                                      in template (omit) TimeMark p_likelyTime := omit,
                                                                      in template (omit) TimeIntervalConfidence p_confidence := omit,
                                                                      in template (omit) TimeMark p_nextTime := omit
                ) := {
                    startTime  := p_startTime,  // When this phase 1st started
                    minEndTime := p_minEndTime, // Expected shortest end time
                    maxEndTime := p_maxEndTime, // Expected longest end time
                    likelyTime := p_likelyTime, // Best predicted value based on other data
                    confidence := p_confidence, // Applies to above time element only
                    nextTime   := p_nextTime    // A rough estimate of time when this phase may next occur again used to support various ECO driving power management needs.
                }
                
                template (omit) AdvisorySpeed m_advisorySpeed(
                                                              in template (value) AdvisorySpeedType p_type,
                                                              in template (omit) SpeedAdvice p_speed := omit,
                                                              in template (omit) SpeedConfidence p_confidence := omit,
                                                              in template (omit) ZoneLength p_distance := omit,
                                                              in template (omit) RestrictionClassID p_class := omit
                ) := {
                    type_       := p_type,          // The type of advisory which this is.
                    speed       := p_speed, 
                    confidence  := p_confidence,    // A confidence value for the above speed
                    distance    := p_distance,      // The distance indicates the region for which the advised speed  is recommended, it is specified upstream from the stop bar   along the connected egressing lane
                    class       := p_class,         // The vehicle types to which it applies when absent, the AdvisorySpeed applies to all motor vehicle types
                    regional    := omit
                    regional    := omit
                }
                }
                
                
            } // End of group spatemTemplatesSend
            
            group spatemTemplatesRecv {
                
            /**
            /**
             * @desc    Receive template for SPATEM Message
             * @desc    Receive template for SPATEM Message
             */
             */
@@ -620,6 +677,8 @@ module LibItsMapemSpatem_Templates {
            
            
        } // End of group spatemTemplates
        } // End of group spatemTemplates
            
            
        } // End of group spatemTemplatesRecv 
        
    } // End of group mapemSpatemTemplates
    } // End of group mapemSpatemTemplates


} // End of module LibItsMapemSpatem_Templates
} // End of module LibItsMapemSpatem_Templates
+1 −0
Original line number Original line Diff line number Diff line
@@ -65,6 +65,7 @@ module LibItsMapemSpatem_TestSystem {
    type component ItsMapemSpatemSystem {
    type component ItsMapemSpatemSystem {
            
            
        port UpperTesterPort utPort;
        port UpperTesterPort utPort;
        port AdapterControlPort acPort;
        port MapemSpatemPort mapemSpatemPort;
        port MapemSpatemPort mapemSpatemPort;


    } // End of component ITS System Adapter
    } // End of component ITS System Adapter