diff options
Diffstat (limited to 'clients/tde/src/part/fpgaview/part.cpp')
-rw-r--r-- | clients/tde/src/part/fpgaview/part.cpp | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/clients/tde/src/part/fpgaview/part.cpp b/clients/tde/src/part/fpgaview/part.cpp index c9589f5..b40f167 100644 --- a/clients/tde/src/part/fpgaview/part.cpp +++ b/clients/tde/src/part/fpgaview/part.cpp @@ -47,6 +47,7 @@ #include <tqprogressbar.h> #include <unistd.h> //access() #include <stdint.h> +#include <math.h> #include <tqpainter.h> @@ -589,7 +590,8 @@ FPGAViewPart::FPGAViewPart(TQWidget *parentWidget, const char *widgetName, TQObj m_commHandlerState(0), m_commHandlerMode(0), m_commHandlerNextState(0), m_commHandlerNextMode(0), m_connectionActiveAndValid(false), m_tickerState(0), m_remoteInputModeEnabled(false), m_4bitInputValue(0), m_4bitOutputValue(0), m_8bitInputValue(0), m_8bitOutputValue(0), m_16bitInputValue(0), m_16bitOutputValue(0), m_7segDigit3OutputValue(0xff), m_7segDigit2OutputValue(0xff), m_7segDigit1OutputValue(0xff), m_7segDigit0OutputValue(0xff), - m_batchOutputFile(NULL), m_dataOutputFile(NULL), m_dataMemorySize(16384), + m_batchOutputFile(NULL), m_dataOutputFile(NULL), m_dataMemorySize(16384), m_dataMemorySizePrev(0), + m_dataMemoryImageWidth(128), m_dataMemoryImageHeight(128), m_inputImageViewer(NULL), m_outputImageViewer(NULL) { // Initialize important base class variables @@ -989,12 +991,12 @@ void FPGAViewPart::processLockouts() { if (!m_inputImageViewer) { m_inputImageViewer = new ImageViewerWindow(i18n("Remote FPGA Input Image")); mdiMainForm()->addWindow(m_inputImageViewer); - m_inputImageViewer->resize(m_base->ImageInputLabel->size()); + m_inputImageViewer->resize(m_dataMemoryImageWidth, m_dataMemoryImageHeight); } if (!m_outputImageViewer) { m_outputImageViewer = new ImageViewerWindow(i18n("Remote FPGA Output Image")); mdiMainForm()->addWindow(m_outputImageViewer); - m_outputImageViewer->resize(m_base->ImageOutputLabel->size()); + m_outputImageViewer->resize(m_dataMemoryImageWidth, m_dataMemoryImageHeight); } } @@ -1191,6 +1193,21 @@ void FPGAViewPart::receiveInputStatesFromRemoteFPGA() { m_remoteInputModeEnabled = true; } + // DSP RAM size + m_socket->readBlock(data, 1); + m_dataMemorySize = pow(2, data[0]); + + if (m_dataMemorySize != m_dataMemorySizePrev) { + unsigned int newSize = round(sqrt(m_dataMemorySize)); + m_dataMemoryImageWidth = newSize; + m_dataMemoryImageHeight = newSize; + m_base->groupInputImage->setTitle(TQString("Input Image (%1x%2):").arg(m_dataMemoryImageWidth).arg(m_dataMemoryImageHeight)); + m_base->groupOutputImage->setTitle(TQString("Output Image (%1x%2):").arg(m_dataMemoryImageWidth).arg(m_dataMemoryImageHeight)); + m_inputImageViewer->resize(m_dataMemoryImageWidth, m_dataMemoryImageHeight); + m_outputImageViewer->resize(m_dataMemoryImageWidth, m_dataMemoryImageHeight); + m_dataMemorySizePrev = m_dataMemorySize; + } + // 4-bit outputs m_socket->readBlock(data, 1); m_4bitOutputValue = data[0]; @@ -1260,8 +1277,8 @@ void FPGAViewPart::updateDisplay() { break; case 1: // Get all data - if (m_socket->bytesAvailable() >= 41) { - if (m_socket->bytesAvailable() == 41) { + if (m_socket->bytesAvailable() >= 42) { + if (m_socket->bytesAvailable() == 42) { // Process the received data packet receiveInputStatesFromRemoteFPGA(); @@ -1392,8 +1409,8 @@ void FPGAViewPart::updateDisplay() { } else if (m_commHandlerState == 2) { // Get all data - if (m_socket->bytesAvailable() >= 41) { - if (m_socket->bytesAvailable() == 41) { + if (m_socket->bytesAvailable() >= 42) { + if (m_socket->bytesAvailable() == 42) { TQString line; // Process the received data packet @@ -1483,7 +1500,10 @@ void FPGAViewPart::updateDisplay() { // Show image in GUI TQPixmap inputImagePixmap(displayImage); - m_base->ImageInputLabel->setPixmap(inputImagePixmap); + TQImage scaledDisplayImage = displayImage; + scaledDisplayImage = scaledDisplayImage.smoothScale(m_base->ImageInputLabel->width(), m_base->ImageInputLabel->height()); + TQPixmap scaledInputImagePixmap(scaledDisplayImage); + m_base->ImageInputLabel->setPixmap(scaledInputImagePixmap); m_inputImageViewer->setPixmap(inputImagePixmap); } @@ -1603,7 +1623,10 @@ void FPGAViewPart::updateDisplay() { } } TQPixmap outputImagePixmap(outputImage); - m_base->ImageOutputLabel->setPixmap(outputImagePixmap); + TQImage scaledOutputImage = outputImage; + scaledOutputImage = scaledOutputImage.smoothScale(m_base->ImageOutputLabel->width(), m_base->ImageOutputLabel->height()); + TQPixmap scaledOutputImagePixmap(scaledOutputImage); + m_base->ImageOutputLabel->setPixmap(scaledOutputImagePixmap); m_outputImageViewer->setPixmap(outputImagePixmap); outputImage.save(m_dataOutputFile, "PNG"); } |