@@ -251,11 +251,20 @@ void DavisGUI::applySettings(const QJsonObject& settings) {
251251
252252void DavisGUI::readJsonToPlot (const QString& pathToFile) {
253253 QJsonObject user_stamp_keys;
254+ QJsonArray matrix_to_matrix_stamps;
254255
255256 if (jsn::getJsonObjectFromFile (" user_keys_list.json" , user_stamp_keys) == false ) {
256257 jsn::getJsonObjectFromFile (" :/user_keys_list.json" , user_stamp_keys);
257258 }
258259
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 ();
266+ }
267+
259268 QJsonValue jv;
260269 QJsonArray result;
261270 if (jsn::getJsonValueFromFile (pathToFile, jv) == false ) {
@@ -266,9 +275,57 @@ void DavisGUI::readJsonToPlot(const QString& pathToFile) {
266275 // qDebug()<<"result all objects size:"<<result.size();
267276
268277 for (int i = 0 ; i < result.size (); ++i) {
269- auto json_object_result = jsn::isJsonObjectContainsUserKeys (result[i].toObject (),
278+
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+ }
322+ }
323+
324+ auto json_object_result = jsn::isJsonObjectContainsUserKeys (result[i].toObject (),
270325 service_json_keys,
271326 user_stamp_keys);
327+
328+
272329 if (json_object_result.first ) {
273330 QJsonObject result_obj = json_object_result.second ;
274331 QJsonArray x_values = result_obj[" x_values" ].toArray ();
@@ -299,6 +356,13 @@ void DavisGUI::readJsonToPlot(const QString& pathToFile) {
299356
300357}
301358
359+
360+ bool DavisGUI::mayBeShowMatrixToMatrix (QJsonArray& stamps,
361+ QJsonObject& obj)
362+ {
363+ return false ;
364+ }
365+
302366Skins DavisGUI::checkSkin () {
303367 Skins skin;
304368 QDate currentDate = QDate::currentDate ();
0 commit comments