Newer
Older
} // end upperTester
/**
* @desc Triggers event in the test system adaptation.
* @param p_event The event to trigger
* @return
function f_acTriggerEvent(template (value) AcGNEvent p_event) runs on ItsNt return FncRetCode {
var FncRetCode v_ret := e_success;
}
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
group commonFunctions {
/**
* @desc Gets the value of the lifetime in seconds.
* @return
*/
function f_getLifetimeValue(in Lifetime p_lifetime) runs on ItsNt return float {
var float v_lifetime := 0.0;
select (p_lifetime.ltBase) {
case (e_50ms) {
v_lifetime := int2float(p_lifetime.multiplier) * 0.5;
}
case (e_1s) {
v_lifetime := int2float(p_lifetime.multiplier) * 1.0;
}
case (e_10s) {
v_lifetime := int2float(p_lifetime.multiplier) * 10.0;
}
case (e_100s) {
v_lifetime := int2float(p_lifetime.multiplier) * 100.0;
}
}
return v_lifetime;
}
} // end commonFunctions
* @desc Sends a GeoNetworking message 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 sent.
*/
function f_sendGeoNetMessage(in template (value) GeoNetworkingReq p_geoNetReq) runs on ItsNt {
geoNetworkingPort.send(p_geoNetReq);
if (not (ischosen(p_geoNetReq.msgOut.header.shbHeader) or ischosen(p_geoNetReq.msgOut.header.beaconHeader))) {
f_setLocalSequenceNumber();
}
/**
* @desc Sets the value of the sequence number for the next event.
* @return
*/
function f_setLocalSequenceNumber() runs on ItsNt {
}
} // end testerFunctions
group iutFunctions {
function f_getIutGnLocalAddress() return GN_Address {
* @desc Gets the LS retransmission timer.. Valid for NetRepInterval = default (cong. ctrl).
* @return
*/
function f_getLSRetransmitTimer() return float {
var float v_itsGnLocationServiceRetransmitTimer := int2float(PICS_GN_LOCATION_SERVICE_RETRANSMIT_TIMER/1000);
return v_itsGnLocationServiceRetransmitTimer;
}
* @desc Gets the LS retransmission timer for NetRepInterval = medium (cong. ctrl).
* @return
*/
function f_getLSRetransmitTimerMedium() return float {
var float v_itsGnLocationServiceRetransmitTimerMedium := int2float(PIXIT_GN_LOCATION_SERVICE_TIMER_MEDIUM/1000);
* @desc Gets the LS retransmission timer for NetRepInterval = maximum (cong. ctrl).
* @return
*/
function f_getLSRetransmitTimerMaximum() return float {
var float v_itsGnLocationServiceRetransmitTimerMaximum := int2float(PIXIT_GN_LOCATION_SERVICE_TIMER_MAXIMUM/1000);
/**
* @desc Gets the App retransmission timer. Valid for AppRepInterval = default (cong. ctrl).
* @return
*/
function f_getAppRetransmitTimer() return float {
var float v_itsGnLocationApplicationRetransmitTimer := int2float(PX_GN_APPLICATION_RETRANSMIT_TIMER/1000);
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
}
/**
* @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;
}
/**
* @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;
}
/**
* @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;
}
/**
* @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;
return v_itsGnLocationServicePacketBufferSize;
} // end f_getLSPacketBufferSize
/**
* @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;
return v_itsGnUcForwardingPacketBufferSize;
} // end f_getUcForwardingPacketBufferSize
/**
* @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;
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 {
return v_deltaTimer;
}
/**
* @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);
return v_itsGnBeaconServiceRetransmitTimer;
}
/**
* @desc Gets the beacon service retransmit timer for NetBeaconInterval = medium (cong. ctrl).
* @return
*/
function f_getBSRetransmitTimerMedium() return float {
var float v_itsGnBeaconServiceRetransmitTimerMedium; // timer value increased (medium)
v_itsGnBeaconServiceRetransmitTimerMedium := int2float(
(PX_GN_BEACON_SERVICE_TIMER_MEDIUM+float2int((f_getBSMaxJitter() - 0.0 +1.0)*rnd()) + 0)/1000);
}
/**
* @desc Gets the beacon service retransmit timer for NetBeaconInterval = maximum (cong. ctrl).
* @return
*/
function f_getBSRetransmitTimerMaximum() return float {
var float v_itsGnBeaconServiceRetransmitTimerMaximum; // timer value increased (maximum)
v_itsGnBeaconServiceRetransmitTimerMaximum := int2float(
(PX_GN_BEACON_SERVICE_TIMER_MAXIMUM+float2int((f_getBSMaxJitter() - 0.0 +1.0)*rnd()) + 0)/1000);
/**
* @desc Gets the maximum beacon service jitter.
* @return
*/
function f_getBSMaxJitter() return float {
var float v_itsGnBeaconServiceMaxJitter := (f_getMaxPacketLifeTime()*1000.0)/4.0;
return v_itsGnBeaconServiceMaxJitter;
}
/**
* @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
*/
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
} // end iutFunctions
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
};
function f_getIutLongPosVector() return LongPosVector {
var LongPosVector v_longPosVector := valueof(m_dummyLongPosVector);
//TODO
return v_longPosVector;
}
function f_getIutShortPosVector() return ShortPosVector {
return f_longPosVector2ShortPosVector(f_getIutLongPosVector());
group externalFunctions {
external function fx_computeDistance(
in UInt32 p_latitudeA, in UInt32 p_longitudeA,
in UInt32 p_latitudeB, in UInt32 p_longitudeB
) return float;
}