Closed ensonic closed 4 years ago
One alternative solution would be to automatically download the latest ev3.py
as needed (with the download mechanism in the push protocol) and install this in /home/robot/.local/python/roberta/ev3.py
. The lab.py would patch the python import path to consider this directory (sys.path.append()
). This would shadow the version installed with the system.
Once we've downloaded a new version, we'd need to restart the connector and also reconnect the robot.
One thing that is nice here, is that we always have a working version in the system.
This is now implemented as https://github.com/OpenRoberta/openroberta-lab/#730
The robots sends its client library version along with the connection to the server. If the server is newer (server=1.4.X, client=1.3.X) it assumes that the client-libraries should be updated. The UI will suggest the user to update the libs and if the user chooses so, the server sends an update request to the robot.
This does not work for ev3dev:
Maybe we can do something along the lines of:
We can also use this to check what would be upgraded (as suggested on http://unix.stackexchange.com/questions/19470/list-available-updates-but-do-not-install-them):