Commit 57fcd8ba authored by garciay's avatar garciay
Browse files

Review IVIM, MAPEM/SPATEM and SREM/SSEM

parent 3b9edd61
Loading
Loading
Loading
Loading
+29 −50
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ module ItsRSUsSimulator_Functions {
    import from ItsRSUsSimulator_TypesAndValues all;
    import from ItsRSUsSimulator_TestSystem all;
    import from ItsRSUsSimulator_Templates all;
    import from ItsRSUsSimulator_PicsInitConsts all;
    import from ItsRSUsSimulator_Pics all;
    import from ItsRSUsSimulator_Pixits all;
    
@@ -266,7 +267,7 @@ module ItsRSUsSimulator_Functions {
                        ),
                        m_itsEVCSNData(
                            -,
                            { PICS_ITS_CHARGING }
                            { c_PICS_ITS_CHARGING }
                        )
            ));
            // Update poi status
@@ -444,7 +445,7 @@ module ItsRSUsSimulator_Functions {
    } // End of function f_process_cf_event
    
    function f_prepare_beacon(
                              out template (value) Payload p_payload
                              out template (value) GnRawPayload p_payload
    ) runs on ItsRSUsSimulator {
        
        p_payload := valueof(
@@ -458,7 +459,7 @@ module ItsRSUsSimulator_Functions {
    } // End of function f_prepare_beacon
    
    function f_prepare_cam(
                           out template (value) Payload p_payload
                           out template (value) GnRawPayload p_payload
    ) runs on ItsRSUsSimulator {
        
        vc_rsuMessagesValueList[vc_rsu_id].cam.cam.generationDeltaTime := f_getCurrentTime() mod 65536; // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime
@@ -476,7 +477,7 @@ module ItsRSUsSimulator_Functions {
    } // End of function f_prepare_cam
    
    function f_prepare_denm(
                            out template (value) Payload p_payload,
                            out template (value) GnRawPayload p_payload,
                            in boolean p_cancellation := false
    ) runs on ItsRSUsSimulator {
        
@@ -499,7 +500,7 @@ module ItsRSUsSimulator_Functions {
    } // End of function f_prepare_denm
    
    function f_prepare_mapem(
                             out template (value) Payload p_payload
                             out template (value) GnRawPayload p_payload
    ) runs on ItsRSUsSimulator {
        
        p_payload := valueof(
@@ -525,7 +526,7 @@ module ItsRSUsSimulator_Functions {
    
    function f_prepare_spatem(
                              in template (value) SPATEM p_spatem,
                              out template (value) Payload p_payload
                              out template (value) GnRawPayload p_payload
    ) runs on ItsRSUsSimulator {
        var template (omit) SPATEM v_spatem := p_spatem; // Make a copy
        var TimeMark v_currentTimeMark := f_getCurrentTimeMark();
@@ -610,7 +611,7 @@ module ItsRSUsSimulator_Functions {
    } // End of function f_prepare_spatem
    
    function f_prepare_ivim(
                            out template (value) Payload p_payload
                            out template (value) GnRawPayload p_payload
    ) runs on ItsRSUsSimulator {
        
        p_payload := valueof(
@@ -627,7 +628,7 @@ module ItsRSUsSimulator_Functions {
    } // End of function f_prepare_ivim
    
    function f_prepare_evcsn(
                            out template (value) Payload p_payload
                             out template (value) GnRawPayload p_payload
    ) runs on ItsRSUsSimulator {
        
        vc_rsuMessagesValueList[vc_rsu_id].evcsn.evcsn.poiHeader.timeStamp := f_getCurrentTime(); // Check if it is ITS or UTC time
@@ -650,11 +651,11 @@ module ItsRSUsSimulator_Functions {
                            in template (value) BtpPortId  p_destPort,
                            in template (value) BtpPortId  p_srcPort := 0,
                            in NextHeader p_nextHeader := PX_GN_UPPER_LAYER
    ) return template (value) Payload {
        var template (value) Payload v_payload;
    ) return template (value) GnRawPayload {
      var template (value) GnRawPayload v_payload := ''O;
        
        if(p_nextHeader == e_any) {
            v_payload := { decodedPayload := omit, rawPayload := p_finalPayload};
            v_payload := p_finalPayload;
            return v_payload;
        }
        
@@ -665,36 +666,12 @@ module ItsRSUsSimulator_Functions {
        }
        
        if(p_nextHeader == e_btpA) {
            v_payload := { 
                decodedPayload := { 
                    btpPacket := m_btpAWithPorts(
                        p_destPort,
                        p_srcPort,
                        { 
                            decodedPayload := omit, 
                            rawPayload := p_finalPayload 
                        }
                    )
                },
                rawPayload := ''O
            };
            v_payload := int2oct(valueof(p_destPort), 2) & int2oct(valueof(p_srcPort), 2) & p_finalPayload;
            return v_payload;
        }
        
        if(p_nextHeader == e_btpB) {
            v_payload := { 
                decodedPayload := { 
                    btpPacket := m_btpBWithPorts(
                        p_destPort,
                        p_srcPort,
                        { 
                            decodedPayload := omit, 
                            rawPayload := p_finalPayload 
                        }
                    )
                }, 
                rawPayload := ''O
            };
            v_payload := int2oct(valueof(p_destPort), 2) & int2oct(valueof(p_srcPort), 2) & p_finalPayload;
            return v_payload;
        }
        
@@ -718,7 +695,7 @@ module ItsRSUsSimulator_Functions {
    ) runs on ItsRSUsSimulator {
        // Local variables
        var ReferencePosition v_newPosition := p_camVehicle.cam.camParameters.basicContainer.referencePosition;
        var template (value) Payload v_payload;
        var template (value) GnRawPayload v_payload;
        
        // Apply 90° rotation
        if (PICS_USE_LPV == true) {
@@ -773,7 +750,7 @@ module ItsRSUsSimulator_Functions {
    } // End of function f_mirror_and_send_vehicle_cam
    
    function f_send(
                    in template (value) Payload p_payload,
                    in template (value) GnRawPayload p_payload,
                    in UInt32 p_its_aid
    ) runs on ItsRSUsSimulator {
        var GeoNetworkingPdu v_geoNetworkingPdu;
@@ -810,11 +787,12 @@ module ItsRSUsSimulator_Functions {
                           in GeoNetworkingPdu p_geoNetworkingPdu
    ) runs on ItsRSUsSimulator {
        log("SREM=", p_geoNetworkingPdu);
        if (ispresent(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload)) {
        if (ispresent(p_geoNetworkingPdu.gnPacket.packet.payload)) {
          /* TODO Decode and process GnPayload or use different ports
            if (ispresent(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload)) {
                if (ischosen(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload.sremPacket)) {
                    var SignalRequestMessage v_signalRequestMessage := p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload.sremPacket.srm;
                    var template (value) Payload v_payload;
                    var template (value) GnRawPayload v_payload;
                    
                    log(v_signalRequestMessage);
                    // Build response
@@ -835,6 +813,7 @@ module ItsRSUsSimulator_Functions {
                    f_send(v_payload, PICS_SSEM_ITS_AID);
                } // else, ignore message
            } // else, ignore message
          */
        } // else, ignore message
    } // End of function f_processSrem
    
+14 −52
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@ module ItsRSUsSimulator_Pics {
    import from DSRC language "ASN.1:1997" all;
    import from ElectronicRegistrationIdentificationVehicleDataModule language "ASN.1:1997" all;

    // LibItsCommon
    import from LibItsCommon_ASN1_NamedNumbers all;
    
    // LibItsBtp
    import from LibItsBtp_TypesAndValues all;
    import from LibItsBtp_Templates all;
@@ -585,7 +588,7 @@ module ItsRSUsSimulator_Pics {
            } // End of PICS_UC9_PCZ_1
        
            modulepar ProtectedCommunicationZonesRSU PICS_UC9_PCZ := {
                PICS_UC9_PCZ_1
                c_PICS_USECASE9_PCZ_1
            } // End of PICS_UC9_PCZ
        
        } // End of group camUseCase9
@@ -974,8 +977,7 @@ module ItsRSUsSimulator_Pics {
                                deltaAltitude                       := 0
                            },
                            trafficFlowRule                         := passToLeft,
                            referenceDenms                          := {
                            }
                            referenceDenms                          := omit
                        }
                    
                    } // End of PICS_Z1_D3
@@ -5649,8 +5651,6 @@ module ItsRSUsSimulator_Pics {
    
    } // End of group ivimEvents 

    group ssemEvents {
    
    group poimEvents {
        
        group poimCommonParams {
@@ -5661,56 +5661,18 @@ module ItsRSUsSimulator_Pics {
            
            modulepar UInt32 PICS_EVCSN_ITS_AID                  := 100; // FIXME Find the correct value
            
            modulepar ItsChargingSpotDataElements PICS_CHARGING_SPOT_DATA_01 := {
	            type_			               := ChargingSpotType_standardOrFastChargeMode3_,
	            evEquipmentID	               := omit,
	            typeOfReceptacle	           := '000'B,
	            energyAvailability	           := "all",
	            parkingPlacesData	           := omit
            } // End of PICS_CHARGING_SPOT_DATA_01
            
        } // End of group poimCommonParams
        
        group poimZone1 {
            
            modulepar ReferencePosition PICS_POI_LOCATION_01 := {
                latitude                                    := 435582150,
                longitude                                   := 103065170,
                positionConfidenceEllipse                   := {
                    semiMajorConfidence   := 100,
                    semiMinorConfidence   := 100,
                    semiMajorOrientation  := 0
                },
                altitude                                    := {
                    altitudeValue := AltitudeValue_referenceEllipsoidSurface_,
                    altitudeConfidence := alt_000_01
                }
            } // End of PICS_POI_LOCATION_01
            
            modulepar ItsChargingStationData PICS_ITS_CHARGING := {
	            chargingStationID                   := 9876,
	            utilityDistributorId  	            := omit,
	            providerID            	            := omit,
    	        chargingStationLocation	            := PICS_POI_LOCATION_01,
	            address_               	            := omit,
	            phoneNumber           	            := omit,
	            accessibility         	            := "open",
    	        digitalMap            	            := omit,
	            openingDaysHours      	            := "full",
	            pricing               	            := "2.00",
	            bookingContactInfo    	            := omit,
    	        payment               	            := omit,
	            chargingSpotsAvailable              := { PICS_CHARGING_SPOT_DATA_01 }
            }
        }
        modulepar PoimParmListRsu PICS_EVCSN_PARMS_RSUs := {
            PICS_ITS_CHARGING                              // RSU #1
            c_PICS_ITS_CHARGING                              // RSU #1
        }
        
    } // End of group poimEvents 
    
    group ssemEvents {

      group ssemCommonParams {
            
            modulepar BtpPortId PICS_SSEM_BTP_DESTINATION_PORT := 2008;
           
            modulepar BtpPortId PICS_SSEM_BTP_SOURCE_PORT      := 0;
@@ -5750,7 +5712,7 @@ module ItsRSUsSimulator_Pics {
        /**
         * @desc DENM frequency timer
         */
        modulepar float PICS_DENM_FREQUENCY      := int2float(PICS_DENM_REPETITION_INTERVAL) / 1000.0;
        modulepar float PICS_DENM_FREQUENCY      := int2float(c_PICS_DENM_REPETITION_INTERVAL) / 1000.0;
    
        /**
         * @desc MAPEM frequency timer
+24 −57
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@ module ItsRSUsSimulator_Templates {
    import from DSRC language "ASN.1:1997" all;
    
    // LibItsCommon
    import from LibItsCommon_ASN1_NamedNumbers all;
    //    import from LibItsCommon_ASN1_ISDSRC_NamedNumbers all;
    import from LibItsCommon_Functions all;
    import from LibCommon_DataStrings all;
    
@@ -74,7 +76,7 @@ module ItsRSUsSimulator_Templates {
                                                                           in template (value) GeoBroadcastArea p_broadcastArea,
                                                                           in template (value) UInt8 p_hopLimit := c_defaultHopLimit,
                                                                           in template (value) TrafficClass p_trafficClass := m_trafficClass,
                                                                           in template (value) Payload p_payload
                                                                           in template (value) GnRawPayload p_payload
        ) modifies m_geoNwBroadcastPacket := {
            payload := p_payload
        } // End of template m_geoNwBroadcastPacket_payload
@@ -92,7 +94,7 @@ module ItsRSUsSimulator_Templates {
                                                                     in template (value) LongPosVector p_sourceLongPosVec,
                                                                     in template (value) UInt8 p_hopLimit := c_defaultHopLimit,
                                                                     in template (value) TrafficClass p_trafficClass := m_trafficClass,
                                                                     in template (value) Payload p_payload
                                                                     in template (value) GnRawPayload p_payload
        ) modifies m_geoNwTsbPacket:= {
            payload :=  p_payload
        }
@@ -106,7 +108,7 @@ module ItsRSUsSimulator_Templates {
         */
        template (value) GnNonSecuredPacket m_geoNwShbPacket_payload(
                                                                     in template (value) LongPosVector p_sourceLongPosVec,
                                                                     in template (value) Payload p_payload
                                                                     in template (value) GnRawPayload p_payload
        ) modifies m_geoNwShbPacket:= {
            payload :=  p_payload
        }
@@ -122,16 +124,10 @@ module ItsRSUsSimulator_Templates {
                                                                                         in template (present) UInt16 p_seqNumber := ?,
                                                                                         in template (present) NextHeader p_nextHeader := ?
        ) modifies mw_geoNwBroadcastPacketWithNextHeader := {
            payload := { 
                decodedPayload := { 
                    btpPacket := mw_btpB(
                        PICS_SREM_BTP_DESTINATION_PORT, 
                        PICS_SREM_BTP_SOURCE_PORT, 
        payload :=
            int2oct(PICS_SREM_BTP_DESTINATION_PORT, 2) & 
            int2oct(PICS_SREM_BTP_SOURCE_PORT, 2) &
            ?
                    )
                }, 
                rawPayload := ?
            }
        }
        
        /**
@@ -145,16 +141,10 @@ module ItsRSUsSimulator_Templates {
                                                                                   in template (present) LongPosVector p_sourceLongPosVec := ?,
                                                                                   in template (value) NextHeader p_nextHeader
        ) modifies mw_geoNwTsbPacketWithNextHeader := {
            payload := { 
                decodedPayload := { 
                    btpPacket := mw_btpB(
                        PICS_SREM_BTP_DESTINATION_PORT, 
                        PICS_SREM_BTP_SOURCE_PORT, 
            payload :=  
              int2oct(PICS_SREM_BTP_DESTINATION_PORT, 2) & 
              int2oct(PICS_SREM_BTP_SOURCE_PORT, 2) &
              ?
                    )
                }, 
                rawPayload := ?
            }
        }
        
        /**
@@ -164,25 +154,13 @@ module ItsRSUsSimulator_Templates {
         * @param   p_nextHeader                Id of next header
         */
        template (present) GnNonSecuredPacket mw_geoNwTsbPacketWithNextHeader_denm(
                                                                                   in template (present) LongPosVector p_sourceLongPosVec := ?,
                                                                                   in template (present) UInt8 p_hopLimit := ?,
                                                                                   in template (value) NextHeader p_nextHeader
                in template (present) UInt16 p_seqNumber := ?,
                in template (present) LongPosVector p_sourceLongPosVec := ?
        ) modifies mw_geoNwTsbPacket := {
            commonHeader := mw_commonHeaderWithHopLimit(
                p_nextHeader,
                m_shbHeaderType,
                p_hopLimit
            ),
            payload := { 
                decodedPayload := { 
                    btpPacket := mw_btpB(
                        PICS_DENM_BTP_DESTINATION_PORT, 
                        PICS_DENM_BTP_SOURCE_PORT, 
            payload := 
              int2oct(PICS_DENM_BTP_DESTINATION_PORT, 2) & 
              int2oct(PICS_DENM_BTP_SOURCE_PORT, 2) &
              ?
                    )
                }, 
                rawPayload := ?
            }
        } // End of template mw_geoNwTsbPacketWithNextHeader_denm
        
        /**
@@ -197,21 +175,10 @@ module ItsRSUsSimulator_Templates {
                                                                                  in template (present) NextHeader p_nextHeader,
                                                                                  in template (present) CAM p_cam := ?
        ) modifies mw_geoNwShbPacket := {
            payload := { 
                decodedPayload := { 
                    btpPacket := mw_btpB(
                        PICS_CAM_BTP_DESTINATION_PORT, 
                        PICS_CAM_BTP_SOURCE_PORT, 
                        {
                            decodedPayload := {
                                camPacket := p_cam
                            },
                            rawPayload := ?
                        }
                    )
                }, 
                rawPayload := ?
            }
            payload :=  
              int2oct(PICS_CAM_BTP_DESTINATION_PORT, 2) & 
              int2oct(PICS_CAM_BTP_SOURCE_PORT, 2) &
              ?
        } // End of template mw_geoNwShbPacketWithNextHeader_cam
        
    } // End of group geoNetworkingTemplates 
+2 −2
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ module ItsRSUsSimulator_TestCases {
    
    testcase TC_RSUSIMU_BV_01() runs on ItsRSUsSimulator system ItsRSUsSimulatorSystem {
        // Local variables
        var template (value) Payload v_payload;
        var template (value) GnRawPayload v_payload;
        var GeoNetworkingInd v_gnInd;
        var CfEvent v_cfEvent;