Git Product home page Git Product logo

usbtmc's Issues

Add libusb driver

Add a USBTMC driver (usbtmc/driver/libusb) for the github.com/gotmc/libusb Go-based libusb driver.

regString error in visa.go

regString := ^(?P<interfaceType>[A-Za-z]+)(?P<boardIndex>\d*):: +
(?P<manufacturerID>[^\s:]+):: +
(?P<modelCode>[^\s:]+) +
(::(?P<serialNumber>[^\s:]+))? +
::(?P<resourceClass>[^\s:]+)$

there is some error in this regString, when parse the string USB0::0x0957::0x2007::MY57004760::0::INSTR

Segfault on context creation

A MWE:

package main

import (
	"log"

	"github.com/gotmc/usbtmc"
	_ "github.com/gotmc/usbtmc/driver/truveris"
)

func main() {
	ctx, err := usbtmc.NewContext()
	if err != nil {
		log.Fatal(err)
	}
	ctx.SetDebugLevel(1)
}

Output:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x49c9c0]

goroutine 1 [running]:
<>/vendor/github.com/gotmc/usbtmc.NewContext(0x4c92e0, 0x78a790, 0x0)
	/media/psf/Home/go/src/<>/vendor/github.com/gotmc/usbtmc/context.go:20 +0x70
main.main()
	/media/psf/Home/go/src/<>/cmd/ldctest/main.go:19 +0x26

This is without any of the other drivers installed. If I uninstall this driver and install another, I get the same segfault with the other two.

Add google/gousb driver

Add USBTMC driver (usbtmc/driver/gousb) for the github.com/google/gousb Go-based libusb driver.

Eliminate calls to log.Fatal

Instead of calling log.Fatal(), return an error, so that the end-user's higher level application can decide how to handle.

Don't read fixed size of 1024

In device.go the Read(p []byte) method uses a fixed length of 1024 to read the USBTMC bulk-in endpoint. Seems like I should refactor this.

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.