Wideband autonomous SDR analysis engine forked from sdr-visual-suite
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 line
2.7KB

  1. package pipeline
  2. import "sdr-wideband-suite/internal/detector"
  3. type AnalysisLevel struct {
  4. Name string `json:"name"`
  5. SampleRate int `json:"sample_rate"`
  6. FFTSize int `json:"fft_size"`
  7. CenterHz float64 `json:"center_hz"`
  8. SpanHz float64 `json:"span_hz"`
  9. Source string `json:"source,omitempty"`
  10. }
  11. type SurveillanceResult struct {
  12. Level AnalysisLevel `json:"level"`
  13. Levels []AnalysisLevel `json:"levels,omitempty"`
  14. Candidates []Candidate `json:"candidates"`
  15. Scheduled []ScheduledCandidate `json:"scheduled,omitempty"`
  16. Finished []detector.Event `json:"finished"`
  17. Signals []detector.Signal `json:"signals"`
  18. NoiseFloor float64 `json:"noise_floor"`
  19. Thresholds []float64 `json:"thresholds,omitempty"`
  20. DisplayLevel AnalysisLevel `json:"display_level"`
  21. }
  22. type RefinementPlan struct {
  23. TotalCandidates int `json:"total_candidates"`
  24. MinCandidateSNRDb float64 `json:"min_candidate_snr_db"`
  25. Budget int `json:"budget"`
  26. MonitorStartHz float64 `json:"monitor_start_hz,omitempty"`
  27. MonitorEndHz float64 `json:"monitor_end_hz,omitempty"`
  28. MonitorSpanHz float64 `json:"monitor_span_hz,omitempty"`
  29. DroppedByMonitor int `json:"dropped_by_monitor"`
  30. DroppedBySNR int `json:"dropped_by_snr"`
  31. DroppedByBudget int `json:"dropped_by_budget"`
  32. PriorityMin float64 `json:"priority_min,omitempty"`
  33. PriorityMax float64 `json:"priority_max,omitempty"`
  34. PriorityAvg float64 `json:"priority_avg,omitempty"`
  35. PriorityCutoff float64 `json:"priority_cutoff,omitempty"`
  36. Selected []ScheduledCandidate `json:"selected,omitempty"`
  37. }
  38. type RefinementInput struct {
  39. Level AnalysisLevel `json:"level"`
  40. Candidates []Candidate `json:"candidates,omitempty"`
  41. Scheduled []ScheduledCandidate `json:"scheduled,omitempty"`
  42. Plan RefinementPlan `json:"plan,omitempty"`
  43. Windows []RefinementWindow `json:"windows,omitempty"`
  44. SampleRate int `json:"sample_rate"`
  45. FFTSize int `json:"fft_size"`
  46. CenterHz float64 `json:"center_hz"`
  47. Source string `json:"source,omitempty"`
  48. }
  49. type RefinementResult struct {
  50. Level AnalysisLevel `json:"level"`
  51. Signals []detector.Signal `json:"signals"`
  52. Decisions []SignalDecision `json:"decisions,omitempty"`
  53. Candidates []Candidate `json:"candidates,omitempty"`
  54. }
  55. type RefinementStep struct {
  56. Input RefinementInput `json:"input"`
  57. Result RefinementResult `json:"result"`
  58. }