Loading ttcn/GeoNetworking/LibItsGeoNetworking_Functions.ttcn +80 −0 Original line number Diff line number Diff line Loading @@ -344,6 +344,15 @@ module LibItsGeoNetworking_Functions { return v_return; } function f_getAnycastArea(in charstring p_areaName) return AnycastArea { var AnycastArea v_return; // TODO return v_return; } } // end geoPositionFunctions group geoAltsteps { Loading Loading @@ -506,6 +515,73 @@ module LibItsGeoNetworking_Functions { } // end geoGeoBroadcastAltsteps group geoGeoAnycastAltsteps { /** * @desc Receive GeoAnycast packet */ altstep a_receiveGeoAnycast( in template (present) LongPosVector p_srcLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber ) runs on ItsNt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeader( p_srcLongPosVec, p_senderLongPosVec, p_stationType, p_seqNumber )))) { } } /** * @desc Receive GeoAnycast packet with specific Area and HopLimit */ altstep a_receiveGeoAnycastWithAreaWithHopLimit( in template (present) LongPosVector p_srcLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber, in template (present) AnycastArea p_anycastArea, in template (present) UInt8 p_hopLimit ) runs on ItsNt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeaderWithAreaWithHopLimit( p_srcLongPosVec, p_senderLongPosVec, p_stationType, p_seqNumber, p_anycastArea, p_hopLimit )))) { } } /** * @desc Receive GeoAnycast packet for specific GeoAnycast Area */ altstep a_receiveGeoAnycastWithArea( in template (present) LongPosVector p_srcLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber, in template (present) AnycastArea p_anycastArea ) runs on ItsNt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeaderWithArea( p_srcLongPosVec, p_senderLongPosVec, p_stationType, p_seqNumber, p_anycastArea )))) { } } } // end geoGeoAnycastAltsteps group geoLocationServiceAltsteps { /** Loading Loading @@ -695,6 +771,10 @@ module LibItsGeoNetworking_Functions { //TODO } function f_utGenerateGeoAnycastMessage(in charstring p_area) runs on ItsNt { //TODO } function f_utGenerateSHBMessage() runs on ItsNt { //TODO } Loading ttcn/GeoNetworking/LibItsGeoNetworking_Templates.ttcn +157 −13 Original line number Diff line number Diff line Loading @@ -242,7 +242,7 @@ module LibItsGeoNetworking_Templates { geoBroadcastHeader := { commonHeader := m_commonHeader( e_btp, m_geoBroadcastHeaderType(p_broadcastArea.geoBrodcastSubType), m_geoBroadcastHeaderType(p_broadcastArea.geoBroadcastSubType), m_trafficClass, c_defaultHopLimit, p_senderLongPosVec, Loading @@ -252,11 +252,11 @@ module LibItsGeoNetworking_Templates { lifetime := m_lifetime, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, geoAreaPosLatitude := p_broadcastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_broadcastArea.geoAreaPosLongitude, distanceA := p_broadcastArea.distanceA, distanceB := p_broadcastArea.distanceB, angle := p_broadcastArea.angle, geoAreaPosLatitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLongitude, distanceA := p_broadcastArea.geoBroadcastArea.distanceA, distanceB := p_broadcastArea.geoBroadcastArea.distanceB, angle := p_broadcastArea.geoBroadcastArea.angle, reserved2 := c_uInt24Zero } } Loading @@ -272,7 +272,7 @@ module LibItsGeoNetworking_Templates { geoBroadcastHeader := { commonHeader := m_commonHeader( e_btp, m_geoBroadcastHeaderType(p_broadcastArea.geoBrodcastSubType), m_geoBroadcastHeaderType(p_broadcastArea.geoBroadcastSubType), m_trafficClass, p_hopLimit, p_senderLongPosVec, Loading Loading @@ -317,15 +317,15 @@ module LibItsGeoNetworking_Templates { geoBroadcastHeader := { commonHeader := mw_commonHeaderWithSender( ?, mw_geoBroadcastHeaderTypeWithSubType(p_broadcastArea.geoBrodcastSubType), mw_geoBroadcastHeaderTypeWithSubType(p_broadcastArea.geoBroadcastSubType), p_stationType, p_senderLongPosVec ), geoAreaPosLatitude := p_broadcastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_broadcastArea.geoAreaPosLongitude, distanceA := p_broadcastArea.distanceA, distanceB := p_broadcastArea.distanceB, angle := p_broadcastArea.angle geoAreaPosLatitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLongitude, distanceA := p_broadcastArea.geoBroadcastArea.distanceA, distanceB := p_broadcastArea.geoBroadcastArea.distanceB, angle := p_broadcastArea.geoBroadcastArea.angle } } Loading Loading @@ -379,6 +379,150 @@ module LibItsGeoNetworking_Templates { } // end geoBroadcastHeaderTemplates group geoAnycastHeaderTemplates { template (value) Header m_geoAnycastHeader( in template (value) LongPosVector p_sourceLongPosVec, in template (value) LongPosVector p_senderLongPosVec, in template (value) StationTypeIdentifier p_stationType, in template (value) UInt16 p_seqNumber, in template (value) AnycastArea p_anycastArea ) := { geoAnycastHeader := { commonHeader := m_commonHeader( e_btp, m_geoAnycastHeaderType(p_anycastArea.geoAnycastSubType), m_trafficClass, c_defaultHopLimit, p_senderLongPosVec, p_stationType ), seqNumber := p_seqNumber, lifetime := m_lifetime, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, geoAreaPosLatitude := p_anycastArea.geoAnycastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_anycastArea.geoAnycastArea.geoAreaPosLongitude, distanceA := p_anycastArea.geoAnycastArea.distanceA, distanceB := p_anycastArea.geoAnycastArea.distanceB, angle := p_anycastArea.geoAnycastArea.angle, reserved2 := c_uInt24Zero } } template (value) Header m_geoAnycastHeaderWithHopLimit( in template (value) LongPosVector p_sourceLongPosVec, in template (value) LongPosVector p_senderLongPosVec, in template (value) StationTypeIdentifier p_stationType, in template (value) UInt16 p_seqNumber, in template (value) AnycastArea p_anycastArea, in template (value) UInt8 p_hopLimit ) modifies m_geoAnycastHeader := { geoAnycastHeader := { commonHeader := m_commonHeader( e_btp, m_geoAnycastHeaderType(p_anycastArea.geoAnycastSubType), m_trafficClass, p_hopLimit, p_senderLongPosVec, p_stationType ) } } template Header mw_geoAnycastHeader( in template (present) LongPosVector p_sourceLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber ) := { geoAnycastHeader := { commonHeader := mw_commonHeaderWithSender( ?, mw_geoAnycastHeaderType, p_stationType, p_senderLongPosVec ), seqNumber := p_seqNumber, lifetime := ?, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, geoAreaPosLatitude := ?, geoAreaPosLongitude := ?, distanceA := ?, distanceB := ?, angle := ?, reserved2 := c_uInt24Zero } } template Header mw_geoAnycastHeaderWithArea ( in template (present) LongPosVector p_sourceLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber, in template (present) AnycastArea p_anycastArea ) modifies mw_geoAnycastHeader := { geoAnycastHeader := { commonHeader := mw_commonHeaderWithSender( ?, mw_geoAnycastHeaderTypeWithSubType(p_anycastArea.geoAnycastSubType), p_stationType, p_senderLongPosVec ), geoAreaPosLatitude := p_anycastArea.geoAnycastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_anycastArea.geoAnycastArea.geoAreaPosLongitude, distanceA := p_anycastArea.geoAnycastArea.distanceA, distanceB := p_anycastArea.geoAnycastArea.distanceB, angle := p_anycastArea.geoAnycastArea.angle } } template Header mw_geoAnycastHeaderWithAreaWithHopLimit( in template (present) LongPosVector p_sourceLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber, in template (present) AnycastArea p_anycastArea, in template (present) UInt8 p_hopLimit ) modifies mw_geoAnycastHeaderWithArea := { geoAnycastHeader := { commonHeader := mw_commonHeaderWithSenderWithHopLimit( ?, mw_geoAnycastHeaderType, p_stationType, p_senderLongPosVec, p_hopLimit ) } } template (value) HeaderTST m_geoAnycastHeaderType( in template (value) HeaderSubTypeGeoAnycast p_headerSubType ) := { geoAnycastHdr := { headerType := e_geoAnycast, headerSubType := p_headerSubType } } template HeaderTST mw_geoAnycastHeaderType := { geoAnycastHdr := { headerType := e_geoAnycast, headerSubType := ? } } template HeaderTST mw_geoAnycastHeaderTypeWithSubType( in template (present) HeaderSubTypeGeoAnycast p_headerSubType ) modifies mw_geoAnycastHeaderType := { geoAnycastHdr := { headerSubType := p_headerSubType } } } // end geoAnycastHeaderTemplates group lsRequestHeaderTemplates { template (value) Header m_lsRequestHeader( Loading ttcn/GeoNetworking/LibItsGeoNetworking_TypesAndValues.ttcn +11 −2 Original line number Diff line number Diff line Loading @@ -45,8 +45,7 @@ module LibItsGeoNetworking_TypesAndValues { type record of PositionEntry PositionTable; type record BroadcastArea { HeaderSubTypeGeoBroadcast geoBrodcastSubType, type record Area { UInt32 geoAreaPosLatitude, UInt32 geoAreaPosLongitude, UInt16 distanceA, Loading @@ -54,6 +53,16 @@ module LibItsGeoNetworking_TypesAndValues { UInt8 angle } type record BroadcastArea { HeaderSubTypeGeoBroadcast geoBroadcastSubType, Area geoBroadcastArea } type record AnycastArea { HeaderSubTypeGeoAnycast geoAnycastSubType, Area geoAnycastArea } } // end geoConfigurationTypes group geoNwValues { Loading Loading
ttcn/GeoNetworking/LibItsGeoNetworking_Functions.ttcn +80 −0 Original line number Diff line number Diff line Loading @@ -344,6 +344,15 @@ module LibItsGeoNetworking_Functions { return v_return; } function f_getAnycastArea(in charstring p_areaName) return AnycastArea { var AnycastArea v_return; // TODO return v_return; } } // end geoPositionFunctions group geoAltsteps { Loading Loading @@ -506,6 +515,73 @@ module LibItsGeoNetworking_Functions { } // end geoGeoBroadcastAltsteps group geoGeoAnycastAltsteps { /** * @desc Receive GeoAnycast packet */ altstep a_receiveGeoAnycast( in template (present) LongPosVector p_srcLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber ) runs on ItsNt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeader( p_srcLongPosVec, p_senderLongPosVec, p_stationType, p_seqNumber )))) { } } /** * @desc Receive GeoAnycast packet with specific Area and HopLimit */ altstep a_receiveGeoAnycastWithAreaWithHopLimit( in template (present) LongPosVector p_srcLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber, in template (present) AnycastArea p_anycastArea, in template (present) UInt8 p_hopLimit ) runs on ItsNt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeaderWithAreaWithHopLimit( p_srcLongPosVec, p_senderLongPosVec, p_stationType, p_seqNumber, p_anycastArea, p_hopLimit )))) { } } /** * @desc Receive GeoAnycast packet for specific GeoAnycast Area */ altstep a_receiveGeoAnycastWithArea( in template (present) LongPosVector p_srcLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber, in template (present) AnycastArea p_anycastArea ) runs on ItsNt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoAnycastHeaderWithArea( p_srcLongPosVec, p_senderLongPosVec, p_stationType, p_seqNumber, p_anycastArea )))) { } } } // end geoGeoAnycastAltsteps group geoLocationServiceAltsteps { /** Loading Loading @@ -695,6 +771,10 @@ module LibItsGeoNetworking_Functions { //TODO } function f_utGenerateGeoAnycastMessage(in charstring p_area) runs on ItsNt { //TODO } function f_utGenerateSHBMessage() runs on ItsNt { //TODO } Loading
ttcn/GeoNetworking/LibItsGeoNetworking_Templates.ttcn +157 −13 Original line number Diff line number Diff line Loading @@ -242,7 +242,7 @@ module LibItsGeoNetworking_Templates { geoBroadcastHeader := { commonHeader := m_commonHeader( e_btp, m_geoBroadcastHeaderType(p_broadcastArea.geoBrodcastSubType), m_geoBroadcastHeaderType(p_broadcastArea.geoBroadcastSubType), m_trafficClass, c_defaultHopLimit, p_senderLongPosVec, Loading @@ -252,11 +252,11 @@ module LibItsGeoNetworking_Templates { lifetime := m_lifetime, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, geoAreaPosLatitude := p_broadcastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_broadcastArea.geoAreaPosLongitude, distanceA := p_broadcastArea.distanceA, distanceB := p_broadcastArea.distanceB, angle := p_broadcastArea.angle, geoAreaPosLatitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLongitude, distanceA := p_broadcastArea.geoBroadcastArea.distanceA, distanceB := p_broadcastArea.geoBroadcastArea.distanceB, angle := p_broadcastArea.geoBroadcastArea.angle, reserved2 := c_uInt24Zero } } Loading @@ -272,7 +272,7 @@ module LibItsGeoNetworking_Templates { geoBroadcastHeader := { commonHeader := m_commonHeader( e_btp, m_geoBroadcastHeaderType(p_broadcastArea.geoBrodcastSubType), m_geoBroadcastHeaderType(p_broadcastArea.geoBroadcastSubType), m_trafficClass, p_hopLimit, p_senderLongPosVec, Loading Loading @@ -317,15 +317,15 @@ module LibItsGeoNetworking_Templates { geoBroadcastHeader := { commonHeader := mw_commonHeaderWithSender( ?, mw_geoBroadcastHeaderTypeWithSubType(p_broadcastArea.geoBrodcastSubType), mw_geoBroadcastHeaderTypeWithSubType(p_broadcastArea.geoBroadcastSubType), p_stationType, p_senderLongPosVec ), geoAreaPosLatitude := p_broadcastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_broadcastArea.geoAreaPosLongitude, distanceA := p_broadcastArea.distanceA, distanceB := p_broadcastArea.distanceB, angle := p_broadcastArea.angle geoAreaPosLatitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_broadcastArea.geoBroadcastArea.geoAreaPosLongitude, distanceA := p_broadcastArea.geoBroadcastArea.distanceA, distanceB := p_broadcastArea.geoBroadcastArea.distanceB, angle := p_broadcastArea.geoBroadcastArea.angle } } Loading Loading @@ -379,6 +379,150 @@ module LibItsGeoNetworking_Templates { } // end geoBroadcastHeaderTemplates group geoAnycastHeaderTemplates { template (value) Header m_geoAnycastHeader( in template (value) LongPosVector p_sourceLongPosVec, in template (value) LongPosVector p_senderLongPosVec, in template (value) StationTypeIdentifier p_stationType, in template (value) UInt16 p_seqNumber, in template (value) AnycastArea p_anycastArea ) := { geoAnycastHeader := { commonHeader := m_commonHeader( e_btp, m_geoAnycastHeaderType(p_anycastArea.geoAnycastSubType), m_trafficClass, c_defaultHopLimit, p_senderLongPosVec, p_stationType ), seqNumber := p_seqNumber, lifetime := m_lifetime, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, geoAreaPosLatitude := p_anycastArea.geoAnycastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_anycastArea.geoAnycastArea.geoAreaPosLongitude, distanceA := p_anycastArea.geoAnycastArea.distanceA, distanceB := p_anycastArea.geoAnycastArea.distanceB, angle := p_anycastArea.geoAnycastArea.angle, reserved2 := c_uInt24Zero } } template (value) Header m_geoAnycastHeaderWithHopLimit( in template (value) LongPosVector p_sourceLongPosVec, in template (value) LongPosVector p_senderLongPosVec, in template (value) StationTypeIdentifier p_stationType, in template (value) UInt16 p_seqNumber, in template (value) AnycastArea p_anycastArea, in template (value) UInt8 p_hopLimit ) modifies m_geoAnycastHeader := { geoAnycastHeader := { commonHeader := m_commonHeader( e_btp, m_geoAnycastHeaderType(p_anycastArea.geoAnycastSubType), m_trafficClass, p_hopLimit, p_senderLongPosVec, p_stationType ) } } template Header mw_geoAnycastHeader( in template (present) LongPosVector p_sourceLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber ) := { geoAnycastHeader := { commonHeader := mw_commonHeaderWithSender( ?, mw_geoAnycastHeaderType, p_stationType, p_senderLongPosVec ), seqNumber := p_seqNumber, lifetime := ?, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, geoAreaPosLatitude := ?, geoAreaPosLongitude := ?, distanceA := ?, distanceB := ?, angle := ?, reserved2 := c_uInt24Zero } } template Header mw_geoAnycastHeaderWithArea ( in template (present) LongPosVector p_sourceLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber, in template (present) AnycastArea p_anycastArea ) modifies mw_geoAnycastHeader := { geoAnycastHeader := { commonHeader := mw_commonHeaderWithSender( ?, mw_geoAnycastHeaderTypeWithSubType(p_anycastArea.geoAnycastSubType), p_stationType, p_senderLongPosVec ), geoAreaPosLatitude := p_anycastArea.geoAnycastArea.geoAreaPosLatitude, geoAreaPosLongitude := p_anycastArea.geoAnycastArea.geoAreaPosLongitude, distanceA := p_anycastArea.geoAnycastArea.distanceA, distanceB := p_anycastArea.geoAnycastArea.distanceB, angle := p_anycastArea.geoAnycastArea.angle } } template Header mw_geoAnycastHeaderWithAreaWithHopLimit( in template (present) LongPosVector p_sourceLongPosVec, in template (present) LongPosVector p_senderLongPosVec, in template (present) StationTypeIdentifier p_stationType, in template (present) UInt16 p_seqNumber, in template (present) AnycastArea p_anycastArea, in template (present) UInt8 p_hopLimit ) modifies mw_geoAnycastHeaderWithArea := { geoAnycastHeader := { commonHeader := mw_commonHeaderWithSenderWithHopLimit( ?, mw_geoAnycastHeaderType, p_stationType, p_senderLongPosVec, p_hopLimit ) } } template (value) HeaderTST m_geoAnycastHeaderType( in template (value) HeaderSubTypeGeoAnycast p_headerSubType ) := { geoAnycastHdr := { headerType := e_geoAnycast, headerSubType := p_headerSubType } } template HeaderTST mw_geoAnycastHeaderType := { geoAnycastHdr := { headerType := e_geoAnycast, headerSubType := ? } } template HeaderTST mw_geoAnycastHeaderTypeWithSubType( in template (present) HeaderSubTypeGeoAnycast p_headerSubType ) modifies mw_geoAnycastHeaderType := { geoAnycastHdr := { headerSubType := p_headerSubType } } } // end geoAnycastHeaderTemplates group lsRequestHeaderTemplates { template (value) Header m_lsRequestHeader( Loading
ttcn/GeoNetworking/LibItsGeoNetworking_TypesAndValues.ttcn +11 −2 Original line number Diff line number Diff line Loading @@ -45,8 +45,7 @@ module LibItsGeoNetworking_TypesAndValues { type record of PositionEntry PositionTable; type record BroadcastArea { HeaderSubTypeGeoBroadcast geoBrodcastSubType, type record Area { UInt32 geoAreaPosLatitude, UInt32 geoAreaPosLongitude, UInt16 distanceA, Loading @@ -54,6 +53,16 @@ module LibItsGeoNetworking_TypesAndValues { UInt8 angle } type record BroadcastArea { HeaderSubTypeGeoBroadcast geoBroadcastSubType, Area geoBroadcastArea } type record AnycastArea { HeaderSubTypeGeoAnycast geoAnycastSubType, Area geoAnycastArea } } // end geoConfigurationTypes group geoNwValues { Loading