Comments (8)
Dear @blaingvt, it might be helpful to know that the MiniCAM is supported in Bonsai, including the Sync Out and Trigger In functionality, thanks to the work of Jon Newman who developed the nodes for Miniscopes and MiniCAMs: https://github.com/open-ephys/OpenEphys.Bonsai.Miniscope
from miniscope-daq-qt-software.
Related to: #57 , but it seems like this is is for starting and stopping a recording with an external trigger, rather than emitting a pulse for every frame acquired?
We still need to set up issue templates to prompt for this, but what version of miniscope are you using? (ordinarily i would ask what version of the software too, but i think there is only one version?)
@fnsangiul confirms this is a bug in this software, not the DAQ or miniscope firmware.
From what I can tell, it works like this:
- The toggle is created in the qml here:
Miniscope-DAQ-QT-Software/source/ControlPanel.qml
Lines 60 to 87 in 0fecb97
- That should emit an event from the
extTriggerSwitchToggled
signal - The
ControlPanel
connects the signal toextTriggerSwitchToggled2
on initialization here:Miniscope-DAQ-QT-Software/source/controlpanel.cpp
Lines 84 to 88 in 0fecb97
- the
extTriggerSwitchToggled2
slot then:- emits
setExtTriggerTrackingState
- - sets the
ucRecordLength
property to0
if enabled -Miniscope-DAQ-QT-Software/source/controlpanel.cpp
Lines 210 to 218 in 0fecb97
- emits
ControlPanel::setExtTriggerTrackingState
is connected toMiniscope::setExtTriggerTrackingState
here:Miniscope-DAQ-QT-Software/source/backend.cpp
Line 641 in 0fecb97
Miniscope
is an instance ofVideoDevice
VideoDevice::setExtTriggerTrackingState
is connected toVideoStreamOCV::setExtTriggerTrackingState
here -- and
VideoDevice::handleSetExtTriggerTrackingState
here:
VideoDevice::handleSetExtTriggerTrackingState
seems to just toggle an LED:Miniscope-DAQ-QT-Software/source/videodevice.cpp
Lines 649 to 665 in 0fecb97
VideoStreamOCV::setExtTriggerTrackingState
setsm_trackExtTrigger.state
-m_trackExtTrigger
is used here, which reads from theCAP_PROP_GAMMA
property and emits anextTriggered
signal:Miniscope-DAQ-QT-Software/source/videostreamocv.cpp
Lines 256 to 277 in 0fecb97
- it's a little unclear to me at this point which objects are being connected here, so there seems to be a little magic and just by a smell test i imagine this might be where the signal is dropped? That signal is also only emitted when the stream is already running, so that might be another problem?
MiniScope:extTriggered
is connected toControlPanel::extTriggerTriggered
here:Miniscope-DAQ-QT-Software/source/backend.cpp
Line 642 in 0fecb97
ControlPanel::extTriggerTriggered
callsonRecordActivated
oronStopActivated
here, but rather than using them like slots it calls them like methods? idk if you can do that with Qt slots:Miniscope-DAQ-QT-Software/source/controlpanel.cpp
Lines 220 to 231 in 0fecb97
From there we're back into the main flow of starting and stopping recordings.
I can't actually debug this since we can't compile the software at the moment, but hopefully that's some information for the next person who comes by to debug until we can do the Qt6 update, and hopefully another lab member who knows more about the software than I do hops in here!
from miniscope-daq-qt-software.
I appreciate your response and the information you provided regarding the debugging constraints at the moment. I understand the challenges associated with the Qt6 update.
Given that you are currently unable to compile the software, does it mean there is no opportunity to address this issue? I would greatly appreciate it if you could.
At this moment, I would like to attempt resolving this issue using an alternative approach. The version I am currently using is Miniscope-DAQ-Software_build_v1_11.
My strategy is to seek your guidance on the specific folders where I should copy the files - "backend.cpp," "controlpanel.cpp," "ControlPanel.qml," "videodevice.cpp," and "videostreamocv.cpp" - within the Miniscope-DAQ-Software_build_v1_11 directory.
Could you please advise me on which specific folders I should copy these files to?
The folders under the Miniscope-DAQ-Software_build_v1_11 folder as below:
bearer
deviceConfigs
iconengines
imageformats
platforminputcontexts
platforms
qmltooling
Qt
QtGraphicalEffects
QtQml
QtQuick
QtQuick.2
scenegraph
Scripts
styles
translations
userConfigs
virtualkeyboard
pycache
I sincerely thank you for your invaluable assistance for all of us.
Best,
Tsung-Chih
from miniscope-daq-qt-software.
unfortunately I can't be of much further help at the moment - I didn't write the software and am mostly trying to steward it into retirement in order to replace it. It is technically possible to compile it as-is, but you will need some very specific versions of Qt and OpenCV, you can see more in the qt project file here:
Miniscope-DAQ-QT-Software/source/Miniscope-DAQ-QT-Software.pro
Lines 74 to 106 in 0fecb97
so if you get ahold of those versions of things and modify those paths you might be able to compile it from the source folder using Qt Creator (for Qt5).
The other path would be to push through the Qt6 upgrade, which is almost completed, there was just one breaking change having to do with one of the qml classes that was removed in Qt6 without clear replacement. Further info is in this issue: #61 and in the feature-repro-build
branch
from miniscope-daq-qt-software.
I have a miniscope v4.4, which does trigger properly. This minicam does not trigger. Helpful to know that it is not firmware.
Is there any rough estimate of Qt6 upgrade release date? I plan to use alternative cameras/software until then but hope in the long run I will be able to use these minicams.
Best,
Brenton
from miniscope-daq-qt-software.
AHA! OK that clarifies things a lot - i'm new-ish in this lab and thought you were just referring to your miniscope as a minicam (it is a miniature camera!), my mistake.
This issue has a clear solution then - currently the control panel's switch is only connected to Miniscope devices:
Miniscope-DAQ-QT-Software/source/backend.cpp
Line 641 in 0fecb97
So we need that to also iterate through behavior cameras and connect the signal. Ideally the way this would work would be that each camera has its own control panel, and the "main" control panel sends a given command to all the connected devices, that way you could both have all devices work in sync as well as have some of them behave differently. For now though we can just add the behavior cams to the things that receive that signal.
Is there any rough estimate of Qt6 upgrade release date?
I don't really have one, no :. The team(s) that would be making this are currently in the midst of a (very cool) new hardware cycle, and so once they freeze some designs there I imagine they will be returning to the software side. The Qt6 transition is really almost done on https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software/tree/feature-repro-build , the last remaining thing is to fix the changes in TreeView from Qt5 vs TreeView from Qt6 in the TreeViewerJSON model, I just don't personally have time at the moment to handle it
from miniscope-daq-qt-software.
from miniscope-daq-qt-software.
from miniscope-daq-qt-software.
Related Issues (20)
- dlc-live error: "Cannot import './Scripts/DLCwrapper'..." HOT 1
- Issue compiling in windows HOT 1
- The .exe file can't be excused by python or other external programme? HOT 1
- Software synchronize with other DAQ HOT 3
- Add sync output support for minicams HOT 1
- Visual C++ errors on running HOT 2
- Autofocus & Timelapse
- Miniscope V4 data structure documentation?
- Reproducible/Cross-Platform Builds HOT 9
- Update to Qt6 HOT 1
- minicam with daq v3.3 HOT 4
- collapse/resize params drawer HOT 1
- Miniscope v3 - Cannot preview live images from webcam
- miniscope v4 software crash HOT 1
- Can the miniscope brightness go below 1? HOT 14
- Miniscope cannot be recognized by our PC HOT 2
- Miniscope-Software abjust
- Clarification on Timestamp Generation in Miniscope-DAQ-QT-Software HOT 2
- n < size() error HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from miniscope-daq-qt-software.