2 回答
TA贡献1828条经验 获得超13个赞
您必须在 golang 中使用 libusb 的包装器(例如gousb)。但是这个包装器没有获取序列号的命令。所以你必须实施它。libusb 中的命令是:
C.libusb_get_string_descriptor_ascii
TA贡献1836条经验 获得超13个赞
所述的libusb转到包有一个方法GetStringDesciptorASCII可以用来得到一个USB装置的S / N。
没有错误处理的示例
package main
import (
"log"
"github.com/gotmc/libusb"
)
func main() {
ctx, _ := libusb.Init()
defer ctx.Exit()
devices, _ := ctx.GetDeviceList()
for _, device := range devices {
usbDeviceDescriptor, _ := device.GetDeviceDescriptor()
handle, _ := device.Open()
defer handle.Close()
snIndex := usbDeviceDescriptor.SerialNumberIndex
serialNumber, _ := handle.GetStringDescriptorASCII(snIndex)
log.Printf("Found S/N: %s", serialNumber)
}
}
- 2 回答
- 0 关注
- 873 浏览
添加回答
举报
