Exemple #1
0
def cli(**kwargs):
    """peliCAN is a simple tool for CAN communication via micropython board.

    The tool is being utilized for sending and receiving CAN frames.
    """
    global _board
    _board = pyboard.Pyboard(kwargs['port'], baudrate=kwargs['baud'])
Exemple #2
0
    def do_restore(self, bak_name):
        self.enable_gui(False)
        self.progressBar.setMaximum(0)  # indefinite biusy
        self.text.clear()
        self.text_out("Restoring backup {} ...\n".format(bak_name))
        self.statusBar().showMessage("Restoring backup")

        port = self.get_port()

        try:
            self.setup["backup"]["filename"] = bak_name
            self.setup["backup"]["board"] = pyboard.Pyboard(port,
                                                            baudrate=AMPY_BAUD,
                                                            wait=1,
                                                            rawdelay=0.1)
            self.setup["backup"]["ampy_files"] = ampy.files.Files(
                self.setup["backup"]["board"])
        except (pyboard.PyboardError, Exception) as e:
            self.alert({
                "title": "Error",
                "message": "Ampy backup error",
                "info": "Exception when opening\n" + str(port),
                "detail": str(e)
            })
            return

        # run ampy in background
        self.thread = RestoreThread(self.setup["backup"])
        self.thread.alert.connect(self.alert)
        self.thread.text.connect(self.text_out)
        self.thread.done.connect(self.on_restore_done)
        self.thread.start()
Exemple #3
0
def cli(port, baud):
    """ampy - Adafruit MicroPython Tool

    Ampy is a tool to control MicroPython boards over a serial connection.  Using
    ampy you can manipulate files on the board's internal filesystem and even run
    scripts.
    """
    global _board
    _board = pyboard.Pyboard(port, baudrate=baud)
Exemple #4
0
def restart(port):
    """Forces the board to reboot"""
    import ampy.pyboard as pyboard
    from time import sleep
    pyb = pyboard.Pyboard(port)
    pyb.enter_raw_repl()
    sleep(0.5) # CH test if this is needed
    pyb.exec('import machine; machine.reset()')
    pyb.close()
Exemple #5
0
def cli(port, baud, delay):
    """ampy - Adafruit MicroPython Tool

    Ampy is a tool to control MicroPython boards over a serial connection.  Using
    ampy you can manipulate files on the board's internal filesystem and even run
    scripts.
    """
    global _board
    # On Windows fix the COM port path name for ports above 9 (see comment in
    # windows_full_port_name function).
    if platform.system() == 'Windows':
        port = windows_full_port_name(port)
    _board = pyboard.Pyboard(port, baudrate=baud, rawdelay=delay)
Exemple #6
0
def run():
    from ampy import pyboard

    try:

        board = pyboard.Pyboard(hardwareConfig()['port'])

        board.enter_raw_repl()
        board.exec_('from vgkits.wifi import provideInsecureWifi; provideInsecureWifi()')
        board.exit_raw_repl()

    except pyboard.PyboardError:
        print("Is cockle unplugged or in use by another program?")

    finally:
        board.close()
Exemple #7
0
def upgrade(ls, version, file, designation):
    """
        更新豌豆派固件.

        VERSION是用于指定更新固件的版本。
        如果不填写该参数测默认更新最新的固件版本。
        
        更新最新的豌豆派固件:

        wonderbits upgrade
        
        如果想查询可更新的固件列表,可使用--ls或-l:

        wonderbits upgrade -l
        
        需要更新本地文件可以使用--file或-f:

        wonderbits upgrade -f my_firmware.bin

        """
    if ls:
        wb_tool.upload.version_ls(hardware_str)
    elif file:
        wb_tool.upload.update_bin(None, file)
    elif designation:
        MyUtil.wb_log(designation, version, '\r\n')
        if version:
            wb_tool.upload.update_bin(designation, version)
        else:
            wb_tool.upload.update_bin(designation)
    else:
        _board = pyboard.Pyboard(MySerial.choose_serial(),
                                 baudrate=115200,
                                 rawdelay=2)
        board_files = files.Files(_board)
        version_val = board_files.version()
        _board.close()
        if '-' in version_val:
            hardware_str = version_val.split('-')[0]
        else:
            hardware_str = 'wonderbits'
        MyUtil.wb_log(hardware_str, '\n')

        if version is None:
            wb_tool.upload.update_bin(hardware_str)
        else:
            wb_tool.upload.update_bin(hardware_str, version)
Exemple #8
0
    def on_install_files(self):
        self.enable_gui(False)

        if not "ampy" in self.setup or not "files" in self.setup["ampy"]:
            self.text_out("No files to install\n")
            self.on_ampy_done(False)
            return

        self.text_out("Preparing to install files...\n")
        self.statusBar().showMessage("Installing files")

        port = self.get_port()

        try:
            self.setup["ampy"]["board"] = pyboard.Pyboard(port,
                                                          baudrate=AMPY_BAUD,
                                                          wait=1,
                                                          rawdelay=0.1)
            self.setup["ampy"]["ampy_files"] = ampy.files.Files(
                self.setup["ampy"]["board"])
        except (pyboard.PyboardError, Exception) as e:
            self.alert({
                "title": "Error",
                "message": "Ampy error",
                "info": "Exception when opening\n" + str(port),
                "detail": str(e)
            })
            return

        # run ampy in background
        self.setup["ampy"]["open"] = self.setup["open"]
        self.setup["ampy"]["config"] = self.config
        self.thread = AmpyThread(self.setup["ampy"])
        self.thread.alert.connect(self.alert)
        self.thread.text.connect(self.text_out)
        self.thread.progress.connect(self.ampy_progress)
        self.thread.done.connect(self.on_ampy_done)
        self.thread.start()
Exemple #9
0
def exec_file():
    global _pyboard, _port, _cmd, _src
    result = None
    if _port is not None:
        _pyboard = pyboard.Pyboard(_port)
        _file_board = files.Files(_pyboard)
        if _cmd == 'run':
            if _src is not None:
                result = _file_board.run(_src)
        elif _cmd == 'ls':
            result = _file_board.ls()
        elif _cmd == 'get':
            if _src is not None:
                result = _file_board.get(_src)
        elif _cmd == 'put':
            if _src is not None:
                result = _file_board.put(_src)
    _pyboard = None
    _port = None
    _cmd = None
    _src = None
    _file_board = None

    print(result)
Exemple #10
0
import time
import functools
import logging
import sys

from ampy import pyboard

logging.basicConfig(level=logging.DEBUG)

PORT = "/dev/ttyUSB0"
BAUD = 115200

EXCLUDES = ['.pyc', '.txt', '.gitignore', '__pycache__']

logging.info("Connecting")
pyb = pyboard.Pyboard(PORT, BAUD, 'micro', 'python')
pyb.enter_raw_repl()
logging.info("Connected")


def run_text(text):
    logging.debug("Running: {}".format(repr(text)))
    output = pyb.exec_(text)
    logging.debug("Got: {}".format(repr(output)))
    #pyboard.stdout_write_bytes(output)

    time.sleep(0.1)

    return output