Skip to content
LibItsGeoNetworking_Functions.ttcn 49.1 KiB
Newer Older
fischer's avatar
fischer committed
         * @desc Gets the LS retransmission timer.. Valid for NetRepInterval = default (cong. ctrl).
         * @return 
         */
        function f_getLSRetransmitTimer() return float {
tepelmann's avatar
tepelmann committed
            var float v_itsGnLocationServiceRetransmitTimer := int2float(PICS_GN_LOCATION_SERVICE_RETRANSMIT_TIMER/1000);
            
            return v_itsGnLocationServiceRetransmitTimer;
        }
        
fischer's avatar
fischer committed
        /**
fischer's avatar
fischer committed
         * @desc Gets the LS retransmission timer for NetRepInterval = medium (cong. ctrl).
fischer's avatar
fischer committed
         * @return 
         */
        function f_getLSRetransmitTimerMedium() return float {
tepelmann's avatar
tepelmann committed
            var float v_itsGnLocationServiceRetransmitTimerMedium := int2float(PIXIT_GN_LOCATION_SERVICE_TIMER_MEDIUM/1000);
fischer's avatar
fischer committed
            
tepelmann's avatar
tepelmann committed
            return v_itsGnLocationServiceRetransmitTimerMedium;
fischer's avatar
fischer committed
        }
        
        /**
fischer's avatar
fischer committed
         * @desc Gets the LS retransmission timer for NetRepInterval = maximum (cong. ctrl).
fischer's avatar
fischer committed
         * @return 
         */
        function f_getLSRetransmitTimerMaximum() return float {
tepelmann's avatar
tepelmann committed
            var float v_itsGnLocationServiceRetransmitTimerMaximum := int2float(PIXIT_GN_LOCATION_SERVICE_TIMER_MAXIMUM/1000);
fischer's avatar
fischer committed
            
tepelmann's avatar
tepelmann committed
            return v_itsGnLocationServiceRetransmitTimerMaximum;
fischer's avatar
fischer committed
        }
fischer's avatar
fischer committed

        /**
         * @desc Gets the App retransmission timer. Valid for AppRepInterval = default (cong. ctrl).
         * @return 
         */
        function f_getAppRetransmitTimer() return float {
tepelmann's avatar
tepelmann committed
            var float v_itsGnLocationApplicationRetransmitTimer := int2float(PX_GN_APPLICATION_RETRANSMIT_TIMER/1000);
fischer's avatar
fischer committed
            
tepelmann's avatar
tepelmann committed
            return v_itsGnLocationApplicationRetransmitTimer;
fischer's avatar
fischer committed
        }
        
        /**
         * @desc Gets the App retransmission timer for AppRepInterval = medium (cong. ctrl).
         * @return 
         */
        function f_getAppRetransmitTimerMedium() return float {
            var float v_itsGnLocationServiceRetransmitTimer := 2.0;
            
            //TODO get the value from PIXIT or MIB
            
            return v_itsGnLocationServiceRetransmitTimer;
        }
        
        /**
         * @desc Gets the App retransmission timer for AppRepInterval = maximum (cong. ctrl).
         * @return 
         */
        function f_getAppRetransmitTimerMaximum() return float {
            var float v_itsGnLocationServiceRetransmitTimer := 3.0;
            
            //TODO get the value from PIXIT or MIB
            
            return v_itsGnLocationServiceRetransmitTimer;
        }
fischer's avatar
fischer committed
        
        /**
         * @desc Gets the LS maximum retransmission number.
         * @return 
         */
        function f_getLSMaxRetrans() return integer {
            var integer v_itsGnLocationServiceMaxRetrans := PICS_GN_LOCATION_SERVICE_MAX_RETRANS;
            
            return v_itsGnLocationServiceMaxRetrans;
        }
fischer's avatar
fischer committed

        /**
         * @desc Gets the Application maximum retransmission number.
         * @return 
         */
        function f_getAppMaxRetrans() return integer {
            var integer v_itsGnLocationServiceMaxRetrans := 10;
            
            //TODO get the value from PIXIT or MIB
            
            return v_itsGnLocationServiceMaxRetrans;
        }
tepelmann's avatar
tepelmann committed
        /**
         * @desc Gets the Location Service packet buffer size.
         * @return 
         */        
        function f_getLSPacketBufferSize() return integer {
            var integer v_itsGnLocationServicePacketBufferSize := PICS_GN_LOCATION_SERVICE_PACKET_BUFFER_SIZE;
tepelmann's avatar
tepelmann committed
            
            return v_itsGnLocationServicePacketBufferSize;
        } // end f_getLSPacketBufferSize
        
berge's avatar
berge committed
        /**
         * @desc Gets the UC forwarding packet buffer size.
         * @return 
         */        
        function f_getUcForwardingPacketBufferSize() return integer {
            var integer v_itsGnUcForwardingPacketBufferSize := PICS_GN_UC_FORWARDING_PACKET_BUFFER_SIZE;
berge's avatar
berge committed
            
            return v_itsGnUcForwardingPacketBufferSize;
        } // end f_getUcForwardingPacketBufferSize
        
