Fipy läuft nicht richtig ohne Atom



  • @wolli01 So sieht es aus. main.py läuft durch bis zu letzten Zeile, und dann ist schluss. Anders als bei Arduino wird main.py nicht zyklisch aufgerufen.

    Note: Translated by www.deepl.com:
    so it looks. main.py runs through to the last line, and then it's over. Unlike Arduino, main.py is not called cyclically.



  • @robert-hh
    hier mal die main.py
    in der boot.py steht nichts drinne

    import machine
    import ustruct
    
    import pycom
    import socket
    import struct
    import network
    import time
    from network import Bluetooth
    
    import settings
    
    from node import LoRaWANNode
    from ruuvitag.scanner import RuuviTagScanner
    
    
    
    
    #from ruuvitag.scanner import RuuviTagScanner
    #rts = RuuviTagScanner()
    #for ruuvitag in rts.find_ruuvitags(timeout=10):
    #    print(ruuvitag)
    #from ruuvitag.tracker import RuuviTagTracker
    #def cb(ruuvitag):
    #    print(ruuvitag)
    #rtt = RuuviTagTracker()
    #rtt.track_ruuvitags(cb)
    
    
    def pack_temp(temp):
        """Temperature in 0.005 degrees as signed short"""
        temp_conv = round(round(temp, 2) / 0.005)
        temp_int16 = ustruct.pack('!h', temp_conv)
        return temp_int16
    
    
    def pack_hum(hum):
        """Humidity in 0.0025 percent as unsigned short"""
        hum_conv = round(round(hum, 2) / 0.0025)
        hum_int16 = ustruct.pack('!H', hum_conv)
        return hum_int16
    
    
    payload = b''
    
    rts = RuuviTagScanner(settings.RUUVITAGS)
    print (rts)
    
    
    
    # get all data and prepare payload
    print('harvest ruuvitags')
    for ruuvitag in rts.find_ruuvitags(timeout=settings.TIMEOUT):
        id_payload = settings.RUUVITAGS.index(ruuvitag.mac.encode())
        temp_payload = pack_temp(ruuvitag.temperature)
        hum_payload = pack_hum(ruuvitag.humidity)
    
        payload = payload + bytes([id_payload]) + temp_payload + hum_payload
    
    
    #payload = (b'\x00\x11\x8aZ\xd0\x01\x06&y\xe0')
    
    print(payload)
    
    
    
    print('setup lorawan')
    node = LoRaWANNode(settings.NODE_APP_EUI, settings.NODE_APP_KEY)
    
    print('send payload')
    node.send(payload)
    
    print('enter deepsleep for {} ms'.format(settings.NODE_DEEPSLEEP))
    machine.deepsleep(settings.NODE_DEEPSLEEP)```
    Insert Code Here
    


  • @robert-hh Alles seltsam, egal mit welchem Programm ich arbeite, beende ich z.B. Putty, hört das Programm nach einen Reset auf zu arbeiten, schalte ich putty ein und resette neu, läuft es wieder.
    Noch Irgendeine Idee?



  • @robert-hh Danke vielmals.



  • @wolli01 Es gibt, soweit ich weiss, in Pymakr/Atom eine Einstellung, welche Reset beim Laden etc. kontrolliert. Das könnte die Ursache sein. Ansonsten Pymakr Atom in die Tonne treten und für REPL robuste Software ohne Nebeneffekte verwenden, wie Putty, screen, picocom, ... Bei Putty muss die Einstellung für Flow Control auf None gesetzt werden.
    Ich selber verwende Pymakr Atom oder VSC nicht. Zu viel Ärger.



  • @robert-hh könntest du so lieb sein un es mir nochmal in Deutsch per Email schreiben?
    Wolli013@freenet.de
    Danke!



  • @wolli01 AFAIK Atom has a setting affecting reset on open/close. For comparison, use another terminal emulator, like putty. Configure putty not to use flow control.



  • @robert-hh Mit FTP habe ich auch schon gemacht, das Ergebniss ist immer das gleiche.
    Schließe ich Atom, läuft das Programm auf dem Fipy nicht mehr. Starte ich Atom, fängt es nach ein paar Sekunden an zu laufen. Es wird irgendwas nicht auf dem Fipy gestartet, was auch immer.
    Bin schon seit 3 Tagen damit beschäftigt woran es liegen kann.
    Die Boot.py ist leer kann das das Problem sein, was muss da rein?



  • @wolli01 Hallo Wolli. Forget Atom & Pymakr. It just adds another layer of bug opportunities.
    Use ftp (on Windows: e.g. filezilla, on Linux: Filezilla, command line ftp, ...) to transfer your file to the device, then you know that they arrives and will stay there. You can use any terminal emulator, like Putty (windows) or screen, minicom, picocom (linux) or telnet to use the REPL prompt.
    If you still want to use Atom as code editor, you can configure Filezilla to load files into Atom, when selected in the FiPy pane of files.
    Beste Grüße, robert--hh


Log in to reply
 

Pycom on Twitter