pyblocks/pyblocks-loader/boot.py

28 lines
1.1 KiB
Python

# PyBricks Loader
# Helper program loaded onto the hub to handle multiple programs to present as much of a SPIKE interface as possible.
import content
import pybricks
LOADER_MAJOR=1
LOADER_MINOR=0
LOADER_PATCH=0
LOADER_VERSION='1.0.0'
COUNTER_TX=0
COUNTER_RX=0
def tx(cmd, data):
print(f'{COUNTER_TX}:{cmd}:{data}')
COUNTER_TX += 1
# Send message to the host machine, if present, to inform it that PyBricks Loader is present and booted.
# Example: message 0, pbl 1.0.0, on primehub, 3.2.0b5
# 0:pyblocks-loader-info:1.0.0|primehub|3.2.0b5
tx('pyblocks-loader-info', f'{LOADER_MAJOR}.{LOADER_MINOR}.{LOADER_PATCH}|{pybricks.version()[0]}|{pybricks.version()[1]}')
# Send message to the host machine, if present, to give it information about the current status of PyBlocks.
# Example: message 1, project loaded, project ID 0, project name Hello, world, 18 scripts loaded
# 1:pyblocks-project-info:True|0|Hello, world|18
# or, on first install:
# 1:pyblocks-project-info:False|None|None|0
tx('pybricks-project-info', f'{HAS_PROJECT}|{PROJECT_ID}|{PROJECT_NAME}|{SCRIPTS_LOADED}')