(python bottle pyserial): мониторинг последовательного ввода при чтении и записи данных с помощью веб-приложения

#python #bottle #pyserial

#python #бутылка #pyserial

Вопрос:

я хочу постоянно отслеживать последовательный порт, записывать его данные (события) куда-нибудь и отправлять на него значения. он работает без «веб-части».

я играю с «бутылкой». чтобы иметь возможность проверить, все ли работает, я хотел записать данные последовательных устройств в файл и также зарегистрировать веб-запрос там. поскольку это не работает, есть ли у вас

  • любой намек на то, что я делаю неправильно?

  • я не уверен, что мой подход к выводу моего устройства в Интернет 🙂 работает так, поэтому я был бы признателен за любые идеи.

     @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'
      

спасибо,
tbz

Ответ №1:

Я выполнил проект, в котором вы можете управлять движком через веб-интерфейс. Я обнаружил, что вам нужно настроить последовательное соединение отдельно, потому что каждый раз, когда вы делаете запрос, вы перезапускаете свое последовательное соединение.