public void SendPacketStats() { double updateSec = 0.0; int newPacketsReceived = 0; int newPacketsSent = 0; int newBytesReceived = 0; int newBytesSent = 0; int newErrorPackets = 0; PacketStats callback = OnPacketStats; if (callback != null) { // Calculate the difference between the current values that have // been updated by the LLUDPServer and our current reported // totals to determine the change in the statistics newPacketsReceived = PacketsReceived - m_packetsReceivedReported; newPacketsSent = PacketsSent - m_packetsSentReported; newBytesReceived = m_bytesReceived - m_bytesReceivedReported; newBytesSent = m_bytesSent - m_bytesSentReported; newErrorPackets = m_packetsUnreadable - m_packetsErrorReceived; // Find the amount of time between statistics updates m_statsUpdateStopwatch.Stop(); updateSec = m_statsUpdateStopwatch.Elapsed.TotalMilliseconds / 1000.0; // Send the statistics through the LLClientView.PopulateStats, // which will forward them to SimStatsReporter.AddPacketStats // NOTE: The UDP Packets, Bytes, and Error reporting are rates // over time, since the time is not synchronous between the UDP // message parsing and statistics gathering, the rates are // calculated before reporting them // NOTE: Casting the integers to doubles to avoid integer // truncation during division callback((double)newPacketsReceived / updateSec, (double)newPacketsSent / updateSec, UnackedBytes, (double)newBytesReceived / updateSec, (double)newBytesSent / updateSec, (double)newErrorPackets / updateSec); // Update the currently reported statistics to include the // statistics that were just reported m_packetsReceivedReported += newPacketsReceived; m_packetsSentReported += newPacketsSent; m_bytesReceivedReported += newBytesReceived; m_bytesSentReported += newBytesSent; m_packetsErrorReceived += newErrorPackets; // Make sure the stopwatch is tracking the time again, starting // from 0 m_statsUpdateStopwatch.Restart(); } }
public void SendPacketStats() { PacketStats callback = OnPacketStats; if (callback != null) { int newPacketsReceived = PacketsReceived - m_packetsReceivedReported; int newPacketsSent = PacketsSent - m_packetsSentReported; callback(newPacketsReceived, newPacketsSent, UnackedBytes); m_packetsReceivedReported += newPacketsReceived; m_packetsSentReported += newPacketsSent; } }
// Push out pachet counts for the sim status reporter // private void SendPacketStats() { PacketStats handlerPacketStats = OnPacketStats; if (handlerPacketStats != null) { handlerPacketStats( m_PacketsReceived - m_PacketsReceivedReported, m_PacketsSent - m_PacketsSentReported, m_UnackedBytes); m_PacketsReceivedReported = m_PacketsReceived; m_PacketsSentReported = m_PacketsSent; } }