Wideband autonomous SDR analysis engine forked from sdr-visual-suite
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

30 líneas
718B

  1. package main
  2. import "sdr-wideband-suite/internal/pipeline"
  3. func enforceDecisionBudgets(decisions []pipeline.SignalDecision, maxRecord int, maxDecode int) (int, int) {
  4. recorded := 0
  5. decoded := 0
  6. for i := range decisions {
  7. if decisions[i].ShouldRecord {
  8. if maxRecord > 0 && recorded >= maxRecord {
  9. decisions[i].ShouldRecord = false
  10. decisions[i].Reason = "recording budget exceeded"
  11. } else {
  12. recorded++
  13. }
  14. }
  15. if decisions[i].ShouldAutoDecode {
  16. if maxDecode > 0 && decoded >= maxDecode {
  17. decisions[i].ShouldAutoDecode = false
  18. if decisions[i].Reason == "" {
  19. decisions[i].Reason = "decode budget exceeded"
  20. }
  21. } else {
  22. decoded++
  23. }
  24. }
  25. }
  26. return recorded, decoded
  27. }