erik replied to the topic 'The Imaging Source and INDI' in the forum. 1 month ago

Got it. I used

find_package(INDI REQUIRED v4l driver)
instead of
find_package(INDI REQUIRED)
.
Although I don't seem to get why this works since the latter should link to all indi libraries, not?

Read More...

erik replied to the topic 'The Imaging Source and INDI' in the forum. 1 month ago

I did. Still undefined references, though.

[ 50%] Linking CXX executable indi_v4ltis_ccd
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::V4LTISCCD()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:157: undefined reference to `V4L2_Driver::V4L2_Driver()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::~V4LTISCCD()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:162: undefined reference to `V4L2_Driver::~V4L2_Driver()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::initProperties()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:174: undefined reference to `V4L2_Driver::initProperties()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISGetProperties(char const*)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:182: undefined reference to `V4L2_Driver::ISGetProperties(char const*)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewSwitch(char const*, char const*, ISState*, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:187: undefined reference to `V4L2_Driver::ISNewSwitch(char const*, char const*, ISState*, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewText(char const*, char const*, char**, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:192: undefined reference to `V4L2_Driver::ISNewText(char const*, char const*, char**, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewNumber(char const*, char const*, double*, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:197: undefined reference to `V4L2_Driver::ISNewNumber(char const*, char const*, double*, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::updateProperties()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:202: undefined reference to `V4L2_Driver::updateProperties()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x98): undefined reference to `V4L2_Driver::saveConfigItems(_IO_FILE*)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0xf0): undefined reference to `V4L2_Driver::StartExposure(float)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x100): undefined reference to `V4L2_Driver::AbortExposure()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x118): undefined reference to `V4L2_Driver::UpdateCCDFrame(int, int, int, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x128): undefined reference to `V4L2_Driver::UpdateCCDBin(int, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x180): undefined reference to `V4L2_Driver::StartStreaming()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x188): undefined reference to `V4L2_Driver::StopStreaming()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x1a8): undefined reference to `V4L2_Driver::initCamBase()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x1b0): undefined reference to `V4L2_Driver::getBasicData()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTV9V4LTISCCD[_ZTV9V4LTISCCD]+0x1b8): undefined reference to `V4L2_Driver::updateV4L2Controls()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o:(.data.rel.ro._ZTI9V4LTISCCD[_ZTI9V4LTISCCD]+0x10): undefined reference to `typeinfo for V4L2_Driver'
collect2: error: ld returned 1 exit status
CMakeFiles/indi_v4ltis_ccd.dir/build.make:98: recipe for target 'indi_v4ltis_ccd' failed
make[2]: *** [indi_v4ltis_ccd] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/indi_v4ltis_ccd.dir/all' failed
make[1]: *** [CMakeFiles/indi_v4ltis_ccd.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2


Read More...

erik replied to the topic 'The Imaging Source and INDI' in the forum. 1 month ago

Oh, and the branch on the indi-3rdparty fork I'm working with is github.com/emktubs/indi-3rdparty/tree/v4l_tis_expansion

Read More...

erik replied to the topic 'The Imaging Source and INDI' in the forum. 1 month ago

I just pushed it all. Sorry.

It's not yet much what I did. I only took the generic ccd and used it as template to inherit from v4l2_driver.

Read More...

erik replied to the topic 'The Imaging Source and INDI' in the forum. 1 month ago
erik replied to the topic 'The Imaging Source and INDI' in the forum. 1 month ago

Hey, thanks for the hint with the lx200 library.

I had a look at that and tried to do it similar, I changed the CMakeLists.txt accordingly and adapted the FindINDI.cmake in indi-3rdparty as well, but I seem to have been missing something, 'cause the newly written driver inheriting from V4L2_Driver does not link to the created library. Undefineed references to all member function..

CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::V4LTISCCD()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:157: undefined reference to `V4L2_Driver::V4L2_Driver()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::~V4LTISCCD()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:162: undefined reference to `V4L2_Driver::~V4L2_Driver()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::initProperties()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:174: undefined reference to `V4L2_Driver::initProperties()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISGetProperties(char const*)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:182: undefined reference to `V4L2_Driver::ISGetProperties(char const*)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewSwitch(char const*, char const*, ISState*, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:187: undefined reference to `V4L2_Driver::ISNewSwitch(char const*, char const*, ISState*, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewText(char const*, char const*, char**, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:192: undefined reference to `V4L2_Driver::ISNewText(char const*, char const*, char**, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewNumber(char const*, char const*, double*, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:197: undefined reference to `V4L2_Driver::ISNewNumber(char const*, char const*, double*, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::updateProperties()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:202: undefined reference to `V4L2_Driver::updateProperties()'

Anyway, here are the changes I made to build the v4l library:
########### INDI::CCD V4L Driver ###############
IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    SET(v4l2driverccd_SRC
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/lx/Lx.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/drivers/video/v4l2driver.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/drivers/video/indi_v4l2driver.cpp)

    IF (UNITY_BUILD)
        ENABLE_UNITY_BUILD(v4l2driverccd v4l2driverccd_SRC 10 cpp)
    ENDIF ()

    add_library(indiv4l SHARED ${v4l2driverccd_SRC} ${libwebcam_C_SRC} ${libwebcam_CXX_SRC})
    set_target_properties(indiv4l PROPERTIES VERSION ${CMAKE_INDI_VERSION_STRING} SOVERSION ${INDI_SOVERSION} OUTPUT_NAME indiv4l)
    add_executable(indi_v4l2_ccd ${v4l2driverccd_SRC} ${libwebcam_C_SRC} ${libwebcam_CXX_SRC})
    target_link_libraries(indi_v4l2_ccd ${JPEG_LIBRARY} indidriver)
    install(TARGETS indi_v4l2_ccd RUNTIME DESTINATION bin )

    install(TARGETS indiv4l LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
    install(FILES
        ${CMAKE_CURRENT_SOURCE_DIR}/drivers/video/v4l2driver.h
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/lx/Lx.h
        DESTINATION ${INCLUDE_INSTALL_DIR}/libindi COMPONENT Devel)

    install(FILES
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/webcam/v4l2_base.h
        DESTINATION ${INCLUDE_INSTALL_DIR}/libindi/webcam COMPONENT Devel)
    
    install(FILES
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/webcam/v4l2_decode/v4l2_decode.h
        DESTINATION ${INCLUDE_INSTALL_DIR}/libindi/v4l2_decode COMPONENT Devel)

    # For DBK21 camera
    install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/drivers/video/80-dbk21-camera.rules DESTINATION ${UDEVRULES_INSTALL_DIR})


ENDIF ()

I did include that into the paragraph of the v4l driver.
As for the FindINDI.cmake I just added this line
INDI_declare_component(v4l  indiv4l)

To my understanding, shoudn't be the v4l library now be included into the INDI_LIBRARIES variable in cmake? I seem to be missing something obvious.

Cheers
Erik

PS.: Once it works, shall I do a pull request?

Read More...

erik replied to the topic 'The Imaging Source and INDI' in the forum. 1 month ago

Okay. Forked the 3rd party drivers already. A quick glance revealed that the header files for the V4L drivers aren't yet added to the include folders.

Read More...

erik replied to the topic 'The Imaging Source and INDI' in the forum. 1 month ago

So, for some reason the FPS with the new Ubuntu 18.04 version works now fine with the v4l2 driver and my The Imaging Source camera.
What I'd like to implement nonetheless, is the additional properties such as i. e. the Trigger Mode, ( see under section "Interface (electrical)" ). Since it would allow to generate very accurate timestamps in connection with an GPS device.

What would be the most convenient way to inherit from the V4L2_Driver class? Forking the INDI main repository and adding it or maybe going into the 3rd party and making an The Imaging Source driver, since these trigger features will only work for some of their cameras?

Thanks in advance

Cheers
Erik

Read More...

erik replied to the topic 'DMK41 AU02.AS : How to configure it with INDI ?' in the forum. 2 months ago

An easy way to add the udev rules is to install the TIS SDK . It not only installs the udev rules automatically, but also comes with the tis-capture software.

Cheers
Erik

Read More...

erik replied to the topic 'The Imaging Source and INDI' in the forum. 3 months ago

I asked and it doesn't seem like they are willing to do the development work for an TIS INDI driver based upon their linux SDK. :D

Sooo, I'll probably give it a try, because the half a frame per seconds streaming doesn't even come close to my expectations.

Does anybody already have some experience with the TIS SDK? Comments and hints appreciated!

Cheers
Erik

Read More...

erik created a new topic ' The Imaging Source and INDI' in the forum. 3 months ago

Hey,
I know, TIS cameras can be controlled via the V4L2 driver, but I'm kinda dissatisfied with its streaming performance and there seem to be a few more bugs concerning the communication of INDI with the camera.
Is this known? Are there any workaround? At the moment the maximum FPS I get is around 1.5 which is unsatisfactory knowing that qv4l2 makes 15 to 30 FPS with the same setup.
And if there is no workaround or way to improve this, is there a chance to build up a driver based on the TIS linux library ? Although I don't really know, if this adresses the actual problem behind the low frame rate since v4l2 does not seem to be the problem.
Greetings and big thanks in advance!
Cheers
Erik

Read More...

erik replied to the topic 'INDI/V4L2 Pixel size detection' in the forum. 4 months ago

Reported Name: DMK 38UX253.AS, Common Name: The Imaging Source DMK 38UX253.AS, Pixel Size 3.45 μm (H) × 3.45 μm (V)
s1-dl.theimagingsource.com/api/2.5/packa...253llr_1.0.en_US.pdf

Cheers
Erik

Read More...

erik created a new topic ' StreamManager RAW Encoder' in the forum. 2 years ago

Hi,

i've got a EOS 6D and I'm using the preview function, coming with the new StreamManager , with my self-written client. Now I get .stream files to the newBlob function, but I don't really know how to decode them. Ideally I'd like to get a pointer to the image bytes so I can initialize a OpenCV Mat with it.

Whats the best approach to get from those stream files an actual image?
Is it possible to get timestamps with each image without using the recording function and the ser format?

Thanks in advance for any help!

Regards
Erik

Read More...

erik replied to the topic 'ASI 120MC failes to expose' in the forum. 2 years ago

is your indi driver version compatible with your asi firmware?

right now i've outdated firmware on my asi120, which doesnt work with new indi driver versions, but works find with my pi, which has still an older indi driver installed.

viel glueck

Read More...

erik replied to the topic 'KStars not starting up after indi update!' in the forum. 3 years ago

Solved.

# To use INDI Qt5 Client library only in your application:
#
# find_package(INDI CLIENTQT5 REQUIRED)
#
#   if(INDI_FOUND)
#      include_directories(${INDI_INCLUDE_DIR})
#      add_executable(myapp myapp.cpp)
#      target_link_libraries(myapp ${INDI_CLIENTQT5_LIBRARIES})
#   endif(INDI_FOUND)
Seems not to work.
find_package(INDI REQUIRED client)
..worked for me, though I still had to link to libnova.

Read More...