Wideband autonomous SDR analysis engine forked from sdr-visual-suite
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

67 satır
1.7KB

  1. package pipeline
  2. import "strings"
  3. type BudgetQueue struct {
  4. Max int `json:"max"`
  5. IntentBias float64 `json:"intent_bias,omitempty"`
  6. Source string `json:"source,omitempty"`
  7. }
  8. type BudgetModel struct {
  9. Refinement BudgetQueue `json:"refinement"`
  10. Record BudgetQueue `json:"record"`
  11. Decode BudgetQueue `json:"decode"`
  12. HoldMs int `json:"hold_ms"`
  13. Intent string `json:"intent,omitempty"`
  14. Profile string `json:"profile,omitempty"`
  15. Strategy string `json:"strategy,omitempty"`
  16. }
  17. func BudgetModelFromPolicy(policy Policy) BudgetModel {
  18. recordBias, decodeBias := budgetIntentBias(policy.Intent)
  19. return BudgetModel{
  20. Refinement: BudgetQueue{
  21. Max: policy.MaxRefinementJobs,
  22. Source: "resources.max_refinement_jobs",
  23. },
  24. Record: BudgetQueue{
  25. Max: policy.MaxRecordingStreams,
  26. IntentBias: recordBias,
  27. Source: "resources.max_recording_streams",
  28. },
  29. Decode: BudgetQueue{
  30. Max: policy.MaxDecodeJobs,
  31. IntentBias: decodeBias,
  32. Source: "resources.max_decode_jobs",
  33. },
  34. HoldMs: policy.DecisionHoldMs,
  35. Intent: policy.Intent,
  36. Profile: policy.Profile,
  37. Strategy: policy.RefinementStrategy,
  38. }
  39. }
  40. func budgetIntentBias(intent string) (float64, float64) {
  41. if intent == "" {
  42. return 0, 0
  43. }
  44. recordBias := 0.0
  45. decodeBias := 0.0
  46. intent = strings.ToLower(intent)
  47. if strings.Contains(intent, "archive") || strings.Contains(intent, "record") {
  48. recordBias += 1.5
  49. }
  50. if strings.Contains(intent, "triage") {
  51. recordBias += 0.5
  52. decodeBias += 0.5
  53. }
  54. if strings.Contains(intent, "decode") || strings.Contains(intent, "analysis") {
  55. decodeBias += 1.0
  56. }
  57. if strings.Contains(intent, "digital") {
  58. decodeBias += 0.5
  59. }
  60. return recordBias, decodeBias
  61. }