Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 22 additions & 8 deletions device.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ type Device struct {
serialNumber string
Port int
MjpegPort int
ConnType string

d giDevice.Device
}
Expand All @@ -40,6 +41,12 @@ func WithMjpegPort(port int) DeviceOption {
}
}

func WithConnType(typ string) DeviceOption {
return func(d *Device) {
d.ConnType = typ
}
}

func NewDevice(options ...DeviceOption) (device *Device, err error) {
var usbmux giDevice.Usbmux
if usbmux, err = giDevice.NewUsbmux(); err != nil {
Expand All @@ -54,6 +61,7 @@ func NewDevice(options ...DeviceOption) (device *Device, err error) {
device = &Device{
Port: defaultPort,
MjpegPort: defaultMjpegPort,
ConnType: "USB",
}
for _, option := range options {
option(device)
Expand All @@ -62,7 +70,7 @@ func NewDevice(options ...DeviceOption) (device *Device, err error) {
serialNumber := device.serialNumber
for _, d := range deviceList {
// find device by serial number if specified
if serialNumber != "" && d.Properties().SerialNumber != serialNumber {
if (serialNumber != "" && d.Properties().SerialNumber != serialNumber) || d.Properties().ConnectionType != device.ConnType {
continue
}

Expand All @@ -86,14 +94,20 @@ func DeviceList() (devices []Device, err error) {
return nil, fmt.Errorf("device list: %w", err)
}

devices = make([]Device, len(deviceList))
for i := range deviceList {
if deviceList[i].Properties().ConnectionType != "USB" {
continue
}
Comment on lines +98 to +100
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这不就让 DeviceList() 变成了只能查到 USB设备 了?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

因为你这个库用network设备会报错,报bad device


for i := range devices {
devices[i].deviceID = deviceList[i].Properties().DeviceID
devices[i].serialNumber = deviceList[i].Properties().SerialNumber
devices[i].Port = defaultPort
devices[i].MjpegPort = defaultMjpegPort
devices[i].d = deviceList[i]
d := Device{
deviceID: deviceList[i].Properties().DeviceID,
serialNumber: deviceList[i].Properties().SerialNumber,
ConnType: deviceList[i].Properties().ConnectionType,
Port: defaultPort,
MjpegPort: defaultMjpegPort,
d: deviceList[i],
}
devices = append(devices, d)
}

return
Expand Down