visa-device-handler 0.6.2

a crate to handle NI-VISA connections and simplify its use.
Documentation
visa-device-handler-0.6.2 has been yanked.

Visa Device Handler

Based on the visa crate, this crate aims to provide a wrapper to allow multiple device connections and handling, and make the usage of NI-VISA easier to use.

The crate supports Windows, and sould support Linux and MacOS. but is being tested mainly on Windows.

Example


let sdm_result:SafeDeviceMap = SafeDeviceMap::init(None);
match sdm_result {
    Ok(mapper) => {
        mapper.connect_device("address_01".to_string());
        let data = mapper.query_from_device("name_01".to_string(),"cool funcation with args").unwrap();
        println!("got {} from the device",data);
        mapper.disconnect_device("name_01".to_string());
    }
    Err(e) => {/*print codes or anything */}
}

Tauri

The next Tauri project utilizes the crate as a peripheral for NI-VISA. https://github.com/LiorBuch/showcaser. this project uses React and Mantine as the UI, it's not failproof as it's just a POC.

Emulators

The next project creates an emulator of a visa device to be used with a TCP connection. As the project is not mine, i cant help much with its usage. One issue i spotted is that read operations always timeout, probably a missing termination character. Link to the project: https://github.com/bluehands/Open-SCPI-Protocol-Emulator/tree/main

Change Log 0.3.0

  • get_first_device now returns the device instead of printing.

  • get_first_device and find_all_devices now won't print unless debug boolean is true.

  • Fixed the error where the CString parses null terminators.

  • Added key error map in some functions.

    Change Log 0.3.1

Change Log 0.4.0

  • Fixed the disconnect issue.
  • Cleaned structure.

Change Log 0.5.0

  • All Device operations now use its address, more uniform approch since the address is always presented.
  • Linux is now enabled, yet not fully tested.
  • Added logger to the Map to save all the warnings and suppress them. (set to Debug by default).
  • status codes are now fully tested to give more accurate information.

Change Log 0.6.0

  • Fixed the problem where unable to use devices mapped since key include [\0] chars and address not.

  • Validated usage of TCP deviecs and emulators.

  • Added the option to define if a program should terminate by the Verbosity of the error, as some error codes can be warnings. defaults to Error level.

    Change Log 0.6.2

    • Updated the logger to V1.0.0, adds better log format.
    • Fixed the find all issue where it cant find more than one device without crashing.