- Added list command for pyobsd, which outputs all configurations.
- Added bash auto-complete script pyobsd.
- Added timeouts (to be defined in the config) for ScriptRunner modules.
- Acquisition and AutoFocus both got a broadcast option to disable broadcast of images.
- AutoFocus got a final_image parameter to take a final image at optimal focus.
- Added CallModule script.
- Changed ScriptRunner module so that it can run a script multiple times.
- Added getters and safe getters for Image class.
- Adopted LCO default task to new LCO portal.
- Added AltAzOffsets and RaDecOffsets and (partly) implemented them in the ApplyOffsets classes.
- Changed signature of pyobs.robotic.TaskSchedule.get_schedule to have no parameters.
- Removed comm.sleexxmpp implementation.
- Renamed comm.slixmpp to comm.xmpp.
- Some pipeline stuff.
- Added DbusComm for communicating via Dbus.
- Cleaned up parameter casting for communication.
- Some fixes with asyncio and the GUI.
- Handle JID conflicts in XMPP.
- Getter/setter methods in Module must be async.
- get_task() in TaskScheduler is now async.
- Lots of bug fixes.
- New IGain interface.
- Restructuring robotic system.
- Added new exceptions.
- Use those new exceptions to keep track of errors over time and raise SevereErrors.
- Add new state to module, so that a severe error can put a module into an error state.
- Added get_state() and get_error_string() methods to modules.
- Added Comm implementation for SliXMPP (which should now be default) and moved old comm.xmpp to comm.sleekcmpp.
- Using asyncio throughout the project, all method and event handlers are async now, as well as open/close methods.
- Got rid of multi-threading as best as possible.
- VFS now also uses asyncio.
- Fixed a bug with Poetry
- Added possibility to use class hierarchy for events, i.e. subscribe to a class and receive all derived events.
- Change to Poetry as build system
- Guiding modules accept a pipeline now, so more image processors than just Offsets can run.
- Renamed ICameraBinning, ICameraExposureTime and ICameraWindow and removed the "Camera" part.
- Added meta attribute (temporary storage, not I/O persistent) to Image.
- Extracted IImageGrabber from ICamera and renamed expose() to grab_image().
- Added new IVideo interface and a corresponding BaseVideo module.
- Raising exception, if XmppComm cannot connect to server, allowing for graceful exit.
- On shutdown, wait for hanging threads, and kill them after 30 seconds.
- Multi-processing for the pipeline, using ccdproc now.
- New interface IPointingSeries, giving access to methods at the telescope that support pointing series.
- Send logs in thread.
- Added concept of image processors that take an Image as parameter and return it after some processing.
- Added new NStarOffsets image processor (T. Masur).
- Improved scheduler.
- Added pipelines that take a list of image processors (see Pipeline mixin).
- Re-organized all get_object methods.
- Improved type hints throughout the code.
- Renamed all coordinated interfaces (IRaDec, etc) to IPointing*, i.e. IPointingRaDec.
- Renamed all offset interfaces to IOffsets*, i.e. IOffsetsRaDec.
- Renamed IFitsHeaderProvider to IFitsHeaderBefore and also renamed its only method.
- Added IFitsHeaderAfter to fetch FITS headers after an exposure as well.
- Moved functionality from Module to Object.
- New meta data system for images.
- Renamed IStoppable to IStartStop.
- Added new proxy interfaces in interfaces.proxies. All proxies now derive from these interfaces instead of the original ones.
- And a lot more cleanup and re-organization.
- Added a Telegram bot module.
- Added a module for a Kiosk mode, in which pictures are published on a webpage.
- Added new IImageFormats interface for cameras that support multiple ones (e.g. grayscale and color).
- Moved more enums into utils.enums, like WeatherSensors and MotionStatus.
- Added list_binnings() to IBinning interface and (temporary) default implementation in BaseCamera.
- Restructured image processors into pyobs.image.processors.
- Split photometry into separate SourceDetection and Photometry interfaces, added DaophotSourceDetection, and PhotUtilsPhotometry.
- Sending events non-blocking, which might solve some problems with disappeared XMPP clients.
- Added lots of documentation, which included setting __module__ for many classes.
- Changed PyObsModule to Module.
- Removed possibility for network configs.
- Added MultiModule, which allows for multiple modules in one process.
- Flat scheduler: add options for readout times.
- New OnlineReduction module for reduction during the night.
- Fixed bug that sometimes appears in the interface caching for Comm.
- LcoTaskArchive: added MoonSeparationConstraint, fixed AirmassConstraint.
- Optimized Scheduler by only scheduling blocks that actually have a window in the given range.
- Added module Seeing that extracts FWHMs from the catalogs in reduced images and calculated a median seeing.
- Introduced concept of Publishers, which can be used to publish data to log, CSV, and hopefully later, database, web, etc.
- Created new Object class that handles most of what Module did before so that Module only adds module specific stuff.
- Added some convenience methods for reading/writing files to VFS.
- Added new IConfig interface which is implemented in every module and allows remote access to config parameters (if getter/setters are implemented).
- Removed count parameter from ICamera.expose().
- Removed exposure_time parameter from ICamera.expose() and introduced IExposureTime interface.
- Removed image_type parameter from ICamera.expose() and introduced IImageType.
- Moved ImageType enumerator from ICamera to utils.enums.
- Major changes to robotic system based on LCO portal.
- Setting filter/window/binning in acquisition.
- Added WaitForMotion and Follow mixins.
- Added support for flats that don't directly scale with binning.
- New module for acoustic warning when autonomous modules are running.
- Improved SepPhotometry by calculating columns used also by LCO.
- New interface for Lat/Lon telescopes, e.g. solar telescopes.
- Re-factored acquisition modules and added one based on astrometry.
- Added combine_binnings parameter to FlatFielder, which triggers, whether to use one function for all binnings or not
- Added get_current_weather() to IWeather
- New FlatFieldPointing module that can move telescope to a flatfield pointing
- Changed requirements in setup.py and put packages that are only required by a server module into [full]
- Removed HTTP proxy classes
- Some new mixins
- working on robotic system based on LCO portal
- Added module for bright star acquisition.
- Added and changed some FITS header keywords.
- Added module for flat-fielding.
- Changed some interfaces.
- Added basic pipeline.
- Started with code that will be used for a full robotic mode.
- Re-organized auto-guiding modules.
- and many more...