Wideband autonomous SDR analysis engine forked from sdr-visual-suite
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

114 行
5.0KB

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