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) {
|
||||
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)
|
||||
|
||||
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) {
|
||||
// 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++ {
|
||||
_, _, s, err := rtl.GetDeviceUsbStrings(i)
|
||||
if err == nil {
|
||||
if uat_enabled && UATDev == nil && rUAT.hasID(s) {
|
||||
createUATDev(i, s, true)
|
||||
continue
|
||||
}
|
||||
if es_enabled && ESDev == nil && rES.hasID(s) {
|
||||
} else if es_enabled && ESDev == nil && rES.hasID(s) {
|
||||
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 {
|
||||
createUATDev(i, s, false)
|
||||
continue
|
||||
}
|
||||
if es_enabled && ESDev == nil {
|
||||
} else if es_enabled && ESDev == nil {
|
||||
createESDev(i, s, false)
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
log.Printf("rtl.GetDeviceUsbStrings id %d: %s\n", i, err)
|
||||
|
|
Ładowanie…
Reference in New Issue