Skip to content

Releases: sdss/jaeger

jaeger 0.8.0

21 Jun 19:03
Compare
Choose a tag to compare

🚀 New

  • #122 Precise moves can now be disabled for all positioners by setting the configuration parameter positioner.disable_precise_moves. Also implements the CAN commands SWITCH_[ON|OFF]_PRECISE_MOVE_[ALPHA|BETA].
  • New debug parameter in the configuration file. If it is false, some warnings will be silenced and JaegerCAN will not log to can.log.
  • #126 Use furo Sphinx theme. Add noxfile for sphinx-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 many messages_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

24 May 07:19
Compare
Choose a tag to compare

🚀 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

16 Oct 06:38
Compare
Choose a tag to compare
  • #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 a PositionerError 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 to 0.1.5 to fix pymodbus import.
  • Wrap message from CANNetBus in custom message class with additional __slots__. This fixes a deprecation introduced in python-can>=3.3.4.
  • motor_steps and time_step are now defined in the configuration file under positioner.
  • 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 to INFO; -vv will set the level to DEBUG; -vvv will also set the CAN logging level to DEBUG.

jaeger 0.5.2

01 Aug 01:43
Compare
Choose a tag to compare
  • Adapt actor system to use CLU>=0.3.0.

jaeger 0.5.1

30 Jul 01:50
Compare
Choose a tag to compare
  • #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

20 Jul 19:02
Compare
Choose a tag to compare
  • #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, or SIGHUP.
  • #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

19 Jul 07:36
4f785a2
Compare
Choose a tag to compare
  • #59: Add an engineering_mode flag to .FPS (can be toggled using the jaeger --danger) flag to override most safety warnings for debugging.
  • Unless immediate=True is passed to Poller.set_delay, waits for the current task to finish.
  • Fix call to Positioner.goto from CLI.

jaeger 0.4.1

21 Nov 19:41
d3659ba
Compare
Choose a tag to compare
  • Support versions 04.00.XX and 04.01.XX of Tendo with PositionerStatusV4_0 and PositionerStatusV4_1 maskbits.
  • Significant clean-up of how pollers are used.
  • ~jaeger.commands.send_trajectory now raises exceptions on error.
  • #57: Added FPS.moving and Positioner.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 and positioner_id. When a reply is received, it is matched based on command_id, positioner_id, and UID. At that point the UID is returned to the pool. Broadcast messages always receive the reserved UID=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

19 Nov 09:18
d1e9ed1
Compare
Choose a tag to compare
  • #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

13 Nov 18:29
d5dc6a4
Compare
Choose a tag to compare
  • Change file layout to include a positioner ID.
  • Add command SetCurrent.
  • Modify jaeger CLI command to use async def and await.
  • Add is_bootloader to output of status 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 of asyncio.create_task in Poller, 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.