berge's avatar
berge committed
        /**
         * @desc Gets the BC forwarding packet buffer size.
         * @return 
         */        
        function f_getBcForwardingPacketBufferSize() return integer {
            var integer v_itsGnBcForwardingPacketBufferSize := PICS_GN_BC_FORWARDING_PACKET_BUFFER_SIZE;
berge's avatar
berge committed
            
            return v_itsGnBcForwardingPacketBufferSize;
        } // end f_getBcForwardingPacketBufferSize        
        
        /**
         * @desc Gets the upper limit of the maximum lifetime.
         * @return 
         */
        function f_getMaxPacketLifeTime() return float {
            var float v_itsGnMaxPacketLifetime := int2float(PICS_GN_MAX_PACKET_LIFETIME);
            
            return v_itsGnMaxPacketLifetime;
        }
        
        /**
         * @desc Gets delta for timers.
         * @return 
         */
        function f_getDeltaTimer() return float {
tepelmann's avatar
tepelmann committed
            var float v_deltaTimer := PX_T_DELTA;
        /**
         * @desc Gets the beacon service retransmit timer.
         * @return 
         */
        function f_getBSRetransmitTimer() return float {
            var float v_itsGnBeaconServiceRetransmitTimer;
            v_itsGnBeaconServiceRetransmitTimer := int2float(
                (PICS_GN_BEACON_SERVICE_TIMER+float2int((f_getBSMaxJitter() - 0.0 +1.0)*rnd()) + 0)/1000);
fischer's avatar
fischer committed
        /**
         * @desc Gets the beacon service retransmit timer for NetBeaconInterval = medium (cong. ctrl).
         * @return 
         */
        function f_getBSRetransmitTimerMedium() return float {
tepelmann's avatar
tepelmann committed
            var float v_itsGnBeaconServiceRetransmitTimerMedium; // timer value increased (medium)
tepelmann's avatar
tepelmann committed
            v_itsGnBeaconServiceRetransmitTimerMedium := int2float(
                (PX_GN_BEACON_SERVICE_TIMER_MEDIUM+float2int((f_getBSMaxJitter() - 0.0 +1.0)*rnd()) + 0)/1000);
tepelmann's avatar
tepelmann committed
            return v_itsGnBeaconServiceRetransmitTimerMedium;
fischer's avatar
fischer committed
        }
        
        /**
         * @desc Gets the beacon service retransmit timer for NetBeaconInterval = maximum (cong. ctrl).
         * @return 
         */
        function f_getBSRetransmitTimerMaximum() return float {
tepelmann's avatar
tepelmann committed
            var float v_itsGnBeaconServiceRetransmitTimerMaximum; // timer value increased (maximum)
tepelmann's avatar
tepelmann committed
            v_itsGnBeaconServiceRetransmitTimerMaximum := int2float(
                (PX_GN_BEACON_SERVICE_TIMER_MAXIMUM+float2int((f_getBSMaxJitter() - 0.0 +1.0)*rnd()) + 0)/1000);
tepelmann's avatar
tepelmann committed
            return v_itsGnBeaconServiceRetransmitTimerMaximum;
        /**
         * @desc Gets the maximum beacon service jitter.
         * @return 
         */
        function f_getBSMaxJitter() return float {
            var float v_itsGnBeaconServiceMaxJitter := (f_getMaxPacketLifeTime()*1000.0)/4.0;

        /**
         * @desc Gets the Lifetime of a Location Table Entry.
         * @return 
         */        
        function f_getLifetimeLocTE() return float {
            var float v_itsGnLifetimeLocTE := int2float(PICS_GN_LIFETIME_LOC_TE);
            
            return v_itsGnLifetimeLocTE;
        } // end f_getLifetimeLocTE
        /**
         * @desc Set the number of neighbour in the Location Table.
         * @return 
         */        
fischer's avatar
fischer committed
        function f_setNrNeighbourLocTableDefault() {
            var integer v_nrNeighbour := f_random (0, PX_MIN_NR_NEIGHBOUR);
            //TODO set the number of Neighbour in the IUT Location Table to v_nrNeighbour
            
        } // end f_setNrNeighbourLT
        
        /**
         * @desc Set the number of neighbour in the Location Table.
         * @return 
         */        
        function f_setNrNeighbourLocTableMedium() {
            var integer v_nrNeighbour := f_random (PX_MIN_NR_NEIGHBOUR, PX_MAX_NR_NEIGHBOUR);
            //TODO set the number of Neighbour in the IUT Location Table to v_nrNeighbour
            
        } // end f_setNrNeighbourLT
        
        /**
         * @desc Set the number of neighbour in the Location Table.
         * @return 
         */        
        function f_setNrNeighbourLocTableMaximum() {
            var integer v_nrNeighbour := f_random (PX_MAX_NR_NEIGHBOUR, (2*PX_MIN_NR_NEIGHBOUR));
            //TODO set the number of Neighbour in the IUT Location Table to v_nrNeighbour
            
        } // end f_setNrNeighbourLT
        
berge's avatar
berge committed
    group posVectorFunctions {
        
berge's avatar
berge committed
        function f_longPosVector2ShortPosVector(in LongPosVector p_longPosVector) return ShortPosVector {
            var ShortPosVector v_shortPosVector;
            
            v_shortPosVector := {
                gnAddr := p_longPosVector.gnAddr, 
                timestamp := p_longPosVector.timestamp, 
                latitude := p_longPosVector.latitude, 
                longitude := p_longPosVector.longitude
            };
            
berge's avatar
berge committed
            return v_shortPosVector; 
        }
        
        function f_getIutLongPosVector() return LongPosVector {
berge's avatar
berge committed
            var LongPosVector v_longPosVector := valueof(m_dummyLongPosVector);
            return v_longPosVector; 
        }
        
        function f_getIutShortPosVector() return ShortPosVector {
            return f_longPosVector2ShortPosVector(f_getIutLongPosVector()); 
berge's avatar
berge committed
    } // end posVectorFunctions
    
    group externalFunctions {
        
        external function fx_computeDistance(
            in UInt32 p_latitudeA, in UInt32 p_longitudeA, 
            in UInt32 p_latitudeB, in UInt32 p_longitudeB
        ) return float;
               
    }
    
berge's avatar
berge committed
} // end LibItsGeoNetworking_Functions