diff --git a/.gitignore b/.gitignore index fb587492..e9e1a012 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ firmware/hex *.json *.kate-swp .directory +.kdev4 +*.kdev4 diff --git a/docs/OpenHantek6022_User_Manual.odt b/docs/OpenHantek6022_User_Manual.odt index 78be26df..f2b0860b 100644 Binary files a/docs/OpenHantek6022_User_Manual.odt and b/docs/OpenHantek6022_User_Manual.odt differ diff --git a/docs/OpenHantek6022_User_Manual.pdf b/docs/OpenHantek6022_User_Manual.pdf index 4dd25c30..8b441af0 100644 Binary files a/docs/OpenHantek6022_User_Manual.pdf and b/docs/OpenHantek6022_User_Manual.pdf differ diff --git a/docs/images/screenshot_mainwindow.png b/docs/images/screenshot_mainwindow.png index c89a64d9..fe787337 100644 Binary files a/docs/images/screenshot_mainwindow.png and b/docs/images/screenshot_mainwindow.png differ diff --git a/openhantek/src/OH_BUILD.h b/openhantek/src/OH_BUILD.h index 73fcf950..f24eb51a 100644 --- a/openhantek/src/OH_BUILD.h +++ b/openhantek/src/OH_BUILD.h @@ -1,2 +1,2 @@ // Do not edit, will be re-created at each commit! -#define OH_BUILD "20191112 build 548" +#define OH_BUILD "20191115 build 549" diff --git a/openhantek/src/OH_VERSION.h b/openhantek/src/OH_VERSION.h index f8afc6dc..4c0b6c36 100644 --- a/openhantek/src/OH_VERSION.h +++ b/openhantek/src/OH_VERSION.h @@ -1,7 +1,7 @@ // define the version that is shown on top of the program // if undefined (for development commits) the build will be shown by OpenHantek -#define OH_VERSION "v2.17-rc8" +#define OH_VERSION "3.0.0" # ifdef OH_VERSION diff --git a/openhantek/src/dsowidget.cpp b/openhantek/src/dsowidget.cpp index 5df04719..00b6a03a 100644 --- a/openhantek/src/dsowidget.cpp +++ b/openhantek/src/dsowidget.cpp @@ -84,10 +84,10 @@ DsoWidget::DsoWidget(DsoSettingsScope *scope, DsoSettingsView *view, const Dso:: markerInfoLabel->setAlignment(Qt::AlignLeft); markerInfoLabel->setPalette(palette); markerTimeLabel = new QLabel(); - markerTimeLabel->setAlignment(Qt::AlignRight); + markerTimeLabel->setAlignment(Qt::AlignLeft); markerTimeLabel->setPalette(palette); markerFrequencyLabel = new QLabel(); - markerFrequencyLabel->setAlignment(Qt::AlignRight); + markerFrequencyLabel->setAlignment(Qt::AlignLeft); markerFrequencyLabel->setPalette(palette); markerTimebaseLabel = new QLabel(); markerTimebaseLabel->setAlignment(Qt::AlignRight); @@ -409,18 +409,17 @@ void DsoWidget::setMeasurementVisible(ChannelID channel) { /// \brief Update the label about the marker measurements void DsoWidget::updateMarkerDetails() { - double div0 = scope->horizontal.cursor.pos[0].x(); - double div1 = scope->horizontal.cursor.pos[1].x(); - if ( div0 > div1 ) - std::swap( div0, div1 ); - double divs = div1 - div0; - double time0 = div0 * scope->horizontal.timebase; - double time1 = div1 * scope->horizontal.timebase; + double m1 = scope->horizontal.cursor.pos[0].x() + DIVS_TIME / 2; // zero at center -> zero at left margin + double m2 = scope->horizontal.cursor.pos[1].x() + DIVS_TIME / 2; // zero at center -> zero at left margin + if ( m1 > m2 ) + std::swap( m1, m2 ); + double divs = m2 - m1; + // t = 0 at trigger position + double time0 = ( m1 - DIVS_TIME * scope->trigger.position ) * scope->horizontal.timebase; + double time1 = ( m2 - DIVS_TIME * scope->trigger.position ) * scope->horizontal.timebase; double time = divs * scope->horizontal.timebase; - div0 += DIVS_TIME / 2; // zero at center -> zero at left margin - div1 += DIVS_TIME / 2; - double freq0 = div0 * scope->horizontal.frequencybase; - double freq1 = div1 * scope->horizontal.frequencybase; + double freq0 = m1 * scope->horizontal.frequencybase; + double freq1 = m2 * scope->horizontal.frequencybase; double freq = divs * scope->horizontal.frequencybase; bool timeUsed = false; bool freqUsed = false; @@ -458,7 +457,7 @@ void DsoWidget::updateMarkerDetails() { ++index; } - if ( DIVS_TIME == divs || (div0 == 0 && div1 == 0) || (div0 == DIVS_TIME && div1 == DIVS_TIME) ) { + if ( DIVS_TIME == divs || ( m1 == 0 && m2 == 0) || ( m1 == DIVS_TIME && m2 == DIVS_TIME) ) { // markers at left/right margins -> don't display markerInfoLabel->setVisible( false ); markerTimeLabel->setVisible( false ); @@ -487,21 +486,27 @@ void DsoWidget::updateMarkerDetails() { markerFrequencybaseLabel->setVisible( freqUsed ); } markerInfoLabel->setText( mInfo ); - if ( timeUsed ) - markerTimeLabel->setText( mTime.append( "%1 -> %2, Δt: %3 " ) - .arg( valueToString( time0, UNIT_SECONDS, 4 ) ) - .arg( valueToString( time1, UNIT_SECONDS, 4 ) ) - .arg( valueToString( time, UNIT_SECONDS, 4 ) ) - ); - else + if ( timeUsed ) { + mTime += QString( "%1" ).arg( valueToString( time0, UNIT_SECONDS, 4 ) ); + if ( time ) + mTime += QString( " -> %1, Δt: %2 (%3) ") + .arg( valueToString( time1, UNIT_SECONDS, 4 ) ) + .arg( valueToString( time, UNIT_SECONDS, 4 ) ) + .arg( valueToString( 1/time, UNIT_HERTZ, 4) ) + ; + markerTimeLabel->setText( mTime ); + } else { markerTimeLabel->setText( "" ); - if ( freqUsed ) - markerFrequencyLabel->setText( mFreq.append( "%1 -> %2, Δf: %3 " ) - .arg( valueToString( freq0, UNIT_HERTZ, 4) ) - .arg( valueToString( freq1, UNIT_HERTZ, 4) ) - .arg( valueToString( freq, UNIT_HERTZ, 4) ) - ); - else + } + if ( freqUsed ) { + mFreq += QString( "%1" ).arg( valueToString( freq0, UNIT_HERTZ, 4) ); + if ( freq ) + mFreq += QString( " -> %2, Δf: %3 " ) + .arg( valueToString( freq1, UNIT_HERTZ, 4) ) + .arg( valueToString( freq, UNIT_HERTZ, 4) ) + ; + markerFrequencyLabel->setText( mFreq ); + } else markerFrequencyLabel->setText( "" ); } } @@ -524,7 +529,7 @@ void DsoWidget::updateTriggerDetails() { tablePalette.setColor(QPalette::WindowText, view->screen.voltage[scope->trigger.source]); settingsTriggerLabel->setPalette(tablePalette); QString levelString = valueToString(scope->voltage[scope->trigger.source].trigger, UNIT_VOLTS, 3); - QString pretriggerString = tr("%L1%").arg((int)(scope->trigger.position * 100 + 0.5)); + QString pretriggerString = tr("%L1%").arg( (int)round(scope->trigger.position * 100 ) ); QString pre = Dso::slopeString(scope->trigger.slope); // trigger slope QString post = pre; // opposite trigger slope if ( scope->trigger.slope == Dso::Slope::Positive ) diff --git a/openhantek/src/exporting/legacyexportdrawer.cpp b/openhantek/src/exporting/legacyexportdrawer.cpp index 4546e9fc..d342f544 100644 --- a/openhantek/src/exporting/legacyexportdrawer.cpp +++ b/openhantek/src/exporting/legacyexportdrawer.cpp @@ -176,18 +176,16 @@ bool LegacyExportDrawer::exportSamples(const PPresult *result, QPaintDevice* pai painter.setPen(colorValues->text); // Calculate variables needed for zoomed scope - double m1 = settings->scope.getMarker(0); - double m2 = settings->scope.getMarker(1); + double m1 = settings->scope.getMarker(0) + DIVS_TIME / 2; // zero at center -> zero at left margin + double m2 = settings->scope.getMarker(1) + DIVS_TIME / 2; // zero at center -> zero at left margin if ( m1 > m2 ) std::swap( m1, m2 ); double divs = m2 - m1; double zoomFactor = DIVS_TIME / divs; double zoomOffset = (m1 + m2) / 2; - double time1 = m1 * settings->scope.horizontal.timebase; - double time2 = m2 * settings->scope.horizontal.timebase; + double time1 = ( m1 - DIVS_TIME * settings->scope.trigger.position) * settings->scope.horizontal.timebase; + double time2 = ( m2 - DIVS_TIME * settings->scope.trigger.position) * settings->scope.horizontal.timebase; double time = divs * settings->scope.horizontal.timebase; - m1 += DIVS_TIME / 2; // zero at center -> zero at left margin - m2 += DIVS_TIME / 2; double freq1 = m1 * settings->scope.horizontal.frequencybase; double freq2 = m2 * settings->scope.horizontal.frequencybase; double freq = freq2 - freq1; @@ -221,7 +219,7 @@ bool LegacyExportDrawer::exportSamples(const PPresult *result, QPaintDevice* pai tr("/div"), QTextOption(Qt::AlignRight)); } else { - stretchBase = (double)paintDevice->width() / 7; + stretchBase = (double)paintDevice->width() / 8; scopeHeight = (double)paintDevice->height() - (channelCount + 4) * lineHeight; double top = 2.5 * lineHeight + scopeHeight; @@ -230,13 +228,18 @@ bool LegacyExportDrawer::exportSamples(const PPresult *result, QPaintDevice* pai "t1: " + valueToString( time1, UNIT_SECONDS, 4 ), QTextOption(Qt::AlignRight)); painter.drawText(QRectF(stretchBase * 2, top, stretchBase, lineHeight), "t2: " + valueToString( time2, UNIT_SECONDS, 4 ), QTextOption(Qt::AlignRight)); - painter.drawText(QRectF(stretchBase * 3, top, stretchBase, lineHeight), + if ( time ) { + painter.drawText(QRectF(stretchBase * 3, top, stretchBase, lineHeight), "Δt: " + valueToString( time, UNIT_SECONDS, 4 ), QTextOption(Qt::AlignRight)); - painter.drawText(QRectF(stretchBase * 4, top, stretchBase, lineHeight), - "f1: " + valueToString( freq1, UNIT_HERTZ, 4 ), QTextOption(Qt::AlignRight)); + painter.drawText(QRectF(stretchBase * 4, top, stretchBase, lineHeight), + " (=" + valueToString( 1/time, UNIT_HERTZ, 4 ) + ")", QTextOption(Qt::AlignLeft)); + } painter.drawText(QRectF(stretchBase * 5, top, stretchBase, lineHeight), - "f2: " + valueToString( freq2, UNIT_HERTZ, 4 ), QTextOption(Qt::AlignRight)); + "f1: " + valueToString( freq1, UNIT_HERTZ, 4 ), QTextOption(Qt::AlignRight)); painter.drawText(QRectF(stretchBase * 6, top, stretchBase, lineHeight), + "f2: " + valueToString( freq2, UNIT_HERTZ, 4 ), QTextOption(Qt::AlignRight)); + if ( freq) + painter.drawText(QRectF(stretchBase * 7, top, stretchBase, lineHeight), "Δf: " + valueToString( freq, UNIT_HERTZ, 4 ), QTextOption(Qt::AlignRight)); } @@ -325,12 +328,29 @@ bool LegacyExportDrawer::exportSamples(const PPresult *result, QPaintDevice* pai break; case Dso::GraphFormat::XY: + // TODO: create also XY image break; default: break; } + if ( !zoomed ) { // draw marker lines and trigger position + const double trig = DIVS_TIME * ( settings->scope.trigger.position - 0.5 ); + const double tick = (double)DIVS_TIME / 250.0; + const double top = DIVS_VOLTAGE/2; + const double bottom = -DIVS_VOLTAGE/2; + const double left = -DIVS_TIME/2; + //const double right = DIVS_TIME/2; + painter.setPen( QPen(colorValues->markers, 0) ); + // markers + painter.drawLine( QLineF( m1 + left, bottom - 4 * tick, m1 + left, top ) ); + painter.drawLine( QLineF( m2 + left, bottom - 4 * tick, m2 + left, top ) ); + // trigger point (t=0) + painter.drawLine( QLineF( trig - tick, top + 4 * tick, trig, top ) ); + painter.drawLine( QLineF( trig + tick, top + 4 * tick, trig, top ) ); + } + // Set DIVS_TIME / zoomFactor x DIVS_VOLTAGE matrix for zoomed // oscillograph painter.setMatrix(QMatrix((paintDevice->width() - 1) / DIVS_TIME * zoomFactor, 0, 0, diff --git a/openhantek/src/selectdevice/selectsupporteddevice.cpp b/openhantek/src/selectdevice/selectsupporteddevice.cpp index 24bee902..e50893e5 100644 --- a/openhantek/src/selectdevice/selectsupporteddevice.cpp +++ b/openhantek/src/selectdevice/selectsupporteddevice.cpp @@ -57,7 +57,10 @@ std::unique_ptr SelectSupportedDevice::showSelectDeviceModal(libusb_c ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); if (ui->cmbDevices->currentData(Qt::UserRole+2).toBool()) { ui->labelReadyState->setText(tr("

