Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

95 rindas
4.1KB

  1. package pipeline
  2. import "sdr-wideband-suite/internal/detector"
  3. type AnalysisLevel struct {
  4. Name string `json:"name"`
  5. Role string `json:"role,omitempty"`
  6. Truth string `json:"truth,omitempty"`
  7. SampleRate int `json:"sample_rate"`
  8. FFTSize int `json:"fft_size"`
  9. CenterHz float64 `json:"center_hz"`
  10. SpanHz float64 `json:"span_hz"`
  11. Source string `json:"source,omitempty"`
  12. }
  13. type AnalysisContext struct {
  14. Surveillance AnalysisLevel `json:"surveillance,omitempty"`
  15. Refinement AnalysisLevel `json:"refinement,omitempty"`
  16. Presentation AnalysisLevel `json:"presentation,omitempty"`
  17. Detail AnalysisLevel `json:"detail,omitempty"`
  18. Derived []AnalysisLevel `json:"derived,omitempty"`
  19. }
  20. type SurveillanceResult struct {
  21. Level AnalysisLevel `json:"level"`
  22. Levels []AnalysisLevel `json:"levels,omitempty"`
  23. Candidates []Candidate `json:"candidates"`
  24. Scheduled []ScheduledCandidate `json:"scheduled,omitempty"`
  25. Finished []detector.Event `json:"finished"`
  26. Signals []detector.Signal `json:"signals"`
  27. NoiseFloor float64 `json:"noise_floor"`
  28. Thresholds []float64 `json:"thresholds,omitempty"`
  29. DisplayLevel AnalysisLevel `json:"display_level"`
  30. Context AnalysisContext `json:"context,omitempty"`
  31. }
  32. type RefinementPlan struct {
  33. TotalCandidates int `json:"total_candidates"`
  34. MinCandidateSNRDb float64 `json:"min_candidate_snr_db"`
  35. Budget int `json:"budget"`
  36. BudgetSource string `json:"budget_source,omitempty"`
  37. Strategy string `json:"strategy,omitempty"`
  38. StrategyReason string `json:"strategy_reason,omitempty"`
  39. MonitorStartHz float64 `json:"monitor_start_hz,omitempty"`
  40. MonitorEndHz float64 `json:"monitor_end_hz,omitempty"`
  41. MonitorSpanHz float64 `json:"monitor_span_hz,omitempty"`
  42. DroppedByMonitor int `json:"dropped_by_monitor"`
  43. DroppedBySNR int `json:"dropped_by_snr"`
  44. DroppedByBudget int `json:"dropped_by_budget"`
  45. ScoreModel RefinementScoreModel `json:"score_model,omitempty"`
  46. PriorityMin float64 `json:"priority_min,omitempty"`
  47. PriorityMax float64 `json:"priority_max,omitempty"`
  48. PriorityAvg float64 `json:"priority_avg,omitempty"`
  49. PriorityCutoff float64 `json:"priority_cutoff,omitempty"`
  50. Ranked []ScheduledCandidate `json:"ranked,omitempty"`
  51. Selected []ScheduledCandidate `json:"selected,omitempty"`
  52. WorkItems []RefinementWorkItem `json:"work_items,omitempty"`
  53. }
  54. type RefinementRequest struct {
  55. Strategy string `json:"strategy,omitempty"`
  56. Reason string `json:"reason,omitempty"`
  57. SpanHintHz float64 `json:"span_hint_hz,omitempty"`
  58. }
  59. type RefinementInput struct {
  60. Level AnalysisLevel `json:"level"`
  61. Detail AnalysisLevel `json:"detail,omitempty"`
  62. Context AnalysisContext `json:"context,omitempty"`
  63. Request RefinementRequest `json:"request,omitempty"`
  64. Budgets BudgetModel `json:"budgets,omitempty"`
  65. Admission RefinementAdmission `json:"admission,omitempty"`
  66. Candidates []Candidate `json:"candidates,omitempty"`
  67. Scheduled []ScheduledCandidate `json:"scheduled,omitempty"`
  68. WorkItems []RefinementWorkItem `json:"work_items,omitempty"`
  69. Plan RefinementPlan `json:"plan,omitempty"`
  70. Windows []RefinementWindow `json:"windows,omitempty"`
  71. SampleRate int `json:"sample_rate"`
  72. FFTSize int `json:"fft_size"`
  73. CenterHz float64 `json:"center_hz"`
  74. Source string `json:"source,omitempty"`
  75. }
  76. type RefinementResult struct {
  77. Level AnalysisLevel `json:"level"`
  78. Signals []detector.Signal `json:"signals"`
  79. Decisions []SignalDecision `json:"decisions,omitempty"`
  80. Candidates []Candidate `json:"candidates,omitempty"`
  81. }
  82. type RefinementStep struct {
  83. Input RefinementInput `json:"input"`
  84. Result RefinementResult `json:"result"`
  85. }