Skip to content

dates in names fixes #156

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion array_core/multi_plot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ void holdOff(const Config& configuration) {
string multichartPage = dvs::kHtmlMultiChartModel;
string filled_multichartPage = "";
dvs::make_string(multichartPage, args, filled_multichartPage);
string htmlFullName = dvs::makeUniqueDavisHtmlName();
string htmlFullName = dvs::makeUniqueDavisHtmlRelativePath();
dvs::saveStringToFile(htmlFullName, filled_multichartPage);
dvs::openFileBySystem(htmlFullName);
dvs::allChartBlocks.clear();
Expand Down
16 changes: 11 additions & 5 deletions common_utils/common_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -348,20 +348,24 @@ string vectorToString(const vector<double>& vec) {

string makeUniqueDavisHtmlName() {
sleepMicroSec(1);
string davis_dir;
davis_dir = "./davis_htmls/";

auto now = std::chrono::system_clock::now();
auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()) % 1000;
auto in_time_t = std::chrono::system_clock::to_time_t(now);
std::stringstream ss;
ss << std::put_time(std::localtime(&in_time_t), "%Y-%m-%d_%H_%M_%S");
ss << '_' << std::setfill('0')
<< std::setw(3)
<< milliseconds.count() << ".html";
davis_dir.append(ss.str());
return davis_dir;
<< milliseconds.count();
return ss.str();
}

std::string makeUniqueDavisHtmlRelativePath() {
string name = makeUniqueDavisHtmlName();
return std::string("./").append(kOutFolderName).append(name).append(".html");
}


void transponeMatrix(std::vector<std::vector<double> >& matrix) {

if (matrix.empty())
Expand Down Expand Up @@ -463,5 +467,7 @@ vector<double> doubleAndReverse(const vector<double>& input,
return result;
}



//#STOP_GRAB_TO_DVS_NAMESPACE
}; // namespace dvs
4 changes: 4 additions & 0 deletions common_utils/common_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,12 @@ string nullIfNotFinite(double val);
//! convert vec to string, separated by ","
string vectorToString(const vector<double>& vec);

//! only name
string makeUniqueDavisHtmlName();

//! folder + name + .html
string makeUniqueDavisHtmlRelativePath();

//! sometimes std::to_string reurn str with ',' as separator what is wrong
template <typename T>
string toStringDotSeparator(T data) {
Expand Down
29 changes: 15 additions & 14 deletions davis_one/davis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1110,20 +1110,24 @@ string vectorToString(const vector<double>& vec) {

string makeUniqueDavisHtmlName() {
sleepMicroSec(1);
string davis_dir;
davis_dir = "./davis_htmls/";

auto now = std::chrono::system_clock::now();
auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()) % 1000;
auto in_time_t = std::chrono::system_clock::to_time_t(now);
std::stringstream ss;
ss << std::put_time(std::localtime(&in_time_t), "%Y-%m-%d_%H_%M_%S");
ss << '_' << std::setfill('0')
<< std::setw(3)
<< milliseconds.count() << ".html";
davis_dir.append(ss.str());
return davis_dir;
<< milliseconds.count();
return ss.str();
}

std::string makeUniqueDavisHtmlRelativePath() {
string name = makeUniqueDavisHtmlName();
return std::string("./").append(kOutFolderName).append(name).append(".html");
}


void transponeMatrix(std::vector<std::vector<double> >& matrix) {

if (matrix.empty())
Expand Down Expand Up @@ -1226,6 +1230,8 @@ vector<double> doubleAndReverse(const vector<double>& input,
}




} // namespace dvs end

namespace dvs {
Expand Down Expand Up @@ -1711,7 +1717,7 @@ void showCloudOfPointsChart(const vector<double>& xValues,
args[ARG_CLOUD_OF_POINTS_ASPECT_WIDTH_OR_HEIGHT] = paramWH;
args[ARG_CLOUD_OF_POINTS_DAVIS_LOGO] = kHtmlDavisLogoHyperlinkBlock;
make_string(kHtmlCloudOfPoints, args, out);
auto unique_file_name = dvs::makeUniqueDavisHtmlName();
auto unique_file_name = dvs::makeUniqueDavisHtmlRelativePath();
saveStringToFile(unique_file_name, out);
openFileBySystem(unique_file_name);
}
Expand Down Expand Up @@ -1744,7 +1750,7 @@ void showCloudOfPointsChartStr(const std::string& xValues,
args[ARG_CLOUD_OF_POINTS_ASPECT_WIDTH_OR_HEIGHT] = paramWH;
args[ARG_CLOUD_OF_POINTS_DAVIS_LOGO] = kHtmlDavisLogoHyperlinkBlock;
make_string(kHtmlCloudOfPoints, args, out);
auto unique_file_name = dvs::makeUniqueDavisHtmlName();
auto unique_file_name = dvs::makeUniqueDavisHtmlRelativePath();
saveStringToFile(unique_file_name, out);
openFileBySystem(unique_file_name);
}
Expand Down Expand Up @@ -1780,11 +1786,6 @@ void showDateTimeMultichart(const std::string& date_time_values,
polygon_date_time.append(reversed_date_time_data);
auto polygon_deviation_values = doubleAndReverse(deviation_values, average_values);






vector<string>args_block {ARGS_SIMPLE_DATA_BLOCK_SIZE, ""};
std::string simpleData_yValues = vectorToString(deviation_values);
args_block[ARG_SIMPLE_DATA_X] = polygon_date_time;
Expand Down Expand Up @@ -1833,7 +1834,7 @@ void showDateTimeMultichart(const std::string& date_time_values,
args[ARG_DATE_TIME_ASPECT_WIDTH_OR_HEIGHT_FOR_AUTOSCALE] = paramWHsecond;
args[ARG_DATE_TIME_DAVIS_LOGO] = kHtmlDavisLogoHyperlinkBlock;
make_string(kHtmlDateTimeModel, args, out);
auto unique_file_name = dvs::makeUniqueDavisHtmlName();
auto unique_file_name = dvs::makeUniqueDavisHtmlRelativePath();
saveStringToFile(unique_file_name, out);
openFileBySystem(unique_file_name);
}
Expand Down Expand Up @@ -1908,7 +1909,7 @@ void holdOff(const Config& configuration) {
string multichartPage = dvs::kHtmlMultiChartModel;
string filled_multichartPage = "";
dvs::make_string(multichartPage, args, filled_multichartPage);
string htmlFullName = dvs::makeUniqueDavisHtmlName();
string htmlFullName = dvs::makeUniqueDavisHtmlRelativePath();
dvs::saveStringToFile(htmlFullName, filled_multichartPage);
dvs::openFileBySystem(htmlFullName);
dvs::allChartBlocks.clear();
Expand Down
4 changes: 4 additions & 0 deletions davis_one/davis.h
Original file line number Diff line number Diff line change
Expand Up @@ -322,8 +322,12 @@ string nullIfNotFinite(double val);
//! convert vec to string, separated by ","
string vectorToString(const vector<double>& vec);

//! only name
string makeUniqueDavisHtmlName();

//! folder + name + .html
string makeUniqueDavisHtmlRelativePath();

//! sometimes std::to_string reurn str with ',' as separator what is wrong
template <typename T>
string toStringDotSeparator(T data) {
Expand Down
38 changes: 21 additions & 17 deletions gui/davis_gui.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "davis_gui.h"
#include "./ui_davis_gui.h"

#include "../davis_one/davis.h"


#include <QApplication>
#include <QDragEnterEvent>
#include <QMimeData>
Expand Down Expand Up @@ -267,6 +267,8 @@ void DavisGUI::applySettings(const QJsonObject& settings) {
}

void DavisGUI::readJsonToPlot(const QString& pathToFile) {
QFileInfo fileInfo(pathToFile);
QString jsonName = fileInfo.fileName();
QJsonObject user_stamp_keys;
QJsonArray matrix_to_matrix_stamps;

Expand Down Expand Up @@ -332,7 +334,7 @@ void DavisGUI::readJsonToPlot(const QString& pathToFile) {
conf.chart.yLabel = attr.value("type").toString().toStdString();
conf.chart.title = attr.value("instrument").toString().toStdString();
conf.chart.isFitPlotToWindow = action_fitPlotToAllWindow->isChecked();
dv::show(x_vals, y_vals, QDateTime::currentDateTime().toString("yyyy_MM_dd_hh_mm_ss_zz").toStdString(), conf);
dv::show(x_vals, y_vals, dvs::makeUniqueDavisHtmlName(), conf);
}
return;// выход если это был MATRIX_TO_MATRIX_TYPE
}
Expand All @@ -359,14 +361,14 @@ void DavisGUI::readJsonToPlot(const QString& pathToFile) {
conf.heatmap.isFitPlotToWindow = conf.chart.isFitPlotToWindow;
conf.surf.isFitPlotToWindow = conf.chart.isFitPlotToWindow;
if (x_vector.empty() == false && y_vector.empty() == false) {
dv::show(x_vector.toStdVector(), y_vector.toStdVector(), "JSON TEST", conf);
dv::show(x_vector.toStdVector(), y_vector.toStdVector(), dvs::makeUniqueDavisHtmlName(), conf);
} else if (x_vector.empty() == true && y_vector.empty() == false) {
dv::show(y_vector.toStdVector(), "JSON TEST", conf);
dv::show(y_vector.toStdVector(), dvs::makeUniqueDavisHtmlName(), conf);
} else if (x_vector.empty() == false && y_vector.empty() == true) {
dv::show(x_vector.toStdVector(), "JSON TEST", conf);
dv::show(x_vector.toStdVector(), dvs::makeUniqueDavisHtmlName(), conf);
}
if (matrix_vector.empty() == false) {
dv::show(matrix_vector, "JSON_MATRIX_VECTOR", conf);
dv::show(matrix_vector, dvs::makeUniqueDavisHtmlName(), conf);
}
} else {
qDebug() << "Check JSON!";
Expand Down Expand Up @@ -641,7 +643,8 @@ void DavisGUI::pasteFromClipboard() {
watcher->setFuture(future);
}

void DavisGUI::readPlotText(QStringList& str_lines, QString title) {
void DavisGUI::readPlotText(QStringList& str_lines, QString titleTopOfPlotly) {
qDebug() << "dvs::makeUniqueDavisHtmlName() << " << QString::fromStdString(dvs::makeUniqueDavisHtmlName());
std::vector<double>lines;
std::vector<std::vector<double>> data;
char separator;
Expand Down Expand Up @@ -704,21 +707,21 @@ void DavisGUI::readPlotText(QStringList& str_lines, QString title) {

if (data.size() == 2 || data[0].size() == 2) { //chartXY
dv::Config config;
config.chart.title = title.toStdString();
config.chart.title = titleTopOfPlotly.toStdString();
config.chart.isFitPlotToWindow = action_fitPlotToAllWindow->isChecked();
dv::show(data, title.toStdString(), config);
dv::show(data, dvs::makeUniqueDavisHtmlName(), config);
} else if (data.size() > 1 && data[0].size() > 1) {
if (action_heatmap->isChecked()) {
dv::Config config;
config.heatmap.title = title.toStdString();
config.heatmap.title = titleTopOfPlotly.toStdString();
config.heatmap.isFitPlotToWindow = action_fitPlotToAllWindow->isChecked();
dv::show(data, title.toStdString(), config);
dv::show(data, dvs::makeUniqueDavisHtmlName(), config);
} else if (action_surface->isChecked()) {
dv::Config config;
config.surf.title = title.toStdString();
config.surf.title = titleTopOfPlotly.toStdString();
config.surf.isFitPlotToWindow = action_fitPlotToAllWindow->isChecked();
config.typeVisual = dv::VISUALTYPE_SURFACE;
dv::show(data, title.toStdString(), config);
dv::show(data, dvs::makeUniqueDavisHtmlName(), config);
}
} else {
std::vector<double> showVector;
Expand All @@ -733,9 +736,9 @@ void DavisGUI::readPlotText(QStringList& str_lines, QString title) {
}
dv::Config config;
config.typeVisual = dv::VISUALTYPE_CHART;
config.chart.title = title.toStdString();
config.chart.title = titleTopOfPlotly.toStdString();
config.chart.isFitPlotToWindow = action_fitPlotToAllWindow->isChecked();
dv::show(showVector, title.toStdString(), config);
dv::show(showVector, dvs::makeUniqueDavisHtmlName(), config);
}
}

Expand Down Expand Up @@ -908,6 +911,7 @@ void DavisGUI::visualizeFiles(const QStringList& file_list) {
std::vector<double> values;
std::vector<double> force;
std::vector<std::vector<double>> multicharts;
qDebug() << "we are here";
lines = getLinesFromFile(file_list[i]);

getDateTimeData(lines, dates, values, force, multicharts);
Expand All @@ -917,7 +921,7 @@ void DavisGUI::visualizeFiles(const QStringList& file_list) {
}
}
if (dates_list.isEmpty() == false) {
dvs::showDateTimeMultichart(dates_list[0].toStdString(), all_values, true);
dvs::showDateTimeMultichart(dates_list[0].toStdString(), all_values, action_fitPlotToAllWindow->isChecked());
return;
}

Expand All @@ -932,7 +936,7 @@ void DavisGUI::visualizeFiles(const QStringList& file_list) {
data.push_back(outY);
};
}
dvs::showDateTimeMultichart(dvs::vectorToString(x_values), data, true);
dvs::showDateTimeMultichart(dvs::vectorToString(x_values), data, action_fitPlotToAllWindow->isChecked());
return;
}
QString filePath = file_list.first();
Expand Down
4 changes: 2 additions & 2 deletions gui/davis_gui.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "about_window.h"
#include "animated_button.h"


QT_BEGIN_NAMESPACE
namespace Ui { class DavisGUI; }
QT_END_NAMESPACE
Expand Down Expand Up @@ -47,7 +48,7 @@ class DavisGUI : public QMainWindow {
void setGeometryForMinStyle_defaultSkin();
void setGeometryForMaxStyle_newYearSkin();
void setGeometryForMinStyle_newYearSkin();
void readPlotText(QStringList& str_lines, QString title = "");
void readPlotText(QStringList& str_lines, QString titleTopOfPlotly = "");
void selectAndShowFiles();
bool checkDateTimeVariant(const QStringList& lines);
bool isFileContainsSingleChart(const QString& pathToFile,
Expand All @@ -70,7 +71,6 @@ class DavisGUI : public QMainWindow {

QStringList getLinesFromFile(const QString& pathToFile);


private slots:
void showAboutWindow();
void pasteFromClipboard();
Expand Down
11 changes: 3 additions & 8 deletions plotly_maker/plotly_maker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,7 @@ void showCloudOfPointsChart(const vector<double>& xValues,
args[ARG_CLOUD_OF_POINTS_ASPECT_WIDTH_OR_HEIGHT] = paramWH;
args[ARG_CLOUD_OF_POINTS_DAVIS_LOGO] = kHtmlDavisLogoHyperlinkBlock;
make_string(kHtmlCloudOfPoints, args, out);
auto unique_file_name = dvs::makeUniqueDavisHtmlName();
auto unique_file_name = dvs::makeUniqueDavisHtmlRelativePath();
saveStringToFile(unique_file_name, out);
openFileBySystem(unique_file_name);
}
Expand Down Expand Up @@ -532,7 +532,7 @@ void showCloudOfPointsChartStr(const std::string& xValues,
args[ARG_CLOUD_OF_POINTS_ASPECT_WIDTH_OR_HEIGHT] = paramWH;
args[ARG_CLOUD_OF_POINTS_DAVIS_LOGO] = kHtmlDavisLogoHyperlinkBlock;
make_string(kHtmlCloudOfPoints, args, out);
auto unique_file_name = dvs::makeUniqueDavisHtmlName();
auto unique_file_name = dvs::makeUniqueDavisHtmlRelativePath();
saveStringToFile(unique_file_name, out);
openFileBySystem(unique_file_name);
}
Expand Down Expand Up @@ -568,11 +568,6 @@ void showDateTimeMultichart(const std::string& date_time_values,
polygon_date_time.append(reversed_date_time_data);
auto polygon_deviation_values = doubleAndReverse(deviation_values, average_values);






vector<string>args_block {ARGS_SIMPLE_DATA_BLOCK_SIZE, ""};
std::string simpleData_yValues = vectorToString(deviation_values);
args_block[ARG_SIMPLE_DATA_X] = polygon_date_time;
Expand Down Expand Up @@ -621,7 +616,7 @@ void showDateTimeMultichart(const std::string& date_time_values,
args[ARG_DATE_TIME_ASPECT_WIDTH_OR_HEIGHT_FOR_AUTOSCALE] = paramWHsecond;
args[ARG_DATE_TIME_DAVIS_LOGO] = kHtmlDavisLogoHyperlinkBlock;
make_string(kHtmlDateTimeModel, args, out);
auto unique_file_name = dvs::makeUniqueDavisHtmlName();
auto unique_file_name = dvs::makeUniqueDavisHtmlRelativePath();
saveStringToFile(unique_file_name, out);
openFileBySystem(unique_file_name);
}
Expand Down
Loading