Upload in progress ...

" - "

If the upload takes more than 30 s, please close this window
and restart the program!

")); + "

If the upload takes more than 30 s, please close this window
and restart the program!

" + "

In this case, please unplug other USB devices on the same bus!
" + "You can check this under Linux with:

lsusb; lsusb -t

" + )); } else { ui->labelReadyState->setText(tr("Connection failed!")); } diff --git a/openhantek/translations/openhantek_de.ts b/openhantek/translations/openhantek_de.ts index b2a0c6b1..499dc700 100644 --- a/openhantek/translations/openhantek_de.ts +++ b/openhantek/translations/openhantek_de.ts @@ -1,6 +1,6 @@ - + @@ -13,11 +13,11 @@ DevicesListModel Devicename - Gerätename + Gerätename Status - Status + Status @@ -322,15 +322,15 @@ DsoWidget Zoom x%L1 - Zoom x%L1 + Zoom x%L1 - - - - + + + + + - /div /div @@ -346,52 +346,52 @@ Zoom --- - Zoom --- + Zoom --- - - + + ON EIN - - + + OFF AUS - + Markers - + Merker - + Time: - + Zeit: - + Frequency: - + Frequenz: - + Zoom x%L1 - + Zoom x%L1 - + Zoom --- - + Zoom --- - + %L1% %L1% - + %1 %2 %3 %4 %5 %1 %2 %3 %4 %5 @@ -405,15 +405,15 @@ %1 %2 %3 %4 - %1 %2 %3 %4 + %1 %2 %3 %4 - + /s /s - + on screen angezeigt @@ -498,7 +498,7 @@ Record length - Satzlänge + Satzlänge @@ -512,7 +512,7 @@ Roll - Rollen + Rollen @@ -524,21 +524,21 @@ %1 %2 %3 %4 - %1 %2 %3 %4 + %1 %2 %3 %4 %1 %2 %3 %4 %5 - %1 %2 %3 %4 %5 {1 ?} {2 ?} {3 ?} + %1 %2 %3 %4 %5 %1 S - %1 S + %1 S %1 S on screen - + %1 S angezeigt @@ -550,18 +550,18 @@ - - + + /div /div - + Zoom x%L1 Zoom x%L1 - + Marker 1/2 Marker 1/2 @@ -705,7 +705,7 @@ &Stop - &Stop + &Stop @@ -714,7 +714,7 @@ &Start - &Start + &Start @@ -902,35 +902,31 @@ - %L1 ps %L1 ps - %L1 ns %L1 ns - %L1 ms %L1 ms - %L1 s %L1 s %L1 μV - %L1 µV + %L1 µV %L1 μs - %L1 µs + %L1 µs @@ -939,7 +935,6 @@ - %L1 µs %L1 µs @@ -1129,7 +1124,7 @@ Show translated UI (if available) - Zeige deutsche Texte (sofern vorhanden) + Zeige deutsche Texte (sofern vorhanden) @@ -1306,7 +1301,7 @@ QObject Translation loaded - Übersetzung geladen + Übersetzung geladen @@ -1333,11 +1328,11 @@ RawDevicesListModel %1:%2 - No access - %1:%2 - Kein Zugriff + %1:%2 - Kein Zugriff %1:%2 (%3 - %4) - %1:%2 (%3 - %4) + %1:%2 (%3 - %4) @@ -1379,7 +1374,7 @@ Ein neues Gerät aus einer Vorlage erstellen - + Connection failed! Verbindungsfehler! @@ -1389,32 +1384,36 @@ <br/><p>Das Gerät ist bereit.</p><p>Das <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/OpenHantek6022_User_Manual.pdf'>Benutzerhandbuch</a> gibt Hinweise für den sicheren Gebrauch.</p> - <p>Upload in progress ...</p><p>If the upload takes more than 30 s, please close this window <br/>and restart the program!</p> <p>Firmware wird geladen...</p><p>Sollte dies länger als 30 s dauern, bitte abbrechen <br/>und das Programm neu starten!</p> - + + <p>Upload in progress ...</p><p><b>If the upload takes more than 30 s, please close this window <br/>and restart the program!</b></p><p>In this case, please unplug other USB devices on the same bus!<br/>You can check this under Linux with: <pre>lsusb; lsusb -t</pre></p> + <p>Firmware wird geladen...</p><p><b>Sollte dies länger als 30 s dauern, bitte abbrechen <br/>und das Programm neu starten!</b></p>In diesem Fall bitte andere USB-Geräte auf dem selben Bus entfernen!<br/>Anzeige der USB-Belegung unter Linux : <pre>lsusb; lsusb -t</pre></p> + + + <p>OpenHantek6022 is searching for compatible devices ...</p><p><img align='right' height='200' src='qrc:///switch_6022BL.png'>Don't forget to switch your device into oscilloscope mode if it has multiple modes.</p> <p>OpenHantek6022 sucht nach kompatiblen Geräten ...</p><p><img align='right' height='150' src='qrc:///switch_6022BL.png'>Bitte das Gerät in den Oszilloskop-Modus schalten, falls es mehrere Funktionen besitzt.</p> - + <p>Please make sure you have installed the windows usb driver correctly</p> <p>Bitter sichrstellen, dass der korrekte Windows-Treiber installiert ist.</p> - + <p>Please make sure you have copied the udev rules file to <b>%1</b> for correct USB access permissions.</p> <p>Bitte sicherstellen, dass eine udev-Regel nach <b>%1</b> kopiert wurde um den USB-Zugriff zu ermöglichen.</p> - + <p>Visit the build and run instruction <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/build.md'>website</a> for help.</p> <p><a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/build.md'>Informationen</a> zur Erstellung des Programms.</p> - + Can't initalize USB: %1 Kann USB nicht initialisieren: %1 @@ -1464,15 +1463,15 @@ UploadFirmware Couldn't open device: %1 - Konnte Gerät nicht öffnen: %1 + Konnte Gerät nicht öffnen: %1 libusb_claim_interface() failed: %1 - libusb_claim_interface() - Fehler: %1 + libusb_claim_interface() - Fehler: %1 Writing the main firmware failed: %1 - Fehler beim Übertragen der Firmware: %1 + Fehler beim Übertragen der Firmware: %1 @@ -1504,7 +1503,7 @@ X10 probe - X10 Tastkopf + X10 Tastkopf diff --git a/openhantek/translations/openhantek_fr.ts b/openhantek/translations/openhantek_fr.ts index 2ace7c0e..92e96d14 100644 --- a/openhantek/translations/openhantek_fr.ts +++ b/openhantek/translations/openhantek_fr.ts @@ -320,69 +320,69 @@ - - - - + + + + + - /div - - + + ON - - + + OFF - + Markers - + Time: - + Frequency: - + Zoom x%L1 - + Zoom --- - + %L1% - + %1 %2 %3 %4 %5 - + /s - + on screen @@ -499,18 +499,18 @@ - - + + /div - + Zoom x%L1 - + Marker 1/2 @@ -848,31 +848,26 @@ - %L1 ps - %L1 ns - %L1 µs - %L1 ms - %L1 s @@ -1298,37 +1293,41 @@ <br/><p>L'appareil est prêt à l'emploi.</p><p>Veuillez observer le <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/OpenHantek6022_User_Manual.pdf'>mode d'emploi</a> pour un fonctionnement sûr.</p> - <p>Upload in progress ...</p><p>If the upload takes more than 30 s, please close this window <br/>and restart the program!</p> - <p>Téléchargement en cours...</p><p>Si le téléchargement dure plus de 30 s, fermez cette fenêtre <br/>et redémarrez le programme!</p> + <p>Téléchargement en cours...</p><p>Si le téléchargement dure plus de 30 s, fermez cette fenêtre <br/>et redémarrez le programme!</p> + + + + <p>Upload in progress ...</p><p><b>If the upload takes more than 30 s, please close this window <br/>and restart the program!</b></p><p>In this case, please unplug other USB devices on the same bus!<br/>You can check this under Linux with: <pre>lsusb; lsusb -t</pre></p> + - + Connection failed! La connexion a échoué! - + <p>OpenHantek6022 is searching for compatible devices ...</p><p><img align='right' height='200' src='qrc:///switch_6022BL.png'>Don't forget to switch your device into oscilloscope mode if it has multiple modes.</p> <p>OpenHantek6022 recherche des périphériques compatibles...</p><p><img align='right' height='200' src='qrc:////switch_6022BL.png'>N'oubliez pas de passer votre appareil en mode oscilloscope s'il a plusieurs modes.</p> - + <p>Please make sure you have installed the windows usb driver correctly</p> <p>Veuillez vous assurer que vous avez installé correctement le pilote usb de Windows</p> - + <p>Please make sure you have copied the udev rules file to <b>%1</b> for correct USB access permissions.</p> <p>Veuillez vous assurer d'avoir copié le fichier de règles udev dans <b>%1</b> pour les permissions d'accès USB correctes.</p> - + <p>Visit the build and run instruction <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/build.md'>website</a> for help.</p> <p>Visitez l'instruction build and run <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/build.md'>website</a> pour de l'aide.</p> - + Can't initalize USB: %1 Impossible d'initialiser l'USB: %1 diff --git a/openhantek/translations/openhantek_it.ts b/openhantek/translations/openhantek_it.ts index 7dd85fa0..54fee993 100644 --- a/openhantek/translations/openhantek_it.ts +++ b/openhantek/translations/openhantek_it.ts @@ -320,69 +320,69 @@ - - - - + + + + + - /div - - + + ON - - + + OFF - + Markers - + Time: - + Frequency: - + Zoom x%L1 - + Zoom --- - + %L1% - + %1 %2 %3 %4 %5 - + /s - + on screen @@ -499,18 +499,18 @@ - - + + /div - + Zoom x%L1 - + Marker 1/2 @@ -848,31 +848,26 @@ - %L1 ps - %L1 ns - %L1 µs - %L1 ms - %L1 s @@ -1298,37 +1293,41 @@ <br/><p>Il dispositivo è pronto all'uso.</p><p>Per un funzionamento sicuro, osservare il <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/OpenHantek6022_User_Manual.pdf'>manuale d'uso.</a> - <p>Upload in progress ...</p><p>If the upload takes more than 30 s, please close this window <br/>and restart the program!</p> - <p>Carica in corso ...</p><p><p>Se il caricamento richiede più di 30 secondi, chiudi questa finestra <br/>e riavvia il programma!</p> + <p>Carica in corso ...</p><p><p>Se il caricamento richiede più di 30 secondi, chiudi questa finestra <br/>e riavvia il programma!</p> + + + + <p>Upload in progress ...</p><p><b>If the upload takes more than 30 s, please close this window <br/>and restart the program!</b></p><p>In this case, please unplug other USB devices on the same bus!<br/>You can check this under Linux with: <pre>lsusb; lsusb -t</pre></p> + - + Connection failed! Il collegamento è fallito! - + <p>OpenHantek6022 is searching for compatible devices ...</p><p><img align='right' height='200' src='qrc:///switch_6022BL.png'>Don't forget to switch your device into oscilloscope mode if it has multiple modes.</p> <p>ApertoHantek6022 è alla ricerca di dispositivi compatibili...</p><p><img align='right' height='200' src='qrc:////switch_6022BL.png'>Non dimenticare di passare il dispositivo in modalità oscilloscopio se ha più modalità.</p> - + <p>Please make sure you have installed the windows usb driver correctly</p> <p>Assicurati di aver installato correttamente il driver usb di Windows.</p> - + <p>Please make sure you have copied the udev rules file to <b>%1</b> for correct USB access permissions.</p> <p>Assicurati di aver copiato il file delle regole udev in <b>%1</b> per ottenere le corrette autorizzazioni di accesso USB.</p> - + <p>Visit the build and run instruction <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/build.md'>website</a> for help.</p> <p>Visitare l'istruzione di compilazione ed esecuzione <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/build.md'>sito web site</a> per help.</p> - + Can't initalize USB: %1 Non può initalizzare USB: %1 diff --git a/openhantek/translations/openhantek_pt.ts b/openhantek/translations/openhantek_pt.ts index f3ca11ee..38173034 100644 --- a/openhantek/translations/openhantek_pt.ts +++ b/openhantek/translations/openhantek_pt.ts @@ -314,12 +314,12 @@ Zoom x%L1 - - - - + + + + + - /div /div @@ -334,54 +334,54 @@ Marcadores - - + + ON - - + + OFF - + Markers - + Time: - + Frequency: - + Zoom x%L1 - + Zoom --- - + %L1% %L1% - + %1 %2 %3 %4 %5 - + on screen @@ -398,7 +398,7 @@ %1 %2 %3 %4 - + /s /s @@ -527,18 +527,18 @@ - - + + /div /div - + Zoom x%L1 Zoom x%L1 - + Marker 1/2 Construtor 1/2 @@ -879,25 +879,21 @@ - %L1 ps %L1 ps - %L1 ns %L1 ns - %L1 ms %L1 ms - %L1 s %L1 s @@ -908,7 +904,6 @@ - %L1 µs @@ -1329,7 +1324,7 @@ Adicionar novo dispositivo a partir do modelo - + Connection failed! Conexão falhou! @@ -1339,32 +1334,36 @@ <br/>><p>O dispositivo está pronto para uso.</p><p>Por favor, observe o <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/OpenHantek6022_User_Manual.pdf'> manual do usuário</a> para uma operação segura.</p> - <p>Upload in progress ...</p><p>If the upload takes more than 30 s, please close this window <br/>and restart the program!</p> - <p>Upload em andamento ...</p><p>>Se o upload demorar mais de 30 s, feche esta janela <br/>e reinicie o programa!</p> + <p>Upload em andamento ...</p><p>>Se o upload demorar mais de 30 s, feche esta janela <br/>e reinicie o programa!</p> + + + + <p>Upload in progress ...</p><p><b>If the upload takes more than 30 s, please close this window <br/>and restart the program!</b></p><p>In this case, please unplug other USB devices on the same bus!<br/>You can check this under Linux with: <pre>lsusb; lsusb -t</pre></p> + - + <p>OpenHantek6022 is searching for compatible devices ...</p><p><img align='right' height='200' src='qrc:///switch_6022BL.png'>Don't forget to switch your device into oscilloscope mode if it has multiple modes.</p> <p>OpenHantek6022 está procurando por dispositivos compatíveis ...</p><p><img align='right' height='200' src='qrc:///switch_6022BL.png'>Não se esqueça de mudar seu dispositivo no modo osciloscópio se ele tiver vários modos.</p> - + <p>Please make sure you have installed the windows usb driver correctly</p> <Por favor, certifique-se de que instalou o driver usb do Windows corretamente</p> - + <p>Please make sure you have copied the udev rules file to <b>%1</b> for correct USB access permissions.</p> <Por favor, tenha certeza de que você copiou o arquivo de regras do udev para <b>%1</b> para obter as permissões de acesso USB corretas.</p> - + <p>Visit the build and run instruction <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/build.md'>website</a> for help.</p> <p>Visita a instrução de compilação e execução <a href='https://github.com/OpenHantek/OpenHantek6022/blob/master/docs/build.md'>website</a> para ajuda.</p> - + Can't initalize USB: %1 Não é possível initalizar o USB: %1