Sfoglia il codice sorgente

feat: expose decision items in refinement API

master
Jan Svabenik 8 ore fa
parent
commit
af4fd69427
2 ha cambiato i file con 28 aggiunte e 0 eliminazioni
  1. +27
    -0
      cmd/sdrd/decision_compact.go
  2. +1
    -0
      cmd/sdrd/http_handlers.go

+ 27
- 0
cmd/sdrd/decision_compact.go Vedi File

@@ -0,0 +1,27 @@
package main

import "sdr-wideband-suite/internal/pipeline"

type compactDecision struct {
ID int64 `json:"id"`
Class string `json:"class,omitempty"`
Record bool `json:"record"`
Decode bool `json:"decode"`
Reason string `json:"reason,omitempty"`
Candidate pipeline.Candidate `json:"candidate"`
}

func compactDecisions(decisions []pipeline.SignalDecision) []compactDecision {
out := make([]compactDecision, 0, len(decisions))
for _, d := range decisions {
out = append(out, compactDecision{
ID: d.Candidate.ID,
Class: d.Class,
Record: d.ShouldRecord,
Decode: d.ShouldAutoDecode,
Reason: d.Reason,
Candidate: d.Candidate,
})
}
return out
}

+ 1
- 0
cmd/sdrd/http_handlers.go Vedi File

@@ -164,6 +164,7 @@ func registerAPIHandlers(mux *http.ServeMux, cfgPath string, cfgManager *runtime
"signals": len(snap.refinement.Signals),
"decisions": len(snap.refinement.Decisions),
"decision_summary": summarizeDecisions(snap.refinement.Decisions),
"decision_items": compactDecisions(snap.refinement.Decisions),
"surveillance_level": snap.surveillance.Level,
"refinement_level": snap.refinementInput.Level,
}


Loading…
Annulla
Salva