104 lines
3.3 KiB
C++
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);
|
|
}
|
|
|