@@ -19,73 +19,59 @@ Chart::Chart(QObject *parent) : QObject(parent) {
19
19
void Chart::startUpdating (const QList<QLineSeries *> &seriesList, const QVector<qreal> &values, qreal windowWidth,
20
20
qreal frequency) {
21
21
22
+ c_seriesList = seriesList;
23
+ c_windowWidth = windowWidth;
24
+
22
25
// this will wait to get the frequency first
23
26
if (frequency == 0 ) {
24
27
return ;
25
28
}
26
29
27
30
auto valuesVector = std::vector<qreal>(values.begin (), values.end ());
28
31
RowVectorXd vector = Map<RowVectorXd, Unaligned>(valuesVector.data (), (long ) valuesVector.size ());
29
- // cout << vector << endl;
30
32
31
- c_seriesList = seriesList;
32
33
matrix->row (valueCounter) = vector;
33
- // cout << matrix->row(0) << endl;
34
- // cout << "hello" << endl;
35
34
36
- // qreal xAdjustment = 20.0 / (10 * values.length());
37
- // qreal yMultiplier = 3.0 / qreal(values.length());
35
+ xAdjustment = 20.0 / (10 * values.length ());
36
+ yMultiplier = 3.0 / qreal (values.length ());
37
+
38
38
valueCounter += 1 ;
39
- // qInfo() << windowWidth;
40
-
41
- // for (int i = 0; i < values.length(); i++) {
42
- // QVector<QPointF> data;
43
- // for (int j = 0; j < seriesList.length(); ++j) {
44
- // data.append(QPointF(valueCounter, values[i]));
45
- // }
46
- // m_data.append(data);
47
- // }
48
- // qInfo() << m_data;
49
-
50
- // tempData.append(values);
51
-
52
- // for (int i = 0; i < values.length(); ++i) {
53
- // // seriesList[i]->clear();
54
- // // seriesList[i].remo
55
- // //
56
- // // seriesList[i]->append(QPointF(2.5, QRandomGenerator::global()->bounded(5) - 2.5));
57
- // // qInfo() << seriesList[i]->points().length();
58
- //
59
- // // qInfo() << valueCounter;
60
- // m_data.append(QPointF(valueCounter, values[i]));
61
- // }
62
- // qInfo() << m_data.length() << valueCounter;
63
- // if (valueCounter > windowWidth) {
64
- // m_data.removeFirst();
65
- // valueCounter = 0;
66
- // }
67
39
68
40
if (valueCounter == frequency) {
69
41
dataUpdater.start ();
70
- // qInfo() << tempData;
71
42
valueCounter = 0 ;
72
43
}
73
44
}
74
45
75
46
void Chart::updateAllSeries () {
76
- pointCounter += 1 ;
77
47
78
48
qInfo () << " updates called" ;
79
49
qInfo () << tempData.length ();
80
50
81
- // tempData.clear();
82
51
removeZeroRows (*matrix);
83
- cout << matrix->colwise ().mean () << endl;
84
- // exit(0);
52
+ RowVectorXd meanData = matrix->colwise ().mean ().normalized ();
53
+
54
+ for (int i = 0 ; i < meanData.size (); i++) {
55
+ QVector<QPointF> data;
56
+ for (int j = 0 ; j < c_seriesList.length (); ++j) {
57
+ data.append (QPointF (pointCounter / 2 , meanData[i]));
58
+ }
59
+ m_data.append (data);
60
+ }
61
+
62
+ qInfo () << m_data.size () << c_windowWidth << pointCounter/2 ;
63
+
64
+ for (auto &i : c_seriesList) {
65
+ i->replace (m_data);
66
+ }
67
+
68
+ pointCounter += 1 ;
69
+
70
+ if (pointCounter/2 > 10 ) {
71
+ m_data.clear ();
72
+ pointCounter = 0 ;
73
+ }
85
74
86
- // for (int i = 0; i < c_seriesList.length(); ++i) {
87
- // c_seriesList[i]->replace(m_data);
88
- // }
89
75
delete matrix;
90
76
matrix = nullptr ;
91
77
matrix = new MatrixXd (250 , 24 );
0 commit comments