Commit 22399a1e authored by tepelmann's avatar tepelmann
Browse files

Modified GN type system.

First part of GN6 test case modification.
parent 61bbbec7
Loading
Loading
Loading
Loading
+222 −201
Original line number Diff line number Diff line
@@ -321,6 +321,7 @@ module LibItsGeoNetworking_Functions {
            connect(p_nodeB:syncPort, self:syncPort);
            connect(p_nodeC:syncPort, self:syncPort);
            connect(self:syncPort, mtc:syncPort);
            
            activate(a_cf03Down(p_nodeB, p_nodeC));
            
            //Initialze the IUT
@@ -839,7 +840,6 @@ module LibItsGeoNetworking_Functions {
                repeat;
            }
            [] a_default() {
            	                
            }
        }
        
@@ -892,18 +892,16 @@ module LibItsGeoNetworking_Functions {
            
            /**
             * @desc    Receive GeoUnicast packet
             * @param   p_senderLongPosVec          Expected sender position vector
             * @param   p_sourceLongPosVec          Expected source position vector
             * @param   p_destinationShortPosVec    Expected destination position vector
             * @param   p_seqNumber                 Expected sequence number
             */
            altstep a_receiveGeoUnicast(
                in template (present) LongPosVector p_senderLongPosVec,
                in template (present) ShortPosVector p_destinationShortPosVec,
                in template (present) UInt16 p_seqNumber
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoUnicastHeader(
                    p_senderLongPosVec,
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwUnicastPacket(
                    p_destinationShortPosVec,
                    p_seqNumber)))) {
                    }
@@ -915,7 +913,7 @@ module LibItsGeoNetworking_Functions {
             */
            altstep a_receiveGeoUnicastWithDestination(in template (present) ShortPosVector p_destinationShortPosVec) runs on ItsGeoNetworking {
                
                [] a_receiveGeoUnicast(?, p_destinationShortPosVec, ?) {}
                [] a_receiveGeoUnicast(p_destinationShortPosVec, ?) {}
            }     
            
            /**
@@ -923,7 +921,7 @@ module LibItsGeoNetworking_Functions {
             */
            altstep a_receiveAnyGeoUnicast() runs on ItsGeoNetworking {
                
                [] a_receiveGeoUnicast(?, ?, ?) {}
                [] a_receiveGeoUnicast(?, ?) {}
            }  
            
        } // end geoGeoUnicastAltsteps
@@ -933,18 +931,15 @@ module LibItsGeoNetworking_Functions {
            /**
             * @desc Receive GeoBroadcast packet
             * @param   p_srcLongPosVec     Expected source position vector
             * @param   p_senderLongPosVec  Expected sender position vector
             * @param   p_seqNumber         Expected sequence number
             */
            altstep a_receiveGeoBroadcast(
                in template (present) LongPosVector p_srcLongPosVec,
                in template (present) LongPosVector p_senderLongPosVec,
                in template (present) UInt16 p_seqNumber
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoBroadcastHeader(
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket(
                        p_srcLongPosVec,
                        p_senderLongPosVec,
                        p_seqNumber
                    )))) {
                }
