anqixu / ueye_cam

A ROS nodelet and node that wraps the driver API for UEye cameras by IDS Imaging Development Systems GMBH.
Other
60 stars 102 forks source link

[uEye 4.94] Update Deprecated Event Handling Functions #97

Closed nullket closed 3 years ago

nullket commented 3 years ago

With version 4.94 some API functions concerning the event handling became deprecated. With this PR the newer equivalent will be used.

@jmackay2 maybe you have time to test this with hardware (I have tested it with mine)? It could then be merged.

anqixu commented 3 years ago

@nullket I'll try to test this tomorrow (fingers crossed that I get spare time). Need to work on a parallel issue: the ROS distro releases of ueye_cam have been failing to build for over 3 months now. I think it's because the thin IDS driver zips I made are too outdated. Can you please tell me which version of IDS Suite (4.94.00 or above?) did you specifically test again, so that I can update these thin drivers? (Background FYI: the thin drivers are needed to build ueye_cam on the ROS release docker images automatically, thus bypassing the need to manually sign into IDS and download their full official package)

nullket commented 3 years ago

I'll try to test this tomorrow (fingers crossed that I get spare time).

I am crossing my fingers ;) It would be awesome if you could check the opens PRs. I still have a working stack for the GPIOs and also for setting the exposure reference via rosparm in my private repo. But I do not want to create PRs unless I know the style of my open PRs is accepted (in terms of the way the functions are implemented) and merged.

Can you please tell me which version of IDS Suite (4.94.00 or above?)

4.94.1523 64 bit build July 23 2020 (I just re-downloaded 4.94 yesterday and this is the build I got)

thus bypassing the need to manually sign into IDS and download their full official package

I have written a little bash script to update my local installations across all computers more easily. You can actually download the package without login in, you just need to know the URL which is based on the version:

sw_version=4.94
wget -q --show-progress --tries=2 https://de.ids-imaging.com/files/downloads/ids-software-suite/software/linux-desktop/ids-software-suite-linux-${sw_version}-64.tgz -P /tmp

Then the installation process could be automated like this:

# Extract
mkdir /tmp/ids-software-suite-linux
pv -f --progress --timer --eta --rate /tmp/ids-software-suite-linux-${sw_version}-64.tgz | tar -xz -C /tmp/ids-software-suite-linux

# Uninstall old version (if installed)
if [ -f /usr/bin/ueyesetup ]; then
        echo "Uninstalling already existing Versions..."
        /usr/bin/ueyesetup -r eth
        /usr/bin/ueyesetup -r usb
fi

# Install
/tmp/ids-software-suite-linux/ueye_*_amd64.run --auto

# Cleanup 
rm -rf /tmp/ids-software-suite-linux*

Maybe creating a docker image with full IDS drivers like this could make the release a lot easier. But I do not know the release process very well. I would even suggest to simply

jmackay2 commented 3 years ago

I tested this out and had no issues. The deprecation warnings have been bugging me, so thanks for the fix!

@anqixu I saw you were looking into this earlier, so I'll let you chime in if you see any reason to hold this up.

nullket commented 3 years ago

I tested this out and had no issues. The deprecation warnings have been bugging me, so thanks for the fix!

@anqixu I saw you were looking into this earlier, so I'll let you chime in if you see any reason to hold this up.

Awesome, thanks!

Based on an e-mail conversation @anqixu and I had earlier than this PR, I assume that he is currently quite busy. I suggest that we see whether he is able to respond, otherwise we merge it as the code was tested by two different persons.

nullket commented 3 years ago

I just merged it so get we further with this, I hope that is in everybody's interest.