LibItsGeoNetworking_Templates.ttcn 48.3 KB
Newer Older
berge's avatar
berge committed
		    
		} // end beaconHeaderTemplates                    
        group shbHeaderTemplates {
            
            template (value) Header m_shbHeader(
                in template (value) LongPosVector p_senderLongPosVec,
                in template (value) StationTypeIdentifier p_stationType
            ) := {
                shbHeader := {
                    commonHeader := m_commonHeader(
                        e_any,
                        m_shbHeaderType,
                        m_trafficClass,
                        c_defaultHopLimit,
                        p_senderLongPosVec,
                        p_stationType
                    )
                }
            }
            
            template Header mw_shbHeader(
                in template (present) StationTypeIdentifier p_stationType
fischer's avatar
fischer committed
                    commonHeader := mw_commonHeaderWithHopLimit(
                        ?, // SE PV
                        ?, // NH
                        m_shbHeaderType, // HT + HST
                        p_stationType,
                        1 // HL
                    )
                }
            }
            
            template (value) HeaderTST m_shbHeaderType := {
                tsbHdr := {
                  headerType := e_topologicallyScopedBroadcast,
                  headerSubType := e_singleHop
                }
            }      
            
        } // end shbHeaderTemplates
        
tepelmann's avatar
tepelmann committed
        group tsbHeaderTemplates {
            
            template Header m_tsbHeader(
                in template (value) LongPosVector p_senderLongPosVec,
                in template (value) StationTypeIdentifier p_stationType,
                in template (value) UInt16 p_seqNumber,
                in template (value) LongPosVector p_srcPosVector
            ) := {
                tsbHeader := {
                    commonHeader := m_commonHeader(
                        e_any, 
                        m_shbHeaderType, 
                        m_trafficClass,
                        c_defaultHopLimit, 
                        p_senderLongPosVec,
                        p_stationType
                    ),
                    seqNumber := p_seqNumber,
                    lifetime := m_defaultLifetime,
tepelmann's avatar
tepelmann committed
                    reserved := c_uInt8Zero,
                    srcPosVector := p_srcPosVector
                }
            }
            
            template Header m_tsbHeaderWithHopLimit(
                in template (value) LongPosVector p_senderLongPosVec,
                in template (value) StationTypeIdentifier p_stationType,
                in template (value) UInt16 p_seqNumber,
                in template (value) LongPosVector p_srcPosVector,
                in template (value) UInt8 p_hopLimit
            ) modifies m_tsbHeader := {
                tsbHeader := {
                    commonHeader := {
                        hopLimit := p_hopLimit
                    }
                }
            }
            
            template Header mw_tsbHeader(
                in template (present) StationTypeIdentifier p_stationType,
                in template (present) UInt16 p_seqNumber, 
fischer's avatar
fischer committed
                in template (present) LongPosVector p_sourceLongPosVec
tepelmann's avatar
tepelmann committed
            ) := {
                tsbHeader := {
                    commonHeader := mw_commonHeader(
fischer's avatar
fischer committed
                    	?,
                        e_any,
                        m_tsbHeaderType,
                        p_stationType
tepelmann's avatar
tepelmann committed
                    ),
                    seqNumber := p_seqNumber,
                    lifetime := ?,
                    reserved := ?,
fischer's avatar
fischer committed
                    srcPosVector := p_sourceLongPosVec
                }
            }
            
            template Header mw_tsbHeaderWithSenderPv(
                in template (present) LongPosVector p_senderLongPosVec,
                in template (present) StationTypeIdentifier p_stationType,
                in template (present) UInt16 p_seqNumber, 
                in template (present) LongPosVector p_sourceLongPosVec
            ) := {
                tsbHeader := {
                    commonHeader := mw_commonHeader(
                    	p_senderLongPosVec,
                        e_any,
                        m_tsbHeaderType,
                        p_stationType
                    ),
                    seqNumber := p_seqNumber,
                    lifetime := ?,
                    reserved := ?,
                    srcPosVector := p_sourceLongPosVec
tepelmann's avatar
tepelmann committed
                }
            }
            
            template Header mw_tsbHeaderWithHopLimit(
                in template (present) StationTypeIdentifier p_stationType,
                in template (present) UInt16 p_seqNumber, 
berge's avatar
berge committed
                in template (present) LongPosVector p_sourceLongPosVec,
tepelmann's avatar
tepelmann committed
                in template (present) UInt8 p_hopLimit 
            ) modifies mw_tsbHeader := {
                tsbHeader := {
                    commonHeader := {
                      hopLimit := p_hopLimit
                    }
                }
            }
            
            template (value) HeaderTST m_tsbHeaderType := {
                tsbHdr := {
                  headerType := e_topologicallyScopedBroadcast,
                  headerSubType := e_multiHop
                }
            }      
            
        } // end tsbHeaderTemplates
        
    } // end geoNwHeadersTemplates
berge's avatar
berge committed
    
berge's avatar
berge committed
    group geoPayloadTemplates {
        
        template Payload mw_otherPayload(in template (present) octetstring p_payload) := {
            otherPayload := p_payload
        }
        
    } // end geoPayloadTemplates
    
berge's avatar
berge committed
    group geoMiscTemplates {
        
        group geoDummyTemplates {
            
            template (value) GN_Address m_dummyGnAddr := {
                typeOfAddress := e_manual,
                stationType := {
                    vehicleStation := {
                        stationType := e_vehicleStation,
                        vsKind := e_car   
                    }
                },
                stationSubType := e_private,
                stationCountryCode := c_uInt10Zero,
berge's avatar
berge committed
            template (value) LongPosVector m_dummyLongPosVector := {
berge's avatar
berge committed
                gnAddr := m_dummyGnAddr,
                timestamp := c_uInt32Zero,
                latitude := c_uInt32Zero,
berge's avatar
berge committed
                longitude := c_uInt32Zero,
                speed := c_uInt16Zero,
                heading := c_uInt16Zero,
                altitude := c_uInt16Zero,
                timeAccuracy := c_uInt4Zero,
                posAccuracy := c_uInt4Zero,
                speedAccuracy := c_uInt3Zero,
                headingAccuracy := c_uInt3Zero,
                altitudeAccuracy := c_uInt2Zero
            }
            
berge's avatar
berge committed
            template (value) Area m_dummyArea := {
                geoAreaPosLatitude := c_uInt32Zero,
                geoAreaPosLongitude := c_uInt32Zero,
                distanceA := c_uInt16Zero,
                distanceB := c_uInt16Zero,
                angle := c_uInt8Zero    
            }
        
            template (value) GeoBroadcastArea m_dummyGeoBroadcastArea := {
berge's avatar
berge committed
                geoBroadcastSubType := e_geoBroadcastRect,
                geoBroadcastArea := m_dummyArea
            }
            
berge's avatar
berge committed
        } // end geoDummyTemplates
        
    } // end geoMiscTemplates
    
berge's avatar
berge committed
} // end ItsGeoNetworking_Templates