Returns the time and space coordinates when the transmission arrives at the object that moves with the provided mobility.
The result might be an approximation only, because there's a tradeoff between precision and performance. This function never returns nullptr.
58 const simtime_t startTime = transmission->getStartTime();
59 const simtime_t endTime = transmission->getEndTime();
60 const Coord& startPosition = transmission->getStartPosition();
61 const Coord& endPosition = transmission->getEndPosition();
63 const simtime_t startPropagationTime = startPosition.distance(startArrivalPosition) /
propagationSpeed.
get();
64 const simtime_t startArrivalTime = startTime + startPropagationTime;
65 const Quaternion& startArrivalOrientation = mobility->getCurrentAngularPosition();
67 const Coord& endArrivalPosition = startArrivalPosition;
68 const simtime_t endPropagationTime = startPropagationTime;
69 const simtime_t endArrivalTime = endTime + startPropagationTime;
70 const simtime_t preambleDuration = transmission->getPreambleDuration();
71 const simtime_t headerDuration = transmission->getHeaderDuration();
72 const simtime_t dataDuration = transmission->getDataDuration();
73 const Quaternion& endArrivalOrientation = mobility->getCurrentAngularPosition();
74 return new Arrival(startPropagationTime, endPropagationTime, startArrivalTime, endArrivalTime, preambleDuration, headerDuration, dataDuration, startArrivalPosition, endArrivalPosition, startArrivalOrientation, endArrivalOrientation);
78 const simtime_t endPropagationTime = endPosition.distance(endArrivalPosition) /
propagationSpeed.
get();
79 const simtime_t endArrivalTime = endTime + endPropagationTime;
80 const simtime_t preambleDuration = transmission->getPreambleDuration();
81 const simtime_t headerDuration = transmission->getHeaderDuration();
82 const simtime_t dataDuration = transmission->getDataDuration();
83 const Quaternion& endArrivalOrientation = mobility->getCurrentAngularPosition();
84 return new Arrival(startPropagationTime, endPropagationTime, startArrivalTime, endArrivalTime, preambleDuration, headerDuration, dataDuration, startArrivalPosition, endArrivalPosition, startArrivalOrientation, endArrivalOrientation);