.. Copyright (C) European XFEL GmbH Schenefeld. All rights reserved. ************************** What's New in Karabo 2.3.4 ************************** The middlelayer framework table element recasts the values sent by the gui client. This is required as the client does send strings for any type of value. Detailed Merge-Log ================== - MDL: Safety cast on table values !3214 ************************** What's New in Karabo 2.3.2 ************************** An enhancement in the middlelayer proxy generation to enable the DeviceClone (multi topic communication). Detailed Merge-Log ================== - MDL: Proxy factory fits documentation !3166 ************************** What's New in Karabo 2.3.1 ************************** The GUI Client is made forward compatible with a new feature of the GUI server. In future versions the GUI server will send the host and port information to the client for display. Detailed Merge-Log ================== - GUI: Forward compatibility for init info from gui server !3140 ************************** What's New in Karabo 2.3.0 ************************** The **most relevant improvements** and fixes are: - GUI: The Graphical user interface becomes quicker and more user-friendly, e.g. device-provided scenes can be retrieved via double-click from the navigation- and project panel. - GUI: The scene toolbars of the SA1, SA2 and SA3 topics are coloured - GUI: Trendlines can be derived by double-click on a supported property widget in the scene or a property in the configurator - GUI: The **Karabo Cinema** allows to quickly load a scene from command line - GUI: First steps of configuration retrieval from the dataloggers (Only works with online devices) - GUI: Mandatory check on Nodes for configurator visualization !3121 - ikarabo: Gets a Macro API with functions like *showAlarms* and *showInterlocks* to show the respective alarm service information. - ikarabo: Devices can have interfaces and can be found via *listMotors*, *listCameras*, *listMultiAxisMotors*, *listTriggers* and *listProcessors* - *findDevices* and *findServers* are added and accept a matchPattern (string) to look for in the systemtopology - ikarabo: The overview of clients can be viewed with *getClients* - ikarabo: *getConfigurationFromPast* and *getSchemaFromPast* have been added to retrieve old configuration and schemas by providing a *timepoint* - ikarabo: The systemTopology can be provided with *getTopology* and the global *devices* was removed - MDL: The middlelayer API is significantly enhanced and uses now declared data types (casted as **numpy data types**) - MDL: The middle layer servers receive broadcasting messages only once, giving them a big performance and stability boost - MDL: The error messages (logs) have been adjusted so that e.g. the Python error stacktrace will be visible in the GUI - MDL: An important bug when overwriting properties was fixed (if a setter function was used in a decorator) - MDL: The new asynchronous **Python 3.6.6** syntax is officially supported - MDL: Several improvements to pipelining proxies including reconnect - MDL: Standard functions provided to load and save to XML (*saveToFile*, *loadFromFile*) - MDL: Much faster access to entries of the karabo data container Hash: up to a factor of 100 - MDL: The *DeviceNode* can accept a timeout parameter *timeout* to throw an error message if the proxy cannot be established within this time frame - C++/bound: In the bound/C++ framework the way to establish pipeline connections has been refactored to avoid situations where a connection could not be established - C++/bound: Ensure message ordering by chaining message execution. This means even more than in the past that slot calls must not take long! - C++: It is recommended to use the DeviceClient for pipeline management .. note:: The Python version has been finally updated to **3.6.6**! .. note:: The getConfigurationFromPast in ikarabo only returns a configuration! Detailed Merge-Log ================== bound/cpp core ++++++++++++++ - bound/cpp: Fix setNewOptions with hierarchical key !2871 - Fix pipeline with empty NDArray !2937 - FIX ImageData and GUI for detector images (stack of GRAY images) !2906 - Feature: add flip and rotation to ImageData !2900 - Add units to NDARRAY_ELEMENT !2888 - Add code coverage measurement for Python !2837 - Modification of the bind_weak function to allow to use it with methods returning a value !2933 - Add getDeviceSchemaNoWait to bound !2936 - Fix cpp/bound pipeline tests !2951 !2966 !2883 !2958 - Consistently send vector through pipe, even for EOS !2954 - C++: Give and id to input channels created by DeviceClient !2981 - Remove un-implemented operator + for Hash !2975 - Add interfaces in instanceInfo Hash !2962 - C++/bound: Hash::paths() add path to empty VectorHash !3009 - C++: Add missing mutex to and clean-up of OutputChannel !2984 - C++: Check max key length on binary serialization !3047 - C++: Report success of InputChannel::connect by adding a handler !2985 - Add processor interface to framework !3044 - More safety in python server when killed before really being alive. !2986 - cpp/bound: More detailed exception message in NDArray::getData !2957 - C++/bound: Ensure message ordering by chaining message execution !2974 - C++: Refactor connecting InputChannels !3043 - C++: DeviceClient now uses new SignalSlotable:asyncConnectInputChannel !3056 - Common: Add timeit decorator !3069 - C++/bound: message order per sender - One Strand is used per sender !3091 - FIX: Add logging support for table and vector of string1.4x format is not supported anymore !3049 - Fix C++ integration test on device locking !3059 - Refactor bound python server to ensure it shuts down !3102 - Possible fix for DataLogger disconnecting procedure core Devices ++++++++++++ - Make _RunConfigurator sources reconfigurable !2893 - Move "image" in node "data" for CameraInterface. !2914 - GUIServer: More information on failures in projectDB !2922 - C++: Give GuiServerDevice a state: INIT, ON and ERROR !2953 - Clean CentralLogging device- Give the device meaningful states INIT => ON (=> ERROR) !2955 - Give the project manager State.ON, State.INIT, State.ERROR !2959 - FEAT: Project Database manager restricts domains !2952 - FIX: DataLoggerManager clear queue on server death !2967 - Add missing import to project manager !3003 - Gui server handles pipeline data via DeviceClient !3007 - ProjectDB: use direct import !3008 - Read project db directly for items (Cinema capability) !2929 - Slow down DataLoggers instantiation !2935 - GUI Server: Provide GUI clients access to getConfigurationFromPast !3014 - Add camera interface to abstract camera !3099 - add interfaces to camerafsm !3104 - Remove variables for local storage from CameraInterface !3107 Dependencies and deployment +++++++++++++++++++++++++++ - DEPS: Fix small karabo develop bug !2872 - 'karabo-gterm' and 'karabo-xterm' return abort message if required terminal is not installed. !2938 - Upgrade for cppunit !2879 - Update pyzmq to version 17.0.0 !2863 - Upgrade for log4cpp !2880 - Add CodeCoverage configuration to Karabo build system. !2836 - Add coverage 4.5.1 to karabo dependencies !2884 - Python library for the Docker Engine API !2864 - Fix RTD's requirements in templates !2651 - Upgrade Python to 3.6.6 !2804 Middlelayer core ++++++++++++++++ - Common: Validate args decorator according to annotations !3073 - MDL: Update device template to Python 3.6 syntax !3068 - MDL: Remove not required vector attr check !3063 - MDL: finding devices and servers is case insensitive !3093 - MDL: Change iscoroutinefunction import !3116 - MDL: Pipelining proxies reconnect properly !3092 - MDL: Remove not required code !3098 - MDL: Only announce new schema if required in DeviceNode !3095 - MDL: Don't crack an output proxy without schema !3057 - MDL: Fix output channel with different port settings !3072 - MDL: prevent time.sleep usage in macros !3074 !3124 - MDL: Make sure the pipeline reconnect is done correctly !3079 - MDL: Middlelayer server can shutdown gracefully !3080 - MDL: Little refactor in pipeline !2868 - MDL: Provide possiblity to explicitly close outputchannel !2874 - MDL: Fix device node timestamp handling !2878 - MDL: Reconnect device server to timeServer !2877 - MDL: Always allow State UNKNOWN for state property in descriptor !2882 - MDL: Clean middlelayer_api: remove guiserver and do proper import !2887 - MDL: error check in call-once-alive added !2894 - MDL: Fix getDescriptors, filterByTags on proxies. Ignore ListOfNodes !2897 - MDL: Set default outputchannel policy to drop !2908 - MDL: Fix race condition in outputchannel !2889 - MDL: Fix pipeline case wait & copy !2909 - MDL: Add remote device to imports !2912 - MDL: Add unit to NDArray for proxies !2915 - FW: Add displayTypes constants !2891 - MDL: Fix schema cross test !2918 - MDL: Add save to and load from XML files !2921 - MDL: print MDL stack trace for real !2793 - MDL: Add Injectable to MDL imports !2940 - MDL: Fix Overwrite when using with setters !2961 - MDL: Temporarily increase alarm timeout !2970 - MDL: Fix attribute type description in schema !2963 - MDL: Fix current hash setting in DeviceNode !2989 - MDL: Make sure a new timestamp is attached to not compress events !2988 - MDL: Fix device client information in MDL !2990 - MDL: Use UInt64 for trainId, secs and fracs !3005 - MDL: IPython device align info and doNotCompressEvents timestamp !2994 - MDL: Fix device node being MANDATORY !3011 - MDL: Provide possilibity to set data and endofstream handler to pipeline proxies !3018 - MDL: Provide traceback as a single string and not as list of strings !3021 - MDL: Use declared data types !3033 - MDL: Added missing ArchivePolicy attribute !3054 - MDL: Support new syntax !3050 - MDL: Middlelayer servers receive broadcast messages only once !2907 - MDL: Port in output channel in middle layer API - MDL: Give DeviceNodes an optional timeout parameter !3031 - MDL: Make firstCompleted and allCompleted take into account karaboValues !3026 - MDL: Proxies reconnect their pipelines !3017 - MDL: fix saveToFile in current directory !3042 - MDL: Introduce attribute casting for vectors !3052 Graphical user interface ++++++++++++++++++++++++ - GUI: Enable backward compatibility for tool widgets !3135 - GUI: Fast forward in configuration view !3120 - GUI: Add additional case to listedit validator !3088 - GUI: Mandatory check on Nodes for configurator visualization !3121 - GUI: Check for binding in configuration retrieval !3065 - GUI: Remove a few flake8 complains !3067 - GUI: Add an extra QModelIndex protection to scene retrieval !3061 - GUI: Change documentation link to global docu !3062 - GUI: Provide option to cancel editing scenelink label !3090 - GUI: Do the macro sleep check in run_macro !3096 - GUI: Restrict subprojects to domain and not topic !3108 - GUI: Rework label model editing with TextEdit !3094 - GUI: Provide project names when having duplicated uuids !3101 - GUI: Compare online and offline configurations in the configurator !3103 - GUI: Make tool actions exclusive (checkable) !3112 - GUI: Check for uuid in project walking !3110 - GUI: Only allow offline configurations to be checked in the project !3105 - GUI: Refactor the LinkWidgets !3109 - GUI: fix configurationFromPast !3076 - GUI: Protect trendlines against -np.inf and np.inf !2870 - GUI: Open device scene links when maximized !2881 - GUI: Apply default configuration correctly to device, e.g. optional UNDEFINED values.!2711 - GUI: Add feature to edit the properties of the SceneLink - GUI: Fix about dialog documentation link !2904 - GUI: Rework QActions for non controller widgets. Change Scenelink !2903 - GUI: Establish session with project database when device comes up after connect !2910 - GUI: Gracefully close everything on closeEvent !2917 - GUI: Fix vector dialog with min and max Sizes !2920 - GUI: Bail out in saving project !2919 - GUI: Show device locked in configurator with color !2901 - GUI: Blindly copy old scene link target if unknown scene uuid !2924 - GUI: Add uuid tooltip to project !2926 - GUI: Restrict domain selection for subprojects !2927 - GUI: Show trashed project in project panel !2923 - GUI: Correct focus on edits in configurator !2928 - GUI: ProjectView gets uuid selection clipboard !2949 - GUI: Sanitize macro scene widgets in save as !2942 - GUI: Fix list edit validator !2943 - GUI: Make trashed projects loadable !2946 - GUI: Remove trashing option from Load Project dialog !2945 - GUI: Remove 'Save as' for projects ... !2944 - FEAT: GUI server can refuse old GUI clients !2947 - GUI: Protect plots from awkwardly high or low values !2964 - FIX: typo in Version unit tests !2965 - GUI: The cinema !2956 - GUI: load topic's group by default if available using KaraboSettings !2934 - GUI: Do not allow users to use spaces in project's objects names !2925 - GUI: Project dialog fix column size !2979 - GUI: Feature replace scene content !2972 - GUI: Declare trash !2982 - GUI: Introduce configuration singleton !2968 - GUI: Delete KaraboSettings from GUI !2993 - GUI: Modify GUI message when connection is closed !3001 - GUI: Make readOnly parameters visible before instantiation !3000 - GUI sparkline: Protect against division by zero !2987 - GUI: Show a better message when the scene was not found in the project !3010 - GUI: Implement processing delay lamp !3002 - GUI: Retrieve scenes via double click on project and topology view !2992 - GUI: Be more cautious when getting scene from navigation panel !3016 - GUI: Groups and names in configuration singleton !2997 - GUI: Show additional logging info in the log panel !3022 - GUI: Check for device type in navigation panel on scene request !3023 - GUI: Enable double-click on LogPanel item for instance lookup !3020 - GUI: Move db token to configuration singleton !3024 - GUI: Implement toolbar coloring in scenes according to SASE's !2999 - GUI: Fix table element bug in INITONLY with options !3025 - GUI: close all scenes on disconnect !3032 - GUI: getConfigurationFromPast !3015 - GUI: Change state color widget feature of showing text !3006 - GUI: Provide trendline on double click for controllers !3040 - GUI: Provide trendline on double click in configurator !3041 - GUI: Simplify trashed message when opening or trashing a project !3045 - GUI: Add image scene to generic scenes !3048 - GUI: IPython appears as device !3051 - GUI: Set the tooltip according to value in colorbool widget !3058 ikarabo & Macro API +++++++++++++++++++ - ikarabo: findServers by matchPattern !2978 - ikarabo: Correct jupyter client information !2996 - ikarabo: Remove 'devices' and provide getTopology !2991 - ikarabo: add getConfigurationFromPast and getSchemaFromPast !3013 - ikarabo: findDevices in ikarabo !2977 - ikarabo: refactor findDevices !2983 - ikarabo: getClients feature !2980 - Macro API: showAlarms from Alarm service !2960 - Macro API: showInterlocks !2971 - Macro API: Add device interfaces !2973 - Macro API: Split MultiAxisMotors and Motors in topology listing !3030 - Macro API: Add listProcessor !3046 - More tests in Macro API !2995