From 372c4d235f929f1925894a6f8c2a697d84150b50 Mon Sep 17 00:00:00 2001 From: Milan Ventil Toman Date: Tue, 2 Jun 2020 14:54:47 +0200 Subject: [PATCH] freq comp added --- cc1101_davis.mpy | Bin 7979 -> 8147 bytes cc1101_davis.py | 8 ++++++++ main.py | 31 ++++++++++++++++++++++++++++--- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/cc1101_davis.mpy b/cc1101_davis.mpy index 384f59a96e24619aeabb63b1b75a16107dfd542e..e2c622fd603ceb59084fdcf262ab2a6cf8f8f0a1 100644 GIT binary patch delta 390 zcmZ2&ciDczR%Q=|fQdU~IXGL{TRB=eQzzcJq+lc{CY79+lk8TMTIgC-lwTB>%pi0) zqO+kvpoNV=P<8TN#uJQ&o7V%o+#n*jL6{jR0unT10`g6Pd^5(#z+^@ShR$M>fTGmm)Vvafvc#OyR4aw*S{;S( zAkPp_KX)KoT_MC@0o6_geV}-ggOM0B?}R*cLqkJ`4I;*q@5rVqaHZvx7H60-0F7n< z8qE;Xm=G<&2lBpiQL^ZS(#bJ$QCzj!8af&tKt1Y{&&c_Bw*groruVHI q5 4): # 5 EU frequencies self.hopIndex = 0 + present = self.readRegister(self.CC1101_FSCTRL0) + print("Present value: {}, WRITING {} TO CC1101_FSCTRL0 / {}".format(present, self.freqComp[self.hopIndex], self.CC1101_FSCTRL0)) self.writeRegister(self.CC1101_FSCTRL0, self.freqComp[self.hopIndex]) self.setFrequency(self.hopIndex) # Set the frequency. @@ -388,3 +390,9 @@ class CC1101(object): def readLQI(self): return self.readRegister(self.CC1101_RXFIFO) & 0x7F + def calcFreqError(self, value): + if value >= 128: + error = (value - 256) >> 1 + else: + error = value >> 1 + return error diff --git a/main.py b/main.py index a091243..328f5c0 100644 --- a/main.py +++ b/main.py @@ -4,7 +4,20 @@ import utime import WiFi gc.collect() +#_SSID = 'BastArt' +#_PASS = '3 litry Kvasaru!' +#_TIMEOUT = 15 _DEBUG = False +# +#_INFLUX_HOST = '192.168.1.2' +#_INFLUX_PORT = '8086' +#_INFLUX_USER = 'ventil' +#_INFLUX_PASS = '3 litry Kvasaru!' +# +#_INF_DB_WEATHER = 'weather' +#_INF_DB_STATUS = 'status' +#_INF_DB_RAW = 'raw' + wifi_con = WiFi.NetSet('infra') wifi_con.readNetworkConfig() @@ -25,6 +38,7 @@ decoder = davis_decode.davisDecoder( wifi_con._INF_DB_RAW) # Main receive loop +interpacket_time = 0 while True: data_length = davis.readRegister(davis.CC1101_RXBYTES) data = "" @@ -32,6 +46,14 @@ while True: data = davis.readBurst(davis.CC1101_RXFIFO, 10) rssi = davis.readRssi() lqi = davis.readLQI() + freqEst = davis.readStatus(davis.CC1101_FREQEST) + freqError = davis.calcFreqError(freqEst) + print("FERROR: {} (EST: {})".format(freqError, freqEst)) + print("FCOMP: {}".format(davis.freqComp)) + if davis.freqComp[davis.hopIndex] + freqEst <= 255: + davis.freqComp[davis.hopIndex] = davis.freqComp[davis.hopIndex] + freqEst + else: + davis.freqComp[davis.hopIndex] = 255 hop = davis.hopIndex davis.flush() davis.hop() @@ -49,12 +71,13 @@ while True: data_int[6], data_int[7], data_int[8], - data_int[8],) - print("{_data:60} HOP: {_hop:<5} RSSI: {_rssi:<5} LQI: {_lqi:<5}".format( + data_int[9]) + print("{_data:60} HOP: {_hop:<5} RSSI: {_rssi:<5} LQI: {_lqi:<5} {_last}s since".format( _rssi=rssi, _hop=hop, _data=data_prn, - _lqi=lqi)) + _lqi=lqi, + _last=interpacket_time / 10)) if _DEBUG: print("Header: {} Wind: {}".format(header, decoder.wind)) print("{}: {}/{} ({})".format( @@ -84,6 +107,8 @@ while True: print("DATA SEND: {}".format(data_sent.status_code)) else: print("DATA SEND FAIL: {}".format(data_sent)) + interpacket_time = 0 else: + interpacket_time += 1 utime.sleep_ms(100) gc.collect()