Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
louismulder opened this issue Apr 6, 2023 · 14 comments
Labels
More input please! More info necessary to handle this issue no-stale Old but still important Windows Windows related, WONTFIX unless a volunteer steps in

Comments

@louismulder
Copy link

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

@Ho-Ro Ho-Ro added Windows Windows related, WONTFIX unless a volunteer steps in More input please! More info necessary to handle this issue labels Apr 6, 2023
@Ho-Ro
Copy link
Member

Ho-Ro commented Apr 7, 2023

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):

  • OpenHantek version: [use always the latest commit, e.g. release v2.03, commit 1a2b3c4, ...]
  • OS: [e.g. linux, macOS, windows, ...]
  • Distribution, version: [e.g. debian stable amd64, ...]
  • Screen resolution, screen setup (e.g. multimonitor, etc.)
  • Video hardware: [e.g. Intel Xeon ... Integrated Graphics]
  • OpenGL version: [e.g. OpenGL 4.5, Mesa 19.0.3]
  • Qt version: [e.g. Qt 5.11.x]
  • C++ compiler version: [e.g. gcc 8.3.x]

Scope device (please complete the following information):

  • Device [e.g. Hantek 6022BE, ...]
  • Program top line [e.g. OpenHantek6022 (Build ...) - Device ... (FW ...)]
  • Input signal: [e.g. calibration out 1 kHz, sine wave 1 Veff @ 50 Hz, ...]
  • Probe setting: [e.g. no probe, probe X1, probe X10, ...]

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

@louismulder
Copy link
Author

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
Copy link
Member

Ho-Ro commented Apr 7, 2023

The version of OpenHantek is: 3.2.2 in demo mode

image

This version is almost 2 years old - wontfix

@Ho-Ro Ho-Ro closed this as completed Apr 7, 2023
@louismulder
Copy link
Author

Sorry Martin,

version is 3.3.2.2

@Ho-Ro Ho-Ro reopened this Apr 7, 2023
@Ho-Ro
Copy link
Member

Ho-Ro commented Apr 7, 2023

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
Copy link
Author

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
Copy link
Member

Ho-Ro commented Apr 9, 2023

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
Copy link

github-actions bot commented May 8, 2023

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!

@github-actions github-actions bot added the stale The TO is probably no longer interested in a solution label May 8, 2023
@koentjess
Copy link

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 #111 has anything to do with it but the version that was suggested "3.1.2" works fine for me.

