示例#1
0
    def run(self):
        BOARD.setup()
        parser = LoRaArgumentParser("Continous LoRa receiver.")

        lora = LoRaRcvCont(verbose=False)
        args = parser.parse_args(lora)

        lora.set_mode(MODE.STDBY)
        lora.set_pa_config(pa_select=1)
        lora.set_freq(434.0)
        #lora.set_rx_crc(True)
        #lora.set_coding_rate(CODING_RATE.CR4_6)
        #lora.set_pa_config(max_power=0, output_power=0)
        #lora.set_lna_gain(GAIN.G1)
        #lora.set_implicit_header_mode(False)
        #lora.set_low_data_rate_optim(True)
        #lora.set_pa_ramp(PA_RAMP.RAMP_50_us)
        #lora.set_agc_auto_on(True)

        print("lora: {0}".format(lora))
        assert (lora.get_agc_auto_on() == 1)
        time.sleep(1)
        try:
            lora.start()
        except KeyboardInterrupt:
            sys.stdout.flush()
            print("")
            sys.stderr.write("KeyboardInterrupt\n")
        finally:
            sys.stdout.flush()
            print("")
            lora.set_mode(MODE.SLEEP)
            print(lora)
            BOARD.teardown()
示例#2
0
# mandatory as soon as you develop commercial activities involving pySX127x without disclosing the source code of your
# own applications, or shipping pySX127x with a closed source product.
#
# You should have received a copy of the GNU General Public License along with pySX127.  If not, see
# <http://www.gnu.org/licenses/>.


import sys
from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD

BOARD.setup()

parser = LoRaArgumentParser("A simple LoRa beacon")
parser.add_argument('--single', '-S', dest='single', default=False, action="store_true", help="Single transmission")
parser.add_argument('--wait', '-w', dest='wait', default=1, action="store", type=float, help="Waiting time between transmissions (default is 0s)")


