OpenHantek / OpenHantek6022

OpenHantek6022 is a DSO software for Hantek USB digital signal oscilloscopes 6022BE / BL. Development OS is Debian Linux, but the program also works on FreeBSD, MacOS, RaspberryPi and Windows. No support for non-Linux related issues unless a volunteer steps in!
GNU General Public License v3.0
868 stars 153 forks source link

Program stops on Windows 11 when changing horizontal time base (In demo mode and connected with 6022BE) #363

Closed louismulder closed 1 year ago

louismulder commented 1 year ago

When I want to change the timebase (Up or Down) the program stops.

Ho-Ro commented 1 year ago

I don't understand people that ask for support, but are not willing to help the supporters. When you open a new issue please select the correct button image

It presents you with a template (see below) where you need to enter the important information (e.g. version, error mode, error messages etc.) - just leave the irrelevant questions open. Please mind especially the last section about Additional context, also on Windows you can use the command line.

Describe the bug A clear and concise description of what the bug is.

To Reproduce IMPORTANT: Always unplug and replug the scope if used before with a different application, e.g. sigrok or the original Hantek software. No support for non-Linux related issues unless a volunteer steps in!

Steps to reproduce the behavior:

  1. Go to '...'
  2. Select '....'
  3. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots or a video to help explain your problem.

Computer environment (please complete the following information):

Scope device (please complete the following information):

Additional context Add any other context about the problem here, e.g. the program output if started in a console like xterm.

louismulder commented 1 year ago

Hi Martin,

thx for your comment. But maybe is the template too complex for a simple error. My OS is Windows 11. The version of OpenHantek is: 3.2.2 in demo mode

Ho-Ro commented 1 year ago

The version of OpenHantek is: 3.2.2 in demo mode

image

This version is almost 2 years old - wontfix

louismulder commented 1 year ago

Sorry Martin,

version is 3.3.2.2

Ho-Ro commented 1 year ago

But maybe is the template too complex for a simple error.

Please compare your error report on top and #364 - that's a helpful issue report.

Just fill the necessary parts of the template and leave the other open, I would be interested how the "program stops" - stop trace or freeze or crash? As mentioned, the additional context is important for hunting down an error, especially when it happens to the stable release that had a lot of downloads so far (more than 50% of the downloads are the Win version). Downloads of latest release

Please start the program from the cmd.exe window and report the error message. If this does not give a good hint, increase the verbosity to OpenHantek --verbose 4. This will give a lot of text, please copy/paste.

louismulder commented 1 year ago

When I want to change change the timebase, then the following error occur: QObject::setParent: Cannot set parent, new parent is in a different thread

Ho-Ro commented 1 year ago

OMG, is it too much to ask for a little more info. This error does not occur in my tests, nor do many other Win users seem to have a problem with it. I would like to find out where your system behaves differently, unfortunately my crystal ball is under repair. Therefore, I choose the more cumbersome way for you to report as much as possible, including the output when the program was started with OpenHantek --verbose 4. Otherwise you are free to return the program, ask for your money back and use the original Hantek software delivered together with your scope - SCNR.

github-actions[bot] commented 1 year ago

There hasn't been any activity on this issue recently, and in order to prioritize active issues, it will be marked as stale. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by leaving a comment. Because this issue is marked as stale, it will be closed and locked in 7 days if no further activity occurs. Thank you for your contributions!

koentjess commented 1 year ago

Hey, maybe this helps. I am having the same problem in windows 11. Changing the compatibility settings to windows 7 or 8 fixes the crashing but the software does feel kinda slow when using it in compatibility mode. Using an older version of OpenHantek6022 works better for me. Idk if https://github.com/OpenHantek/OpenHantek6022/issues/111 has anything to do with it but the version that was suggested "3.1.2" works fine for me.

koentjess commented 1 year ago

