Initial commit (project based on widgets)

This commit is contained in:
Yury Shuvakin
2022-08-01 21:53:36 +03:00
parent d9396cdc2f
commit 14a7aa699f
411 changed files with 95119 additions and 0 deletions

336
visualizationpage.h Normal file
View File

@@ -0,0 +1,336 @@
#ifndef VISUALIZATIONPAGE_H
#define VISUALIZATIONPAGE_H
#include <QWidget>
#include <QButtonGroup>
#include <QListWidgetItem>
#include "visualizationchart.h"
#include "bmsinterface.h"
namespace Ui {
class VisualizationPage;
}
#define TURN_ON_DUMMY_DATA_FLOW_TO_GRAPHS 0
class VisualizationPage : public QFrame
{
Q_OBJECT
public:
enum TabWidgetPage
{
Voltage = 0,
Apmerage,
//Temperature,
TemperatureBat,
TemperatureBms,
Cells,
CellsAll,
} m_currentPageIndex;
#define ChartsIndexInt int
enum ChartsIndex
{
VoltageMax = 0,
VoltageMid,
VoltageMin,
AmperageMax,
AmperageMid,
AmperageMin,
//TemperatureMax,
//TemperatureMid,
//TemperatureMin,
TemperatureBatMax,
TemperatureBatMid,
TemperatureBatMin,
TemperatureBmsMax,
TemperatureBmsMid,
TemperatureBmsMin,
CellsMax,
CellsMid,
CellsMin,
//CellsAll,
ChartsIndexNumber
};
enum ChartsForCellsIndex
{
//CellQtwhite = 0 , // EFDBC5 239,219,197
CellQtblack =0 ,
CellQtdarkGray ,
CellQtgray ,
CellQtlightGray ,
CellQtred ,
CellQtgreen ,
CellQtblue ,
CellQtcyan ,
CellQtmagenta ,
CellQtyellow ,
CellQtdarkRed ,
CellQtdarkGreen ,
CellQtdarkBlue ,
CellQtdarkCyan ,
CellQtdarkMagenta ,
CellQtdarkYellow ,
CellAlmond , // EFDBC5 239,219,197
CellAntiqueBrass , // CD9575 205,149,117
CellApricot , // FDD9B5 253,217,181
CellAquamarine , // 78DBE2 120,219,226
CellAsparagus , // 87A96B 135,169,107
CellAtomicTangerine , // FFA474 255,164,116
CellBananaMania , // FAE7B5 250,231,181
CellBeaver , // 9F8170 159,129,112
CellBittersweet , // FD7C6E 253,124,110
CellBlack , // 232323 35,35,35
CellBlue , // 1F75FE 31,117,254
CellBlueBell , // ADADD6 173,173,214
CellBlueGreen , // 199EBD 25,158,189
CellBlueViolet , // 2E5090 115,102,189
CellBluetiful , // 7366BD 46,80,144
CellBlush , // DE5D83 222,93,131
CellBrickRed , // CB4154 203,65,84
CellBrown , // B5674D 180,103,77
CellBurntOrange , // FF7F49 255,127,73
CellBurntSienna , // EA7E5D 234,126,93
CellCadetBlue , // B0B7C6 176,183,198
CellCanary , // FFFF99 255,255,159
CellCaribbeanGreen , // 1CD3A2 28,211,162
CellCarnationPink , // FFAACC 255,170,204
CellCerise , // FF43A4 221,68,146
CellCerulean , // 1DACD6 29,172,214
CellChestnut , // BC5D58 188,93,88
CellCopper , // DD9475 221,148,117
CellCornflower , // 9ACEEB 154,206,235
CellCottonCandy , // FFBCD9 255,188,217
CellDenim , // 2B6CC4 43,108,196
CellDesertSand , // EFCDB8 239,205,184
CellEggplant , // DD4492 110,81,96
CellElectricLime , // 1DF914 29,249,20
CellFern , // 71BC78 113,188,120
CellForestGreen , // 6DAE81 109,174,129
CellFuchsia , // C364C5 195,100,197
CellFuzzyWuzzy , // CC6666 204,102,102
CellGold , // E7C697 231,198,151
CellGoldenrod , // FCD975 255,217,117
CellGrannySmithApple , // A8E4A0 168,228,160
CellGray , // 95918C 149,145,140
CellGreen , // 1CAC78 28,172,120
CellGreenYellow , // F0E891 240,232,145
CellHotMagenta , // FF1DCE 255,29,206
CellInchworm , // B2EC5D 178,236,93
CellIndigo , // 5D76CB 93,118,203
CellJazzberryJam , // CA3767 202,55,103
CellJungleGreen , // 3BB08F 59,176,143
CellLaserLemon , // FDFC74 253,252,116
CellLavender , // FCB4D5 252,180,213
CellMacaroniAndCheese , // FFBD88 255,189,136
CellMagenta , // FCB4D5 246,100,175
CellMahogany , // CD4A4A 205,74,74
CellManatee , // 979AAA 151,154,170
CellMangoTango , // FF8243 255,130,67
CellMaroon , // C8385A 200,56,90
CellMauvelous , // EF98AA 239,152,170
CellMelon , // FDBCB4 253,188,180
CellMidnightBlue , // 1A4876 26,72,118
CellMountainMeadow , // 30BA8F 48,186,143
CellNavyBlue , // 1974D2 25,116,210
CellNeonCarrot , // FFA343 255,163,67
CellOliveGreen , // BAB86C 186,184,108
CellOrange , // FF7538 255,117,56
CellOrchid , // C0448F 230,168,215
CellOuterSpace , // 414AAC 65,74,76
CellOutrageousOrange , // FF6E4A 255,110,74
CellPacificBlue , // 1CA9C9 28,169,201
CellPeach , // FFCFAB 255,207,171
CellPeriwinkle , // C5D0E6 197,208,230
CellPiggyPink , // FDD7E4 253,215,228
CellPineGreen , // 158078 21,128,120
CellPinkFlamingo , // FC74FD 252,116,253
CellPinkSherbet , // F780A1 247,128,161
CellPlum , // 8E4584 142,69,133
CellPurpleHeart , // 7442C8 116,66,200
CellPurpleMountainsMajesty , // 9D81BA 157,129,186
CellPurplePizza , // FF1DCE 255,29,206
CellRadicalRed , // FF496C 255,73,107
CellRawSienna , // D68A59 214,138,89
CellRazzleDazzleRose , // E6A8D7 255,72,208
CellRazzmatazz , // E3256B 227,37,107
CellRed , // EE204D 238,32,77
CellRedOrange , // FF5349 255,83,73
CellRedViolet , // c0448f 192,68,143
CellRobinsEggBlue , // 1FCECB 31,206,203
CellRoyalPurple , // 7851A9 120,81,169
CellSalmon , // FF9BAA 255,155,170
CellScarlet , // FC2847 242,40,71
CellScreaminGreen , // 76FF7A 118,255,122
CellSeaGreen , // 9FE2BF 159,226,191
CellSepia , // A5694F 165,105,79
CellShadow , // 8A795D 138,121,93
CellShamrock , // 45CEA2 69,206,162
CellShockingPink , // FB7EFD 251,126,253
CellSilver , // CDC5C2 205,197,194
CellSkyBlue , // 80DAEB 128,218,235
CellSpringGreen , // ECEABE 236,234,190
CellSunglow , // FFCF48 255,207,72
CellSunsetOrange , // FD5E53 253,94,83
CellTan , // FAA76C 250,167,108
CellTickleMePink , // FC89AC 252,137,172
CellTimberwolf , // DBD7D2 219,215,210
CellTropicalRainForest , // 17806D 23,128,109
CellTumbleweed , // DEAA88 222,170,136
CellTurquoiseBlue , // 77DDE7 119,221,231
CellUnmellowYellow , // FDFC74 253,252,116
CellVioletPurple , // 926EAE 146,110,174
CellVioletRed , // F75394 247,83,148
CellVividTangerine , // FFA089 255,160,137
CellVividViolet , // 8F509D 143,80,157
CellWhite , // EDEDED 237,237,237
CellWildBlueYonder , // A2ADD0 162,173,208
CellWildStrawberry , // F664AF 255,67,164
CellWildWatermelon , // FC6C85 252,108,133
CellWisteria , // CDA4DE 205,164,222
CellYellow , // FCE883 252,232,131
CellYellowGreen , // C5E384 197,227,132
CellYellowOrange , //FFB653 255,182,83
CellColorsNumber , //120
};
void setIsPageActivated(bool isActivated);
bool isPageActivated();
BMSInterface *bms() const;
void setDieBieMS(BMSInterface *dieBieMS);
explicit VisualizationPage(QWidget *parent = nullptr);
~VisualizationPage();
public slots:
void onVisualizationPageSelected();
private slots:
void onTabBarButtonClicked();
void onSetValA();
void onSetValV();
void onSetValT();
void onSetSecsV(int secs);
void onSetSecsA(int secs);
void onSetSecsT(int secs);
void onSetSecsC(int secs);
//void onSetSecsCA(int secs);
private slots:
void timerSlot();
void valuesReceived(BMS_VALUES values);
void cellsReceived(int cellCount, QVector<double> cellVoltageArray);
void auxReceived(int auxCount, QVector<double> auxVoltageArray);
void expTempReceived(int expTempCount, QVector<double> expTempVoltageArray);
void onChecked(QListWidgetItem *item);
void on_checkBox_stateChanged(int arg1);
private:
Ui::VisualizationPage *ui;
BMSInterface *mDieBieMS;
bool mIsThisPageActivated;
QButtonGroup* m_btnGroup;
VisualizationChart* chartV;
VisualizationChart* chartA;
VisualizationChart* chartT;
VisualizationChart* chartTB;
VisualizationChart* chartC;
VisualizationChart* chartCA;
void initColorsForChartCellsAll();
//
/*
QVector<double> mPackVoltage;
QVector<double> mHCLoadVoltage;
QVector<double> mLCLoadVoltage;
QVector<double> mHCLoadCurrent;
//QVector<double> mMCLoadCurrent_;
QVector<double> mLCLoadCurrent;
QVector<double> mAuxVoltage;
QVector<double> mAuxCurrent;
QVector<double> mCellVHigh;
QVector<double> mCellVAverage;
QVector<double> mCellVLow;
QVector<double> mTempBMSHigh;
QVector<double> mTempBMSAverage;
//QVector<double> mTempBMSLow_;
QVector<double> mTempBattHigh;
QVector<double> mTempBattAverage;
//QVector<double> mTempBattLow_;
QVector<double> mSeconds;
*/
QVector<double> mPackVoltage;
QVector<double> mPackCurrent;
QVector<double> mLCLoadVoltage;
QVector<double> mLCLoadCurrent;
QVector<double> mHCLoadVoltage;
QVector<double> mHCLoadCurrent;
QVector<double> mChargerVoltage;
QVector<double> mAuxVoltage;
QVector<double> mAuxCurrent;
QVector<double> mCellVHigh;
QVector<double> mCellVAverage;
QVector<double> mCellVLow;
QVector<double> mTempBMSHigh;
QVector<double> mTempBMSAverage;
QVector<double> mTempBMSLow;
QVector<double> mTempBattHigh;
QVector<double> mTempBattAverage;
QVector<double> mTempBattLow;
QVector<double> mHumidity;
QVector<double> mCellsVals;
QVector<double> mSeconds;
double mSecondCounter;
qint64 mLastUpdateTime;
bool mUpdateValPlot;
QTimer* mTimer;
static int mOldCellsNumber;
void initListWidgetOfCells(int cells);
void initForPlot();
void initForCharts();
void appendDoubleAndTrunc(QVector<double> *vec, double num, int maxSize);
};
#endif // VISUALIZATIONPAGE_H