Simulation is working

This commit is contained in:
Ollo 2023-08-17 22:19:12 +02:00
parent c5bfaa2a4a
commit aac762e8f1
3 changed files with 13 additions and 9 deletions

View File

@ -12,6 +12,7 @@ MainWindow::MainWindow(QWidget *parent)
{ {
ui->setupUi(this); ui->setupUi(this);
this->mOffscreenPanel = new QImage(DEFAULT_WIDTH + LED_DISTANCE, DEFAULT_HEIGHT + LED_DISTANCE, QImage::Format_RGB32); this->mOffscreenPanel = new QImage(DEFAULT_WIDTH + LED_DISTANCE, DEFAULT_HEIGHT + LED_DISTANCE, QImage::Format_RGB32);
this->drawImage(this->mOffscreenPanel);
this->server = new UdpLedServer (NULL, this); this->server = new UdpLedServer (NULL, this);
} }
@ -21,12 +22,10 @@ MainWindow::~MainWindow()
} }
void MainWindow::drawImage(QImage *target) { void MainWindow::drawImage(QImage *target) {
this->mScene=new QGraphicsScene() ;
QGraphicsView *graphicsView = new QGraphicsView(); QGraphicsView *graphicsView = new QGraphicsView();
graphicsView->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); graphicsView->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
QGraphicsScene* scene=new QGraphicsScene() ; graphicsView->setScene(this->mScene);
graphicsView->setScene(scene);
QGraphicsPixmapItem* item = new QGraphicsPixmapItem(QPixmap::fromImage(*(target)));
scene->addItem(item);
graphicsView->show(); graphicsView->show();
this->ui->ledPanel->addWidget(graphicsView); this->ui->ledPanel->addWidget(graphicsView);
} }
@ -42,7 +41,10 @@ void MainWindow::setLED(uint8_t x, uint8_t y) {
} }
void MainWindow::updatePanel(void) { void MainWindow::updatePanel(void) {
this->drawImage(this->mOffscreenPanel);
QGraphicsPixmapItem* item = new QGraphicsPixmapItem(QPixmap::fromImage(*(this->mOffscreenPanel)));
this->mScene->clear();
mScene->addItem(item);
this->renderPanel(); this->renderPanel();
} }

View File

@ -3,6 +3,7 @@
#include <QMainWindow> #include <QMainWindow>
#include <QImage> #include <QImage>
#include <QGraphicsScene>
#include "udpserver.h" #include "udpserver.h"
#include "settings.h" #include "settings.h"
@ -31,8 +32,9 @@ public slots:
private: private:
Ui::MainWindow *ui; Ui::MainWindow *ui;
UdpLedServer *server; UdpLedServer *server = nullptr;
QImage *mOffscreenPanel; QImage *mOffscreenPanel = nullptr;
QGraphicsScene* mScene = nullptr;
void drawImage(QImage *image); void drawImage(QImage *image);
void renderPanel(void); void renderPanel(void);
}; };

View File

@ -53,8 +53,8 @@ void UdpLedServer::processTheDatagram(QNetworkDatagram datagram) {
int currentIndex = PACKET_INDEX_PANEL0; int currentIndex = PACKET_INDEX_PANEL0;
uint16_t mask = 1; uint16_t mask = 1;
for(int x=0; x < (PANEL_WIDTH * MAXIMUM_PANELSIZE); x++) {
for(int y=0; y < PANEL_HEIGHT; y++) { for(int y=0; y < PANEL_HEIGHT; y++) {
for(int x=0; x < (PANEL_WIDTH * MAXIMUM_PANELSIZE); x++) {
if (datagram.data().at(currentIndex) & mask) { if (datagram.data().at(currentIndex) & mask) {
this->changeLEDstate(x, y); this->changeLEDstate(x, y);
qDebug() << x << "x" << y << " set"; qDebug() << x << "x" << y << " set";