×

INDI Library v2.0.7 is Released (01 Apr 2024)

Bi-monthly release with minor bug fixes and improvements

INDI libqsiapi coexists with native libqsiapi?

  • Posts: 69
  • Thank you received: 12
Hello

I am using a QSI683 camera and want to use both GoQat and INDI for controlling the camera.
For GoQat: I install the binary libftd2xx from FTDI and compile libqsiapi using ./configure --enable-libftd2xx
In INDI, if I understand correctly it uses libftdi to generate libqsiapi.so.

My question is :
1) Can I use the natively compiled libqsiapi which uses libftd2xx for indi-qsi and skip compiling libqsi in 3rdparty? My priority is to use the native library.
2) If I have to use libqsiapi from INDI, can both libraries coexist? How to?
3) IN README of QSI API, it requires libusb-0.1 but I notice that INDI CMAKE directly uses libftdi which may be based on libusb1.0. Would there be any problem?

Thank you.
Last edit: 7 years 10 months ago by anat.
7 years 10 months ago #8558

Please Log in or Create an account to join the conversation.

1. You can compile everything yourself, yes.
2. Yes, but they have to be named differently.
3. It's working so no problem.
7 years 10 months ago #8561

Please Log in or Create an account to join the conversation.

  • Posts: 69
  • Thank you received: 12
Thanks. How to name libqsiapi differently when compiling INDI 3rdparty driver?
7 years 10 months ago #8563

Please Log in or Create an account to join the conversation.

You can keep the INDI one as is, just change the name of the one you compile with Goqat. Probably in the CMakelists.txt (not sure what build system they use)
7 years 10 months ago #8564

Please Log in or Create an account to join the conversation.

  • Posts: 69
  • Thank you received: 12
It seems that natively-compiled libqsiapi cannot work with INDI. I prefer changing the library name in INDI. Where should I look into to change the libqsiapi name and in indi-qsi which points to the library ? Thank you.
7 years 10 months ago #8565

Please Log in or Create an account to join the conversation.

  • Posts: 712
  • Thank you received: 174

What about switch to libftd2xx in general? On OSX libftd2xx does work (it is used by AstroImager internal driver) while libftdi doesn't work (INDI driver). Peter
7 years 10 months ago #8568

Please Log in or Create an account to join the conversation.

  • Posts: 69
  • Thank you received: 12
For the record,. if the library is saved to /usr instead of the default /usr/local, the native libqsiapi library works with both INDI and GoQat. :) Below are the steps to get libqsiapi. Thanks.
cd /home/pi/
wget http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx-arm-v7-hf-1.3.6.tgz
tar xvf libftd2xx-arm-v7-hf-1.3.6.tgz
cd /home/pi/release/build/
cp libftd2xx.* /usr/lib
chmod 0755 /usr/lib/libftd2xx.so.1.3.6
ln -sf /usr/lib/libftd2xx.so.1.3.6 /usr/lib/libftd2xx.so
 
 
cd /home/pi/
wget http://www.qsimaging.com/downloads/qsiapi-7.2.0.tar.gz
tar xvf qsiapi-7.2.0.tar.gz
cd /home/pi/qsiapi-7.2.0/
./configure --enable-libftd2xx --prefix=/usr
sudo make all
sudo make install
cd /usr/lib
ldconfig /usr/lib
 
nano /etc/udev/rules.d/99-qsi.rules
***************************************
# 500-series
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="eb48", MODE="0666"
# 600-series
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="eb49", MODE="0666"
***************************************
7 years 10 months ago #8576

Please Log in or Create an account to join the conversation.

  • Posts: 69
  • Thank you received: 12
It got "Alert" when controlling Antiblooming on my QSI683. I understand that it is not available for the camera. But I think it is better to return "IDLE" and still set all options to Off. What do you think?
2016-06-02T00:26:16: Driver indi_qsi_ccd: read message QSI CCD   'put_AntiBlooming failed. 0x80040400:Option not available on this model.'
2016-06-02T00:26:16: Client 0: queuing <message device='QSI CCD' name=''>
2016-06-02T00:26:16: Driver indi_qsi_ccd: read setSwitchVector QSI CCD AntiBlooming Alert
     Normal='Off'
       High='Off'
