本文整理汇总了Golang中github.com/jpoirier/gortlsdr.Context类的典型用法代码示例。如果您正苦于以下问题:Golang Context类的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Context类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: sigAbort
func sigAbort(dev *rtl.Context) {
ch := make(chan os.Signal)
signal.Notify(ch, syscall.SIGINT)
<-ch
dev.Close()
os.Exit(0)
}
开发者ID:jessinak,项目名称:stratux,代码行数:7,代码来源:uat_read.go
示例2: sig_abort
func sig_abort(dev *rtl.Context) {
ch := make(chan os.Signal)
signal.Notify(ch, syscall.SIGINT)
<-ch
_ = dev.CancelAsync()
dev.Close()
os.Exit(0)
}
开发者ID:9nut,项目名称:gortlsdr,代码行数:8,代码来源:rtlsdr_example.go
示例3: async_stop
func async_stop(dev *rtl.Context, c chan bool) {
<-c // async-read done signal
log.Println("Received async-read done, calling CancelAsync\n")
if status := dev.CancelAsync(); status != rtl.Success {
log.Println("CancelAsync failed\n")
} else {
log.Println("CancelAsync successful\n")
}
os.Exit(0)
}
开发者ID:9nut,项目名称:gortlsdr,代码行数:12,代码来源:rtlsdr_example.go
示例4: sig_abort
func sig_abort(dev *rtl.Context) {
//Make a Channel of os.Signal objects
ch := make(chan os.Signal)
signal.Notify(ch, syscall.SIGINT)
//Wait for the Channel to return something. Discarding
//the retruned value since we know it's SIGINT
<-ch
log.Printf("SIGINT signal received!\n")
//This code will execute after SIGINT is returned
_ = dev.CancelAsync()
dev.Close()
os.Exit(0)
}
开发者ID:Tanis8472,项目名称:goadsb,代码行数:13,代码来源:test.go
示例5: main
func main() {
var err error
var dev *rtl.Context
//---------- Device Check ----------
if c := rtl.GetDeviceCount(); c == 0 {
log.Fatal("No devices found, exiting.\n")
} else {
for i := 0; i < c; i++ {
m, p, s, err := rtl.GetDeviceUsbStrings(i)
if err == nil {
err = errors.New("")
}
log.Printf("GetDeviceUsbStrings %s - %s %s %s\n",
err, m, p, s)
}
}
log.Printf("===== Device name: %s =====\n", rtl.GetDeviceName(0))
log.Printf("===== Running tests using device indx: 0 =====\n")
//---------- Open Device ----------
if dev, err = rtl.Open(0); err != nil {
log.Fatal("\tOpen Failed, exiting\n")
}
defer dev.Close()
//---------- Device Strings ----------
m, p, s, err := dev.GetUsbStrings()
if err != nil {
log.Printf("\tGetUsbStrings Failed - error: %s\n", err)
} else {
log.Printf("\tGetUsbStrings - %s %s %s\n", m, p, s)
}
log.Printf("\tGetTunerType: %s\n", dev.GetTunerType())
//---------- Device Info ----------
info, err := dev.GetHwInfo()
if err != nil {
log.Printf("\tGetHwInfo Failed - error: %s\n", err)
} else {
log.Printf("\tVendor ID : 0x%X\n", info.VendorID)
log.Printf("\tProduct ID : 0x%X\n", info.ProductID)
log.Println("\tManufacturer : ", info.Manufact)
log.Println("\tProduct : ", info.Product)
log.Println("\tSerial : ", info.Serial)
log.Println("\tHave Serial : ", info.HaveSerial)
log.Println("\tEnable IR : ", info.EnableIR)
log.Println("\tRemote Wakeup : ", info.RemoteWakeup)
}
ppm, err := kal.Kal((*kal.Context)(dev), kal.GSM850)
log.Printf("PPM: %d\n", ppm)
log.Printf("err: %s\n", err)
}
开发者ID:jpoirier,项目名称:kal,代码行数:56,代码来源:example.go
示例6: nearestGain
func nearestGain(dev *rtl.Context, targetGain int) (nearest int, err error) {
err = dev.SetTunerGainMode(true)
if err != nil {
return
}
gains, err := dev.GetTunerGains()
if err != nil {
return
}
if len(gains) == 0 {
err = fmt.Errorf("No gains returned")
return
}
nearest = gains[0]
for i := 0; i < len(gains); i++ {
res1 := math.Abs(float64(targetGain - nearest))
res2 := math.Abs(float64(targetGain - gains[i]))
if res2 < res1 {
nearest = gains[i]
}
}
return
}
开发者ID:porjo,项目名称:hamsdr,代码行数:24,代码来源:sdr.go
示例7: main
func main() {
runtime.GOMAXPROCS(3)
var status int
var dev *rtl.Context
if c := rtl.GetDeviceCount(); c == 0 {
log.Fatal("No devices found, exiting.\n")
} else {
for i := 0; i < c; i++ {
m, p, s, status := rtl.GetDeviceUsbStrings(i)
log.Printf("GetDeviceUsbStrings %s - %s %s %s\n",
rtl.Status[status], m, p, s)
}
}
log.Printf("===== Device name: %s =====\n", rtl.GetDeviceName(0))
log.Printf("===== Running tests using device indx: %d =====\n", 0)
if dev, status = rtl.Open(0); status != rtl.Success {
log.Fatal("\tOpen Failed, exiting\n")
}
defer dev.Close()
go sig_abort(dev)
m, p, s, status := dev.GetUsbStrings()
log.Printf("\tGetUsbStrings %s - %s %s %s\n", rtl.Status[status], m, p, s)
g, status := dev.GetTunerGains()
log.Printf("\tGetTunerGains %s\n", rtl.Status[status])
if status == rtl.Success {
fmt.Printf("\tGains: ")
for _, j := range g {
fmt.Printf("%d ", j)
}
fmt.Printf("\n")
}
log.Printf("\tSetSampleRate %s - rate: %d\n",
rtl.Status[dev.SetSampleRate(rtl.DefaultSampleRate)], rtl.DefaultSampleRate)
log.Printf("\tGetSampleRate: %d\n", dev.GetSampleRate())
// status = dev.SetXtalFreq(rtl_freq, tuner_freq)
// log.Printf("\tSetXtalFreq %s - Center freq: %d, Tuner freq: %d\n",
// rtl.Status[status], rtl_freq, tuner_freq)
rtl_freq, tuner_freq, status := dev.GetXtalFreq()
log.Printf("\tGetXtalFreq %s - Rtl: %d, Tuner: %d\n",
rtl.Status[status], rtl_freq, tuner_freq)
status = dev.SetCenterFreq(850000000)
if status < 0 {
log.Println("\tSetCenterFreq 850MHz Failed, error code: %d\n", status)
} else {
log.Println("\tSetCenterFreq 850MHz Successful")
}
log.Printf("\tGetCenterFreq: %d\n", dev.GetCenterFreq())
log.Printf("\tGetFreqCorrection: %d\n", dev.GetFreqCorrection())
log.Printf("\tGetTunerType: %s\n", rtl.TunerType[dev.GetTunerType()])
log.Printf("\tSetTunerGainMode: %s\n", rtl.TunerType[dev.SetTunerGainMode(rtl.GainAuto)])
log.Printf("\tGetTunerGain: %d\n", dev.GetTunerGain())
/*
func (c *Context) SetFreqCorrection(ppm int) (err int)
func (c *Context) SetTunerGain(gain int) (err int)
func (c *Context) SetTunerIfGain(stage, gain int) (err int)
func (c *Context) SetAgcMode(on int) (err int)
func (c *Context) SetDirectSampling(on int) (err int)
*/
if status = dev.SetTestMode(1); status < 1 {
log.Printf("\tSetTestMode 'On' Failed - error code: %d\n", status)
} else {
log.Printf("\tSetTestMode 'On' Successful\n")
}
log.Printf("\tResetBuffer %s\n", rtl.Status[dev.ResetBuffer()])
var buffer []byte = make([]uint8, rtl.DefaultBufLength)
n_read, status := dev.ReadSync(buffer, rtl.DefaultBufLength)
log.Printf("\tReadSync %s\n", rtl.Status[status])
if status == rtl.Success && n_read < rtl.DefaultBufLength {
log.Println("ReadSync short read, %d samples lost\n", rtl.DefaultBufLength-n_read)
}
if status = dev.SetTestMode(1); status < 1 {
log.Printf("\tSetTestMode 'Off' Fail - error code: %d\n", status)
} else {
log.Printf("\tSetTestMode 'Off' Success\n")
}
// Note, ReadAsync blocks until CancelAsync is called, so spawn
// a goroutine running in its own system thread that'll wait
// for the async-read callback to signal when it's done.
IQch := make(chan bool)
go async_stop(dev, IQch)
var userctx rtl.UserCtx = IQch
status = dev.ReadAsync(rtlsdr_cb, &userctx, rtl.DefaultAsyncBufNumber, rtl.DefaultBufLength)
log.Printf("\tReadAsync %s\n", rtl.Status[status])
//.........这里部分代码省略.........
开发者ID:9nut,项目名称:gortlsdr,代码行数:101,代码来源:rtlsdr_example.go
示例8: sdrReader
// Read 978MHz from SDR.
func sdrReader() {
var err error
var dev *rtl.Context
log.Printf("===== UAT Device name: %s =====\n", rtl.GetDeviceName(uatSDR))
if dev, err = rtl.Open(uatSDR); err != nil {
log.Printf("\tOpen Failed, exiting\n")
uatSDR = -1
return
}
defer dev.Close()
m, p, s, err := dev.GetUsbStrings()
if err != nil {
log.Printf("\tGetUsbStrings Failed - error: %s\n", err)
} else {
log.Printf("\tGetUsbStrings - %s %s %s\n", m, p, s)
}
log.Printf("\tGetTunerType: %s\n", dev.GetTunerType())
//---------- Set Tuner Gain ----------
tgain := 480
err = dev.SetTunerGainMode(true)
if err != nil {
log.Printf("\tSetTunerGainMode Failed - error: %s\n", err)
} else {
log.Printf("\tSetTunerGainMode Successful\n")
}
err = dev.SetTunerGain(tgain)
if err != nil {
log.Printf("\tSetTunerGain Failed - error: %s\n", err)
} else {
log.Printf("\tSetTunerGain Successful\n")
}
//---------- Get/Set Sample Rate ----------
samplerate := 2083334
err = dev.SetSampleRate(samplerate)
if err != nil {
log.Printf("\tSetSampleRate Failed - error: %s\n", err)
} else {
log.Printf("\tSetSampleRate - rate: %d\n", samplerate)
}
log.Printf("\tGetSampleRate: %d\n", dev.GetSampleRate())
//---------- Get/Set Xtal Freq ----------
rtlFreq, tunerFreq, err := dev.GetXtalFreq()
if err != nil {
log.Printf("\tGetXtalFreq Failed - error: %s\n", err)
} else {
log.Printf("\tGetXtalFreq - Rtl: %d, Tuner: %d\n", rtlFreq, tunerFreq)
}
newRTLFreq := 28800000
newTunerFreq := 28800000
err = dev.SetXtalFreq(newRTLFreq, newTunerFreq)
if err != nil {
log.Printf("\tSetXtalFreq Failed - error: %s\n", err)
} else {
log.Printf("\tSetXtalFreq - Center freq: %d, Tuner freq: %d\n",
newRTLFreq, newTunerFreq)
}
//---------- Get/Set Center Freq ----------
err = dev.SetCenterFreq(978000000)
if err != nil {
log.Printf("\tSetCenterFreq 978MHz Failed, error: %s\n", err)
} else {
log.Printf("\tSetCenterFreq 978MHz Successful\n")
}
log.Printf("\tGetCenterFreq: %d\n", dev.GetCenterFreq())
//---------- Set Bandwidth ----------
bw := 1000000
log.Printf("\tSetting Bandwidth: %d\n", bw)
if err = dev.SetTunerBw(bw); err != nil {
log.Printf("\tSetTunerBw %d Failed, error: %s\n", bw, err)
} else {
log.Printf("\tSetTunerBw %d Successful\n", bw)
}
if err = dev.ResetBuffer(); err == nil {
log.Printf("\tResetBuffer Successful\n")
} else {
log.Printf("\tResetBuffer Failed - error: %s\n", err)
}
//---------- Get/Set Freq Correction ----------
freqCorr := dev.GetFreqCorrection()
log.Printf("\tGetFreqCorrection: %d\n", freqCorr)
err = dev.SetFreqCorrection(globalSettings.PPM)
if err != nil {
log.Printf("\tSetFreqCorrection %d Failed, error: %s\n", globalSettings.PPM, err)
} else {
log.Printf("\tSetFreqCorrection %d Successful\n", globalSettings.PPM)
}
for uatSDR != -1 {
//.........这里部分代码省略.........
开发者ID:hotelzululima,项目名称:stratux,代码行数:101,代码来源:sdr.go
示例9: main
func main() {
var err error
var dev *rtl.Context
if c := rtl.GetDeviceCount(); c == 0 {
log.Fatal("No devices found, exiting.\n")
}
if dev, err = rtl.Open(0); err != nil {
log.Fatal("\tOpen Failed, existing\n")
}
//defer pushes a function onto a list that will be invoked
//after the surrounding function returns (in this case main)
defer dev.Close()
go sig_abort(dev)
//Set to 1090Mhz
dev.SetSampleRate(2000000) //from rtl_adsb.c
dev.SetTunerGainMode(false)
err = dev.SetCenterFreq(1090000000)
if err != nil {
log.Printf("\tSetCenterFreq 1090Mhz Failed, error: %s\n", err)
}
//dev.SetTestMode(true)
dev.ResetBuffer()
IQch := make(chan bool)
var userctx rtl.UserCtx = IQch
err = dev.ReadAsync(rtlsdr_cb, &userctx, rtl.DefaultAsyncBufNumber, 512)
if err == nil {
log.Printf("\tReadAsync Successful\n")
} else {
log.Printf("\rReadAsync FAILED - error: %s\n", err)
}
/*
var buffer []byte = make([]uint8, rtl.DefaultBufLength)
//var hexbuf []byte = make([]uint8, rtl.DefaultBufLength)
n_read, err := dev.ReadSync(buffer, rtl.DefaultBufLength)
if err != nil {
log.Printf("\tReadSynch Failed - error %s\n", err)
} else {
//hex.Decode(hexbuf, buffer)
log.Printf("\tReadSync %d\n", n_read)
//log.Printf("\t%X\n", hexbuf)
}
if err == nil && n_read < rtl.DefaultBufLength {
log.Printf("ReadSynch short read, %d samples lost\n", rtl.DefaultBufLength-n_read)
}
*/
log.Printf("Exiting...\n")
}
开发者ID:Tanis8472,项目名称:goadsb,代码行数:53,代码来源:test.go
示例10: main
func main() {
var err error
var dev *rtl.Context
//---------- Device Check ----------
if c := rtl.GetDeviceCount(); c == 0 {
log.Fatal("No devices found, exiting.\n")
} else {
for i := 0; i < c; i++ {
m, p, s, err := rtl.GetDeviceUsbStrings(i)
if err == nil {
err = errors.New("")
}
log.Printf("GetDeviceUsbStrings %s - %s %s %s\n",
err, m, p, s)
}
}
log.Printf("===== Device name: %s =====\n", rtl.GetDeviceName(0))
log.Printf("===== Running tests using device indx: 0 =====\n")
//---------- Open Device ----------
if dev, err = rtl.Open(0); err != nil {
log.Fatal("\tOpen Failed, exiting\n")
}
defer dev.Close()
go sigAbort(dev)
//---------- Device Strings ----------
m, p, s, err := dev.GetUsbStrings()
if err != nil {
log.Printf("\tGetUsbStrings Failed - error: %s\n", err)
} else {
log.Printf("\tGetUsbStrings - %s %s %s\n", m, p, s)
}
log.Printf("\tGetTunerType: %s\n", dev.GetTunerType())
//---------- Set Tuner Gain ----------
tgain := 480
err = dev.SetTunerGainMode(true)
if err != nil {
log.Printf("\tSetTunerGainMode Failed - error: %s\n", err)
} else {
log.Printf("\tSetTunerGainMode Successful\n")
}
err = dev.SetTunerGain(tgain)
if err != nil {
log.Printf("\tSetTunerGain Failed - error: %s\n", err)
} else {
log.Printf("\tSetTunerGain Successful\n")
}
//---------- Get/Set Sample Rate ----------
samplerate := 2083334
err = dev.SetSampleRate(samplerate)
if err != nil {
log.Printf("\tSetSampleRate Failed - error: %s\n", err)
} else {
log.Printf("\tSetSampleRate - rate: %d\n", samplerate)
}
log.Printf("\tGetSampleRate: %d\n", dev.GetSampleRate())
//---------- Get/Set Xtal Freq ----------
rtlFreq, tunerFreq, err := dev.GetXtalFreq()
if err != nil {
log.Printf("\tGetXtalFreq Failed - error: %s\n", err)
} else {
log.Printf("\tGetXtalFreq - Rtl: %d, Tuner: %d\n", rtlFreq, tunerFreq)
}
newRTLFreq := 28800000
newTunerFreq := 28800000
err = dev.SetXtalFreq(newRTLFreq, newTunerFreq)
if err != nil {
log.Printf("\tSetXtalFreq Failed - error: %s\n", err)
} else {
log.Printf("\tSetXtalFreq - Center freq: %d, Tuner freq: %d\n",
newRTLFreq, newTunerFreq)
}
//---------- Get/Set Center Freq ----------
err = dev.SetCenterFreq(978000000)
if err != nil {
log.Printf("\tSetCenterFreq 978MHz Failed, error: %s\n", err)
} else {
log.Printf("\tSetCenterFreq 978MHz Successful\n")
}
log.Printf("\tGetCenterFreq: %d\n", dev.GetCenterFreq())
//---------- Set Bandwidth ----------
bw := 1000000
log.Printf("\tSetting Bandwidth: %d\n", bw)
if err = dev.SetTunerBw(bw); err != nil {
log.Printf("\tSetTunerBw %d Failed, error: %s\n", bw, err)
} else {
log.Printf("\tSetTunerBw %d Successful\n", bw)
//.........这里部分代码省略.........
开发者ID:jessinak,项目名称:stratux,代码行数:101,代码来源:uat_read.go
注:本文中的github.com/jpoirier/gortlsdr.Context类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论