Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

42 lines
1.7KB

  1. package main
  2. import "sdr-wideband-suite/internal/pipeline"
  3. type compactDecision struct {
  4. ID int64 `json:"id"`
  5. Class string `json:"class,omitempty"`
  6. Record bool `json:"record"`
  7. Decode bool `json:"decode"`
  8. Reason string `json:"reason,omitempty"`
  9. MonitorBias float64 `json:"monitor_bias,omitempty"`
  10. MonitorDetail *pipeline.MonitorWindowMatch `json:"monitor_detail,omitempty"`
  11. MonitorWindow *pipeline.MonitorWindowMatch `json:"monitor_window,omitempty"`
  12. RecordWindow *pipeline.MonitorWindowMatch `json:"record_window,omitempty"`
  13. DecodeWindow *pipeline.MonitorWindowMatch `json:"decode_window,omitempty"`
  14. RecordAdmission *pipeline.PriorityAdmission `json:"record_admission,omitempty"`
  15. DecodeAdmission *pipeline.PriorityAdmission `json:"decode_admission,omitempty"`
  16. Candidate pipeline.Candidate `json:"candidate"`
  17. }
  18. func compactDecisions(decisions []pipeline.SignalDecision) []compactDecision {
  19. out := make([]compactDecision, 0, len(decisions))
  20. for _, d := range decisions {
  21. out = append(out, compactDecision{
  22. ID: d.Candidate.ID,
  23. Class: d.Class,
  24. Record: d.ShouldRecord,
  25. Decode: d.ShouldAutoDecode,
  26. Reason: d.Reason,
  27. MonitorBias: d.MonitorBias,
  28. MonitorDetail: d.MonitorDetail,
  29. MonitorWindow: d.MonitorWindow,
  30. RecordWindow: d.RecordWindow,
  31. DecodeWindow: d.DecodeWindow,
  32. RecordAdmission: d.RecordAdmission,
  33. DecodeAdmission: d.DecodeAdmission,
  34. Candidate: d.Candidate,
  35. })
  36. }
  37. return out
  38. }