All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning
- Device
raise_traceback
method to catch Device Exception after follow mode
- paste_buff method in BleDevice
- fix data feeding pipe missing blank lines in follow callback for BleDevice
- deprecate self-signed certs in favor of ROOT CA signed certs for WebSocketDevices using SSL/TLS
- @device.code decorator for Device classes to declare and call functions in devices
- @device.code_follow for Device classes to declare and call functions in devices whose output need to be followed.
- @devicegroup.code for DeviceGroup class to declare and call functions in group of devices – @devicegroup.code_follow for Device classes to declare and call functions in a group of devices whose output need to be followed.
- decorator examples
- fixed missing dependencies in
setup.py
(@BradenM)
- reassign ip to hostname if hostname is not None for disconnect method
WebSocketDevice
double unwantedsuper().__init__
bug.- Load time in MacOS caused by bleak/corebluetooth, only if BleDevice
- Allow mdns
.local
name in WebSecureREPL, (ssl checkhostname / auth server.) WebSocketDevice
receive frame errorsSerialDevice
follow command parsing errorsBleDevice
follow command parsing errorsis_reachable
method forWebSocketDevice
if ip is mdns .local name- pipe option for
BleDevice
wr_cmd
method.
- Indicate websocket port in ip address as
ip:port
format - Allow
password:passphrase
format forWebSocketDevice
password that sets ssl/auth toTrue
if present. address
property for all device types.flush_conn
forBleDevice
for compatibility
Host Name
in__repr__
command device info
- mDNS
.local
/dhcp_hostname
compatibility, so device configuration works across networks
check -i
,info
commands in-apmd
, if connected to AP of the device.
- KeyboardInterrupt in AsyncBleDevice for jupyter_upydevice_kernel
- Tests with
pytest
tested with esp32 (websocket, serial, ble), esp8266(websocket, serial), pyboard (serial) and nrf52832 (colmi p8 with wasp-os) (ble) Device
function that returns Device class based on address type- Pytest with devices
__repr__
that returns device info- Raise
DeviceException
on raised Exception in device - Raise
DeviceNotFound
after connection attempt fail or if device is not reachable. ble_scan
,net_scan
,serial_scan
, to scan for devices
- Base code refactoring
BLE_DEVICE
for bluetooth low energy devices
- Serial device
is_reachable
method fix
- WS_DEVICE cmd_nb fix for cmd method
- WS_DEVICE now works with esp8266 too.
- NEW WS_DEVICE and SERIAL_DEVICE work in progress
- BASE_WS_DEVICE compatibility with WebSecureREPL
- BASE_SERIAL_DEVICE and BASE_WS_DEVICE work in progress
- W_UPYDEVICE kbi command can filter MicroPython banner info now
- Reset option in "init" S_UPYDEVICE for upydev 'sh_srepl' compatibility
- phantom_wr module like phantom but faster
- KeyboardInterrupt handling in wr_cmd method of W_UPYDEVICE, S_UPYDEVICE, PYBOARD
- New methods 'open_wconn', 'wr_cmd' and 'close_wconn' to open a wrepl session and send commands (this will open a WebREPL connection and wont close it until close_wconn is called, which means the other commands methods won't work) This will drop the delay between sending a command and executing that command on the device
- Methods 'open_wconn', 'wr_cmd' and 'close_wconn' for serial devices too. (With serial REPL instead of WebREPL)
- uparser_dec improved
- Methods to UOS phantom class (mkdir, rmdir, getcwd, chdir, remove)
- Phantom pyb_Servo pyboard class
- New sensors IRQ phantom classes
- New decorator (upy_cmd_c_r_in_callback) to be able to pass self methods (functions) as keywords arguments (for callbacks)
- New decorator that allows non-blocking function calls (upy_cmd_c_r_nb)
- New "IRQ_util.py" upy script (U_IRQ_MG class) + "Phantom" python IRQ_MG class This allow to manage/set interrupts, and receive and interrupt callback on python3 (see Phantom class Docs)
- New W_UPYDEVICE method 'is_reachable' (pings the device to see if it is reachable)
- New decorator (upy_cmd_c_r_nb_in_callback) to be able to pass self methods (functions) as keywords arguments (for callbacks) in non-blocking style (good for timer interrupts)
- New "STREAMER_util.py" upy script (U_STREAMER class) as a "super" class to make streaming sensor data in real time easier (up to ~900 Hz of sampling frequency tested) + "Phantom" python STREAMER class (see Phantom class Docs)
- New phantom sensors classes (ADS1115, BME280, LSM9DS1)
- New phantom sensors STREAMER classes (IMU_STREAMER, BME_STREAMER, ADS_STREAMER)+ upydevice_utils scripts (IMU_util.py, ADS_util.py, BME_util.py) to test U_STREAMER and U_IRQ_MG classes (more about this in docs and examples)
- phantom submodule, with some phantom classes (UOS, LSM9DS1, MACHINE, pyb_LED, pyb_Timer, machine_Timer, WLAN, AP, I2C)
- Now bytearray and array objects are supported
### Added
- Now 'phantom' class methods allow to pass function in kwargs, this is useful to pass function to callbacks (for example Timers)
- option 'out' in class decorators that allows implement a function defined in micropython global space (main or dir()) as a part of a 'phantom' class
- decorators for reusable 'phantom' classes
- decorators return option for commands that should return None
- decorators for methods of 'phantom' python3 class
- Non-blocking cmd_nb method
- methods and decorators to parse for/while loops and functions
- decorator to define a function as a shortcut to a function in MicroPython
- GROUP class to send commands to a group of devices (one at a time or parallel)
- Name option parameter, and automatic naming (to make easier manage groups)
- 'Group silent' parameter and 'device silent' parameter to silence output
- Group output attribute, that catches the output of a group command and makes a dictionary like {device_1 :output_1, ..., device_n:output_n}
- Custom path indication with bundle_dir parameter at group creation (then no need to further indicate in cmd method)
- Custom path indication with bundle_dir option in cmd method to indicate the path to the picocom binary for app development (command line or standalone) (For serial devices)
- Silent option
- Custom path indication with bundle_dir option in cmd method to indicate the path to the web_repl_cmd_r binary for app development (command line or standalone) (For wireless devices)
- PYBOARD class commands output
- First release