===========================
Main items of this new release:
- 11 new instrument drivers have been added
- A method for testing instrument communication **without** hardware present has been added, see `the documentation <https://pymeasure.readthedocs.io/en/latest/dev/adding_instruments.html#protocol-tests>`__.
- The separation between :code:`Instrument` and :code:`Adapter` has been improved to make future modifications easier. Adapters now focus on the hardware communication, and the communication *protocol* should be defined in the Instruments. Details in a section below.
- The GUI is now compatible with Qt6.
- We have started to clean up our API in preparation for a future version 1.0. There will be deprecations and subsequent removals, which will be prominently listed in the changelog.
Deprecated features
-------------------
In preparation for a stable 1.0 release and a more consistent API, we have now started formally deprecating some features.
You should get warnings if those features are used.
- Adapter methods :code:`ask`, :code:`values`, :code:`binary_values`, use :code:`Instrument` methods of the same name instead.
- Adapter parameter :code:`preprocess_reply`, override :code:`Instrument.read` instead.
- :code:`Adapter.query_delay` in favor of :code:`Instrument.wait_for()`.
- Keithley 2260B: :code:`enabled` property, use :code:`output_enabled` instead.
New adapter and instrument mechanics
------------------------------------
- Nothing should have changed for users, this section is mainly interesting for instrument implementors.
- Documentation in 'Advanced communication protocols' in 'Adding instruments'.
- Adapter logs written and read messages.
- Particular adapters (`VISAAdapter` etc.) implement the actual communication.
- :code:`Instrument.control` getter calls :code:`Instrument.values`.
- :code:`Instrument.values` calls :code:`Instrument.ask`, which calls :code:`Instrument.write`, :code:`wait_for`, and :code:`read`.
- All protocol quirks of an instrument should be implemented overriding :code:`Instrument.write` and :code:`read`.
- :code:`Instrument.wait_until_read` implements waiting between writing and reading.
- reading/writing binary values is in the :code:`Adapter` class itself.
- :code:`PrologixAdapter` is now based on :code:`VISAAdapter`.
- :code:`SerialAdapter` improved to be more similar to :code:`VISAAdapter`: :code:`read`/:code:`write` use strings, :code:`read/write_bytes` bytes. - Support for termination characters added.
Instruments
-----------
- New Active Technologies AWG-401x (garzetti, 649)
- New Eurotest hpp_120_256_ieee (sansanda, 701)
- New HC Photonics crystal ovens TC038, TC038D (bmoneke, 621, 706)
- New HP 6632A/6633A/6634A power supplies (LongnoseRob, 651)
- New HP 8657B RF signal generator (LongnoseRob, 732)
- New Rohde&Schwarz HMP4040 power supply. (bleykauf, 582)
- New Siglent SPDxxxxX series Power Supplies (AidenDawn, 719)
- New Temptronic Thermostream devices (mroeleke, 368)
- New TEXIO PSW-360L30 Power Supply (LastStarDust, 698)
- New Thermostream ECO-560 (AidenDawn, 679)
- New Thermotron 3800 Oven (jcarbelbide, 606)
- Harmonize instruments' adapter argument (bmoneke, 674)
- Harmonize usage of :code:`shutdown` method (LongnoseRob, 739)
- Rework Adapter structure (bmoneke, 660)
- Add Protocol tests without hardware present (bilderbuchi, 634, bmoneke, 628, 635)
- Add Instruments and adapter protocol tests for adapter rework (bmoneke, 665)
- Add SR830 sync filter and reference source trigger (AsafYagoda, 630)
- Add Keithley6221 phase marker phase and line (AsafYagoda, 629)
- Add missing docstrings to Keithley 2306 battery simulator (AidenDawn, 720)
- Fix hcp instruments documentation (bmoneke, 671)
- Fix HPLegacyInstrument initializer API (bilderbuchi, 684)
- Fix Fwbell 5080 implementation (mcdo0486, 714)
- Fix broken documentation example. (bmoneke, 738)
- Fix typo in Keithley 2600 driver (mcdo0486, 615)
- Remove dynamic use of docstring from ATS545 and make more generic (AidenDawn, 685)
Automation
----------
- Add storing unitful experiment results (bmoneke, 642)
- Add storing conditions in file (CasperSchippers, 503)
GUI
---
- Add compatibility with Qt 6 (CasperSchippers, 688)
- Add spinbox functionality for IntegerParameter and FloatParameter (jarvas24, 656)
- Add "delete data file" button to the browser_item_menu (jarvas24, 654)
- Split windows.py into a folder with separate modules (mcdo0486, 593)
- Remove dependency on matplotlib (msmttchr, 622)
- Remove deprecated access to QtWidgets through QtGui (maederan201, 695)
Miscellaneous
-------------
- Update and extend documentation (bilderbuchi, 712, bmoneke, 655)
- Add PEP517 compatibility & dynamically obtaining a version number (bilderbuchi, 613)
- Add an example and documentation regarding using a foreign instrument (bmoneke, 647)
- Add black configuration (bleykauf, 683)
- Remove VISAAdapter.has_supported_version() as it is not needed anymore.
New Contributors
----------------
jcarbelbide, mroeleke, bmoneke, garzetti, AsafYagoda, AidenDawn, LastStarDust, sansanda
**Full Changelog**: https://github.com/pymeasure/pymeasure/compare/v0.10.0...v0.11.0