Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

40 строки
1.6KB

  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. RecordWindow *pipeline.MonitorWindowMatch `json:"record_window,omitempty"`
  12. DecodeWindow *pipeline.MonitorWindowMatch `json:"decode_window,omitempty"`
  13. RecordAdmission *pipeline.PriorityAdmission `json:"record_admission,omitempty"`
  14. DecodeAdmission *pipeline.PriorityAdmission `json:"decode_admission,omitempty"`
  15. Candidate pipeline.Candidate `json:"candidate"`
  16. }
  17. func compactDecisions(decisions []pipeline.SignalDecision) []compactDecision {
  18. out := make([]compactDecision, 0, len(decisions))
  19. for _, d := range decisions {
  20. out = append(out, compactDecision{
  21. ID: d.Candidate.ID,
  22. Class: d.Class,
  23. Record: d.ShouldRecord,
  24. Decode: d.ShouldAutoDecode,
  25. Reason: d.Reason,
  26. MonitorBias: d.MonitorBias,
  27. MonitorDetail: d.MonitorDetail,
  28. RecordWindow: d.RecordWindow,
  29. DecodeWindow: d.DecodeWindow,
  30. RecordAdmission: d.RecordAdmission,
  31. DecodeAdmission: d.DecodeAdmission,
  32. Candidate: d.Candidate,
  33. })
  34. }
  35. return out
  36. }