@@ -257,12 +257,12 @@ void DavisGUI::readJsonToPlot(const QString& pathToFile) {
257257 jsn::getJsonObjectFromFile (" :/user_keys_list.json" , user_stamp_keys);
258258 }
259259
260- if (user_stamp_keys.keys ().contains (" matrix_to_matrix" )){
261- matrix_to_matrix_stamps = user_stamp_keys.value (" matrix_to_matrix" ).toArray ();
262- }else {
263- QJsonObject user_stamp_keys;
264- jsn::getJsonObjectFromFile (" :/user_keys_list.json" , user_stamp_keys);
265- matrix_to_matrix_stamps = user_stamp_keys.value (" matrix_to_matrix" ).toArray ();
260+ if (user_stamp_keys.keys ().contains (" matrix_to_matrix" )) {
261+ matrix_to_matrix_stamps = user_stamp_keys.value (" matrix_to_matrix" ).toArray ();
262+ } else {
263+ QJsonObject user_stamp_keys;
264+ jsn::getJsonObjectFromFile (" :/user_keys_list.json" , user_stamp_keys);
265+ matrix_to_matrix_stamps = user_stamp_keys.value (" matrix_to_matrix" ).toArray ();
266266 }
267267
268268 QJsonValue jv;
@@ -276,52 +276,52 @@ void DavisGUI::readJsonToPlot(const QString& pathToFile) {
276276
277277 for (int i = 0 ; i < result.size (); ++i) {
278278
279- // Проверяем является ли объект MATRIX TO MATRIX типом
280- // qDebug()<<"MATRIX TO MATRIX: "<<matrix_to_matrix_stamps;
281- for (int j=0 ; j<matrix_to_matrix_stamps.size (); ++j){
282- auto obj = result[i].toObject ();
283- QStringList check_keys;
284-
285- check_keys<<matrix_to_matrix_stamps[j].toObject ().value (" attribute_key" ).toString ();
286- check_keys<<matrix_to_matrix_stamps[j].toObject ().value (" x_values" ).toString ();
287- check_keys<<matrix_to_matrix_stamps[j].toObject ().value (" y_values" ).toString ();
288-
289- bool is_matrix_to_matrix_result = jsn::isObjectMatrixToMatrixType (
290- check_keys,
291- obj
292- );
293- // qDebug()<<matrix_to_matrix_stamps[j].toObject().keys();
294- if (is_matrix_to_matrix_result){
295- if (check_keys.size ()!=3 ){
296- qDebug ()<<" ********************** MATRIX TO MATRIX KEYS EXCEPTION ***************************" ;
297- continue ;
298- };
299- qDebug ()<<" MATRIX_TO_MATRIX_PROCESS......." ;
300- // 0 - atr metadata
301- // 1 - x array of arrays values
302- // 2 - y array of arrays values
303- auto attr_arr = obj.value (check_keys[0 ]).toArray ();
304- auto x_arr = obj.value (check_keys[1 ]).toArray ();
305- auto y_arr = obj.value (check_keys[2 ]).toArray ();
306- if (x_arr.size ()!=y_arr.size ()){
307- qDebug ()<<" ********************** MATRIX TO MATRIX ARRAY ARRAY SIZES EXCEPTION ***************************" ;
308- continue ;
309- };
310- for (int k=0 ;k<x_arr.size ();++k){
311- auto attr = attr_arr[k].toObject ();
312- auto x_vals = jsn::getVectorDoubleFromJsonArray (x_arr[k].toArray ()).toStdVector ();
313- auto y_vals = jsn::getVectorDoubleFromJsonArray (y_arr[k].toArray ()).toStdVector ();
314- dv::Config conf;
315- conf.chart .yLabel = attr.value (" type" ).toString ().toStdString ();
316- conf.chart .title = attr.value (" instrument" ).toString ().toStdString ();
317-
318- dv::show (x_vals,y_vals,QDateTime::currentDateTime ().toString (" yyyy_MM_dd_hh_mm_ss_zz" ).toStdString (),conf);
279+ // Проверяем является ли объект MATRIX TO MATRIX типом
280+ // qDebug()<<"MATRIX TO MATRIX: "<<matrix_to_matrix_stamps;
281+ for (int j = 0 ; j < matrix_to_matrix_stamps.size (); ++j) {
282+ auto obj = result[i].toObject ();
283+ QStringList check_keys;
284+
285+ check_keys << matrix_to_matrix_stamps[j].toObject ().value (" attribute_key" ).toString ();
286+ check_keys << matrix_to_matrix_stamps[j].toObject ().value (" x_values" ).toString ();
287+ check_keys << matrix_to_matrix_stamps[j].toObject ().value (" y_values" ).toString ();
288+
289+ bool is_matrix_to_matrix_result = jsn::isObjectMatrixToMatrixType (
290+ check_keys,
291+ obj
292+ );
293+ // qDebug()<<matrix_to_matrix_stamps[j].toObject().keys();
294+ if (is_matrix_to_matrix_result) {
295+ if (check_keys.size () != 3 ) {
296+ qDebug () << " ********************** MATRIX TO MATRIX KEYS EXCEPTION ***************************" ;
297+ continue ;
298+ };
299+ qDebug () << " MATRIX_TO_MATRIX_PROCESS......." ;
300+ // 0 - atr metadata
301+ // 1 - x array of arrays values
302+ // 2 - y array of arrays values
303+ auto attr_arr = obj.value (check_keys[0 ]).toArray ();
304+ auto x_arr = obj.value (check_keys[1 ]).toArray ();
305+ auto y_arr = obj.value (check_keys[2 ]).toArray ();
306+ if (x_arr.size () != y_arr.size ()) {
307+ qDebug () << " ********************** MATRIX TO MATRIX ARRAY ARRAY SIZES EXCEPTION ***************************" ;
308+ continue ;
309+ };
310+ for (int k = 0 ; k < x_arr.size (); ++k) {
311+ auto attr = attr_arr[k].toObject ();
312+ auto x_vals = jsn::getVectorDoubleFromJsonArray (x_arr[k].toArray ()).toStdVector ();
313+ auto y_vals = jsn::getVectorDoubleFromJsonArray (y_arr[k].toArray ()).toStdVector ();
314+ dv::Config conf;
315+ conf.chart .yLabel = attr.value (" type" ).toString ().toStdString ();
316+ conf.chart .title = attr.value (" instrument" ).toString ().toStdString ();
317+
318+ dv::show (x_vals, y_vals, QDateTime::currentDateTime ().toString (" yyyy_MM_dd_hh_mm_ss_zz" ).toStdString (), conf);
319+ }
320+ return ;// выход если это был MATRIX_TO_MATRIX_TYPE
321+ }
319322 }
320- return ;// выход если это был MATRIX_TO_MATRIX_TYPE
321- }
322- }
323323
324- auto json_object_result = jsn::isJsonObjectContainsUserKeys (result[i].toObject (),
324+ auto json_object_result = jsn::isJsonObjectContainsUserKeys (result[i].toObject (),
325325 service_json_keys,
326326 user_stamp_keys);
327327
@@ -358,9 +358,8 @@ void DavisGUI::readJsonToPlot(const QString& pathToFile) {
358358
359359
360360bool DavisGUI::mayBeShowMatrixToMatrix (QJsonArray& stamps,
361- QJsonObject& obj)
362- {
363- return false ;
361+ QJsonObject& obj) {
362+ return false ;
364363}
365364
366365Skins DavisGUI::checkSkin () {
@@ -593,6 +592,21 @@ void DavisGUI::readPlotText(QStringList& str_lines, QString title) {
593592 return ;
594593 }
595594
595+ if (data[0 ].size () == 3 ) {
596+ qDebug () << " CLOUD_OF_POINTS........" ;
597+ std::vector<double >x (data.size (), 0 );
598+ std::vector<double >y (data.size (), 0 );
599+ std::vector<double >color (data.size (), 0 );
600+ for (size_t i = 0 ; i < data.size (); ++i) {
601+ x[i] = data[i][0 ];
602+ y[i] = data[i][1 ];
603+ color[i] = data[i][2 ];
604+ }
605+ dvs::showCloudOfPointsChart (x, y, color);
606+ return ;
607+ }
608+
609+
596610 if (data.size () == 2 || data[0 ].size () == 2 ) { // chartXY
597611 dv::Config config;
598612 config.chart .title = title.toStdString ();
@@ -635,6 +649,7 @@ bool DavisGUI::checkDateTimeVariant(const QStringList& lines) {
635649 qDebug () << jarr;
636650 QString dates;
637651 std::vector<double > values;
652+ std::vector<double > force;
638653
639654 for (int i = 0 ; i < lines.size (); ++i) {
640655 QString test = lines[i];
@@ -649,7 +664,7 @@ bool DavisGUI::checkDateTimeVariant(const QStringList& lines) {
649664 QDateTime dt = QDateTime::fromString (substr, template_time_stamp);
650665 if (dt.isValid ()) {
651666 // 2013-10-04 22:23:00
652- qDebug () << dt.toString (" yyyy-MM-dd hh:mm:ss" );
667+ // qDebug() << dt.toString("yyyy-MM-dd hh:mm:ss");
653668 dates.append (" '" );
654669 dates.append (dt.toString (" yyyy-MM-dd hh:mm:ss" ));
655670 dates.append (" '" );
@@ -658,12 +673,17 @@ bool DavisGUI::checkDateTimeVariant(const QStringList& lines) {
658673 }
659674
660675 auto values_list = test.split (separator);
661- if (values_list.size () != 2 ) {
676+ if (values_list.size () < 2 || values_list. size () > 3 ) {
662677 continue ;
663678 }
664679 double value = values_list[1 ].toDouble ();
665- qDebug () << value;
680+ // qDebug() << value;
666681 values.emplace_back (value);
682+ if (values_list.size () == 3 ) {
683+ double value = values_list[2 ].toDouble ();
684+ // qDebug() << value;
685+ force.emplace_back (value);
686+ }
667687
668688 }
669689 }
@@ -674,6 +694,10 @@ bool DavisGUI::checkDateTimeVariant(const QStringList& lines) {
674694 if (lines.size () != values.size ()) {
675695 return false ;
676696 }
697+ if (force.empty () == false ) {
698+ dvs::showCloudOfPointsChartStr (dates.toStdString (), values, force);
699+ return true ;
700+ }
677701 dvs::showDateTimeChart (dates.toStdString (), values);
678702 return true ;
679703
@@ -894,6 +918,8 @@ void DavisGUI::visualizeFiles(const QStringList& file_list) {
894918 QString line;
895919 QStringList str_lines;
896920 while (ts.readLineInto (&line)) {
921+ if (line.isEmpty ())
922+ continue ;
897923 str_lines.append (line);
898924 }
899925 if (str_lines.empty ()) {
0 commit comments