benjamin replied to the topic 'Acquition time too long' in the forum. 1 year ago

Hi Julie,

On my side it is long but regular (except for the first acquisition that car take a little bit more, about 20% more time). I do not have, as you, changes in the acquisition time or endless loop.

I didn't resolved this problem, for the moment this is "almost sufficient" for my projet that just need 5 to 10 Hz acquisitions and I reached 3 Hz.
I'm working on a python library that call a c++ client that just take an image and send it to the python software. I hope it will help.

I guess it does not help so much...

++
Benjamin

Read More...

Thank you very much to both of you for your help.
It works perfectly!

Benjamin

Read More...

Hello,

On my Raspberry Pi, I'm using a main program in python, a part of the program connects an ASI camera with pyindi. It works well except for the acquisition time impossible to decrease below 300 ms for a frame (even with binning or cropping). It has been explained in this topic : indilib.org/forum/ccds-dslrs/12476-acquition-time-too-long.html .

I would like to create a python library just to acquire frames at a higher rate, so written in C++ to overpass this limitation. I've seen the examples : github.com/indilib/indi/tree/master/examples , example 6 fits almost my need, but programs are always compiled with the whole library using cmake.

To create a library to use with python, I need to compile it using python docs.python.org/3/extending/extending.html passing by a commande like

python3 ./setup.py build
with all informations regarding the compilation in the setup.py file. Both conditions (cmake and python compilation) are quite complexe to use together.

Is it a simple way to compile a simple client (for exemple the one in exemple 6), just linked to the needed libraries ?.
given the simple client, I expected a possibility like, for the C++ part :
g++ very_simple_client.cpp -needed_library - L /urs.... -I /usr/...
that would be easy to transfer for a python compilation.

Does such a simple compilation way exist ?

Thank you !
Benjamin

Read More...

benjamin replied to the topic 'Acquition time too long' in the forum. 2 years ago

Ok, thank you fo the advices.
I'll finish the other parts of the project and then I'll decide if waiting or creating a C++ extension (that could take some time as well :P ).
Benjamin

Read More...

benjamin replied to the topic 'Acquition time too long' in the forum. 2 years ago

Thanks for the answer !
And let's see what will be the answer to the issue you opened.

To answer your question : I would like to get the buffer, I process data immediately after. Not saving on the disk is not a problem.

In the exemple I gave, it is really waiting for the data that takes time, about 500ms :

self.indiclient.blobEvent.wait()

just to precise this point, obtaining data just takes a few milliseconds, and is not a problem :
self.ccd_ccd1[0].getblobdata()

Just to be sure, I checked the IndiLib version :
INDI Library: 1.9.8
Code 1.9.8-tgz. Protocol 1.7.


Read More...

benjamin created a new topic ' Acquition time too long' in the forum. 2 years ago

Hello everybody,

For a project:

  • I use a raspberry Pi 4 with a light version of ubuntu
  • I code using python3
  • I would like to get an image by using a camera (ZWO ASI 120mm), at 10Hz (more or less : between 5 and 20Hz), the acquisition time for each frame is between 5 and 20 ms

I wrote a code based on this tutorial: indilib.org/develop/indi-python-bindings.html and it works fine to get one frame (or more).

<strong>My only problem is that to get one frame of 20ms, it takes about 0.5 seconds! </strong>

I use the following function (the initialization is as in the tutorial):
<code>
def one_guide_acquisition(self, exp_time):
temps1 = datetime.now()
self.indiclient.blobEvent.wait()
fits=self.ccd_ccd1[0].getblobdata()
self.ccd_exposure[0].value = 0.02
self.indiclient.blobEvent.clear()
self.indiclient.sendNewNumber(self.ccd_exposure)

print(" axxx ---> temps : ", " " , datetime.now() - temps1)
return fits
</code>

The whole function time is used by the "blobEvent.wait()" function that takes ~0.5 second...

<strong>Is it normal? Should it be much better?
If it's the normal behavior, do you have ideas on how I can do those acquisitions?
</strong>

Thanks ;)
Benjamin

Read More...