Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rshell.py nowait replaced by wait (seconds). Requires pyboard.py dated 8th Dec … #13

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

peterhinch
Copy link

This is an interim fix to the issue of the behaviour in the case where the pyboard is not ready when rshell is started. If pyboard.py fails to connect in time, rshell prints a message and issues exit(1). I appreciate that your preferred approach is to raise a DeviceError. However if I do that it attempts to autoconnect which then throws an exception and hangs. Until that's fixed it seemed cleanest to quit.
Here is the outcome with a non-ready Pyboard using DeviceErrror

[adminpete@axolotl]: ~/upy-shell
$ rshell
Connecting to /dev/pyboard ...
failed to access /dev/pyboard
Welcome to rshell. Use Control-D to exit.

No MicroPython boards connected - use the connect command to add one

/home/adminpete/upy-shell> autoconnect: /dev/ttyACM0 action: add
Connecting to /dev/ttyACM0 ...
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.4/threading.py", line 868, in run
    self._target(*self._args, **self._kwargs)
  File "/mnt/qnap2/python/rshell/rshell.py", line 204, in autoconnect_thread
    connect_serial(usb_dev.device_node)
  File "/mnt/qnap2/python/rshell/rshell.py", line 980, in connect_serial
    dev = DeviceSerial(port, baud, wait)
  File "/mnt/qnap2/python/rshell/rshell.py", line 1181, in __init__
    Device.__init__(self, pyb)
  File "/mnt/qnap2/python/rshell/rshell.py", line 1024, in __init__
    self.sync_time()
  File "/mnt/qnap2/python/rshell/rshell.py", line 1112, in sync_time
    now.tm_hour, now.tm_min, now.tm_sec, 0))
  File "/mnt/qnap2/python/rshell/rshell.py", line 1085, in remote
    output, _ = self.pyb.follow(timeout=10)
  File "/mnt/qnap2/python/rshell/pyboard.py", line 197, in follow
    data = self.read_until(1, b'\x04', timeout=timeout, data_consumer=data_consumer)
  File "/mnt/qnap2/python/rshell/pyboard.py", line 151, in read_until
    data = self.serial.read(min_num_bytes)
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 453, in read
    buf = os.read(self.fd, size-len(read))
BlockingIOError: [Errno 11] Resource temporarily unavailable

Traceback (most recent call last):
  File "/mnt/qnap2/python/rshell/rshell.py", line 2213, in <module>
    main()
  File "/mnt/qnap2/python/rshell/rshell.py", line 2210, in main
    shell.cmdloop(cmd_line)
  File "/mnt/qnap2/python/rshell/rshell.py", line 1284, in cmdloop
    cmd.Cmd.cmdloop(self)
  File "/usr/lib/python3.4/cmd.py", line 126, in cmdloop
    line = input(self.prompt)
KeyboardInterrupt
[adminpete@axolotl]: ~/upy-shell

I have

alias rshell='/mnt/qnap2/python/rshell/rshell.py -p /dev/pyboard'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant