void Device::fixOverflows(DataFrame& dataFrame, const DataFrame& dataFrameOld) { if(!dataFrame.isValid() || !dataFrameOld.isValid()) return; dataFrame.setTotalDataIn(fixOverflow(dataFrame.getTotalDataIn(), dataFrameOld.getTotalDataIn())); dataFrame.setTotalDataOut(fixOverflow(dataFrame.getTotalDataOut(), dataFrameOld.getTotalDataOut())); dataFrame.setTotalPacketsIn(fixOverflow(dataFrame.getTotalPacketsIn(), dataFrameOld.getTotalPacketsIn())); dataFrame.setTotalPacketsOut(fixOverflow(dataFrame.getTotalPacketsOut(), dataFrameOld.getTotalPacketsOut())); dataFrame.setTotalErrorsIn(fixOverflow(dataFrame.getTotalErrorsIn(), dataFrameOld.getTotalErrorsIn())); dataFrame.setTotalErrorsOut(fixOverflow(dataFrame.getTotalErrorsOut(), dataFrameOld.getTotalErrorsOut())); dataFrame.setTotalDropsIn(fixOverflow(dataFrame.getTotalDropsIn(), dataFrameOld.getTotalDropsIn())); dataFrame.setTotalDropsOut(fixOverflow(dataFrame.getTotalDropsOut(), dataFrameOld.getTotalDropsOut())); }
void Statistics::calculateAverage(const DataFrame& dataFrameFrom, const DataFrame& dataFrameTo, DataFrame& result) { float timeSpan = (dataFrameTo.getTimeStampSeconds() + dataFrameTo.getTimeStampMicroseconds() / 1000000.0) - (dataFrameFrom.getTimeStampSeconds() + dataFrameFrom.getTimeStampMicroseconds() / 1000000.0); if(timeSpan <= 0) return; result.setTotalDataIn((unsigned long long)((dataFrameTo.getTotalDataIn() - dataFrameFrom.getTotalDataIn()) / timeSpan)); result.setTotalDataOut((unsigned long long)((dataFrameTo.getTotalDataOut() - dataFrameFrom.getTotalDataOut()) / timeSpan)); result.setTotalPacketsIn((unsigned long long)((dataFrameTo.getTotalPacketsIn() - dataFrameFrom.getTotalPacketsIn()) / timeSpan)); result.setTotalPacketsOut((unsigned long long)((dataFrameTo.getTotalPacketsOut() - dataFrameFrom.getTotalPacketsOut()) / timeSpan)); result.setTotalErrorsIn((unsigned long long)((dataFrameTo.getTotalErrorsIn() - dataFrameFrom.getTotalErrorsIn()) / timeSpan)); result.setTotalErrorsOut((unsigned long long)((dataFrameTo.getTotalErrorsOut() - dataFrameFrom.getTotalErrorsOut()) / timeSpan)); result.setTotalDropsIn((unsigned long long)((dataFrameTo.getTotalDropsIn() - dataFrameFrom.getTotalDropsIn()) / timeSpan)); result.setTotalDropsOut((unsigned long long)((dataFrameTo.getTotalDropsOut() - dataFrameFrom.getTotalDropsOut()) / timeSpan)); }
void Statistics::calculateMinMax(const DataFrame& dataFrame, DataFrame& min, DataFrame& max) { if(dataFrame.getTotalDataIn() < min.getTotalDataIn()) min.setTotalDataIn(dataFrame.getTotalDataIn()); if(dataFrame.getTotalDataIn() > max.getTotalDataIn()) max.setTotalDataIn(dataFrame.getTotalDataIn()); if(dataFrame.getTotalDataOut() < min.getTotalDataOut()) min.setTotalDataOut(dataFrame.getTotalDataOut()); if(dataFrame.getTotalDataOut() > max.getTotalDataOut()) max.setTotalDataOut(dataFrame.getTotalDataOut()); if(dataFrame.getTotalPacketsIn() < min.getTotalPacketsIn()) min.setTotalPacketsIn(dataFrame.getTotalPacketsIn()); if(dataFrame.getTotalPacketsIn() > max.getTotalPacketsIn()) max.setTotalPacketsIn(dataFrame.getTotalPacketsIn()); if(dataFrame.getTotalPacketsOut() < min.getTotalPacketsOut()) min.setTotalPacketsOut(dataFrame.getTotalPacketsOut()); if(dataFrame.getTotalPacketsOut() > max.getTotalPacketsOut()) max.setTotalPacketsOut(dataFrame.getTotalPacketsOut()); if(dataFrame.getTotalErrorsIn() < min.getTotalErrorsIn()) min.setTotalErrorsIn(dataFrame.getTotalErrorsIn()); if(dataFrame.getTotalErrorsIn() > max.getTotalErrorsIn()) max.setTotalErrorsIn(dataFrame.getTotalErrorsIn()); if(dataFrame.getTotalErrorsOut() < min.getTotalErrorsOut()) min.setTotalErrorsOut(dataFrame.getTotalErrorsOut()); if(dataFrame.getTotalErrorsOut() > max.getTotalErrorsOut()) max.setTotalErrorsOut(dataFrame.getTotalErrorsOut()); if(dataFrame.getTotalDropsIn() < min.getTotalDropsIn()) min.setTotalDropsIn(dataFrame.getTotalDropsIn()); if(dataFrame.getTotalDropsIn() > max.getTotalDropsIn()) max.setTotalDropsIn(dataFrame.getTotalDropsIn()); if(dataFrame.getTotalDropsOut() < min.getTotalDropsOut()) min.setTotalDropsOut(dataFrame.getTotalDropsOut()); if(dataFrame.getTotalDropsOut() > max.getTotalDropsOut()) max.setTotalDropsOut(dataFrame.getTotalDropsOut()); }