I see that the issue has been reopened. I have tested a few more version and the only versions that are giving problems are 3.3.2.2 and "unstable". I have added the output from the console as you mentioned above. One thing I found is that when running it in compatibility mode, the "oscilloscope lines" seem to be updating fine but when moving the cursor over some of the buttons on the right side, so the buttons under "voltage", "Horizontal", "Trigger" and "Spectrum"), the whole program seems to almost freeze for a moment.

Version: 3.3.2.2 - build: Mar 8 2023 17:36:56 12 ms: create openHantekApplication 22 ms: load translations for locale "en_NL" 25 ms: init libusb 30 ms: show splash screen FindDevices::FindDevices() FindDevices::updateDeviceList() FindDevices::updateDeviceList() FindDevices::updateDeviceList() 2940 ms: use device "DEMO" serial number "0000" 2944 ms: create DSO control thread HantekDsoControl::HantekDsoControl() Calibration data: "DEMO_0000_calibration.ini" HDC::getCalibrationFromEEPROM() 2958 ms: create settings object DsoSettings::DsoSettings() "DEMO" "0000" false DsoSettings::load() "\HKEY_CURRENT_USER\Software\OpenHantek\DEMO_0000" 2975 ms: create exporters 2977 ms: create post processing objects SpectrumGenerator::SpectrumGenerator() GraphGenerator::GraphGenerator() 2983 ms: setup OpenGL 3155 ms: set QFont(Arial,10,-1,5,50,0,0,0,0,0) 3158 ms: create main window MainWindow::MainWindow() VoltageDock::VoltageDock() VDock::loadSettings() VDock::setCoupling() 0 "DC" VDock::setGain() 0 "2 V" VDock::setUsed() 0 true VDock::setAttn() 0 1 VDock::setInverted() 0 false VDock::setCoupling() 1 "DC" VDock::setGain() 1 "2 V" VDock::setUsed() 1 true VDock::setAttn() 1 1 VDock::setInverted() 1 false VDock::setMode() "CH1 + CH2" VDock::setGain() 2 "2 V" VDock::setUsed() 2 false VDock::setAttn() 2 1 VDock::setInverted() 2 false HorizontalDock::HorizontalDock() HDock::setSamplerate() 1e+06 HDock::setTimebase() 0.001 return 0.001 HDock::setFormat() 0 HDock::setCalfreq() 1000 TriggerDock::TriggerDock() TDock::loadSettings() TDock::setMode() 0 TDock::setSlope() 0 TDock::setSource() 0 TDock::setSmooth() 0 SpectrumDock::SpectrumDock() SDock::loadSettings() SDock::setMagnitude() 0 20 SDock::setUsed() 0 false SDock::setMagnitude() 1 20 SDock::setUsed() 1 false SDock::setMagnitude() 2 20 SDock::setUsed() 2 false SDock::setFrequencybase() 1000 GLScope::GLScope() GLScope::GLScope() DsoWidget::DsoWidget() DsoWidget::setupSliders() DsoWidget::setupSliders() VDock::loadSettings() VDock::setCoupling() 0 "DC" VDock::setGain() 0 "2 V" VDock::setUsed() 0 true VDock::setAttn() 0 1 VDock::setInverted() 0 false VDock::setCoupling() 1 "DC" VDock::setGain() 1 "2 V" VDock::setUsed() 1 true VDock::setAttn() 1 1 VDock::setInverted() 1 false VDock::setMode() "CH1 + CH2" VDock::setGain() 2 "2 V" VDock::setUsed() 2 false VDock::setAttn() 2 1 VDock::setInverted() 2 false HDock::setSamplerate() 1e+06 HDock::setTimebase() 0.001 return 0.001 HDock::setFormat() 0 HDock::setCalfreq() 1000 SDock::loadSettings() SDock::setMagnitude() 0 20 DsoWidget::updateMarkerDetails() SDock::setUsed() 0 false MW::uC() 0 0 HDC::setChannelUsed() 0 true usedChannels "01" HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07, 2.4e+07, 3e+07) HDock::setSamplerateSteps() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07, 2.4e+07, 3e+07) sRate, sRatetimebase 100 0.1 sRate, sRatetimebase 200 0.2 sRate, sRatetimebase 500 0.5 sRate, sRatetimebase 1000 1 sRate, sRatetimebase 2000 2 sRate, sRatetimebase 5000 5 sRate, sRatetimebase 10000 10 sRate, sRatetimebase 20000 20 sRate, sRatetimebase 50000 50 sRate, sRatetimebase 100000 100 sRate, sRatetimebase 200000 200 sRate, sRatetimebase 500000 500 sRate, sRatetimebase 1e+06 1000 sRate, sRatetimebase 2e+06 2000 sRate, sRatetimebase 5e+06 5000 sRate, sRatetimebase 1e+07 10000 sRate, sRatetimebase 1.2e+07 12000 sRate, sRatetimebase 1.5e+07 15000 sRate, sRatetimebase 2.4e+07 24000 sRate, sRatetimebase 3e+07 30000 HDock::calculateSamplerateSteps() 0.001 10000 1e+06 HDock::setSamplerateLimits() 10000 1e+06 HDC::restoreTargets() HDC::setRecordTime() 0 DsoWidget::updateSpectrumUsed() 0 false DsoWidget::updateMarkerDetails() SDock::setMagnitude() 1 20 DsoWidget::updateMarkerDetails() SDock::setUsed() 1 false MW::uC() 1 0 HDC::setChannelUsed() 1 true usedChannels "11" HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) HDock::setSamplerateSteps() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) sRate, sRatetimebase 100 0.1 sRate, sRatetimebase 200 0.2 sRate, sRatetimebase 500 0.5 sRate, sRatetimebase 1000 1 sRate, sRatetimebase 2000 2 sRate, sRatetimebase 5000 5 sRate, sRatetimebase 10000 10 sRate, sRatetimebase 20000 20 sRate, sRatetimebase 50000 50 sRate, sRatetimebase 100000 100 sRate, sRatetimebase 200000 200 sRate, sRatetimebase 500000 500 sRate, sRatetimebase 1e+06 1000 sRate, sRatetimebase 2e+06 2000 sRate, sRatetimebase 5e+06 5000 sRate, sRatetimebase 1e+07 10000 sRate, sRatetimebase 1.2e+07 12000 sRate, sRatetimebase 1.5e+07 15000 HDock::calculateSamplerateSteps() 0.001 10000 1e+06 HDock::setSamplerateLimits() 10000 1e+06 HDC::restoreTargets() HDC::setRecordTime() 0 DsoWidget::updateSpectrumUsed() 1 false DsoWidget::updateMarkerDetails() SDock::setMagnitude() 2 20 DsoWidget::updateMarkerDetails() SDock::setUsed() 2 false MW::uC() 2 0 HDC::setChannelUsed() 0 true usedChannels "11" HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) HDC::restoreTargets() HDC::setRecordTime() 0 HDC::setChannelUsed() 1 true usedChannels "11" HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) HDC::restoreTargets() HDC::setRecordTime() 0 DsoWidget::updateSpectrumUsed() 2 false DsoWidget::updateMarkerDetails() SDock::setFrequencybase() 1000 TDock::loadSettings() TDock::setMode() 0 TDock::setSlope() 0 TDock::setSource() 0 TDock::setSmooth() 0 DsoWidget::updateSlidersSettings() DsoWidget::updateOffset() 0 2 false QPoint(0,0) DsoWidget::updateOffset() 0 2 false QPoint(0,0) DsoWidget::updateOffset() 0 2 false QPoint(0,0) DsoWidget::updateOffset() 3 0 false QPoint(0,0) DsoWidget::updateOffset() 3 0 false QPoint(0,0) DsoWidget::updateOffset() 3 0 false QPoint(0,0) DsoWidget::updateOffset() 1 -2 false QPoint(0,0) DsoWidget::updateOffset() 1 -2 false QPoint(0,0) DsoWidget::updateOffset() 1 -2 false QPoint(0,0) DsoWidget::updateOffset() 4 0 false QPoint(0,0) DsoWidget::updateOffset() 4 0 false QPoint(0,0) DsoWidget::updateOffset() 4 0 false QPoint(0,0) DsoWidget::updateOffset() 2 0 false QPoint(0,0) DsoWidget::updateOffset() 2 0 false QPoint(0,0) DsoWidget::updateOffset() 2 0 false QPoint(0,0) DsoWidget::updateOffset() 5 0 false QPoint(0,0) DsoWidget::updateOffset() 5 0 false QPoint(0,0) DsoWidget::updateOffset() 5 0 false QPoint(0,0) DsoWidget::updateMarkerDetails() DsoWidget::updateTriggerPosition() 0 0.5 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateMarkerDetails() DsoWidget::updateTriggerPosition() 0 0.5 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateMarkerDetails() DsoWidget::updateTriggerPosition() 0 0.5 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateTriggerValue() 0 0 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateTriggerValue() 0 0 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateTriggerValue() 1 0 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateTriggerValue() 1 0 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateTriggerValue() 2 0 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateTriggerValue() 2 0 false QPoint(0,0) DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateMarker() 0 -1 DsoWidget::updateMarkerDetails() DsoWidget::updateMarker() 1 1 DsoWidget::updateMarkerDetails() DsoWidget::updateMarkerDetails() DsoWidget::updateMarkerDetails() DsoWidget::updateVoltageUsed() 0 true DsoWidget::updateMarkerDetails() DsoWidget::updateSpectrumUsed() 0 false DsoWidget::updateMarkerDetails() DsoWidget::updateVoltageUsed() 1 true DsoWidget::updateMarkerDetails() DsoWidget::updateSpectrumUsed() 1 false DsoWidget::updateMarkerDetails() GLScope::initializeGL() Graphic: 4.6.0 - Build 30.0.101.1692 - GLSL version 1.20 DsoWidget::updateMarkerDetails() DsoWidget::updateMarkerDetails() DsoWidget::updateZoom() false DsoWidget::showCursorMessage() QPoint(0,0) "" DsoWidget::updateMarkerDetails() 5519 ms: start DSO control thread HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) 5534 ms: execute GUI main loop HDC::setTriggerMode() 0 HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) HDC::applySettings() HDC::setProbe() 0 1 HDC::setGain() 0 2 HDC::setTriggerLevel() 0 0 HDC::setChannelUsed() 0 true usedChannels "11" HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) HDC::restoreTargets() HDC::setRecordTime() 0 HDC::setChannelInverted() 0 false HDC::setCoupling() 0 0 HDC::setProbe() 1 1 HDC::setGain() 1 2 HDC::setTriggerLevel() 1 0 HDC::setChannelUsed() 1 true usedChannels "11" HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) HDC::restoreTargets() HDC::setRecordTime() 0 HDC::setChannelInverted() 1 false HDC::setCoupling() 1 0 HDC::setGain() 2 2 HDC::setTriggerLevel() 2 0 HDC::setChannelUsed() 2 false usedChannels "11" HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) HDC::restoreTargets() HDC::setRecordTime() 0 HDC::setChannelInverted() 2 false HDC::setRecordTime() 0.01 duration = 0.01 sampleIndex: 0 sRate: 100 sRateduration: 1 sampleIndex: 0 sRate: 200 sRateduration: 2 sampleIndex: 1 sRate: 500 sRateduration: 5 sampleIndex: 2 sRate: 1000 sRateduration: 10 sampleIndex: 3 sRate: 2000 sRateduration: 20 sampleIndex: 4 sRate: 5000 sRateduration: 50 sampleIndex: 5 sRate: 10000 sRateduration: 100 sampleIndex: 6 sRate: 20000 sRateduration: 200 sampleIndex: 7 sRate: 50000 sRateduration: 500 sampleIndex: 8 sRate: 100000 sRateduration: 1000 sampleIndex: 9 sRate: 200000 sRateduration: 2000 sampleIndex: 10 sRate: 500000 sRateduration: 5000 sampleIndex: 11 sRate: 1e+06 sRateduration: 10000 sampleIndex: 12 sRate: 2e+06 sRateduration: 20000 sampleIndex: 12 sRate: 5e+06 sRateduration: 50000 sampleIndex: 12 sRate: 1e+07 sRateduration: 100000 sampleIndex: 12 sRate: 1.2e+07 sRateduration: 120000 sampleIndex: 12 sRate: 1.5e+07 sRateduration: 150000 sampleIndex: 12 sRate: 2.4e+07 sRateduration: 240000 sampleIndex: 12 sRate: 3e+07 sRateduration: 300000 sampleIndex: 12 sRate: 4.8e+07 sRateduration: 480000 HDC::controlSetSamplerate() 12 id: 10 HDC::setRecordTime() emit samplerateChanged 1e+06 HDC::setCalFreq() 1000 1 HDC::setTriggerMode() 0 HDC::updateSamplerateLimits() (100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1e+06, 2e+06, 5e+06, 1e+07, 1.2e+07, 1.5e+07) HDC::setTriggerPosition() 0.5 HDC::setTriggerSlope() 0 HDC::setTriggerSource() 0 HDC::setTriggerSmooth() 0 MathChannel::MathChannel() Triggering::Triggering() HDC::setTriggerPosition() 0.5 HDC::setTriggerPosition() 0.5 HDC::setTriggerPosition() 0.5 HDC::setTriggerLevel() 0 0 HDC::setTriggerLevel() 0 0 HDC::setTriggerLevel() 1 0 HDC::setTriggerLevel() 1 0 HDC::setTriggerLevel() 2 0 HDC::setTriggerLevel() 2 0 HDC::setCalFreq() 1000 1 HDock::setSamplerate() 1e+06 SDock::setSamplerate() 1e+06 HDock::timebaseSelected() 0.002 sRate, sRatetimebase 100 0.2 sRate, sRatetimebase 200 0.4 sRate, sRatetimebase 500 1 sRate, sRatetimebase 1000 2 sRate, sRatetimebase 2000 4 sRate, sRatetimebase 5000 10 sRate, sRatetimebase 10000 20 sRate, sRatetimebase 20000 40 sRate, sRatetimebase 50000 100 sRate, sRatetimebase 100000 200 sRate, sRatetimebase 200000 400 sRate, sRatetimebase 500000 1000 sRate, sRatetimebase 1e+06 2000 sRate, sRatetimebase 2e+06 4000 sRate, sRatetimebase 5e+06 10000 sRate, sRatetimebase 1e+07 20000 sRate, sRatetimebase 1.2e+07 24000 sRate, sRatetimebase 1.5e+07 30000 HDock::calculateSamplerateSteps() 0.002 10000 500000 HDock::setSamplerateLimits() 10000 500000 HDock::setSamplerate() 1e+06 HDC::setRecordTime() 0.02 duration = 0.02 sampleIndex: 0 sRate: 100 sRateduration: 2 sampleIndex: 0 sRate: 200 sRateduration: 4 sampleIndex: 1 sRate: 500 sRateduration: 10 sampleIndex: 2 sRate: 1000 sRateduration: 20 sampleIndex: 3 sRate: 2000 sRateduration: 40 sampleIndex: 4 sRate: 5000 sRateduration: 100 sampleIndex: 5 sRate: 10000 sRateduration: 200 sampleIndex: 6 sRate: 20000 sRateduration: 400 sampleIndex: 7 sRate: 50000 sRateduration: 1000 sampleIndex: 8 sRate: 100000 sRateduration: 2000 sampleIndex: 9 sRate: 200000 sRateduration: 4000 sampleIndex: 10 sRate: 500000 sRateduration: 10000 sampleIndex: 11 sRate: 1e+06 sRateduration: 20000 sampleIndex: 11 sRate: 2e+06 sRateduration: 40000 sampleIndex: 11 sRate: 5e+06 sRateduration: 100000 sampleIndex: 11 sRate: 1e+07 sRateduration: 200000 sampleIndex: 11 sRate: 1.2e+07 sRateduration: 240000 sampleIndex: 11 sRate: 1.5e+07 sRateduration: 300000 sampleIndex: 11 sRate: 2.4e+07 sRateduration: 480000 sampleIndex: 11 sRate: 3e+07 sRateduration: 600000 sampleIndex: 11 sRate: 4.8e+07 sRateduration: 960000 HDC::controlSetSamplerate() 11 id: 10 HDC::setRecordTime() emit samplerateChanged 500000 HDock::setSamplerate() 500000 DsoWidget::updateMarkerDetails() SDock::setSamplerate() 500000

