diff --git a/main.go b/main.go index 0b56d45..edbe606 100644 --- a/main.go +++ b/main.go @@ -56,24 +56,27 @@ func main() { if err != nil { log.Panic(err) } - go func() { - d, err := consumeCh.Consume("input", "", false, false, false, false, nil) - if err != nil { - log.Panic(err) - } + // Only if we allow TX, we process Messages + if conf.TXFreq != 0 { + go func() { + d, err := consumeCh.Consume("input", "", false, false, false, false, nil) + if err != nil { + log.Panic(err) + } - for msg := range d { - if msg.Headers["ric"] == nil { continue } - log.Printf("ric: %s", string(msg.Headers["ric"].(string))) - log.Printf("msg: %s", string(msg.Body)) - /*queueMessage(&pocsagencode.Message { - Addr: uint32(msg.Headers["ric"].(int)), - Content: string(msg.Body), - IsNumeric: (msg.Headers["numeric"] != nil), - })*/ - msg.Ack(true) - } - }() + for msg := range d { + if msg.Headers["ric"] == nil { continue } + log.Printf("ric: %s", string(msg.Headers["ric"].(string))) + log.Printf("msg: %s", string(msg.Body)) + /*queueMessage(&pocsagencode.Message { + Addr: uint32(msg.Headers["ric"].(int)), + Content: string(msg.Body), + IsNumeric: (msg.Headers["numeric"] != nil), + })*/ + msg.Ack(true) + } + }() + } /***** RABBITMQ END**/ if rfm, err = rfm69.NewDevice(true); err != nil { @@ -81,10 +84,12 @@ func main() { } rfm.FreqOffset = conf.FreqOffset - rfm.TXBaud = conf.TXBaud - rfm.RXBaud = conf.RXBaud + rfm.TXFreq = conf.TXFreq + rfm.TXBaud = conf.TXBaud + rfm.RXFreq = conf.RXFreq + rfm.RXBaud = conf.RXBaud if err = rfm.SetModeAndWait(rfm69.RF_OPMODE_STANDBY); err != nil { panic(err) @@ -92,14 +97,13 @@ func main() { if err = rfm.SetInvert(conf.InvertBits); err != nil { panic(err) } - //rfm.SetFrequency(466238000, 25) - - log.Println("Config") + + log.Println("Running with following Config:") log.Println("AMQP Server: ", conf.AMQPURL) log.Println("Frequency Offset(Correction): ", conf.FreqOffset, "Hz") log.Println("Transmit Freq: ", conf.TXFreq, "Hz @", conf.TXBaud, "bps") log.Println("Receive Freq: ", conf.RXFreq, "Hz @", conf.RXBaud, "bps") - +/* messages := []*pocsagencode.Message{ &pocsagencode.Message{133701, "Hello 1234567890!", false}, //&pocsagencode.Message{133702, "Hello d2efa947-7618-440c-8f79-fab32762af8ed2bb9c62-007e-4b2c-93d5-3124a247032eefe71db4-ef8d-46fb-9cf8-dac70db000bc12067966-da61-447c-a9ce-c0c24be17df5 Pager!", false}, @@ -121,47 +125,48 @@ func main() { } rfm.Send(data) } - - rfm.OnReceive = func(stream *rfm69.RXStream) { - rssiMeasurementArray := make([]int, 5) - rssiStart := -0 - for { - select { - case rssi := <-stream.RSSI: - //fmt.Printf("RSSI:%d\n", rssiStart - rssi) - if (stream.ByteCounter < 20) { - rssiMeasurementArray[int(stream.ByteCounter / 4)] = rssi - rssiStart = 0 - for i := 0; i<5; i++ { - rssiStart += rssiMeasurementArray[i] - } - rssiStart = rssiStart / 5 - } else { - if rssiStart - rssi > 20 { - stream.Cancel = true +*/ + if conf.RXFreq != 0 { + rfm.OnReceive = func(stream *rfm69.RXStream) { + rssiMeasurementArray := make([]int, 5) + rssiStart := -0 + for { + select { + case rssi := <-stream.RSSI: + //fmt.Printf("RSSI:%d\n", rssiStart - rssi) + if (stream.ByteCounter < 20) { + rssiMeasurementArray[int(stream.ByteCounter / 4)] = rssi + rssiStart = 0 + for i := 0; i<5; i++ { + rssiStart += rssiMeasurementArray[i] + } + rssiStart = rssiStart / 5 + } else { + if rssiStart - rssi > 20 { + stream.Cancel = true + } + if stream.ByteCounter > 1024e2 { + stream.Cancel = true + } } - if stream.ByteCounter > 1024e2 { - stream.Cancel = true + break + /*case byte := <-stream.ByteStream: + fmt.Printf("%x", byte) + break*/ + case <-stream.Process: + log.Println("--PROCESS=", len(stream.ByteStream), " bytes--") + for i:= 0; i < len(stream.ByteStream); i++ { + fmt.Printf("%x", <-stream.ByteStream) } + fmt.Print("\n") + log.Println("--END--") + break } - break - /*case byte := <-stream.ByteStream: - fmt.Printf("%x", byte) - break*/ - case <-stream.Process: - log.Println("--PROCESS=", len(stream.ByteStream), " bytes--") - for i:= 0; i < len(stream.ByteStream); i++ { - fmt.Printf("%x", <-stream.ByteStream) - } - fmt.Print("\n") - log.Println("--END--") - break } } + rfm.PrepareRX() } - rfm.PrepareRX() - rfm.Loop() log.Println("Done") }