2016-06-02T00:26:16: Client 0: queuing <setSwitchVector device='QSI CCD' name='AntiBlooming'>
2016-06-02T00:26:16: Client 0: sending msg copy 1 nq 2:
<message device="QSI CCD" timestamp="2016-06-02T00:26:16" message="put_AntiBlooming failed. 0x80040400:Option not available on this model."/>
 
2016-06-02T00:26:16: Client 0: sending msg copy 1 nq 1:
<setSwitchVector device="QSI CCD" name="AntiBlooming" state="Alert" timeout="2.122e-314" timestamp="2016-06-02T00:26:16">
    <oneSwitch name="Normal">
Off
    </oneSwitch>
    <oneSwitch name="High">
Off
    </oneSwitch>
</setSwitchVector>
Last edit: 7 years 10 months ago by anat.
7 years 10 months ago #8587

Please Log in or Create an account to join the conversation.

  • Posts: 69
  • Thank you received: 12
And one more point: label="" in Fan, Antiblooming, and Gain. So the fields don't show in some clients.
2016-06-02T00:24:10: Client 0: sending msg copy 1 nq 1:
<defSwitchVector device="QSI CCD" name="Gain" label="" group="Options" state="Idle" perm="rw" rule="OneOfMany" timeout="60" timestamp="2016-06-02T00:24:10">
    <defSwitch name="High" label="">
Off
    </defSwitch>
    <defSwitch name="Low" label="">
Off
    </defSwitch>
    <defSwitch name="Auto" label="">
On
    </defSwitch>
</defSwitchVector>
 
2016-06-02T00:24:10: Driver indi_qsi_ccd: read defSwitchVector QSI CCD AntiBlooming Idle rw
     Normal='Off'
       High='Off'
2016-06-02T00:24:10: Client 0: queuing <defSwitchVector device='QSI CCD' name='AntiBlooming'>
2016-06-02T00:24:10: Client 0: sending msg copy 1 nq 1:
<defSwitchVector device="QSI CCD" name="AntiBlooming" label="" group="Options" state="Idle" perm="rw" rule="OneOfMany" timeout="2.122e-314" timestamp="2016-06-02T00:24:10">
    <defSwitch name="Normal" label="">
Off
    </defSwitch>
    <defSwitch name="High" label="">
Off
    </defSwitch>
</defSwitchVector>
 
2016-06-02T00:24:10: Driver indi_qsi_ccd: read defSwitchVector QSI CCD Fan Idle rw
        Off='Off'
      Quiet='On'
       Full='Off'
2016-06-02T00:24:10: Client 0: queuing <defSwitchVector device='QSI CCD' name='Fan'>
2016-06-02T00:24:10: Client 0: sending msg copy 1 nq 1:
<defSwitchVector device="QSI CCD" name="Fan" label="" group="Main Control" state="Idle" perm="rw" rule="OneOfMany" timeout="60" timestamp="2016-06-02T00:24:10">
    <defSwitch name="Off" label="">
Off
    </defSwitch>
    <defSwitch name="Quiet" label="">
On
    </defSwitch>
    <defSwitch name="Full" label="">
Off
    </defSwitch>
</defSwitchVector>
7 years 10 months ago #8588

Please Log in or Create an account to join the conversation.

Please report a bug against these clients as they should fallback to the name in case the label is empty. ALERT is the correct response when a command cannot be executed.
7 years 10 months ago #8589

Please Log in or Create an account to join the conversation.

  • Posts: 712
  • Thank you received: 174
Jasem, in this case label is not missing in XML tag (allowed by DTD and logically default to name), it is empty string. If it is not a bug, it is at least a bad habit, don't suppose that everybody use INDI framework to parse INDI protocol :) Peter
7 years 10 months ago #8591

Please Log in or Create an account to join the conversation.

Thanks for the heads up Peter! The framework will no longer define label if it is empty.
7 years 10 months ago #8599

Please Log in or Create an account to join the conversation.

Time to create page: 0.678 seconds