@@ -953,46 +948,42 @@ module LibItsGeoNetworking_Functions {
            /**
             * @desc Receive GeoBroadcast packet with specific Area and HopLimit
             * @param   p_srcLongPosVec     Expected source position vector
             * @param   p_senderLongPosVec  Expected sender position vector
             * @param   p_seqNumber         Expected sequence number
             * @param   p_broadcastArea     Expected geoBroadcastArea
             * @param   p_hopLimit          Expected hop limit
             */
            altstep a_receiveGeoBroadcastWithAreaWithHopLimit(
                in template (present) LongPosVector p_srcLongPosVec,
                in template (present) LongPosVector p_senderLongPosVec,
                in template (present) UInt16 p_seqNumber,
                in template (present) GeoBroadcastArea p_broadcastArea,
                in template (present) UInt8 p_hopLimit
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoBroadcastHeaderWithAreaWithHopLimit(
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacketWithArea(
                        p_srcLongPosVec,
                        p_senderLongPosVec,
                        p_seqNumber,
                        p_broadcastArea,
                        p_broadcastArea
                      ),
                      -,
                      p_hopLimit
                    )))) {
                    ))) {
                }
            }
            
            /**
             * @desc Receive GeoBroadcast packet for specific Geobroadcast Area
             * @param   p_srcLongPosVec     Expected source position vector
             * @param   p_senderLongPosVec  Expected sender position vector
             * @param   p_seqNumber         Expected sequence number
             * @param   p_broadcastArea     Expected geoBroadcastArea
             */
            altstep a_receiveGeoBroadcastWithArea(
                in template (present) LongPosVector p_srcLongPosVec,
                in template (present) LongPosVector p_senderLongPosVec,
                in template (present) UInt16 p_seqNumber,
                in template (present) GeoBroadcastArea p_broadcastArea
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoBroadcastHeaderWithArea(
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacketWithArea(
                        p_srcLongPosVec,
                        p_senderLongPosVec,
                        p_seqNumber,
                        p_broadcastArea
                    )))) {
@@ -1015,9 +1006,8 @@ module LibItsGeoNetworking_Functions {
                in template (present) UInt16 p_seqNumber
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeader(
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwAnycastPacket(
                        p_srcLongPosVec,
                        p_senderLongPosVec,
                        p_seqNumber
                    )))) {
                }
@@ -1033,19 +1023,19 @@ module LibItsGeoNetworking_Functions {
             */
            altstep a_receiveGeoAnycastWithAreaWithHopLimit(
                in template (present) LongPosVector p_srcLongPosVec,
                in template (present) LongPosVector p_senderLongPosVec,
                in template (present) UInt16 p_seqNumber,
                in template (present) GeoAnycastArea p_anycastArea,
                in template (present) UInt8 p_hopLimit
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeaderWithAreaWithHopLimit(
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwAnycastPacketWithArea(
                        p_srcLongPosVec,
                        p_senderLongPosVec,
                        p_seqNumber,
                        p_anycastArea,
                        p_anycastArea
                      ),
                      -,
                      p_hopLimit
                    )))) {
                    ))) {
                }
            }
            
