-
Notifications
You must be signed in to change notification settings - Fork 6
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
Setup (heartbeat) communication between the ZMQInterface and Falcon (C++ software) #1
Comments
I made some progress. I am receiving the data and I can
I am still wondering what is the difference between real sample and number of samples. Could you explain me how to correctly read the data packet in C++ please ? I am little lost here. |
Hi Marine, We don't have an example for setting up a C++ client with the ZMQInterface plugin as it was developed by someone outside the Open Ephys team, but the original repo has an example python client that you can refer to and try to replicate it in your C++ code. The python example can be found here: https://github.com/aszell/ZMQInterface/tree/master/python_clients/ZMQPlugins There are two scripts in this examples, the first one Also, currently, there is no GUI editor on the plugin that allows you to change the data socket. It is fixed to I can work on a C++ example, but It'll take some time before I can provide with you one. If you figure this out before me, I'll be more than happy to include your C++ example in this repo. |
Hello Anjaldoshi, I have been using the OPETH code to figure out some stuffs about this communication. But thank you for the python example. Could you just give me some tips please ?
Thank you. |
The data is packaged in size of number of channels * number of samples. You should refer to ZmqInterface::sendData() where you can see data packaging on this line. The data comes in from the process() method which gets sent from the Source processor via Open Ephys' internal mechanism.
The real number of samples is how many samples a Source processor has per channel, and the number of samples is the value of how many samples per channel are present in the actual data buffer which gets copied into the data packet. They both should ideally be same. The data packet size takes into account the number of samples and not then real number of samples as seen in
As the data gets sent from the Source processor to downstream processors (ZMQInterface in this case ) via process() method in buffers, where the buffer size is equal to the number of channels * number of samples, it is not advisable to change the buffer size manually. Changing that would break a lot of things. Let me know if you have any further questions. Best, |
I am working with the example datasets of OpenEphys: data_stream_16ch_cortex Thank for your help. I am very close to the solution but I still have problem to correctly parsing the data and having a logical output. |
The reason behind the difference is that the buffer width is set to a fixed number of samples ( |
Hello. |
That's great! Thank you for all the work you've done! |
Hello, Have a good day |
We don't use any external JSON library, it is already included with the underlying JUCE API in the main GUI. As, you are setting up a client, which cannot use the main GUI's underlying API, you'll have to use an external JSON library. |
Hello,
I am trying to port OpenEphys data in Falcon (low latency graph computation software) in particular to use it with the neuropixels and to do this I was trying to use this ZMQ communication.
However, I am little lost. Just subscribe to the Data socket does not work. The doc said that setup the heartbeat is primordial. Could you give me more info ? What to send, what format, what frequency, what expecting as answer ?
This will trigger the data ? Do you have an example for C++ data ?
Thank you for your answer.
Have a good day.
The text was updated successfully, but these errors were encountered: