Wideband autonomous SDR analysis engine forked from sdr-visual-suite
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

29 行
787B

  1. package pipeline
  2. func monitorBounds(policy Policy) (float64, float64, bool) {
  3. start := policy.MonitorStartHz
  4. end := policy.MonitorEndHz
  5. if start != 0 && end != 0 && end > start {
  6. return start, end, true
  7. }
  8. if policy.MonitorSpanHz > 0 && policy.MonitorCenterHz != 0 {
  9. half := policy.MonitorSpanHz / 2
  10. return policy.MonitorCenterHz - half, policy.MonitorCenterHz + half, true
  11. }
  12. return 0, 0, false
  13. }
  14. func candidateInMonitor(policy Policy, candidate Candidate) bool {
  15. start, end, ok := monitorBounds(policy)
  16. if !ok {
  17. return true
  18. }
  19. left := candidate.CenterHz
  20. right := candidate.CenterHz
  21. if candidate.BandwidthHz > 0 {
  22. left = candidate.CenterHz - candidate.BandwidthHz/2
  23. right = candidate.CenterHz + candidate.BandwidthHz/2
  24. }
  25. return right >= start && left <= end
  26. }