ARENA-py notable changes. Started 2021-02-19 (version 0.1.12).
- Device sensor connections:
device=Device(host="arena.org", device="robot1"). - More error handling for network configuration issues.
- Improved auth flow when CWD is Home.
- Check for expired local MQTT token.
- CLI option for all apps:
Scene(cli-args=True).
- Revert using orjson library.
- Use orjson library for faster JSON parsing.
- Attribute
jitsi-video. - MQTT CLI pub/sub scripts:
arena-py-pubandarena-py-sub.
- Remove local objects when receiving
deletemessage. - MQTT CLI auto-generates topic from
object_idwhen undefined.
- Auth scripts:
arena-py-signoutandarena-py-permissions. - Ability to request video token.
- Improved auto-detect signout when server changes.
- Google OAuth localhost flow restored.
- Google OAuth localhost flow removed, replaced with console flow.
- MQTT broker connection uses encrypted TLS.
- Remove default color from
Objects.
Objects start with a default color of(128,128,128).- Add first draft of ARENA-py CLI (similar to mosquitto_pub/sub)!
Usage:
python3 -m arena -s <scene> -a <pub/sub> ...Typepython3 -m arena -hfor options.
- Do not accept None for host, realm, scene in
Sceneconstructor.
- Programs will now disconnect and exit on an exception.
- Added try except block on message parsing.
WindowsSelectorEventLoopPolicyadded for Windows Python >=3.8
add_msg_callbackauto subscribes to topic.- Possibly fix
Colorbug with invalid colors.
- Remove top-level landmark type.
- Replace with new landmark attribute.
- Auto-detect headless auth from SSH terminal.
- Remove localhost tests from debug flag.
- Color bug fix (blue and green were flipped).
- Reworked env/local token storage.
- Better timing on
scene.run_forever. - Move MQTT token check to work better on ARTS.
- Fix additional numpy and scipy version issues.
- Downgrade numpy and scipy versions.
- Bug fix with
ThickLine.
- Add various example programs for every attribute and object.
- Add
TextInputattribute and example.
- Queue all incoming MQTT messages for processing and remove
network_loop_interval.
- Add
end_program_callback, which is called whenever client disconnects.
- Remove
ColorinMaterialdeprecation. - Fix undeclared variable
passwordbug.
- Async MQTT loop cancellation bug fixes.
- Event loop bug fixes.
on_msg_callbackreceives all messages, including duplicates from other callbacks.- Object children now have the class variable
object_typewhich is the name of the object_type for the class.
- Library calls
get_persisted_objson connect to cache persisted objects. - Object instances now all have
clickableproperty which checks if the Object is clickable. - Improved event loop using more advanced asyncio for MQTT client loop and message processing.
- Use
scene.get_persisted_objs()to get all persisted objects in a scene.
- Improved message parsing and Object creation whenever a message arrives.
- Callbacks and event handlers now take three arguments (
scene,obj/evt,msg).sceneis a reference to the scene.obj/evtis anObjectorEvent(depending on the callback/handler).msgis the raw JSON message if needed by user.
- Event handler bug fix.
- Bug fix with turning dictionaries into Material as.
- Bug fix with get_persisted_obj. Ensures that
persistis True.
- Allow user defined username and passwords with env vars
ARENA_USERNAME,ARENA_PASSWORD. Need to specify both to bypass auth.
- scene callbacks (
on_msg,new_obj,delete_obj, etc.) have anObjectinstance as an argument rather than dict. get_persisted_objreturns anObject.
- Support for scene landmarks with the
scene.add_landmarkmethod.
- Bug fix with
scene.new_obj_callbackwhich didn't work well with code that updatedscene.users.
- Support for user callbacks (
user_join_callback,user_left_callback). - Use these callbacks to handle when a user joins and leaves, respectively.
scene.userswill give now you a dictionary of users, mappingobject_id's toCameraobjects.- Add Changelog.md to keep track of changes.
Arenaclass renamed toScene, but usingArenais still allowed. Updated examples to reflect this.- Tiny bug fix with
update_objects.