class LoRaBeacon(LoRa):

    tx_counter = 0

    def __init__(self, verbose=False):
        super(LoRaBeacon, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([1,0,0,0,0,0])

    def on_rx_done(self):
        print("\nRxDone")
示例#3
0
    where it will wait for the next packet to arrive.

    TODO:
        *test current implementation
        *add packet SNR and other values of received packets
        *add LED for debugging
"""

from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD

BOARD.setup()

parser = LoRaArgumentParser("Continous LoRa receiver.")


class LoRaRcvCont(LoRa):
    def __init__(self, verbose=False):
        super(LoRaRcvCont, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([0] * 6)

        """ DIO Mapping     DIO5        DIO4        DIO3    DIO2                DIO1        DIO0
                            ModeReady   CadDetected CadDone FhssChangeChannel   RxTimeout   RxDone
        """

        #DIO0 is set to RxDone (on_rx_done callback will be called on interrupt)

    def on_rx_done(self):
示例#4
0
#
# You can be released from the requirements of the license by obtaining a commercial license. Such a license is
# mandatory as soon as you develop commercial activities involving pySX127x without disclosing the source code of your
# own applications, or shipping pySX127x with a closed source product.
#
# You should have received a copy of the GNU General Public License along with pySX127.  If not, see
# <http://www.gnu.org/licenses/>.

from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD

BOARD.setup()

parser = LoRaArgumentParser("Continous LoRa receiver.")


class LoRaRcvCont(LoRa):
    def __init__(self, verbose=False):
        super(LoRaRcvCont, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([0] * 6)

    def on_rx_done(self):
        BOARD.led_on()
        print("\nRxDone")
        print(self.get_irq_flags())
        #	self.get_payload_length
        self.set_payload_length(8)
        self.get_rx_nb_bytes
示例#5
0
# mandatory as soon as you develop commercial activities involving pySX127x without disclosing the source code of your
# own applications, or shipping pySX127x with a closed source product.
#
# You should have received a copy of the GNU General Public License along with pySX127.  If not, see
# <http://www.gnu.org/licenses/>.


import sys
from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD

BOARD.setup()

parser = LoRaArgumentParser("A simple LoRa beacon")
parser.add_argument('--single', '-S', dest='single', default=False, action="store_true", help="Single transmission")
parser.add_argument('--wait', '-w', dest='wait', default=1, action="store", type=float, help="Waiting time between transmissions (default is 0s)")


class LoRaBeacon(LoRa):

    tx_counter = 0
    sbcommend = 0
    bjcommend = 1

    def __init__(self, verbose=False):
        super(LoRaBeacon, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([1,0,0,0,0,0])
        # self.set_freq(433.5)
示例#6
0
#!/usr/bin/env python3
import sys
from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config_ada import BOARD
import LoRaWAN
from LoRaWAN.MHDR import MHDR
from random import randrange
import reset_ada
import helium
import keys

BOARD.setup()
parser = LoRaArgumentParser("LoRaWAN sender")
class LoRaWANotaa(LoRa):
    def __init__(self, verbose = False):
        super(LoRaWANotaa, self).__init__(verbose)

    def on_rx_done(self):
        print("RxDone")

        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        print(payload)
        self.set_mode(MODE.SLEEP)
        self.get_all_registers()
        print(self)
        lorawan = LoRaWAN.new([], keys.appkey)
        lorawan.read(payload)
        print(lorawan.get_payload())
示例#7
0
#!/usr/bin/env python3
from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD
import LoRaWAN

BOARD.setup()
parser = LoRaArgumentParser("LoRaWAN receiver")


class LoRaWANrcv(LoRa):
    def __init__(self, verbose=False):
        super(LoRaWANrcv, self).__init__(verbose)

    def on_rx_done(self):
        print("RxDone")

        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        print("".join(format(x, '02x') for x in bytes(payload)))

        lorawan = LoRaWAN.new(nwskey, appskey)
        lorawan.read(payload)
        print(lorawan.get_mhdr().get_mversion())
        print(lorawan.get_mhdr().get_mtype())
        print(lorawan.get_mic())
        print(lorawan.compute_mic())
        print(lorawan.valid_mic())
        print("".join(list(map(chr, lorawan.get_payload()))))
        print("\n")
示例#8
0
# btemperli, 14.2.2021

import sys
from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config_ada import BOARD
import keys
import counter
import LoRaWAN
from LoRaWAN.MHDR import MHDR
import reset_ada

BOARD.setup()
parser = LoRaArgumentParser("LoRaWAN sendReceive")


class LoRaWanSystem(LoRa):
    def __init__(self, devaddr=[], nwkey=[], appkey=[], verbose=False):
        super(LoRaWanSystem, self).__init__(verbose)
        self.devaddr = devaddr
        self.nwkey = nwkey
        self.appkey = appkey

    def on_rx_done(self):
        print("RxDone")

        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        print("".join(format(x, '02x') for x in bytes(payload)))
示例#9
0
#!/usr/bin/env python3
import sys
from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD
import LoRaWAN, json
from LoRaWAN.MHDR import MHDR
from random import randrange

BOARD.setup()
parser = LoRaArgumentParser("LoRaWAN sender")


class LoRaWANotaa(LoRa):
    def __init__(self, verbose=False):
        super(LoRaWANotaa, self).__init__(verbose)

    def on_rx_done(self):
        print("RxDone")

        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        print(payload)
        lorawan = LoRaWAN.new(nwskey, appskey)
        lorawan.read(payload)
        print(lorawan.get_payload())
        print(lorawan.get_mhdr().get_mversion())
        sys.exit(0)

    def show(self, a):
示例#10
0
from SX127x.board_config import BOARD
import pymysql
from SX127x.LoRaArgumentParser import LoRaArgumentParser

try:
    conn = pymysql.connect(host='localhost',
                                 user='******',
                                 password='******',
                                 db='pi',
                                 charset='utf8',
                                 cursorclass=pymysql.cursors.DictCursor)
except pymysql.err.Error as msg:
    print("Connection error: ", msg)
    sys.exit()

parser = LoRaArgumentParser("Lora tester")
BOARD.setup()

class LoRaRcvCont(LoRa):
    def __init__(self, localAddress, clientsAddress, connection, verbose=False):
        super(LoRaRcvCont, self).__init__(verbose)
        hexlit = lambda n:int(n, 16)
        self.localAddress = localAddress
        self.clientsAddress = []
        self.connection = connection
        self.cc = self.connection.cursor()
        self.hexlit = hexlit
        for i in clientsAddress:
            self.clientsAddress.append(self.hexlit(i))
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([0] * 6)
示例#11
0
#!/usr/bin/env python

from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD
import httpfuncs

BOARD.setup()

parser = LoRaArgumentParser("Continous LoRa Gateway.")
# global sending
sending = 0


class FinalApp(LoRa):
    tx_counter = 0
    # sbcommend = 0
    # bjcommend = 0
    lastcommend = []
    commend = []

    def __init__(self, verbose=False):
        super(FinalApp, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([0] * 6)
        self.set_freq(433.5)

    def on_rx_done(self):
        print("\nRxDone")
        self.clear_irq_flags(RxDone=1)
示例#12
0
#
# You can be released from the requirements of the license by obtaining a commercial license. Such a license is
# mandatory as soon as you develop commercial activities involving pySX127x without disclosing the source code of your
# own applications, or shipping pySX127x with a closed source product.
#
# You should have received a copy of the GNU General Public License along with pySX127.  If not, see
# <http://www.gnu.org/licenses/>.

import time
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD

BOARD.setup()
BOARD.reset()
parser = LoRaArgumentParser("Continous LoRa receiver.")


class mylora(LoRa):
    def __init__(self, verbose=False):
        super(mylora, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([0] * 6)

    def on_rx_done(self):
        BOARD.led_on()
        #print("\nRxDone")
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)  # Receive INF
        print("Receive: ")
        mens = bytes(payload).decode("utf-8", 'ignore')
示例#13
0
#!/usr/bin/env python3

from time import sleep
from SX127x.LoRa import *
from SX127x.LoRaArgumentParser import LoRaArgumentParser
from SX127x.board_config import BOARD

BOARD.setup()

parser = LoRaArgumentParser("LoRa sender.")


class LoRaSender(LoRa):
    def __init__(self, verbose=False):
        super(LoRaSender, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([1, 0, 0, 0, 0,
                              0])  # DIO0 = 1 = tx_done (0 = rx_done)

    def on_rx_done(self):
        print("\nRxDone")
        print(self.get_irq_flags())
        print(map(hex, self.read_payload(nocheck=True)))
        self.set_mode(MODE.SLEEP)
        self.reset_ptr_rx()
        self.set_mode(MODE.RXCONT)

    def on_tx_done(self):
        global args
        self.set_mode(MODE.STDBY)
        self.clear_irq_flags(TxDone=1)