Skip to content

Commit fc72982

Browse files
committed
Change limedrv to i16 and changed fifo overflow to discard
1 parent f778be4 commit fc72982

File tree

4 files changed

+15
-20
lines changed

4 files changed

+15
-20
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@
1414
# Dependency directories (remove the comment below to include it)
1515
# vendor/
1616
.idea
17+
cmd/lms_tcp

cmd/lms_tcp.go

+4-11
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,21 @@ import (
1616
var listenAddress = flag.String("a", "", "listen address")
1717
var listenPort = flag.Int("p", 1234, "listen port (default: 1234)")
1818
var gain = flag.Int("g", 0, "gain (default: 0 for auto)")
19-
var sampleRate = flag.Int("s", 2048000, "samplerate in Hz (default: 2048000 Hz)")
19+
var sampleRate = flag.Int("s", 2048000, "sample rate in Hz (default: 2048000 Hz)")
2020
var maxBuffers = flag.Int("b", -1, "number of buffers (kept for compatibility, ignored here)")
2121
var deviceIndex = flag.Int("d", 0, "device index (default: 0)")
22-
var oversampling = flag.Int("ov", 8, "oversampling (default: 8)")
22+
var oversampling = flag.Int("ov", 16, "oversampling (default: 8)")
2323
var antennaName = flag.String("antenna", "LNAL", "antenna name (default: LNAL)")
2424
var channel = flag.Int("channel", 0, "channel number (default: 0)")
25-
var lpf = flag.Int("lpf", 2500000, "low pass filter (default 2500000)")
25+
var lpf = flag.Int("lpf", 3000000, "low pass filter (default 2500000)")
2626

2727
var server *rtltcp.Server
2828

2929
var tunerValues []int
3030

3131
func init() {
3232
for i := 0; i < 32; i++ {
33-
tunerValues = append(tunerValues, i*6)
34-
}
35-
}
36-
37-
func OnSamples(samples []complex64, _ int, _ uint64) {
38-
if server != nil {
39-
server.ComplexBroadcast(samples)
33+
tunerValues = append(tunerValues, int(float32(i)*2.5))
4034
}
4135
}
4236

@@ -71,7 +65,6 @@ func main() {
7165

7266
dev.SetI16CallbackMode(true)
7367
dev.SetI16Callback(OnSamples16)
74-
dev.SetCallback(OnSamples)
7568

7669
dev.SetSampleRate(float64(*sampleRate), *oversampling)
7770

go.mod

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ go 1.14
44

55
require (
66
github.com/google/uuid v1.2.0
7-
github.com/myriadrf/limedrv v0.0.0-20210219013226-63abe3cea27a
7+
github.com/myriadrf/limedrv v0.0.0-20210219032128-f4b5cc97de4d
88
github.com/quan-to/slog v0.1.1
99
github.com/racerxdl/go.fifo v0.0.0-20190324175329-e4cbb374dbb0
1010
github.com/racerxdl/qo100-dedrift v0.0.0-20210123043710-107d0cdc70e1
1111
)
12+

rtltcp/server.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,15 @@ func (server *Server) Stop() {
8888
}
8989

9090
func (server *Server) I16Broadcast(data []int16) {
91-
if server.bufferFifo.Len()+len(data) > maxFifoLength {
92-
// Discard data
93-
_ = server.bufferFifo.NextN(len(data))
91+
if server.bufferFifo.Len() > maxFifoLength {
92+
// Discard one buffer
93+
_ = server.bufferFifo.Next()
9494
}
9595

9696
iqBytes := make([]byte, len(data))
9797
for i := 0; i < len(data)/2; i++ {
98-
rv := data[i*2] >> 8
99-
iv := data[i*2+1] >> 8
98+
rv := 128 + (data[i*2] / 127)
99+
iv := 128 + (data[i*2+1] / 127)
100100
iqBytes[i*2] = uint8(rv)
101101
iqBytes[i*2+1] = uint8(iv)
102102
}
@@ -105,9 +105,9 @@ func (server *Server) I16Broadcast(data []int16) {
105105
}
106106

107107
func (server *Server) ComplexBroadcast(data []complex64) {
108-
if server.bufferFifo.Len()+len(data) > maxFifoLength {
109-
// Discard data
110-
_ = server.bufferFifo.NextN(len(data))
108+
if server.bufferFifo.Len() > maxFifoLength {
109+
// Discard one buffer
110+
_ = server.bufferFifo.Next()
111111
}
112112

113113
iqBytes := make([]byte, len(data)*2)

0 commit comments

Comments
 (0)