@@ -1058,14 +1048,12 @@ module LibItsGeoNetworking_Functions {
             */
            altstep a_receiveGeoAnycastWithArea(
                in template (present) LongPosVector p_srcLongPosVec,
                in template (present) LongPosVector p_senderLongPosVec,
                in template (present) UInt16 p_seqNumber,
                in template (present) GeoAnycastArea p_anycastArea
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeaderWithArea(
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwAnycastPacketWithArea(
                        p_srcLongPosVec,
                        p_senderLongPosVec,
                        p_seqNumber,
                        p_anycastArea
                    )))) {
@@ -1092,14 +1080,14 @@ module LibItsGeoNetworking_Functions {
                [] geoNetworkingPort.receive(
                    mw_geoNwInd(
                        mw_geoNwPdu(
                            mw_lsRequestHeader(
                            mw_geoNwLsRequestPacket(
                                p_seqNumber,
                                p_mid
                            )
                        )
                    )
                ) -> value v_msg {
                    p_reqSrcPosVector := valueof(v_msg.msgIn.header.lsRequestHeader.srcPosVector);
                    p_reqSrcPosVector := valueof(v_msg.msgIn.gnPacket.packet.extendedHeader.lsRequestHeader.srcPosVector);
                }
            }
            
@@ -1128,11 +1116,10 @@ module LibItsGeoNetworking_Functions {
                var LongPosVector v_repDstPosVector;
                
                [] a_receiveLsRequest(p_reqSeqNumber, p_mid, v_repDstPosVector) {
                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(m_geoNwPduNoPayload(
                        m_lsReplyHeader(
                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(
                        m_geoNwLsReplyPacket(
                            p_repSrcPosVector,
                            f_longPosVector2ShortPosVector(v_repDstPosVector),
                        p_repSenderPosVector,
                            vc_localSeqNumber
                    )))); 
                }
@@ -1218,9 +1205,8 @@ module LibItsGeoNetworking_Functions {
            
            f_sendGeoNetMessage(
                m_geoNwReq_linkLayerBroadcast(
                    m_geoNwPduNoPayload(
                        m_lsRequestHeader(
                            p_reqSrcPosVector,
                    m_geoNwPdu(
                        m_geoNwLsRequestPacket(
                            p_reqSrcPosVector,
                            p_reqSeqNumber,
                            p_gnAddress
@@ -1234,7 +1220,7 @@ module LibItsGeoNetworking_Functions {
                [] geoNetworkingPort.receive(
                        mw_geoNwInd(
                            mw_geoNwPdu(
                                mw_lsReplyHeader(
                                mw_geoNwLsReplyPacket(
                                    ?,
                                    mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(valueof(p_reqSrcPosVector)))
                                )
@@ -1242,7 +1228,7 @@ module LibItsGeoNetworking_Functions {
                        )
                    ) -> value v_msg { 
                    tc_ac.stop;
                    p_repSrcPosVector := valueof(v_msg.msgIn.header.lsReplyHeader.srcPosVector);
                    p_repSrcPosVector := valueof(v_msg.msgIn.gnPacket.packet.extendedHeader.lsRequestHeader.srcPosVector);
                    v_ret := e_success;
                }
            }
@@ -1406,11 +1392,47 @@ module LibItsGeoNetworking_Functions {
         */
        function f_sendGeoNetMessage(in template (value) GeoNetworkingReq p_geoNetReq) runs on ItsGeoNetworking {
            geoNetworkingPort.send(p_geoNetReq);
            if (not (ischosen(p_geoNetReq.msgOut.header.shbHeader) or ischosen(p_geoNetReq.msgOut.header.beaconHeader))) {
            if (not (ischosen(p_geoNetReq.msgOut.gnPacket.packet.extendedHeader.shbHeader) 
                    or ischosen(p_geoNetReq.msgOut.gnPacket.packet.extendedHeader.beaconHeader))) {
                f_setLocalSequenceNumber();
            }
        }
        
        /**
         * @desc    Sends a GeoNetworking message with a payload and in case of an included sequence number in the message the 
         *          local sequence number will be increased by one.
         * @param   p_geoNetReq The message to send.
         * @param   p_payload   The payload to include.
         */
        function f_sendGeoNetMessageWithPayload(
            in template (value) GeoNetworkingReq p_geoNetReq,
            in template (value) Payload p_payload
        ) runs on ItsGeoNetworking {
            p_geoNetReq.msgOut.gnPacket.packet.payload := p_payload;
            geoNetworkingPort.send(p_geoNetReq);
            if (not (ischosen(p_geoNetReq.msgOut.gnPacket.packet.extendedHeader.shbHeader) 
                    or ischosen(p_geoNetReq.msgOut.gnPacket.packet.extendedHeader.beaconHeader))) {
                f_setLocalSequenceNumber();
            }
        }
        
        /**
         * @desc    Receive a GeoNetworking message with a payload and in case of an included sequence number in the message the 
         *          local sequence number will be increased by one.
         * @param   p_geoNetInd The message to receive.
         * @param   p_payload   The payload to include.
         */
        function f_receiveGeoNetMessageWithPayload(
            in template (present) GeoNetworkingInd p_geoNetInd,
            in template (present) Payload p_payload
        ) return template (present) GeoNetworkingInd {
            var template (present) GeoNetworkingInd v_geoNetInd := p_geoNetInd;
            
            v_geoNetInd.msgIn.gnPacket.packet.payload := p_payload;
            
            return v_geoNetInd;
        }
        
        /**
         * @desc    Sets the value of the sequence number for the next event.
         */
@@ -1432,7 +1454,6 @@ module LibItsGeoNetworking_Functions {
         * @return  Number of messages to be sent
         */                
        function f_getMessageCount() return integer {
        	
            return PX_MESSAGE_COUNT;
        }
        
+7 −13
Original line number Diff line number Diff line
@@ -23,13 +23,7 @@ module LibItsGeoNetworking_Pics {
         */
        modulepar GN_Address PICS_GN_LOCAL_GN_ADDR := {
            typeOfAddress := e_manual,
            stationType := {
                vehicleStation := {
                    stationType := e_vehicleStation,
                    vsKind := e_car   
                }
            },
            stationSubType := e_private,
            stationType := e_passengerCar,
            stationCountryCode := c_uInt10Zero,
            mid := c_6ZeroBytes
        };
@@ -40,12 +34,12 @@ module LibItsGeoNetworking_Pics {
         */
        modulepar TypeOfAddress    PICS_GN_LOCAL_ADDR_CONF_METHOD := e_initial;
        
        /**
         * @desc Type of ITS Station    
         * @see  ETSI TS 102 871-1 v1.1.1 A.40/4
         */
        modulepar StationTypeIdentifier PICS_GN_STATION_TYPE := e_vehicleStation;
        
//        /**
//         * @desc Type of ITS Station    
//         * @see  ETSI TS 102 871-1 v1.1.1 A.40/4
//         */
//        modulepar StationTypeIdentifier PICS_GN_STATION_TYPE := e_vehicleStation;
//        
        /**
         * @desc Minimum update frequency of local position vector (LPV) in ms    
         * @see  ETSI TS 102 871-1 v1.1.1 A.40/5
+4 −28
Original line number Diff line number Diff line
@@ -23,13 +23,7 @@ module LibItsGeoNetworking_Pixits {
             */
            modulepar GN_Address PX_TS_NODE_A_LOCAL_GN_ADDR := {
                typeOfAddress := e_manual,
                stationType := {
                    vehicleStation := {
                        stationType := e_vehicleStation,
                        vsKind := e_car   
                    }
                },
                stationSubType := e_private,
                stationType := e_passengerCar,
                stationCountryCode := c_uInt10Zero,
                mid := c_6ZeroBytes
            };
@@ -39,13 +33,7 @@ module LibItsGeoNetworking_Pixits {
             */
            modulepar GN_Address PX_TS_NODE_B_LOCAL_GN_ADDR := {
                typeOfAddress := e_manual,
                stationType := {
                    vehicleStation := {
                        stationType := e_vehicleStation,
                        vsKind := e_car   
                    }
                },
                stationSubType := e_private,
                stationType := e_passengerCar,
                stationCountryCode := c_uInt10Zero,
                mid := c_6ZeroBytes
            };
@@ -55,13 +43,7 @@ module LibItsGeoNetworking_Pixits {
             */
            modulepar GN_Address PX_TS_NODE_C_LOCAL_GN_ADDR := {
                typeOfAddress := e_manual,
                stationType := {
                    vehicleStation := {
                        stationType := e_vehicleStation,
                        vsKind := e_car   
                    }
                },
                stationSubType := e_private,
                stationType := e_passengerCar,
                stationCountryCode := c_uInt10Zero,
                mid := c_6ZeroBytes
            };
@@ -71,13 +53,7 @@ module LibItsGeoNetworking_Pixits {
             */
            modulepar GN_Address PX_TS_NODE_D_LOCAL_GN_ADDR := {
                typeOfAddress := e_manual,
                stationType := {
                    vehicleStation := {
                        stationType := e_vehicleStation,
                        vsKind := e_car   
                    }
                },
                stationSubType := e_private,
                stationType := e_passengerCar,
                stationCountryCode := c_uInt10Zero,
                mid := c_6ZeroBytes
            };
+871 −820

File changed.

Preview size limit exceeded, changes collapsed.

+4 −4
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ module LibItsGeoNetworking_TestSystem {
             * @desc NT2 GeoNetworking Indication Primitive 
             */
            type record GeoNetworkingInd {
                GeoNetworkingPacket msgIn,
                GeoNetworkingPdu    msgIn,
                MacAddress          macDestinationAddress
            }
            
@@ -134,7 +134,7 @@ module LibItsGeoNetworking_TestSystem {
             * @desc NT2 GeoNetworking Request Primitive 
             */
            type record GeoNetworkingReq {
                GeoNetworkingPacket msgOut,
                GeoNetworkingPdu    msgOut,
                MacAddress          macDestinationAddress
            }
            
Loading