koentjess commented 1 year ago

Describe the bug Program crashes when changing the "Timebase" in windows 11

To Reproduce Start OpenHantek6022 version 3.3.2.2 Increase or decrease the Timebase by clicking any of the 2 buttons Sometimes the program does not crash and lets you change it once, sometimes it instantly crashes The crashing can be that the program does not respond for 10 seconds before quitting or just almost instantly quitting.

Screenshots I dont think a screenshot really helps here

Computer environment (please complete the following information): OpenHantek version: 3.3.2.2 or "unstable" OS: Windows 11 Distribution, version: Windows 11 21H2 Screen resolution: 1920x1080 1 monitor Scale 125%, also crashes on 100% Video hardware: Intel i7 10750H Igpu OpenGL version: 4.6 Qt version: Don't think I need this when not compiling C++ compiler version: Don't think I need this when not compiling

Device [e.g. Hantek 6022BE, ...] Demo mode or Hantek 6022BL

Additional context Versions 3.3.2.1 and below are fine

ChristopheMineau commented 1 year ago

Hi, just updated to version 3.3.2.2.1 and I wanted to mention that I have the exact same problem as described by koentjess , except that I personally am on Windows 10. The last traces on the terminal are exactly the same. I noticed that if I start it without verbose, it lets me change the Timebase once, but if I add --verbode 4 , it crashes at the first attempt to change the timebase. Maybe it's a coincidence. So nothing particular displayed at all on the screen, it freezes maybe for half a second and then the window disappears.

