func (rcvr *Receiver) NewReceiver() { switch strings.ToLower(*msgType) { case "scm": rcvr.p = scm.NewParser(*symbolLength, *fastMag) case "idm": rcvr.p = idm.NewParser(*symbolLength, *fastMag) case "r900": rcvr.p = r900.NewParser(*symbolLength, *fastMag) default: log.Fatalf("Invalid message type: %q\n", *msgType) } if !*quiet { rcvr.p.Cfg().Log() } // Connect to rtl_tcp server. if err := rcvr.Connect(nil); err != nil { log.Fatal(err) } rcvr.HandleFlags() // Tell the user how many gain settings were reported by rtl_tcp. if !*quiet { log.Println("GainCount:", rcvr.SDR.Info.GainCount) } centerfreqFlagSet := false sampleRateFlagSet := false gainFlagSet := false flag.Visit(func(f *flag.Flag) { switch f.Name { case "centerfreq": centerfreqFlagSet = true case "samplerate": sampleRateFlagSet = true case "gainbyindex", "tunergainmode", "tunergain", "agcmode": gainFlagSet = true } }) // Set some parameters for listening. if centerfreqFlagSet { rcvr.SetCenterFreq(uint32(rcvr.Flags.CenterFreq)) } else { rcvr.SetCenterFreq(rcvr.p.Cfg().CenterFreq) } if !sampleRateFlagSet { rcvr.SetSampleRate(uint32(rcvr.p.Cfg().SampleRate)) } if !gainFlagSet { rcvr.SetGainMode(true) } return }
func NewParser(ChipLength, decimation int) parse.Parser { return Parser{r900.NewParser(ChipLength, decimation)} }