Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

31 wiersze
1.0KB

  1. package pipeline
  2. import "strings"
  3. // AutoSpanForHint returns a suggested refinement span based on the candidate hint.
  4. // It is intentionally conservative: spans are wide enough for robust demod/classify,
  5. // but not so wide that refinement becomes wasteful.
  6. func AutoSpanForHint(hint string) (float64, string) {
  7. h := strings.ToLower(hint)
  8. switch {
  9. case strings.Contains(h, "wfm"):
  10. return 200000, "auto:wfm"
  11. case strings.Contains(h, "nfm"):
  12. return 18000, "auto:nfm"
  13. case strings.Contains(h, "usb") || strings.Contains(h, "lsb") || strings.Contains(h, "ssb"):
  14. return 6000, "auto:ssb"
  15. case strings.Contains(h, "cw"):
  16. return 500, "auto:cw"
  17. case strings.Contains(h, "dmr") || strings.Contains(h, "d-star") || strings.Contains(h, "dstar"):
  18. return 15000, "auto:dig_voice"
  19. case strings.Contains(h, "ft8") || strings.Contains(h, "wspr"):
  20. return 4000, "auto:dig_weak"
  21. case strings.Contains(h, "fsk") || strings.Contains(h, "psk"):
  22. return 6000, "auto:dig"
  23. case strings.Contains(h, "am"):
  24. return 12000, "auto:am"
  25. default:
  26. return 0, ""
  27. }
  28. }