Error checking and optimizations per jpoirier

pull/248/head
root 2016-02-16 20:28:14 +00:00
rodzic 3cefce063b
commit b356b64f15
1 zmienionych plików z 36 dodań i 7 usunięć

Wyświetl plik

@ -13,11 +13,12 @@ import (
"io" "io"
"log" "log"
"os/exec" "os/exec"
"regexp"
"strconv" "strconv"
"strings"
"sync" "sync"
"sync/atomic" "sync/atomic"
"time" "time"
"regexp"
"../godump978" "../godump978"
rtl "github.com/jpoirier/gortlsdr" rtl "github.com/jpoirier/gortlsdr"
@ -127,8 +128,12 @@ func (u *UAT) read() {
} }
func getPPM(serial string) int { func getPPM(serial string) int {
r, _ := regexp.Compile("str?a?t?u?x:\\d+:?(-?\\d*)") r, err := regexp.Compile("str?a?t?u?x:\\d+:?(-?\\d*)");
arr := r.FindStringSubmatch(serial) if err != nil {
return globalSettings.PPM
}
arr := r.FindStringSubmatch(serial);
if arr == nil { if arr == nil {
return globalSettings.PPM return globalSettings.PPM
} }
@ -316,6 +321,19 @@ func sdrKill() {
// Watch for config/device changes. // Watch for config/device changes.
func sdrWatcher() { func sdrWatcher() {
var doSkip bool
rES, err := regexp.Compile("str?a?t?u?x:1090")
if err != nil {
rES = nil
log.Println("failed to compile ES regexp because %s", err.Error())
}
rUAT, err := regexp.Compile("str?a?t?u?x:978")
if err != nil {
rUAT = nil
log.Println("failed to compile ES regexp because %s", err.Error())
}
for { for {
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)
if sdrShutdown { if sdrShutdown {
@ -385,8 +403,13 @@ func sdrWatcher() {
serial = "" serial = ""
} }
r, _ := regexp.Compile("str?a?t?u?x:1090") if (rES == nil) {
if !r.MatchString(serial) { doSkip = rES.MatchString(serial)
} else {
doSkip = strings.Compare(serial, "stratux:1090") == 0
}
if !doSkip {
UATDev = &UAT{indexID: id, serial: serial} UATDev = &UAT{indexID: id, serial: serial}
if err := UATDev.sdrConfig(); err != nil { if err := UATDev.sdrConfig(); err != nil {
log.Printf("UATDev = &UAT{indexID: id} failed: %s\n", err) log.Printf("UATDev = &UAT{indexID: id} failed: %s\n", err)
@ -428,8 +451,14 @@ func sdrWatcher() {
if err != nil { if err != nil {
serial = "" serial = ""
} }
r, _ := regexp.Compile("str?a?t?u?x:978")
if !r.MatchString(serial) { if (rUAT == nil) {
doSkip = rUAT.MatchString(serial)
} else {
doSkip = strings.Compare(serial, "stratux:978") == 0
}
if !doSkip {
ESDev = &ES{indexID: id, serial: serial} ESDev = &ES{indexID: id, serial: serial}
if err := ESDev.sdrConfig(); err != nil { if err := ESDev.sdrConfig(); err != nil {
log.Printf("ESDev = &ES{indexID: id} failed: %s\n", err) log.Printf("ESDev = &ES{indexID: id} failed: %s\n", err)