Aharoni-Lab / Miniscope-DAQ-QT-Software

Software for streaming and controlling neural and behavioral data from freely behaving animals
GNU General Public License v3.0
116 stars 29 forks source link

n < size() error #73

Open kg3354 opened 4 months ago

kg3354 commented 4 months ago

Hello, Me and my team are trying to embed Kafka into Miniscope, such that it sends the frames captured in real time, instead of delaying until the capture stops and then save to local. There are several problems that we are encountering. When we use Qt Creator 5.15, we cannot compile the software downloaded from https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software/archive/refs/tags/v1.11.zip, as it raise an n < size() error for every input from the jsonnnnnn file. As Miniscope was documented to be written in Qt 5.12, we tried compiling using version 5.12, but more issues were encountered. The only modifications we made right now is the openCV configuration in the .pro file. It compiles but the n < size() error prevents us from using the jsonnnn file. What is that issue and how to fix that?

image

sneakers-the-rat commented 4 months ago

We're working on retooling miniscope acquisition to allow for exactly this at https://github.com/Aharoni-Lab/miniscope-io

Havent ported this code over yet but its the next step

kg3354 commented 4 months ago

That’s great! Can you give me an instruction on where to find your documentation, and did you also encountered that size issue?

On Mon, May 20, 2024 at 4:24 PM Jonny Saunders @.***> wrote:

We're working on retooling miniscope acquisition to allow for exactly this at https://github.com/Aharoni-Lab/miniscope-io https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Aharoni-2DLab_miniscope-2Dio&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=PBqA4ZL9u_nR0seDcrIZyQ&m=ibj5bIoG8d8h0BAS7uuKHoG_HKPFeiEupXgED9eI24xzvWagWghugC71zB7bk0tz&s=Out6vU6bpTcQzSMV4XjDp8eaU80MJrghlQsbfljoif0&e=

Havent ported this code over yet but its the next step

— Reply to this email directly, view it on GitHub https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Aharoni-2DLab_Miniscope-2DDAQ-2DQT-2DSoftware_issues_73-23issuecomment-2D2121149263&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=PBqA4ZL9u_nR0seDcrIZyQ&m=ibj5bIoG8d8h0BAS7uuKHoG_HKPFeiEupXgED9eI24xzvWagWghugC71zB7bk0tz&s=6i0LF_aUapPuDgjfpkmsMrUMpd2E0EBXYpyqq1deo0w&e=, or unsubscribe https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_BDWJVARZT4ZWNX7MT3HIUUTZDJLWTAVCNFSM6AAAAABIAJB3YSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRRGE2DSMRWGM&d=DwMFaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=PBqA4ZL9u_nR0seDcrIZyQ&m=ibj5bIoG8d8h0BAS7uuKHoG_HKPFeiEupXgED9eI24xzvWagWghugC71zB7bk0tz&s=ohggZast4biKCQocALmexS8teqB1qbL26vtaifrpMuk&e= . You are receiving this because you authored the thread.Message ID: @.***>

sneakers-the-rat commented 4 months ago

still very early stages on miniscope-io, we haven't ported this code over yet.

if you're trying to compile, you might also see this branch where the last thing we will be doing on this software is to port it to Qt6 so we can leave it in a state where people can hack on it like this: https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software/tree/feature-repro-build

still some work to do there too, need to figure out how to replace some Qt5 features that were deprecated in Qt6 without documentation - specifically the tree viewer for displaying the JSON configs - but probably a better target for you if you want to be working on the source here. any help there getting it to compile would b v welcome and we would mainline it :)

kg3354 commented 4 months ago

I tried https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software/tree/feature-repro-build, and it gave me 47 compilation errors. I am using python 3.7, Numpy 1,18.0, Qt 5.15, and OpenCV 4.4.0. Is there a repo that we can use to just compile the program for now? I would say our progress with https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software/archive/refs/tags/v1.11.zip was pretty far, we have the kafka feature written but we just cant get that size error fixed. It would be great if you can show us where to find the old compilable solution.

sneakers-the-rat commented 4 months ago

so yes! like i said that's a WIP that is trying to update this repo to Qt6 so that we can leave it in a compilable state before moving onto miniscope-io which is where longterm dev energy will go (basically taking some of the code here, decoupling it from the GUI, and exposing it for eg. framewise programmatic usage as desired). That there is no reproducible/working compilation routine is the problem that branch is trying to resolve and why we are rearchitecting this code (see the deprecation notice in the README). Best i can do for you! this code was written before i got to the lab.

re: the issue at hand, would need more information to be able to debug that, but looking at the place in the source where it's being raised: https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/text/qstring.h?h=v5.15.2#n469

you can see that the assert is in the inlined definition of the QString::chopped method. searching the source for usages of chopped we only find:

so the first two are checking for supported codecs on your computer. either you have too few supported codecs, or oddly too many, and either of those could throw that error since the screenshot doesn't show the source line that's causing it. that would be where i would start - ensuring that my version of opencv is compiled/configured with support for at least some of these codecs.

the third usage of chopped on L327 could also be the source of the error, at which point that would mean that your configuration file is malformed, specifically that some type key is missing, the last argument passed to handleJsonArray on this line: https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software/blob/0fecb97cca82c694b1b40dde03cd759e23ad3224/source/backend.cpp#L202