@Ho-Ro Ho-Ro reopened this May 31, 2023
@Ho-Ro Ho-Ro added no-stale Old but still important and removed stale The TO is probably no longer interested in a solution labels May 31, 2023
@koentjess
Copy link

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, sRate
timebase 200 0.2
sRate, sRatetimebase 500 0.5
sRate, sRate
timebase 1000 1
sRate, sRatetimebase 2000 2
sRate, sRate
timebase 5000 5
sRate, sRatetimebase 10000 10
sRate, sRate
timebase 20000 20
sRate, sRatetimebase 50000 50
sRate, sRate
timebase 100000 100
sRate, sRatetimebase 200000 200
sRate, sRate
timebase 500000 500
sRate, sRatetimebase 1e+06 1000
sRate, sRate
timebase 2e+06 2000
sRate, sRatetimebase 5e+06 5000
sRate, sRate
timebase 1e+07 10000
sRate, sRatetimebase 1.2e+07 12000
sRate, sRate
timebase 1.5e+07 15000
sRate, sRatetimebase 2.4e+07 24000
sRate, sRate
timebase 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, sRate
timebase 200 0.2
sRate, sRatetimebase 500 0.5
sRate, sRate
timebase 1000 1
sRate, sRatetimebase 2000 2
sRate, sRate
timebase 5000 5
sRate, sRatetimebase 10000 10
sRate, sRate
timebase 20000 20
sRate, sRatetimebase 50000 50
sRate, sRate
timebase 100000 100
sRate, sRatetimebase 200000 200
sRate, sRate
timebase 500000 500
sRate, sRatetimebase 1e+06 1000
sRate, sRate
timebase 2e+06 2000
sRate, sRatetimebase 5e+06 5000
sRate, sRate
timebase 1e+07 10000
sRate, sRatetimebase 1.2e+07 12000
sRate, sRate
timebase 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 sRate
duration: 2
sampleIndex: 1 sRate: 500 sRateduration: 5
sampleIndex: 2 sRate: 1000 sRate
duration: 10
sampleIndex: 3 sRate: 2000 sRateduration: 20
sampleIndex: 4 sRate: 5000 sRate
duration: 50
sampleIndex: 5 sRate: 10000 sRateduration: 100
sampleIndex: 6 sRate: 20000 sRate
duration: 200
sampleIndex: 7 sRate: 50000 sRateduration: 500
sampleIndex: 8 sRate: 100000 sRate
duration: 1000
sampleIndex: 9 sRate: 200000 sRateduration: 2000
sampleIndex: 10 sRate: 500000 sRate
duration: 5000
sampleIndex: 11 sRate: 1e+06 sRateduration: 10000
sampleIndex: 12 sRate: 2e+06 sRate
duration: 20000
sampleIndex: 12 sRate: 5e+06 sRateduration: 50000
sampleIndex: 12 sRate: 1e+07 sRate
duration: 100000
sampleIndex: 12 sRate: 1.2e+07 sRateduration: 120000
sampleIndex: 12 sRate: 1.5e+07 sRate
duration: 150000
sampleIndex: 12 sRate: 2.4e+07 sRateduration: 240000
sampleIndex: 12 sRate: 3e+07 sRate
duration: 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, sRate
timebase 100 0.2
sRate, sRatetimebase 200 0.4
sRate, sRate
timebase 500 1
sRate, sRatetimebase 1000 2
sRate, sRate
timebase 2000 4
sRate, sRatetimebase 5000 10
sRate, sRate
timebase 10000 20
sRate, sRatetimebase 20000 40
sRate, sRate
timebase 50000 100
sRate, sRatetimebase 100000 200
sRate, sRate
timebase 200000 400
sRate, sRatetimebase 500000 1000
sRate, sRate
timebase 1e+06 2000
sRate, sRatetimebase 2e+06 4000
sRate, sRate
timebase 5e+06 10000
sRate, sRatetimebase 1e+07 20000
sRate, sRate
timebase 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 sRate
duration: 2
sampleIndex: 0 sRate: 200 sRateduration: 4
sampleIndex: 1 sRate: 500 sRate
duration: 10
sampleIndex: 2 sRate: 1000 sRateduration: 20
sampleIndex: 3 sRate: 2000 sRate
duration: 40
sampleIndex: 4 sRate: 5000 sRateduration: 100
sampleIndex: 5 sRate: 10000 sRate
duration: 200
sampleIndex: 6 sRate: 20000 sRateduration: 400
sampleIndex: 7 sRate: 50000 sRate
duration: 1000
sampleIndex: 8 sRate: 100000 sRateduration: 2000
sampleIndex: 9 sRate: 200000 sRate
duration: 4000
sampleIndex: 10 sRate: 500000 sRateduration: 10000
sampleIndex: 11 sRate: 1e+06 sRate
duration: 20000
sampleIndex: 11 sRate: 2e+06 sRateduration: 40000
sampleIndex: 11 sRate: 5e+06 sRate
duration: 100000
sampleIndex: 11 sRate: 1e+07 sRateduration: 200000
sampleIndex: 11 sRate: 1.2e+07 sRate
duration: 240000
sampleIndex: 11 sRate: 1.5e+07 sRateduration: 300000
sampleIndex: 11 sRate: 2.4e+07 sRate
duration: 480000
sampleIndex: 11 sRate: 3e+07 sRateduration: 600000
sampleIndex: 11 sRate: 4.8e+07 sRate
duration: 960000
HDC::controlSetSamplerate() 11 id: 10
HDC::setRecordTime() emit samplerateChanged 500000
HDock::setSamplerate() 500000
DsoWidget::updateMarkerDetails()
SDock::setSamplerate() 500000

@koentjess
Copy link

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
Copy link

ChristopheMineau commented Jun 10, 2023

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
Copy link
Member

Ho-Ro commented Jun 19, 2023

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
Copy link
Contributor

nseam commented Aug 7, 2023

@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.

nseam added a commit to nseam/OpenHantek6022 that referenced this issue Aug 7, 2023
…imebaseChanged event handler from doing operations on dsoControl and dsoWidget in the same callback. Now there two callback and each uses the Widget it operates on.
@Ho-Ro Ho-Ro closed this as completed in 875a8dc Aug 8, 2023
Ho-Ro added a commit that referenced this issue Aug 8, 2023
Signed-off-by: Martin <Ho-Ro@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
More input please! More info necessary to handle this issue no-stale Old but still important Windows Windows related, WONTFIX unless a volunteer steps in
Projects
None yet
Development

No branches or pull requests

5 participants