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

111 строки
4.8KB

  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. BinHz float64 `json:"bin_hz,omitempty"`
  10. Decimation int `json:"decimation,omitempty"`
  11. CenterHz float64 `json:"center_hz"`
  12. SpanHz float64 `json:"span_hz"`
  13. Source string `json:"source,omitempty"`
  14. }
  15. type SurveillanceLevelSpectrum struct {
  16. Level AnalysisLevel `json:"level"`
  17. Spectrum []float64 `json:"spectrum_db,omitempty"`
  18. }
  19. type AnalysisContext struct {
  20. Surveillance AnalysisLevel `json:"surveillance,omitempty"`
  21. Refinement AnalysisLevel `json:"refinement,omitempty"`
  22. Presentation AnalysisLevel `json:"presentation,omitempty"`
  23. Detail AnalysisLevel `json:"detail,omitempty"`
  24. Derived []AnalysisLevel `json:"derived,omitempty"`
  25. }
  26. type SurveillanceLevelSet struct {
  27. Primary AnalysisLevel `json:"primary"`
  28. Derived []AnalysisLevel `json:"derived,omitempty"`
  29. Presentation AnalysisLevel `json:"presentation,omitempty"`
  30. All []AnalysisLevel `json:"all,omitempty"`
  31. }
  32. type SurveillanceResult struct {
  33. Level AnalysisLevel `json:"level"`
  34. Levels []AnalysisLevel `json:"levels,omitempty"`
  35. LevelSet SurveillanceLevelSet `json:"level_set,omitempty"`
  36. Candidates []Candidate `json:"candidates"`
  37. Scheduled []ScheduledCandidate `json:"scheduled,omitempty"`
  38. Finished []detector.Event `json:"finished"`
  39. Signals []detector.Signal `json:"signals"`
  40. NoiseFloor float64 `json:"noise_floor"`
  41. Thresholds []float64 `json:"thresholds,omitempty"`
  42. DisplayLevel AnalysisLevel `json:"display_level"`
  43. Context AnalysisContext `json:"context,omitempty"`
  44. Spectra []SurveillanceLevelSpectrum `json:"spectra,omitempty"`
  45. }
  46. type RefinementPlan struct {
  47. TotalCandidates int `json:"total_candidates"`
  48. MinCandidateSNRDb float64 `json:"min_candidate_snr_db"`
  49. Budget int `json:"budget"`
  50. BudgetSource string `json:"budget_source,omitempty"`
  51. Strategy string `json:"strategy,omitempty"`
  52. StrategyReason string `json:"strategy_reason,omitempty"`
  53. MonitorStartHz float64 `json:"monitor_start_hz,omitempty"`
  54. MonitorEndHz float64 `json:"monitor_end_hz,omitempty"`
  55. MonitorSpanHz float64 `json:"monitor_span_hz,omitempty"`
  56. DroppedByMonitor int `json:"dropped_by_monitor"`
  57. DroppedBySNR int `json:"dropped_by_snr"`
  58. DroppedByBudget int `json:"dropped_by_budget"`
  59. ScoreModel RefinementScoreModel `json:"score_model,omitempty"`
  60. PriorityMin float64 `json:"priority_min,omitempty"`
  61. PriorityMax float64 `json:"priority_max,omitempty"`
  62. PriorityAvg float64 `json:"priority_avg,omitempty"`
  63. PriorityCutoff float64 `json:"priority_cutoff,omitempty"`
  64. Ranked []ScheduledCandidate `json:"ranked,omitempty"`
  65. Selected []ScheduledCandidate `json:"selected,omitempty"`
  66. WorkItems []RefinementWorkItem `json:"work_items,omitempty"`
  67. }
  68. type RefinementRequest struct {
  69. Strategy string `json:"strategy,omitempty"`
  70. Reason string `json:"reason,omitempty"`
  71. SpanHintHz float64 `json:"span_hint_hz,omitempty"`
  72. }
  73. type RefinementInput struct {
  74. Level AnalysisLevel `json:"level"`
  75. Detail AnalysisLevel `json:"detail,omitempty"`
  76. Context AnalysisContext `json:"context,omitempty"`
  77. Request RefinementRequest `json:"request,omitempty"`
  78. Budgets BudgetModel `json:"budgets,omitempty"`
  79. Admission RefinementAdmission `json:"admission,omitempty"`
  80. Candidates []Candidate `json:"candidates,omitempty"`
  81. Scheduled []ScheduledCandidate `json:"scheduled,omitempty"`
  82. WorkItems []RefinementWorkItem `json:"work_items,omitempty"`
  83. Plan RefinementPlan `json:"plan,omitempty"`
  84. Windows []RefinementWindow `json:"windows,omitempty"`
  85. SampleRate int `json:"sample_rate"`
  86. FFTSize int `json:"fft_size"`
  87. CenterHz float64 `json:"center_hz"`
  88. Source string `json:"source,omitempty"`
  89. }
  90. type RefinementResult struct {
  91. Level AnalysisLevel `json:"level"`
  92. Signals []detector.Signal `json:"signals"`
  93. Decisions []SignalDecision `json:"decisions,omitempty"`
  94. Candidates []Candidate `json:"candidates,omitempty"`
  95. }
  96. type RefinementStep struct {
  97. Input RefinementInput `json:"input"`
  98. Result RefinementResult `json:"result"`
  99. }