2016-10-19 3 views
0

Je veux surveiller en permanence un port série, écrire ses données (événements) quelque part et lui envoyer des valeurs. cela fonctionne sans la "partie Web".(python bottle pyserial): contrôlez l'entrée série pendant que vous lisez et écrivez des données avec une application web

Je joue avec "bouteille". pour être en mesure de vérifier si tout fonctionne, je voulais écrire les données des périphériques série dans un fichier, et enregistrer la requête web là aussi. comme cela ne fonctionne pas, avez-vous

  • tout indice ce que je fais mal?

  • Je ne suis pas sûr si mon approche pour amener mon appareil sur le web :-) est wokring comme ça, donc j'apprécierais toutes les idées.

    @post('/art/control/serial/') 
    def artControlSerial(): 
    import serial.tools.list_ports #https://pypi.python.org/pypi/pyserial 
    
    req_obj = request.body.read() 
    print(req_obj) 
    
    arduinoport = 'COM4' 
    
    try: 
        ser = serial.Serial(arduinoport,57600,timeout=0.01) 
    
    except serial.SerialException as e: 
        print("could not open serial port '{}': {}".format(arduinoport, e)) 
    return   
    
    while True: 
    
    
        #send 2 serial 
        senddata = req_obj 
        ser.write(senddata.encode()) 
    
        newline = 'a new line' 
        f = open('F:/test/logs/serial.log','w') 
        f.write(newline) 
        f.close 
    
        ser.flush() 
        ser.flushInput() 
        ser.flushOutput() 
    
    #callback message 
    return 'message written to serial port' 
    

grâce, TBZ

Répondre

0

Je l'ai fait un projet où vous pouvez CONTROLL un moteur cuvette d'une interface Web. J'ai découvert que vous devez configurer votre connexion série, car chaque fois que vous faites une demande, vous redémarrez votre connexion série.