#!/usr/bin/env Rscript
# ==========================================================================
#         _   _      _   ____            __ __  __      _
#        | \ | | ___| |_|  _ \ ___ _ __ / _|  \/  | ___| |_ ___ _ __
#        |  \| |/ _ \ __| |_) / _ \ '__| |_| |\/| |/ _ \ __/ _ \ '__|
#        | |\  |  __/ |_|  __/  __/ |  |  _| |  | |  __/ ||  __/ |
#        |_| \_|\___|\__|_|   \___|_|  |_| |_|  |_|\___|\__\___|_|
#
#                  NetPerfMeter -- Network Performance Meter
#                 Copyright (C) 2009-2026 by Thomas Dreibholz
# ==========================================================================
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Contact:  dreibh@simula.no
# Homepage: https://www.nntb.no/~dreibh/netperfmeter/

suppressPackageStartupMessages({
   library("data.table")
   library("dplyr")
})


# ###### Main program #######################################################

# ====== Handle arguments ===================================================
args <- commandArgs(trailingOnly = TRUE)
if(sys.nframe() == 0L) {
   # Launched directly from shell:
   args <- commandArgs(trailingOnly = TRUE)
   # ------ Command-line start with Rscript ---------------------------------
   if(length(args) < 1) {
     stop("Usage: plot-experiment scalar_data_file")
   }
   inputName <- args[1]
} else {
   # Launched via source(...) in R:
   inputName <- "experiment1/active.flow-ReceivedBitRate.data.bz2"
   cat(paste(sep="", "Using default name ", inputName, "\n"))
}

# ====== Read input data ====================================================
results <-
   fread(inputName) %>%
      # Transform Unix timestamp into POSIXct:
      mutate(Timestamp = as.POSIXct(as.numeric(Timestamp) / 1e6, origin = "1970-01-01", tz="UTC"))

# ====== Print some information =============================================
print(summary(results))                                    # Show data summary
print(colnames(results))                                   # Show table columns
print(results$"active.flow-ReceivedBitRate" / 1000000.0)   # Received bit rate in Mbit/s
