# HG changeset patch # User jeandet # Date 2014-01-01 23:36:03 # Node ID 7a60353699c8125e990642654af37115fb36075b # Parent 4e6b18a649110a8e329d965981e48d2bae093946 added soc viewer. diff --git a/PeripheralWidget.pri b/PeripheralWidget.pri --- a/PeripheralWidget.pri +++ b/PeripheralWidget.pri @@ -1,9 +1,14 @@ PERIPHERAL_WDGT_SOURCES =\ src/peripheralwidget.cpp \ - src/registerwidget.cpp + src/registerwidget.cpp \ + src/socregsviewer.cpp + + PERIPHERAL_WDGT_HEADERS += \ src/peripheralwidget.h \ - src/registerwidget.h + src/registerwidget.h \ + src/socregsviewer.h + diff --git a/src/socregsviewer.cpp b/src/socregsviewer.cpp new file mode 100644 --- /dev/null +++ b/src/socregsviewer.cpp @@ -0,0 +1,33 @@ +#include "socregsviewer.h" + +socRegsViewer::socRegsViewer(const QString &name, QWidget *parent) : + QScrollArea(parent) +{ + p_name = name; + p_scrollAreaWdgt = new QWidget(this); + p_scrollAreaWdgtLayout = new QGridLayout(p_scrollAreaWdgt); + //p_layout = new QGridLayout(this); + p_nameLabel = new QLabel(name); + setWidget(p_scrollAreaWdgt); + setWidgetResizable(true); + p_scrollAreaWdgt->setLayout(p_scrollAreaWdgtLayout); + p_scrollAreaWdgtLayout->addWidget(p_nameLabel,0,0,1,1); +} + +peripheralWidget *socRegsViewer::peripheral(int index) +{ + if(index>=0 && indexaddWidget(peripheral,p_peripherals.count(),0,1,-1); + } +} diff --git a/src/socregsviewer.h b/src/socregsviewer.h new file mode 100644 --- /dev/null +++ b/src/socregsviewer.h @@ -0,0 +1,28 @@ +#ifndef SOCREGSVIEWER_H +#define SOCREGSVIEWER_H + +#include +#include +#include "peripheralwidget.h" + +class socRegsViewer : public QScrollArea +{ + Q_OBJECT +public: + explicit socRegsViewer(const QString& name,QWidget *parent = 0); + peripheralWidget* peripheral(int index); + +signals: + +public slots: + void addPeripheral(peripheralWidget* peripheral); + +private: + QWidget* p_scrollAreaWdgt; + QString p_name; + QGridLayout* p_layout,*p_scrollAreaWdgtLayout; + QLabel* p_nameLabel; + QList p_peripherals; +}; + +#endif // SOCREGSVIEWER_H diff --git a/test/main.cpp b/test/main.cpp --- a/test/main.cpp +++ b/test/main.cpp @@ -1,11 +1,26 @@ #include "mainwindow.h" #include +#include "socregsviewer.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); - MainWindow w; - w.show(); - +// MainWindow w; +// w.show(); + qint32 baseAddress = 0x8000100; + qint32 baseAddress2 = 0x8000200; +// testWidget = new peripheralWidget("UART1",baseAddress,this); +// for(int i=0;i<10;i++) +// testWidget->addRegister(QString("REG%1").arg((uint)i),baseAddress+(i*4)); + socRegsViewer* socViewer; + socViewer = new socRegsViewer("leon 3"); + socViewer->addPeripheral(new peripheralWidget("UART1",baseAddress)); + socViewer->addPeripheral(new peripheralWidget("UART2",baseAddress2)); + for(int i=0;i<10;i++) + { + socViewer->peripheral(0)->addRegister(QString("REG%1").arg((uint)i),baseAddress+(i*4)); + socViewer->peripheral(1)->addRegister(QString("REG%1").arg((uint)i),baseAddress2+(i*4)); + } + socViewer->show(); return a.exec(); } diff --git a/test/mainwindow.cpp b/test/mainwindow.cpp --- a/test/mainwindow.cpp +++ b/test/mainwindow.cpp @@ -4,10 +4,19 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { qint32 baseAddress = 0x8000100; - testWidget = new peripheralWidget("UART1",baseAddress,this); + qint32 baseAddress2 = 0x8000200; +// testWidget = new peripheralWidget("UART1",baseAddress,this); +// for(int i=0;i<10;i++) +// testWidget->addRegister(QString("REG%1").arg((uint)i),baseAddress+(i*4)); + socViewer = new socRegsViewer("leon 3"); + socViewer->addPeripheral(new peripheralWidget("UART1",baseAddress,this)); + socViewer->addPeripheral(new peripheralWidget("UART2",baseAddress2,this)); for(int i=0;i<10;i++) - testWidget->addRegister(QString("REG%1").arg((uint)i),baseAddress+(i*4)); - this->setCentralWidget(testWidget); + { + socViewer->peripheral(0)->addRegister(QString("REG%1").arg((uint)i),baseAddress+(i*4)); + socViewer->peripheral(1)->addRegister(QString("REG%1").arg((uint)i),baseAddress2+(i*4)); + } + this->setCentralWidget(socViewer); } MainWindow::~MainWindow() diff --git a/test/mainwindow.h b/test/mainwindow.h --- a/test/mainwindow.h +++ b/test/mainwindow.h @@ -3,6 +3,7 @@ #include #include "peripheralwidget.h" +#include "socregsviewer.h" class MainWindow : public QMainWindow { @@ -13,6 +14,7 @@ public: ~MainWindow(); peripheralWidget* testWidget; + socRegsViewer* socViewer; }; #endif // MAINWINDOW_H