Exemple #1
0
def connect(request):

    if request.method == 'GET':
        if server_is_up():
            return render(request, 'web-ui-connect.html', {
                'serial_ports': ARDUINO_PYRO.get_serial_ports(),
            })
        else:
            return render(request, 'web-ui-connect.html', {
                'show_start_pyroproxy_server_msg': True,
            })

    if ARDUINO_PYRO.is_connected():
        raise(Exception("PyArduino is already connected"))

    if 'connect_emulator' in request.REQUEST:
        serial_port = DEVICE_FOR_EMULATOR
        speed = None
    else:
        serial_port = request.REQUEST['serial_port']
        speed = int(request.REQUEST['speed'])

    try:
        logging.info("Trying to connect to %s", serial_port)
        ARDUINO_PYRO.connect(tty=serial_port, speed=speed)
        return HttpResponseRedirect(reverse('home'))
    except Exception, e:
        try:
            ARDUINO_PYRO.close()
        except:
            pass
        logging.error("Couldn't connect. " + "".join(Pyro4.util.getPyroTraceback()))
        messages.add_message(request, messages.ERROR,
            "Couldn't connect: {0}".format(str(e)))
        return HttpResponseRedirect(reverse('connect'))
Exemple #2
0
def home(request):
    if not server_is_up():
        return HttpResponseRedirect(reverse('connect'))

    if not ARDUINO_PYRO.is_connected():
        return HttpResponseRedirect(reverse('connect'))

    try:
        ARDUINO_PYRO.validateConnection()
    except Exception, e:
        # FIXME: DESIGN: error hablder should be part of PyArduino, not web interface...
        #    if self.validate_connection_error_handler:
        #        self.validate_connection_error_handler()
        ARDUINO_PYRO.close()
        messages.add_message(request, messages.ERROR, str(e))
        return HttpResponseRedirect(reverse('connect'))
Exemple #3
0
def home(request):
    if not server_is_up():
        return HttpResponseRedirect(reverse('connect'))

    if not ARDUINO_PYRO.is_connected():
        return HttpResponseRedirect(reverse('connect'))

    try:
        ARDUINO_PYRO.validateConnection()
    except Exception, e:
        # FIXME: DESIGN: error hablder should be part of PyArduino, not web interface...
        #    if self.validate_connection_error_handler:
        #        self.validate_connection_error_handler()
        ARDUINO_PYRO.close()
        messages.add_message(request, messages.ERROR, str(e))
        return HttpResponseRedirect(reverse('connect'))
Exemple #4
0
def connect(request):

    if request.method == 'GET':
        if server_is_up():
            return render(request, 'web-ui-connect.html', {
                'serial_ports': ARDUINO_PYRO.get_serial_ports(),
            })
        else:
            return render(request, 'web-ui-connect.html', {
                'show_start_pyroproxy_server_msg': True,
            })

    if ARDUINO_PYRO.is_connected():
        raise (Exception("PyArduino is already connected"))

    if 'connect_emulator' in request.REQUEST:
        serial_port = DEVICE_FOR_EMULATOR
        speed = None
    else:
        serial_port = request.REQUEST['serial_port']
        speed = int(request.REQUEST['speed'])

    try:
        logging.info("Trying to connect to %s", serial_port)
        ARDUINO_PYRO.connect(tty=serial_port, speed=speed)
        return HttpResponseRedirect(reverse('home'))
    except Exception, e:
        try:
            ARDUINO_PYRO.close()
        except:
            pass
        logging.error("Couldn't connect. " +
                      "".join(Pyro4.util.getPyroTraceback()))
        messages.add_message(request, messages.ERROR,
                             "Couldn't connect: {0}".format(str(e)))
        return HttpResponseRedirect(reverse('connect'))