2018-06-25 ------ omnetpp-5.4.1 released ------ 2018-06-20 Rudolf Hornig * Added opp_scavetool as an alias for scavetool 2018-06-11 ------ omnetpp-5.4 released ------ 2018-04-11 ------ omnetpp-5.3 released ------ 2018-01-17 Andras Varga * SQLite result file loader: follow schema changes in common/ (column renames in "histogramBin" table) 2017-01-16 Andras Varga * scaveutils.h: remove unused TIME() macro; use the new(ish) opp_get_monotonic_clock_usecs() function as replacement when necessary. 2017-12-08 ------ omnetpp-5.2.1 released ------ 2017-12-04 Attila Torok * ResultFileManager: crash fix: Prevent creating duplicate Run objects when only a computed File referred to it. 2017-09-18 ------ omnetpp-5.2 released ------ 2017-08-27 Andras Varga * CSVRecExporter refinements: - remove underflow/overflow counts from exported binvalues arrays - drop initial -inf from exported binedges - move attr/runattr/param/itervar values into separate column 'attrvalue' 2017-04-06 Andras Varga * Modernizing: use C++11's range-based for loops where applicable, using clang-tidy's modernize-loop-convert. * Modernizing: replace INT64_PRINTF_FORMAT and LL with C++11's PRId64. Note: PRId64 includes the "d" that was not part of INT64_PRINTF_FORMAT alias LL. 2017-07-12 Andras Varga * Proper loading and exporting of weighted statistics - OmnetppResultFileLoader, SqliteResultFileLoader: updated - JsonExporter, CsvRecordsExporter, CsvForSpreadsheetExporter: export fields related to weighted statistics 2017-06-27 Andras Varga * scavetool: do not export itervars as scalars by default; added -y, --add-itervars-as-scalars option to turn exporting itervars back on 2017-07-13 Andras Varga * ResultFileManager: follow change: itervars are no longer saved as scalars too, instead we add them (as scalars) from at load time. Added itervar-scalars can now be identified (ScalarResult contains an isItervar flag) and filtered out if as necessary. Corresponding ResultFileManager methods now accept an includeItervars flag. 2017-06-22 Andras Varga * scavetool: edits in verbose-mode output 2017-06-22 Andras Varga * Remove unused class IndexedVectorFileReaderNode2 2017-06-22 Andras Varga * IndexedVectorFileReaderNode: remove gettimeofday() calls once inserted for profiling purposes 2017-06-22 Andras Varga * OmnetppResultFileLoader: minor improvements: - better support for merging multiple instances of the same run in various files - fixes for extracting itervars from run attrs 2017-06-21 Andras Varga * ResultFileManager: do not store run number explicitly, as it no longer has much significance. It is still available as the 'runnumber' attribute. 2017-07-12 Andras Varga * Exporter refinements - verify that selected item types are a subset of supported item types - prevent accidentally appending to existing file 2017-04-06 Andras Varga * JSON and CSV exporter changes: - Python export changed to JSON export with optional Python flavour - CSV export renamed to "CSV for spreadsheet" and significantly improved (also saves iteration variables for better run identification, etc) - another CSV export added ("CSV Records"), provenly suitable as input for the read_csv() of Python PANDAS 2017-04-06 Andras Varga * Remove old export code: - removed export.cc/h and octaveexport.cc/h - scavetool: removed obsolete export commands 'vector' and 'scalar' 2017-04-04 Andras Varga * Follow change: iteration variables are now saved in result files separately from run attrs, e.g. into 'itervar' lines. Partial list of changes: - Run class: added getIterationVariables() method - ResultFileManager: added methods like getUniqueIterationVariableNames() - OmnetppResultFileLoader, SqliteResultFileLoader: updated - scavetool: added --list-itervars option 2017-03-31 Andras Varga * ResultFileManager, OmnetppResultFileLoader, etc: preserve order of paramAssignment entries, i.e. "param" lines in the result file. 2017-03-30 Andras Varga * SqliteResultFileLoader: updated: histBin table was renamed to histogramBin 2017-07-13 Andras Varga * scavetool: sort runs by runId, for consistent query output 2017-04-04 Andras Varga * scavetool: use opp_formatTable() for all -q output 2017-03-30 Andras Varga * Added StatisticsResult (HistogramResult sans histogram). Until now, statistic results in scalar files were loaded as several unrelated scalars, and were not available as a single object. * OmnetppResultFileLoader: refactoring * SqliteResultFileLoader: observe newly added isHistogram column 2017-03-28 Andras Varga * OmnetppResultFileLoader: fix: 'run' line is mandatory since version 4.0 2017-03-29 Andras Varga * SqliteResultFileLoader: loading of vector attrs and run params was missing 2017-03-28 Andras Varga * SqliteResultFileLoader: refactoring 2017-03-28 Andras Varga * SqliteResultFileLoader: use camelized names in SQL queries. Note: sqlite is case insensitive. 2017-03-21 Andras Varga * ResultItem classes: wrap access of naked data members into getter. This provides more flexibility in implementing data members, e.g. name strings and attribute sets can be pooled. Affects ScalarResult, VectorResult, HistogramResult, Run, FileRun, etc. 2017-03-20 Andras Varga * ResultFileManager, OmnetppResultFileLoader: remove fields numLines and numUnrecognizedLines (they were unused since introduction of sqlite readers) 2017-03-17 Andras Varga * DataTable classes: throw instead of ignoring errors 2017-05-25 Rudolf Hornig * Updated makefiles for speeding up the build: - generated files are created only once, even when using parallel build - binaries are copied to their final destination using proper makefile targets ----------- lines above this marker have been added from git log ----------- 2017-05-08 ------ omnetpp-5.1.1 released ------ 2017-03-31 ------ omnetpp-5.1 released ------ 2017-03-16 Andras Varga * New Exporter framework and exporters: CSV, Python Source, OMNeT++ and SQLite Scalar/Vector exporter. The new exporter interface allows much more flexibility (arbitrary formats, not only table-based ones), and also allows for defining new exporters (including their UI) without any change to scavetool or the Analysis Tool in the IDE. In scavetool, the new 'export' command replaces the now-deprecated the 'vector' and 'scalar' commands. New classes: Exporter, ExporterFactory (framework); CsvExporter, PythonExporter, OmnetppScalarFileExporter, OmnetppVectorFileExporter, SqliteScalarFileExporter, SqliteVectorFileExporter (concrete exporters) 2017-03-04 Andras Varga * Refactoring: the Statistics class has been moved the common library, so it can also be used by the result file writers. 2017-03-16 Andras Varga * IDList, XYArray: new methods; return BigDecimal by const ref 2017-02-20 Andras Varga * Fix: Scalar export crashed for empty result set 2017-02-17 Andras Varga * CSV export: use space as separator within table column names instead of "_" 2017-02-17 Andras Varga * Prefix class names of obsolete exporter classes with "Old". Old exporter class interface is completely broken, we'll make a fresh start. 2017-02-17 Andras Varga * Removed Octave and Matlab export. Reasons: 1. poor data representation chosen in the output file, esp. for vector (one time vector, and one value vector per OMNeT++ output vector, where most values were NaN due to the common T vector! 2-column matrices for each vector would have been a better choice.) 2. We don't want to promote Matlab/Octave use for result analysis. Matlab/Octave users should use CSV export. Note: octaveexport.cc/h were unused (not in build). 2017-02-14 Andras Varga * Code style: Statistics: refactoring: drop "_" from data member names 2017-02-10 Andras Varga * Refactoring: less conversion between std::string and const char* 2017-02-10 Andras Varga * fields.h: reindent switch statements 2017-02-10 Andras Varga * Refactoring: spare some more unnecessary copying 2017-02-10 Andras Varga * Refactoring: use typedef for shorthand 2017-02-10 Andras Varga * Refactoring: methods moved out of line; return Statistics as const ref 2017-02-10 Andras Varga * Refactoring: pass around ResultItemFields as const ref 2017-02-10 Andras Varga * Refactoring: Take std::strings by const ref 2017-02-10 Andras Varga * Code formatting ('&' to gravitate left) 2017-02-10 Andras Varga * datatable.cc/h split from export.cc/h 2017-03-10 Andras Varga * scavetool: "query" subcommand's mode switches changed to lowercase 2017-02-06 ------ omnetpp-5.1pre3 released ------ 2016-12-23 Andras Varga * scavetool: added "query -f" option (add statistics fields as scalars) 2016-12-22 Andras Varga * scavetool refinements: - -r (list runs) to respect -D (run display format) - issue warning when no input files are given - understand "scavetool -h/--help" 2016-12-23 ------ omnetpp-5.1pre2 released ------ 2016-12-12 Andras Varga * scavetool: added query functionality, reorganized help into pages, autoindex vector files, etc. Details: - added 'query' subcommand - reorganized help into pages ('scavetool help ') - 'info' subcommand merged into help (use 'help filters') - 'list' subcommand merged into 'query' - default output file name changed to 'out.' 2016-12-12 Andras Varga * scavetool: internal refactoring - use exceptions for error handling - use C++ I/O instead of printf - turned into a class 2016-12-12 Andras Varga * export.cc: ScalarDataTable: fix NPE 2016-12-13 Andras Varga * ResultFileManager: added new methods filterIDList() and getUniqueModuleAndResultNamePairs() 2016-11-30 Rudolf Hornig * build: Makefile refactored. Added clang-c2 support and optimized the build process. * build: removed Makefile.vc, as Visual C++ builds are now handled by the standard Makefiles. 2016-11-25 Andras Varga * Revised SQLite-related code: error handling, internal logic, refactoring, etc. SQLite result files are mostly automatically detected and used by the library and scavetool. Implementation: result file loading was factored out of ResultFileManager, and done via two loaders: OmnetppResultFileLoader and SqliteResultFileLoader. For processing output vector data, an SqliteVectorReader class was added. There are two new node types: "sqlitevectorreader" and "vectorreaderbyfiletype"; the latter looks at the result file given to it, and instantiates either an OMNeT++ vector file reader or an SQLite vector file reader. 2016-11-23 Andras Varga * Added initial support for SQLite-based result files [Zoltan Bojthe] 2016-12-06 Andras Varga * DEFAULT_PRECISION renamed to DEFAULT_RESULT_PRECISION 2016-12-05 Andras Varga * isVectorFile() renamed to isExistingVectorFile(), and made it check file contents too. This is necessary so that the code can tell OMNeT++ result files from SQLite result files. 2016-11-10 Andras Varga * Error messages refined (start with capital letter, use apostrophes for quoting, etc.) 2016-09-01 Rudolf Hornig * scavetool: include run attributes in scalar data exports 2016-06-23 Rudolf Hornig * The makefile now uses compiler-generated dependency files. 2016-04-13 ------ omnetpp-5.0 released ------ 2016-03-10 ------ omnetpp-5.0rc released ------ 2015-12-07 ------ omnetpp-5.0b3 released ------ 2015-10-16 Andras Varga * omnetpp namespace made permanent (cannot be turned off): - removed configure option and preprocessor symbol USE_NAMESPACE - removed related macros: NAMESPACE_BEGIN, NAMESPACE_END, USING_NAMESPACE, OPP, OPP_STR, OPP_PREFIX etc. 2015-07-20 ------ omnetpp-5.0b2 released ------ 2015-06-16 Andras Varga * Cleanup: prefer ++it to it++ (less copying) 2015-06-08 Andras Varga * Cleanup: longer header guards 2015-06-08 Andras Varga * Cleanup: code formatting 2015-05-15 Andras Varga * Cleanup: use per-folder nested namespaces: omnetpp::envir, omnetpp::tkenv, omnetpp::layout, omnetpp::common, omnetpp::eventlog, etc. 2015-05-22 Andras Varga * Modernizing: added the 'override' keyword (C++11) to overridden methods; it becomes blank when using with an older compiler. 2015-05-21 Rudolf Hornig * Modernizing: replaced NULLs by 'nullptr' (C++11); it is defined as 0 when using an older compiler. 2015-05-11 Andras Varga * Cleanup: data members renamed to camelCase 2015-04-20 Andras Varga * Cleanup: use C++ names of C headers (e.g. instead of ) 2015-04-12 Andras Varga * Cleanup: copyright years updated 2015-04-08 Andras Varga * Modernizing: - Use a fixed include path (-Iinclude -Isrc) for all source folders under src/, and qualify cross-folder #includes with the folder name (e.g. change #include "stringutil.h" to #include "common/stringutil.h"). This increases readbility and reduces the chance of including a wrong header. - In source files, sort #include statements by folder. 2015-03-04 ------ omnetpp-5.0b1 released ------ 2014-11-27 ------ omnetpp-4.6 released ------ 2014-06-30 ------ omnetpp-4.5 released ------ 2014-02-13 ------ omnetpp-4.4.1 released ------ 2013-12-20 ------ omnetpp-4.4 released ------ 2013-11-14 Rudolf Hornig * Fixes for compiling with clang 2013-09-12 ------ omnetpp-4.3.1 released ------ 2013-04-02 ------ omnetpp-4.3 released ------ 2013-02-08 ------ omnetpp-4.3rc1 released ------ 2012-07-17 Tamas Borbely * Changes to allow implementing computed scalars in the IDE 2012-03-28 Andras Varga * scaveutils.cc: fixed #546: parseDouble() now understands MSVC's 1.#INF syntax (as well as all other sane syntaxes for infinity and NaN) 2012-03-13 ------ omnetpp-4.2.2 released ------ 2012-01-17 ------ omnetpp-4.2.1 released ------ 2011-12-08 Rudolf Hornig * implemented export function for histograms 2011-10-28 ------ omnetpp-4.2 released ------ 2011-09-11 ------ omnetpp-4.2rc1 released ------ 2011-05-05 ------ omnetpp-4.2b2 released ------ 2011-02-23 ------ omnetpp-4.2b1 released ------ 2011-01-21 Tamas Borbely * added -g option to 'scavetool scalar' command. The user can specify how the scalars are grouped into columns/variables. The default is also changed: each scalar value is written into one column (csv) or variable. This allows the user to import the csv into a spreadsheet and use the 'pivot table' functionality to group the scalars as he likes. Old behaviour can be obtained by '-g name'. 2010-07-13 Tamas Borbely * added "substractFirstValue" filter, it substracts the first finite value from the first and all subsequent values. 2010-06-11 ------ omnetpp-4.1 released ------ 2010-05-31 ------ omnetpp-4.1rc2 released ------ 2010-04-20 ------ omnetpp-4.1b4 released ------ 2010-04-20 Andras Varga * fixed "timeavg" filter not to assume an initial (0,0) data point, and to suppress potential initial 0/0 = NaN (or NaNs) * fixed "integrate" filter not to assume an initial (0,0) data point 2010-03-14 ------ omnetpp-4.1b3 released ------ 2009-09-04 Tamas Borbely * added 'sum' function to 'aggregator' node. 2009-05-15 Tamas Borbely * added 'aggregator' node for computing average/minimum/maximum of several vectors. It simply aggregates the values at the same simulation time (i.e. ignores interpolation-mode of the vectors). 2009-05-11 Tamas Borbely * added 'timewinavg' node. It computes the average of data points in fixed, equal length time intervals. 2009-03-12 ------ omnetpp-4.0 released ------ 2009-02-27 ------ omnetpp-4.0rc2 released ------ 2009-02-22: Andras Varga * added descriptions to the examples in the scavetool help text. * documented the "scalar" filter in the scavetool help text. 2009-02-19 Tamas Borbely * Renamed 'summary' command of scavetool to 'list'. 2009-02-19 Tamas Borbely * The new 'scalar' command can apply processing operations too. Currently only the 'scatter' operation accepted, and it creates a scatter plot dataset from the scalars. Its format is: "scatter(module,scalar,...)" where - module,scalar: identifies the scalar selected for the X axis - additional arguments identifies the iso attributes, they are module, scalar pairs or names of run attributes 2009-02-19 Tamas Borbely * 'filter' command of scavetool had been split into 'vector' and 'scalar' commands. 2008-12-12 ------ omnetpp-4.0rc1 released ------ 2008-11-26 Andras Varga * library renamed to oppscave 2008-02-23 Andras Varga * Started the ChangeLog. The Scave library was added in omnetpp-4.0. It implements reading and processing of result files (output vector files .vec, and output scalar files .sca) and it is used by the Analysis tool in IDE. A command-line tool scavetool is also provided. Initial code was taken from the 3.x Plove and Scalars tools, then it was significantly expanded by Tamas Borbely.