config

package
v0.0.0-...-b2b9989 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultSourceAddress   = "127.0.0.1:1235"
	DefaultSampleRate      = 1800e3
	DefaultCenterFrequency = 740000000
	DefaultBeaconOffset    = 143e3
	DefaultWorkDecimation  = 32
	DefaultGain            = 20
)
View Source
const (
	DefaultRTLTCPAddress     = ":1234"
	DefaultHTTPAddress       = ":8080"
	DefaultAllowControl      = true
	DefaultMaxWebConnections = 100
	DefaultMaxRTLConnections = 5
)
View Source
const (
	DefaultFFTWindowMaxVal = -70
	DefaultFFTWindowRange  = 40
	DefaultFFTWindowWidth  = 512
	DefaultFFTWindowHeight = 256
	DefaultFFTHighQuality  = true
)
View Source
const (
	DefaultTranslatorGain            = 64
	DefaultTranslatorTransitionWidth = 15e3
)
View Source
const (
	DefaultAGCAttackRate = 0.01
	DefaultAGCDecayRate  = 0.2
	DefaultAGCReference  = 1
	DefaultAGCGain       = 10
	DefaultAGCMaxGain    = 65535
)
View Source
const (
	DefaultCostasLoopBandwidth = 0.01
)

Variables

View Source
var DefaultConfig = ProgramConfig{
	Source: SourceConfig{
		Address:         DefaultSourceAddress,
		SampleRate:      DefaultSampleRate,
		CenterFrequency: DefaultCenterFrequency,
		Gain:            DefaultGain,
	},
	Server: ServerConfig{
		RTLTCPAddress:     DefaultRTLTCPAddress,
		HTTPAddress:       DefaultHTTPAddress,
		AllowControl:      DefaultAllowControl,
		MaxWebConnections: DefaultMaxWebConnections,
		MaxRTLConnections: DefaultMaxRTLConnections,
		WebSettings: WebSettings{
			Name:           "PU2NVX Server",
			HighQualityFFT: DefaultFFTHighQuality,
			SegFFT: FFTWindowSetting{
				MaxVal: DefaultFFTWindowMaxVal,
				Range:  DefaultFFTWindowRange,
				Width:  DefaultFFTWindowWidth,
				Height: DefaultFFTWindowHeight,
			},
			FullFFT: FFTWindowSetting{
				MaxVal: DefaultFFTWindowMaxVal,
				Range:  DefaultFFTWindowRange,
				Width:  DefaultFFTWindowWidth,
				Height: DefaultFFTWindowHeight,
			},
		},
	},
	Processing: ProcessingConfig{
		BeaconOffset:   DefaultBeaconOffset,
		WorkDecimation: DefaultWorkDecimation,
		AGC: AGCConfig{
			AttackRate: DefaultAGCAttackRate,
			DecayRate:  DefaultAGCDecayRate,
			Reference:  DefaultAGCReference,
			Gain:       DefaultAGCGain,
			MaxGain:    DefaultAGCMaxGain,
		},
		CostasLoop: LoopConfig{
			Bandwidth: DefaultCostasLoopBandwidth,
		},
		Translation: TranslationConfig{
			TransitionWidth: DefaultTranslatorTransitionWidth,
			Gain:            DefaultTranslatorGain,
		},
	},
}

Functions

func SaveConfig

func SaveConfig(filename string, pc ProgramConfig) error

Types

type AGCConfig

type AGCConfig struct {
	AttackRate float32
	DecayRate  float32
	Reference  float32
	Gain       float32
	MaxGain    float32
}

type FFTWindowSetting

type FFTWindowSetting struct {
	MaxVal int `json:"maxVal"`
	Range  int `json:"range"`
	Width  int `json:"width"`
	Height int `json:"height"`
}

type LoopConfig

type LoopConfig struct {
	Bandwidth float32
}

type ProcessingConfig

type ProcessingConfig struct {
	BeaconOffset   float32
	WorkDecimation uint32
	AGC            AGCConfig
	CostasLoop     LoopConfig
	Translation    TranslationConfig
}

type ProgramConfig

type ProgramConfig struct {
	Source     SourceConfig
	Server     ServerConfig
	Processing ProcessingConfig
}

func LoadConfig

func LoadConfig(filename string) (pc ProgramConfig, err error)

type ServerConfig

type ServerConfig struct {
	RTLTCPAddress     string
	HTTPAddress       string
	MaxWebConnections int
	MaxRTLConnections int
	AllowControl      bool
	WebSettings       WebSettings
}

type SourceConfig

type SourceConfig struct {
	Address         string
	SampleRate      uint32
	CenterFrequency uint32
	Gain            float32
}

type TranslationConfig

type TranslationConfig struct {
	TransitionWidth float64
	Gain            float64
}

type WebSettings

type WebSettings struct {
	Name           string           `json:"name"`
	HighQualityFFT bool             `json:"-"`
	SegFFT         FFTWindowSetting `json:"segFFT"`
	FullFFT        FFTWindowSetting `json:"fullFFT"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL