如何使用golang获取USB设备的序列号?
是否有任何示例代码?
任何知道的人!
答案 0 :(得分:1)
你必须在golang中使用libusb的包装器(例如gousb)。 但是这个包装器没有命令来获取序列号。 所以你必须实现它。 libusb中的命令是:
C.libusb_get_string_descriptor_ascii
答案 1 :(得分:0)
libusb Go包有一个方法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)
}
}