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

113
cellsmonitorpage.h Normal file
View File

@@ -0,0 +1,113 @@
#ifndef CELLSMONITORPAGE_H
#define CELLSMONITORPAGE_H
#include <QWidget>
#include <QTableView>
#include <QVector>
#include "bmsinterface.h"
namespace Ui {
class CellsMonitorPage;
}
struct CellInfo
{
public:
CellInfo() : voltage(0), balancing(false)
{}
CellInfo(double v, bool b)
:voltage(v), balancing(b)
{}
double voltage;
bool balancing;
};
class CellsMonitorPage : public QFrame
{
Q_OBJECT
public:
explicit CellsMonitorPage(QWidget *parent = nullptr);
~CellsMonitorPage();
enum TablesNumber
{
TwoTables = 2,
ThreeTables = 3
};
enum TableIndex
{
FirstSubTable = 0,
SecondSubTable = 1,
ThirdSubTable = 2
};
enum ColumnsInSubTables
{
ColNumber = 0,
ColVoltage, //Столбец с делегатом
ColBalancing //Столбец с делегатом
};
int MODEL_ROWS_IN_ONE_TABLE = 13; //Количество строк модели одной из таблиц
static constexpr int MODEL_COLUMN_IN_ONE_TABLE = 3; //Количество столбцов модели одной из таблиц (№,Напр,Баланс)
static constexpr int MAX_ROWS_ALL_TABLES = 26; //Количество строк для всех трёх таблиц
BMSInterface *bms() const;
void setDieBieMS(BMSInterface *dieBieMS);
private slots:
void on_editCols_textChanged(const QString &arg1);
void on_editCells_textChanged(const QString &arg1);
void on_pbTestOne_clicked();
void on_pbTestTwo_clicked();
private:
Ui::CellsMonitorPage *ui;
void hideTestUi();
BMSInterface *mDieBieMS;
int m_tablesNumber;
int m_cellsNumber;
QVector<CellInfo> mCellVoltageArray;
void createUI();
void clearTables();
void initTableHeader();
// this one is for the real usage
void initTableView(QTableView* tableView, bool doInitForCellVoltagArray = true);
void initTableView(int tablesNum = TwoTables, bool doInitForCellVoltagArray = true);
// this one is just for test
//void initTableView(int cellsNum = 0, int tablesNum = TwoTables, bool doInitForCellVoltagArray = true);
//
public slots:
///void onLoadParams();
private slots:
//void timerSlot();
//void valuesReceived(BMS_VALUES values);
void cellsReceived(int cellCount, QVector<double> cellVoltageArray);
/*
QVector<double> mSeconds;
double mSecondCounter;
qint64 mLastUpdateTime;
bool mUpdateValPlot;
QTimer* mTimer;
*/
///void initForCharts();
void appendDoubleAndTrunc(QVector<double> *vec, double num, int maxSize);
///void clearControlls();
};
#endif // CELLSMONITORPAGE_H