GithubHelp home page GithubHelp logo

Async operations about visa-rs HOT 3 OPEN

TsuITOAR avatar TsuITOAR commented on July 20, 2024
Async operations

from visa-rs.

Comments (3)

dr-kernel avatar dr-kernel commented on July 20, 2024

Something that's not entirely clear from your readme is whether the NI_VISA library is required, or will libvisa work as well?

I ask this because when trying to use async_write using libvisa and i get:

  = note: /build/private/cargo-target/release/deps/libvisa_rs-de0f39bbca939597.rlib(visa_rs-de0f39bbca939597.visa_rs.bcfb2d0a6785fd0b-cgu.02.rcgu.o): In function `visa_rs::async_
io::AsyncIoHandler::new':
          visa_rs.bcfb2d0a6785fd0b-cgu.02:(.text._ZN7visa_rs8async_io14AsyncIoHandler3new17h212d79d7ae1c5689E+0x221): undefined reference to `viInstallHandler'
          /build/private/cargo-target/release/deps/libvisa_rs-de0f39bbca939597.rlib(visa_rs-de0f39bbca939597.visa_rs.bcfb2d0a6785fd0b-cgu.02.rcgu.o): In function `<visa_rs::async
_io::AsyncIoHandler as core::ops::drop::Drop>::drop':
          visa_rs.bcfb2d0a6785fd0b-cgu.02:(.text._ZN75_$LT$visa_rs..async_io..AsyncIoHandler$u20$as$u20$core..ops..drop..Drop$GT$4drop17h84ef7ecf876e51e3E+0xe4): undefined reference to `viTerminate'
          visa_rs.bcfb2d0a6785fd0b-cgu.02:(.text._ZN75_$LT$visa_rs..async_io..AsyncIoHandler$u20$as$u20$core..ops..drop..Drop$GT$4drop17h84ef7ecf876e51e3E+0x1dc): undefined reference to `viUninstallHandler'
          /build/private/cargo-target/release/deps/libvisa_rs-de0f39bbca939597.rlib(visa_rs-de0f39bbca939597.visa_rs.bcfb2d0a6785fd0b-cgu.05.rcgu.o): In function `visa_rs::instru
ment::Instrument::visa_write_async':
          visa_rs.bcfb2d0a6785fd0b-cgu.05:(.text._ZN7visa_rs10instrument10Instrument16visa_write_async17h4a91cc3f7856106eE+0x24): undefined reference to `viWriteAsync'
          collect2: error: ld returned 1 exit status

Appreciate you're feedback on this.
~Dustin

from visa-rs.

TsuITOAR avatar TsuITOAR commented on July 20, 2024

Something that's not entirely clear from your readme is whether the NI_VISA library is required, or will libvisa work as well?

I ask this because when trying to use async_write using libvisa and i get:

  = note: /build/private/cargo-target/release/deps/libvisa_rs-de0f39bbca939597.rlib(visa_rs-de0f39bbca939597.visa_rs.bcfb2d0a6785fd0b-cgu.02.rcgu.o): In function `visa_rs::async_
io::AsyncIoHandler::new':
          visa_rs.bcfb2d0a6785fd0b-cgu.02:(.text._ZN7visa_rs8async_io14AsyncIoHandler3new17h212d79d7ae1c5689E+0x221): undefined reference to `viInstallHandler'
          /build/private/cargo-target/release/deps/libvisa_rs-de0f39bbca939597.rlib(visa_rs-de0f39bbca939597.visa_rs.bcfb2d0a6785fd0b-cgu.02.rcgu.o): In function `<visa_rs::async
_io::AsyncIoHandler as core::ops::drop::Drop>::drop':
          visa_rs.bcfb2d0a6785fd0b-cgu.02:(.text._ZN75_$LT$visa_rs..async_io..AsyncIoHandler$u20$as$u20$core..ops..drop..Drop$GT$4drop17h84ef7ecf876e51e3E+0xe4): undefined reference to `viTerminate'
          visa_rs.bcfb2d0a6785fd0b-cgu.02:(.text._ZN75_$LT$visa_rs..async_io..AsyncIoHandler$u20$as$u20$core..ops..drop..Drop$GT$4drop17h84ef7ecf876e51e3E+0x1dc): undefined reference to `viUninstallHandler'
          /build/private/cargo-target/release/deps/libvisa_rs-de0f39bbca939597.rlib(visa_rs-de0f39bbca939597.visa_rs.bcfb2d0a6785fd0b-cgu.05.rcgu.o): In function `visa_rs::instru
ment::Instrument::visa_write_async':
          visa_rs.bcfb2d0a6785fd0b-cgu.05:(.text._ZN7visa_rs10instrument10Instrument16visa_write_async17h4a91cc3f7856106eE+0x24): undefined reference to `viWriteAsync'
          collect2: error: ld returned 1 exit status

Appreciate you're feedback on this. ~Dustin

Hi, in principle any visa library should work if it follows the specifications.
It seems that libvisa uses the specification distributed in 06-18-2012, while I generate the prebindings in visa-sys based on distribution in 10-30-2020, maybe that's the problem. You can try rebinding by setting env var INCLUDE_PATH_VAR and open its bindgen feature (check the build.rs of visa-sys).

EDIT: NI-visa use the visa version 5.8 while libvisa using 5.1, there should be no version problem since NI VISA works fine.

BTW, do all methods fail or just this one?

from visa-rs.

dr-kernel avatar dr-kernel commented on July 20, 2024

I have only tried async_write and write_all (from the example). write_all compiles and links correctly.
I should also note that I have to create a symlink of libvisa -> libvisa64 for linking to work since that name is hard coded, it would be nice if this was a env_var or flag as part of the build.
I have found rsvisa, i could also try and see if that provides the bindings.

Interestingly those functions do exist in the visa.h file that the source (libvisa-dev) provides. I'm curious why those methods don't end up in the compiled .so.

from visa-rs.

Related Issues (8)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.