1D801Desktop/mainwindow.cpp

104 lines
3.3 KiB
C++

#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
bt = new Bluetooth1d801(this);
//конструктор для графика
auto series = new QLineSeries; //QLineSeries - делает массив точек для графиков. умеет append например
for (int i = 0; i < 500; i++) { //иииии вцикле
QPointF p(i, qSin(M_PI / 50 * i) * 100); // делаем точку c координатами в конструкторе
// p.ry() += QRandomGenerator::global()->bounded(20);
*series << p; // и приздяцим её в массив
} // и так по кругу
chart = new Chart; //новый график
chart->addSeries(series); // закидываем ему массив точек // функция унаследована, есть еще removeAllSeries
//chart->setTitle("Zoom in/out example");
chart->createDefaultAxes();
chart->setAnimationOptions(QChart::SeriesAnimations);
chart->legend()->hide(); // скрыть легенду, в моем случае бесячую точку
auto chartView = new ChartView(chart); // на основе точек создаем обьект
chartView->setRenderHint(QPainter::Antialiasing);
// this->setCentralWidget(chartView);// эта шляпа растягивает chartview на весь окно
ui->horizontalLayout->addWidget(chartView); // добавляем виджет
//конец конструктора для графика
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButtonSearch_clicked()
{
bt->startDiscovery(); // запускаем поиск
connect( // забираем найденые результаты
bt, &Bluetooth1d801::discoveryResult,
this, &MainWindow::addDiscoveryResult
);
}
void MainWindow::on_pushButtonConnect_clicked()
{
qDebug()<< "Нажал кнопочку...)";
}
void MainWindow::on_pushButtonGetParam_clicked()
{
}
void MainWindow::addDiscoveryResult(QListWidgetItem *res_p)
{
ui->listWidgetDevice->addItem(res_p);
}
void MainWindow::addRawData(QByteArray data)
{
ui->listWidgetResponse->addItem(data.toHex());
}
void MainWindow::on_listWidgetDevice_itemDoubleClicked(QListWidgetItem *item)
{
if(!bt){
qDebug() << "телега пошла вперед лошади, сливай воду";
return;
}
bt->connectTo(item);
connect( // забираем сырые ответы
bt, &Bluetooth1d801::rawDataRecived,
this, &MainWindow::addRawData
);
}
void MainWindow::on_pushButtonClearCharts_clicked()
{
chart->removeAllSeries();
}
void MainWindow::on_pushButton_clicked()
{
auto series = new QLineSeries; //QLineSeries - делает массив точек для графиков. умеет append например
for (int i = 0; i < 500; i++) { //иииии вцикле
QPointF p(i, QRandomGenerator::global()->bounded(100)); // делаем точку c координатами в конструкторе
*series << p; // и приздяцим её в массив
} // и так по кругу
chart->addSeries(series);
}