Releases: sdss/jaeger
Releases · sdss/jaeger
jaeger 0.8.0
🚀 New
- #122 Precise moves can now be disabled for all positioners by setting the configuration parameter
positioner.disable_precise_moves
. Also implements the CAN commandsSWITCH_[ON|OFF]_PRECISE_MOVE_[ALPHA|BETA]
. - New
debug
parameter in the configuration file. If it isfalse
, some warnings will be silenced andJaegerCAN
will not log tocan.log
. - #126 Use furo Sphinx theme. Add
noxfile
forsphinx-autobuild
.
🔧 Fixed
- Bug preventing the FPS from being initialised when upgrading the firmware if one was not power cycling the electronics from software.
✨ Improved
- Improved the performance when upgrading the firmware. When calling
load_firmware
one can specify how manymessages_per_positioner
to send at once. Too many messages at once will overflow the buffer, but the right number can optimise performance. By default, logging to the CAN log will be suspended during the firmware upgrade to boost performance.
jaeger 0.7.0
🚀 New
- #96 Raise error if sending a bootloader command while not in bootloader mode.
- #109 Added JSON schema for the actor.
- #97 Implement low temperature handling. When the air temperature is less than 0 degrees, the motor RPM is set to 3000. When the temperature is less than -10, the beta motor holding current is increased to 30%.
- #15 Allow to disable a positioner. If the positioner is disabled, a non-safe command sent to the FPS will raise an error. In
send_to_all
, a broadcast will be only sent to the non-disabled positioners. Trajectories that include disabled positioners will fail. - #116 Safe mode to prevent the beta arm to go below 160 degrees.
✨ Improved
- #121 Improve the use of the database to define the FPS layout.
🧹 Cleanup
- #96 Discontinue the use of
sdsscore
. Improved the handling of user configuration files. - #95 Support Python 3.9.
- Require
drift>=0.2.2
to fix a bug in setting the relay values. - Stop using
releases
for the changelog and migrate to using CHANGELOG.md. Release information for previous version is available here.
jaeger 0.6.0
- #89: Implement daemon.
- #90: Remove the option to initialise datums in
Positioner
. - #91: Implement additional commands for powering up/down hall sensors, and setting the open/closed loop. In the process,
Positioner
was cleaned and streamlined. Most functions now raise aPositionerError
if they fail, instead of failing silently with a log message. - Do not pass context to actor commands.
- Fix starting status server.
- Initialise FPS during
upgrade-firmware
. If the FPS is not initialised and a layout is not loaded there is no way for the upgrade script to know what positioners may be connected or their statuses. - Allow to skip cogging calibration.
- Remove QA database features since they need a full rethink.
- Update
sdss-drift
to0.1.5
to fixpymodbus
import. - Wrap message from
CANNetBus
in custom message class with additional__slots__
. This fixes a deprecation introduced inpython-can>=3.3.4
. motor_steps
andtime_step
are now defined in the configuration file underpositioner
.- The default logging level for the console is not warning. In the CLI, the logging level can be adjusted using the
-v
flag.-v
will set the logging level toINFO
;-vv
will set the level toDEBUG
;-vvv
will also set the CAN logging level toDEBUG
.
jaeger 0.5.2
- Adapt actor system to use
CLU>=0.3.0
.
jaeger 0.5.1
- #86: Allow to pass a custom configuration file in the CLI using the flag
-c/--config
. - Add actor command
info
to report the configuration file and version.
jaeger 0.5.0
- #62: Add a new
Trajectory
class as a low-level method to send trajectories. - #67: Improve initialisation time by making sure all commands after the initial
GET_FIRMWARE_VERSION
know how many positioners are connected and don't time out. - #68: Use
sdsstools
instead of core utilities. Some clean-up of the packaging files. - Adapt to using
CLU>=0.2.0
. - Retrieve configuration from
$SDSSCORE_DIR/configuration/actors/jaeger.yaml
or from~/.config/sdss/jaeger.yml
. - #51: Set up an asyncio exception handler and make the
Poller
use it if there is a problem with the callback. - #64: Fixed WAGO disconnects by increasing the timeout of the hardware.
- #61: Stop the positioners before existing if CLI receives a
SIGINT
,SIGTERM
, orSIGHUP
. - #72, #73: Fix UIDs not being returned to the pool in some cases, which emptied it after a while.
- Rename
cli.py
to__main__.py
. - #76: Implement calibration commands and routines.
- #75: Implement trajectories using SYNC line.
- #21: (and several associated issues) Remove WAGO and use external drift library.
- #70: Better documentation for firmware update.
- #83: Use GitHub workflows.
jaeger 0.4.2
- #59: Add an
engineering_mode
flag to.FPS
(can be toggled using thejaeger --danger
) flag to override most safety warnings for debugging. - Unless
immediate=True
is passed toPoller.set_delay
, waits for the current task to finish. - Fix call to
Positioner.goto
from CLI.
jaeger 0.4.1
- Support versions
04.00.XX
and04.01.XX
of Tendo withPositionerStatusV4_0
andPositionerStatusV4_1
maskbits. - Significant clean-up of how pollers are used.
~jaeger.commands.send_trajectory
now raises exceptions on error.- ✨ #57: Added
FPS.moving
andPositioner.moving
attributes to determine whether it is save to move the FPS. - ✨ #56: Move time for go to moves is calculated and reported.
- Very significant rewrite of how messages and replies are matched. Now there is a pool of unique identifiers. Each message gets assigned a UID from the pool corresponding to its
command_id
andpositioner_id
. When a reply is received, it is matched based oncommand_id
,positioner_id
, andUID
. At that point the UID is returned to the pool. Broadcast messages always receive the reservedUID=0
. This means that two broadcast of the same command should not be running at the same time or replies could be misassigned. - Recognise and deal with CAN@net devices already in use.
jaeger 0.4.0
- ✨ #46 Implement a QA database for moves.
- ✨ #13 Abort trajectory and lock the FPS if either a collided status is detected in a positioner or if command 18 is received from the CAN network.
- ✨ #49 Positioner status and position polling is now done from the FPS instead of from each positioner.
- ✨ #54 Add firmware upgrade command to actor.
- 🐛 #53 Fix issues dealing with positioners that in the layout but not connected.
- ✨ #52 Add limits to
Positioner.goto
. - Add
SetCurrent
command to actor. - Fix bug due to use of unsigned integers when passing a negative position.
jaeger 0.3.0
- Change file layout to include a positioner ID.
- Add command
SetCurrent
. - Modify
jaeger
CLI command to useasync def
andawait
. - Add
is_bootloader
to output ofstatus
command. - ✨ #24 (with #28) Initial implementation of WAGO PLCs and associated actor commands.
- ✨ #12 Initial but fully functional implementation of TCP/IP actor.
- 🐛 #39 Use
loop.create_task
instead ofasyncio.create_task
inPoller
, which seems to fix using jaeger in IPython. - ✨ #40 Allow to instantiate an FPS without a WAGO connection.
- ✨ #37 Support power cycling a PLC.
- ♻️ #22 Moved some configuration parameters under
positioner
. - ✨ #29 Output WAGO status on a timer.