RaspyRFM/apps/lacrosse.py
Stefan Seyfried 3e70559ef2
some more python3 fixes (#8)
Add python3 compatibility to raspyrfm module and lacrosss/sensors.py.
More things to fix for overall python3 suitability, but I can only test
what I personally use :-)
2020-12-26 19:17:31 +01:00

58 lines
1.2 KiB
Python
Executable file

#!/usr/bin/env python2.7
from raspyrfm import *
import sensors
from sensors import rawsensor
import sys
import time
import threading
if raspyrfm_test(2, RFM69):
print("Found RaspyRFM twin")
rfm = RaspyRFM(2, RFM69) #when using the RaspyRFM twin
elif raspyrfm_test(1, RFM69):
print("Found RaspyRFM single")
rfm = RaspyRFM(1, RFM69) #when using a single single 868 MHz RaspyRFM
else:
print("No RFM69 module found!")
exit()
rfm.set_params(
Freq = 868.30, #MHz center frequency
Datarate = 9.579, #kbit/s baudrate
ModulationType = rfm69.FSK, #modulation
Deviation = 30, #kHz frequency deviation
SyncPattern = [0x2d, 0xd4], #syncword
Bandwidth = 150, #kHz bandwidth
RssiThresh = -105, #dBm RSSI threshold
)
class BaudChanger(threading.Thread):
baud = False
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while True:
time.sleep(15)
if self.baud:
dr = 9.579
else:
dr = 17.241
print("Switch baudrate to " + str(dr) + " kbit/s")
rfm.set_params(Datarate = dr)
self.baud = not self.baud
baudChanger = BaudChanger()
baudChanger.daemon = True
baudChanger.start()
while 1:
data = rfm.receive(12)
if data == None:
continue
obj = rawsensor.CreateSensor(data).GetData()
if not 'ID' in obj:
continue
print(obj)