kopia lustrzana https://github.com/cyoung/stratux
fixes to handle all dongle scenarios, uat config fix back to print name
rodzic
6c35cd164f
commit
b91b1ce06c
87
main/sdr.go
87
main/sdr.go
|
@ -150,7 +150,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (u *UAT) sdrConfig() (err error) {
|
func (u *UAT) sdrConfig() (err error) {
|
||||||
log.Printf("===== UAT Device index: %s =====\n", rtl.GetDeviceName(u.indexID))
|
log.Printf("===== UAT Device Name : %s =====\n", rtl.GetDeviceName(u.indexID))
|
||||||
log.Printf("===== UAT Device Serial: %s=====\n", u.serial)
|
log.Printf("===== UAT Device Serial: %s=====\n", u.serial)
|
||||||
|
|
||||||
if u.dev, err = rtl.Open(u.indexID); err != nil {
|
if u.dev, err = rtl.Open(u.indexID); err != nil {
|
||||||
|
@ -372,26 +372,93 @@ func createESDev(id int, serial string, idSet bool) error {
|
||||||
|
|
||||||
func configDevices(count int, es_enabled, uat_enabled bool) {
|
func configDevices(count int, es_enabled, uat_enabled bool) {
|
||||||
// entry to this function is only valid when both UATDev and ESDev are nil
|
// entry to this function is only valid when both UATDev and ESDev are nil
|
||||||
|
|
||||||
|
// (A = Anonymous, UAT = 978 id, ES = 1090 id, "->" = configured to...)
|
||||||
|
|
||||||
|
// es_enabled == true and uat_enabled == true
|
||||||
|
//
|
||||||
|
// ID 0 1
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
// A A id 0 -> UAT first pass loop 2, id 1 -> ES second pass loop 2
|
||||||
|
// A ES id 1 -> ES second pass loop 1, id 0 -> UAT first pass loop 2
|
||||||
|
// ES A id 0 -> ES first pass loop 1, id 1 -> UAT first pass loop 2
|
||||||
|
// A UAT id 1 -> UAT second pass loop 1, id 0 -> ES first pass loop 2
|
||||||
|
// UAT A id 0 -> UAT first pass loop 1, id 1 -> ES first pass loop 2
|
||||||
|
// ES UAT id 0 -> ES first pass loop 1, id 1 -> UAT second pass loop 1
|
||||||
|
// UAT ES id 0 -> UAT first pass loop 1, id 1 -> ES second pass loop 1
|
||||||
|
// ES ES id 0 -> ES first pass loop 1, id 1 -> Unconfigured
|
||||||
|
// UAT UAT id 0 -> UAT first pass loop 1, id 1 -> Unconfigured
|
||||||
|
|
||||||
|
// es_enabled == true and uat_enabled == false
|
||||||
|
//
|
||||||
|
// ID 0 1
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
// A A id 0 -> ES first pass loop 2, id 1 -> Unconfigured
|
||||||
|
// A ES id 1 -> ES second pass loop 1, id 0 -> Unconfigured
|
||||||
|
// ES A id 0 -> ES first pass loop 1, id 1 -> Unconfigured
|
||||||
|
// A UAT id 0 -> ES first pass loop 2, id 1 -> Unconfigured
|
||||||
|
// UAT A id 1 -> ES second pass loop 2, id 1 -> Unconfigured
|
||||||
|
// ES UAT id 0 -> ES first pass loop 1, id 1 -> Unconfigured
|
||||||
|
// UAT ES id 1 -> ES second pass loop 1, id 0 -> Unconfigured
|
||||||
|
// ES ES id 0 -> ES first pass loop 1, id 1 -> unconfigured
|
||||||
|
// UAT UAT id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
|
||||||
|
// es_enabled == false and uat_enabled == true
|
||||||
|
//
|
||||||
|
// ID 0 1
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
// A A id 0 -> UAT first pass loop 2, id 1 -> Unconfigured
|
||||||
|
// A ES id 0 -> UAT first pass loop 2, id 1 -> Unconfigured
|
||||||
|
// ES A id 1 -> UAT second pass loop 2, id 0 -> Unconfigured
|
||||||
|
// A UAT id 1 -> UAT second pass loop 1, id 0 -> Unconfigured
|
||||||
|
// UAT A id 0 -> UAT first pass loop 1, id 1 -> Unconfigured
|
||||||
|
// ES UAT id 1 -> UAT second pass loop 1, id 0 -> Unconfigured
|
||||||
|
// UAT ES id 0 -> UAT first pass loop 1, id 1 -> Unconfigured
|
||||||
|
// ES ES id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// UAT UAT id 0 -> UAT first pass loop 1, id 1 -> unconfigured
|
||||||
|
|
||||||
|
// es_enabled == false and uat_enabled == false
|
||||||
|
//
|
||||||
|
// ID 0 1
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
// A A id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// A ES id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// ES A id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// A UAT id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// UAT A id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// ES UAT id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// UAT ES id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// ES ES id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
// UAT UAT id 0 -> Unconfigured , id 1 -> Unconfigured
|
||||||
|
|
||||||
|
// once the tagged dongles have been assigned explicitly range over
|
||||||
|
// the remaining IDs and assign then to any anonymous dongles
|
||||||
|
unusedIDs := make([]int, 0, count)
|
||||||
|
|
||||||
|
// loop 1: assign tagged dongles
|
||||||
for i := 0; i < count; i++ {
|
for i := 0; i < count; i++ {
|
||||||
_, _, s, err := rtl.GetDeviceUsbStrings(i)
|
_, _, s, err := rtl.GetDeviceUsbStrings(i)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if uat_enabled && UATDev == nil && rUAT.hasID(s) {
|
if uat_enabled && UATDev == nil && rUAT.hasID(s) {
|
||||||
createUATDev(i, s, true)
|
createUATDev(i, s, true)
|
||||||
continue
|
} else if es_enabled && ESDev == nil && rES.hasID(s) {
|
||||||
}
|
|
||||||
if es_enabled && ESDev == nil && rES.hasID(s) {
|
|
||||||
createESDev(i, s, true)
|
createESDev(i, s, true)
|
||||||
continue
|
} else {
|
||||||
|
unusedIDs = append(unusedIDs, i)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.Printf("rtl.GetDeviceUsbStrings id %d: %s\n", i, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// we only get here when it's an anonymous dongle
|
// loop 2; assign anonymous dongles
|
||||||
|
for _, v := range a {
|
||||||
|
_, _, s, err := rtl.GetDeviceUsbStrings(i)
|
||||||
|
if err == nil {
|
||||||
if uat_enabled && UATDev == nil {
|
if uat_enabled && UATDev == nil {
|
||||||
createUATDev(i, s, false)
|
createUATDev(i, s, false)
|
||||||
continue
|
} else if es_enabled && ESDev == nil {
|
||||||
}
|
|
||||||
if es_enabled && ESDev == nil {
|
|
||||||
createESDev(i, s, false)
|
createESDev(i, s, false)
|
||||||
continue
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Printf("rtl.GetDeviceUsbStrings id %d: %s\n", i, err)
|
log.Printf("rtl.GetDeviceUsbStrings id %d: %s\n", i, err)
|
||||||
|
|
Ładowanie…
Reference in New Issue