In the Windows journal, I can see: Name of the failing application: OpenHantek.exe, version : 0.0.0.0, horodatage : 0x6408c7e0 Name of the failing module : OpenHantek.exe, version : 0.0.0.0, horodatage : 0x6408c7e0 Exception code : 0xc0000005 Error offset : 0x0000000000e99827 Failing process Id : 0x47ec Starting time : 0x01d99b6b9c021415 Failing app path : C:\INSTALLATIONS\OpenHantek\OpenHantek6022_v3.3.2.2\OpenHantek.exe Failing module path: C:\INSTALLATIONS\OpenHantek\OpenHantek6022_v3.3.2.2\OpenHantek.exe Report Id : 9ba89d1f-2ef4-437a-8220-8ab18ef5efb4 Complete name of the failing package : Id of the application relative to the failing package :

PS : previous version 3.3.2.1 works for me, it must be a degradation in 3.3.2.2

Ho-Ro commented 1 year ago

PS : previous version 3.3.2.1 works for me, it must be a degradation in 3.3.2.2

Looking at the changes between 3.3.2.1 and 3.3.2.2 I suspect that 1d11253 has the biggest impact. I need support from a windows developer who could build both variants (msvc and mingw64) and check - I do not use windows and cannot investigate.

nseam commented 1 year ago

@Ho-Ro I've just built and ran the project on Windows 11 (took me ~2h to configure all the things) and can confirm that just by increasing or decreasing the Timebase, there is a problem with non-main-thread accessing widgets created by main thread. I think the widget callbacks should delegate somehow its execution to the main thread (doesn't connect() already do that?). I am a little newbie in Qt and will receive my first oscilloscope tomorrow :D It will be Hantek 6022BL, so I thought I can work on the self-built version and help on any further issues.

image

If this is not something you can easily fix then I can work on this. Just need to go deeper how Qt, callbacks and threading works.