Release Notes – JAnuary 2024
CDP Framework v4.12
Highlights in the CDP Framework release
Intelligent Edge
- No-code pipelines to forward data to cloud
- Store and forward to safeguard unstable connections
- Forward any variable or event/alarm
- Tag conversion from internal variable names to a structured naming hierarchy and tag standard
- Add metadata to variables and events/alarms (units, description …)
- Multiple pipeline support (e.g. continuous spare upload, high-speed event-triggered upload)
- Upload to any cloud and simultaneously to multiple clouds
Intelligent Cloud
- No-code pipelines to receive data from any Edge system
- Support variables (tags) and events/alarm
- Support meta data
- No pre-configuration required of Edge systems or data
- Pre-integrated support and pipelines for InfluxDb
- For CDP Edge systems, the possibility to open system UI in cloud
- Deploy cloud applications directly from CDP Studio
- Real-time update/modification of cloud applications
• UI/HMI Designer – Major updates
- New node widgets: Table, Tree and List
- New Node container widget, a powerful widget that loads a UI file for every matching object it finds on a specified target routing
- Node widgets will adapt to the content in the control system
- Create UI’s that adapt to system configurations (adaptive UIs)
- Support for bright, day, dusk and night themes for the Open Bridge 5.0 guidelines
- Single connection from the control system to a widget container using relative routing inside the widget container
- Web-UI now supports Events and Alarms
- Scripts and template files to create update OpenBridge themes with colours provided in scss files
- Web UI application authentications via external reverse HTTP proxies
Other highlights
- Database Read and Write operators
- New JSONQuery operator, allows to query any value from the input JSON string
- MQTTClient now supports MQTT v5 request->response pattern
- Events/alarms can now be logged
- String support in all IO servers and logger
- Large packet support inside an application
- RaspberryPi 5 now supported
- Cyber Security operator login screen can be customized
- Angles2Rotation and Rotation2Angles port conversion operators added to Kinematics library
- New examples and tutorials
Improvements and corrections
- Webassembly web UI: allow overriding widget properties by adding cdpGuiPropertyOverrides parameter to the address bar
- Updated printouts on Linux regarding limits.conf etc
- To make sure communication recovers after a failure, Modbus UDP will now close and reopen the socket when communication fails, in the same way as Modbus TCP does it
- There is now additional option in MQTTClient to ignore some broker TLS certificate errors and/or hostname mismatch
- The Modbus slave now closes and reopens the transport if no data is received within the configured timeout
- StudioAPIServer HTTP response headers can now be customized
- String arguments in binary messages can be now up to 4GB in length
- ServiceBlocks now share workers with stack size limit provided by CDPEngine. Workers can be configured under CDPEngine
- Sequencer BasicBock States now support Chai script based RunScript to execute script instead of operator or Operations to calculate output argument values
- PIDOperator MinI and MaxI parameters with zero (initial) value do not limit the I (integral) part of the operator any more
- Persistency can now be enabled in MQTTBroker to support retained messages and subscriptions over MQTTBroker application restarts
- On packet loss/failure in Modbus/UDP; resend up to RetryCount times before closing/opening the socket.
- New Angles2Rotation and Rotation2Angles port conversion operators added to Kinematics library
- Neq JSONQuery is an operator, that allows to query any value from the input JSON string using JSON Pointer syntax
- MQTTClient now takes benefit of the MQTT v5 Subscription Identifier feature to eliminate duplicate payload receive for overlapping wildcard subscriptions
- MQTTClient now supports MQTT v5 request->response pattern
- MQTTBroker can now be configured to allow connections only with TLS client certificates (issued by know to MQTTBroker CA) presented
- Moved Wago PFC Image installation documentation to Toolkit documentation
- ModbusIO: If a master packet goes offline due to a communication error, all the packets with that slaveID are now marked as offline
- ModbusIO: Added support for Trigger packets, that are only sent by using the trigger mechanism.
- Modbus Packet now goes Offline only when a failure occurs and RetryCount is reached or exceeded
- Make CDP Signal Graph Widget show full resolution data (it used to depend on CDP2Qt fs which was the sampling rate)
- Made Alarm and AlarmOperator Set property periodic to allow same cycle usage of alarms Set value in logic
- InfluxDatastore: make data format user configurable: now CDPLogger tags can be used to split data between measurements and set custom field names
- Increased StudioAPI value queue to 8000 values per process
- Improved performance for MQTTIO message-based publish and receive
- Fixed the slide indicator to take additional offset into account for all knobs. Previously, offset added due to numbers, postfix, or the end margin property would only affect the first knob, making the additional knobs show at wrong values
- Fixed the fillStartValue property in the slider to display correctly in Design mode when it is not configured
- Fixed setting AlarmOperator Level and LimitType correctly based on the configuration setting
- Fixed Sequencer crash when no arguments in payload when some are expected
- Fixed Sequencer BasicBlock Operation Done emit to complete the emit at the same time to always provide correct output even data
- Fixed SendMessage without parameters and TextCommand set, to correctly send textCommand
- Fixed problem when alarm texts were sometimes showing wrong (current value instead of the alarm trigger time value) when broadcasted over StudioAPI protocol
- Fixed periodic CDPProperty value propagation under large amount of continuously changing routings at fast pace. Also corrected CDPProperty KeepLastValue behavior to never flicker to zero between values
- Fixed OPC UA Discoverer did not find discover remote OPC UA systems with invalid characters in application name
- Fixed Online/Offline handling in UDPIOServer
- Fixed LocalCommandRun sometimes leaved zombie processes open on Linux targets, in cases where non-existing command was configured to run
- Fixed issue with not setting transmission error if no communication on startup.
- Fixed issue where adding 1DI and 8AI modules when packet FunctionCode was ReadholdingRegisters caused a configuration error
- Fixed error in Description of FunctionCodes in Modbus Packets where ReadHoldingRegisters and ReadInputRegisters had swapped function code
- Fixed CDPPort handling of routing with quotation marks in it
- Fixed CANOpenIO shadowing of CAN Status signal by Status Property by renaming the Status signal to CANStatus
- Fixed bugs related to wrong dialog position on the first load, when loaded as an external window, and when configured without animation
- Fixed an error in the calculated memory-layout in ModbusIO when ModuleOrdering=AsConfigured and two 16 bit digital modules were placed after eachother
- Fix not possible to fetch online changes of unit attribute
- Fix MQTTIO not to block publishing in cases where invalid message-based publish request has been received
- Fix DatabaseGraphWidget signalContentType=Path not working anymore
- Fix CDPPort not being able to connect to NMEA0183IO.SendData
- Fix CDPPort giving a broken routing alarm when clearing the Routing property (an empty Routing should not be considered an error)
- Fix Activate() being called twice on operators and service blocks that are added directly under the application node
- ExternalControlIO HTTPRequest and InfluxDB now support loading common public certificate issuer (CA) certificates from the operating system (OS), that allows to connect securely to public internet services (HTTPS) without configuring the TLS CA parameters manually
- Enable gzip compression in InfluxDatastore to reduce network bandwidth usage
- Configurator tool evaluate expression resolver uses now more powerful ChaiScript engine with string type and C++-like logical expressions and functions support
- Changed behavior: ModbusIO now defaults to KeepLastValueOnDisconnect=0. If IO disconnects, Input=”1″ channels will be set to 0
- Change the default value of KeepLastValueOnDisconnect property to be 0 instead of 1.Meaning the routed values drop to 0 when disconnected, instead of keeping their last known value
- CDPSim: Fix routed SimSignals not getting routed value after simulator reset
- CDPSim: Allow inheriting non-code models from SimPort
- CDPLoggerLib: Add LogServer component to publish LogWriter data to Database Graph widget and CDP Studio Analyze mode. It can also be used to publish custom data implementing the Datastore API
- CDPLogger: When using InfluxDatastore and the InfluxDB server is not up when the logger is started, it now keeps trying to connect until the server comes up (it used to try only once and then give up)
- CDPLogger: support saving tags for logged values as metadata. By default, now Unit and Description are saved for each logged value
- CDPLogger: fix performance regression
- CDPLogger: add support for logging string values
- CDPEventList UI widget is now supported also in Web UI-s (Wasm applications)
- CDP IOServers (like ExternalControlIO, MQTTIO, OPC UA) now support I/O-channels of type with unlimited (dynamically adjusting) length. Also the I/O-channel can be fixed to any size, where fixed-size packets are preferred in network protocol , for example, in ModbusIO or CANOpenIO, UDPIO, etc
- CDP application events (like alarms set or cleared) can now be listened and any action can be hooked to them using CDPEventListener sequencer block
- Blacklist 00-11-22-33-44-55-00-00 MAC address due to VPN software using it as fake address. Let users to enter MAC manually when licensing if that is the case
- Binary parameters, containing zeros or any other characters, can be no sent through with the the CDP messages
- Added tutorial “How To Set Up Google Authentication Using HTTP Reverse Proxy”
- Added support in the Container for target routing, allowing child widgets to use relative routing. The functionality was also added to the UI Loader Widget and in a new lightweight RoutingContainer widget
- The Ui Loader Widget now supports setting the initial replacement string using a dynamic int property
- Added support in combo box and text selector to select index by string slot
- Added support for virtual keyboard in combo boxes that are configured to be editable
- Added support for position map in the node container widget
- Added support for Output Disable in udpio
- Added support for NMEA-450 header in front of MRU Normal header
- Added support for CDP Web UI application authentications via external reverse HTTP proxies
- Added Sequencer.CSVPlayer, Sequencer.FileReader and Sequencer.FileWriter. Added WagoCC100IO with documentation.
- Added Node Tree widget for displaying/selecting node data in GUI
- Added Node List widget for displaying/selecting node data in GUI
- Added Node Container widget for node-based UI file tiling in GUI applications
- Added JSONEncode and JSONDecode operators to compose and decompose data in JSON format
- Added fixed length binary encoding support for Argument in addition to default Run Length Encoding used so far to allow more flexible message composition containing strings in No-Code programming.
- Added database GUI example
- Added CDPTags to CDPBaseObject to support tagging used in Edge/Cloud pipelines. Introduced %tagname% variable support in Alarm texts for in scope tags
- Add support to customize the login screen
- Add support for Raspberry Pi 5
- Add RolePermissions support to GUI applications. For that switched backend communication protocol to StudioAPI. The old Messenger protocol (that bypassed RolePermissions) can be reenabled in the CDP2Qt component (visible when Hide Internal Items fitler is disabled) by changing the Protocol parameter
- Add event logging support to CDPLogger
- Add certificate acceptance dialog to GUI/WASM
- Add CDPLogger tags to InfluxDB main measurement to make it easier to write queries for logged values.
- Updated OpenSSL to latest available
- Moved Wago PFC Image installation documentation to Toolkit documentation
Updates and hotfixes:
Update 4.12.8 November 2024
- Fix CDP internal connections (including CDPLogger) when StudioAPIServer is configured to listen on all interfaces
- HMI: Added menu button icon style to enable reading multiple icons from one file.
- HMI: Updated the styling of frame borders in all themes to avoid borders from showing when set to hide.
- HMI: Updated the create theme script in open bridge to simplify selecting different .scss files
- HMI: Container widgets in the UI now have slot functions for real-time control of target routing. The routing property has also been updated to automatically scan and adjust relative routing in child widgets, allowing for dynamic control of target routing.
- HMI: The popup dialog button has a new slot for setting target routing and displaying the dialog in one step.
- HMI: The UI Loader Widget has a new property for controlling when to load the UI file.
- HMI: The dialog cache feature in the Popup Dialog Button has been fixed. In addition, the button has been updated to refresh any relative routings in the dialog children if it can resolve a full target routing.
- HMI: The dialog now supports alignment to the left or right of its trigger button using the new animEnd property.
- HMI: Two new properties allow for offsetting the end position, enabling custom spacing for shadows and other elements.
- HMI: The dialog’s position updates dynamically when the main window is resized.
- HMI: A new property controls whether to reserve space for the title when the title text is empty, allowing custom elements to override the header.
- HMI: The dialog automatically adjusts its position to remain within the main window’s bounds
- HMI: Top menu buttons in the Open Bridge examples and wizards now use the new dialog features.
- HMI: The line colors in the Open Bridge graph examples are now styled for different themes.
- HMI: Meter widgets for wind and ship movement in the Open Bridge examples are now fully styled.
- HMI: Weather elements have been added to the Open Bridge Conning example.
Update 4.12.7 November 2024
- Fix crash when setting CDPParameterTimer value outside Min/Max range
- Fix multi-app connection not working when setting a blank NetworkInterface to StudioAPIServer
- Fixed routing parsing to enable relative routings inside the stacked widget
- UDPIOServer: Fixed bug that caused alarm to be set each period when no packets received
- WagoPFCIOServer: Fixed bug with non-wago implementation that caused alarm to be set each period
- ModbusIO: fix, if a node was offline and not enabled, it was impossible to clear the transmission error alarm. Added ‘InitialFault’ property used to set whether transmission error should be set before the packet has confirmed communication ok. Default = 1 = old behavior
Update 4.12.6 June 2024
- Fix crash when deleting an OperatorContainer containing CDPPorts during runtime
- Fixed issue where some values could show incorrectly in a GUI at startup when using the studioapi interface
- Fixed relative routing in updated WebUI/WASM when configured on setCdpVisibleRouting properties
- Added support for RevolutionPIIO Connect4, ConnectSE and CoreSE modules
- Fix CDP StudioAPIServer could stop when a user was disconnected right after a query was sent
- Disallow underscore in model names
- Fix GUI application printing at startup “Failed to connect…” for all cross-application routings whether they were valid or not
Hotfix 4.12.5 June 2024
- Fix rare deadlock on startup when the system sends lots of messages
- Fix spinbox not sending values on zero precision
- Fix, CDP property values were sometimes not shown or updated correctly by GUI frontend
- Fixed wrong ModelTypeClass in CDPAlarm model xml-file (now possible to override CDPAlarm).
- Fix login dialog not showing in native GUI applications
- Fix, UI Loader Widget issue preventing the routing replacement feature
- Fixed TextFileWriter where the Append argument could be misinterpreted.
Hotfix 4.12.4 April 2024
- WebUI, fix crash when used with node widgets and multiple applications
- ModbusIO slave, fixed to handle data larger than max packet size (multiple requests in one continuous time-uninterrupted stream)
- Fix memory leak in CDPLogger event logger
- Fix node widgets not always working in WebUI
- WebUI, fix memory access error when reconnecting to an application after application restart
- WebUI, add auto-login support – this allows public read-only access to parts of a system
- Fix CDP StudioAPIServer could stop if a user was disconnected exactly at the same time as some CDP events were raised
Hotfix 4.12.3 April 2024
- ModbusIO: Fixed issue that StringChannels in ModbusMaster ReadHoldingRegisters packets did not work.
- OPC UA, fix discovery for devices that return node lists split into multiple responses.
- OPC UA Client is now able to load custom data types from OPC UA DataTypes node-tree
- CANopen: Fixed suspend/activate so it works with CANopen slave implementation (previously, nodes would not come online again after suspending and then activating)
Hotfix 4.12.2 March 2024
- Fixed an issue where the UDPTransport/TCPTransport IsOpen() API function didn’t test additional conditions where the socket could not be connected. This caused misbehaviour in ModbusIO masters in some cases
- Fix INodeBrowser / CDP Browser not updating values
- OPC UA Client now creates monitoring items under one, shared OPC UA subscription for all ClientVariableNodes with the same PublishingInterval
- Fixed a minor UI issue in the menu button that caused it to skip the icon for the checked state if it was equal to normal
- Fixed issue with cross-application string routing value updates
- CANopen: Fixed suspend/activate so it works with CANopen slave implementation (previously, nodes would not come online again after suspending and then activating)
- Fixed the animation property in GUI dialogues
- Fixed the logged-in signal in GUI to also trigger on the first login
- Added BAM alarm icons for the open bridge themes, updated existing themes, and added support in the alarm list to switch icons when a new theme is selected
Update 4.12.1 February 2024
- New ARM64-bit toolkit
- UI, updated theme names and reordered themes in the selector dialog
- UI, the Open Bridge wizard and examples now include a dialog allowing you to switch between all Open Bridge colour palettes
- UI, fix NodeTree widget to show columns other than the default ones
- GPIOServer now uses the new API to control the Linux GPIO-s, compatible with Raspberry Pi 5
- Fix StudioAPIServer ValueQueue Overload alarm Timeout property not working
- UI, fix styling issues in the Event List and its Event Info dialog. The fixes include styling to look identical to the Node Table, row heights, scrolling, and documentation describing the styling of properties like coloursInList
- New Example, Sending Telemetry to Ubidots
- ModbusIO: Changed packet status properties to be periodic instead of event-based
Release Notes – March 2023
CDP Framework v4.11.2
Highlights in the CDP Framework release
- Sequencer Framework supports IEC-61499 derived event-based distributed computing with extensions to define cyclic and hybrid blocks with the same Framework. Sequencer Framework supports both no-code and code-based new block creation
- Added the new standard for maritime bridge systems UI theme: Open Bridge together with wizards, widgets, and examples
- Improved DHChain to support for several dynamically addable velocity-related arguments and ports for forward and inverse velocity kinematics and maximum speed limitation. Added also moving and rotating constraint support for any link
- Total rewrite of the Design Mode manual and widget documentation
- Several updates to widgets functions and themes
- New SCADA and for using Kinematics to Motion-Compensate Crane on a Moving Platform examples
Improvements
- Fixed spinbox and combo box widgets to handle disabled state on startup.
- Fixed spin box to handle button clicks outside of range without resetting to zero also when routing is not set, not to allow values when maxValue default by switching the min and max in num pad from int to double, to set max or min value instead of discarding when buttons try to set a value that is out of range and to support the wrapping property
- Fixed spin box buttons to allow negative values.
- Fix graph, not able to plot high resolution (e.g. 10 000 Hz) logger data
- Fixed RecieveMessage issue with UI sent a message when using empty TextCommand
- Fixed line edit to skip reset to routed value when configured to update on slot only
- Updated the disabled state for input widgets in all themes and added properties to configure transparency in the disabled state for widgets that do not have separate graphics when disabled
- Updates for compatibility with newer CDP Studio code generator
- TypeHint=Selection now allows to add descriptions to be added for simple value selections (for value types other than string)
- Throw an error alarm message when RegexOperator Expression is not filled and when Evaluate has incompatible argument names.
- String type Argument and Signal data are now propagated the same way as numeric values are in local applications – on the same cycle and without size limit
- MQTT and TLS protocol errors are reported into MQTTIOClient application output even when Debug level is not set
- Improved ModbusIO Node Online/Offline handling. A node is now online as long as it is enabled and receives valid (non-exception) responses on requests
- Fixed, when a Modbus TCP packet, which got a modbus exception, could block sending of packets that were defined after it in the configuration. The blocking would last until the modbus exception for that packet was no longer present
- Fixed modbusio online checking where TCP packets triggered at a low frequency caused the connection to close and reopen
- Fixed modbus slave that could cause non-written data in a packet to become 0
- Fixed an issue with WagoPFCIO using an incorrect NetworkConvert setting
- Fixed Weather tutorial and example to accept negative temperatures.
- Fixed connecting from ports where one ports name is the start of the second port
- Fix single cycle delay of non-routed input value propagation in OperatorContainer.
- Fix Matrix::Print() printing timestamp in front of every number making the result unreadable
- CDP Simulator: improve SimPort usability on Block Diagram by deriving Connection node Input attribute from SimSignal Input (used to be they had to have matching configurations done manually)
- CDP Simulator: fix routing values from SimSignals which are inside SimPorts and fix slow data propagation between SimSignals and CDPOperators
- Added support to code-based Sequencer blocks for writing asynchronous service blocks
- Added KeepLastChangeOnDisconnect Argument to packets to make it possible to control if values should be kept to the last value or go to zero when the packet goes offline
Updates and hotfixes:
Update 4.11.13 November 2024
- Fix crash when setting CDPParameterTimer value outside Min/Max range
- UDPIOServer: Fixed bug that caused alarm to be set each period when no packets received
- WagoPFCIOServer: Fixed bug with non-wago implementation that caused alarm to be set each period
- ModbusIO: fix, if a node was offline and not enabled, it was impossible to clear the transmission error alarm. Added ‘InitialFault’ property used to set whether transmission error should be set before the packet has confirmed communication ok. Default = 1 = old behavior
Hotfix 4.11.12 June 2024
- Fix CDP StudioAPIServer could stop when a user was disconnected right after a query was sent
- Disallow underscore in model names
- Fix rare deadlock on startup when the system sends a lot of messages
Hotix 4.11.11 April 2024
- ModbusIO slave, fixed to handle data larger than max packet size (multiple requests in one continuous time-uninterrupted stream)
- Fix CDP StudioAPIServer could stop if a user was disconnected exactly at the same time as some CDP events were raised
- CANopen: Fixed suspend/activate so it works with CANopen slave implementation (previously, nodes would not come online again after suspending and then activating)
Update 4.11.10 March 2024
- Fixed an issue where the UDPTransport/TCPTransport IsOpen() API function didn’t test additional conditions where the socket could not be connected. This caused misbehaviour in ModbusIO masters in some cases
- CANopen: Fixed suspend/activate so it works with CANopen slave implementation (previously, nodes would not come online again after suspending and then activating)
Update 4.11.9 February 2024
- Fix StudioAPIServer ValueQueue Overload alarm Timeout property not working
- ModbusIO: Fix if transport->Read() returned 0 bytes, the I/O server could use a lot of CPU
Update 4.11.8 January 2024
- Sequencer BasicBock States now supports ChaiScript-based RunScript to execute scripts instead of operators or Operations to calculate output argument values
- Sequencer block, added InnerArgument and InnerArgumentOut to support non-block IO arguments
- Fix data propagation for very fast event sequences
- PIDOperator MinI and MaxI parameters with zero (initial) values no longer not limit the I (integral) part of the operator
- Modbus, if a master packet goes offline due to a communication error, all the packets with that slaveID are now marked as offline
- Modbus, added support for Trigger packets, that are only sent by using the trigger mechanism
- ModBus, fixed the issue were adding 1DI and 8AI modules when packet FunctionCode was ReadholdingRegisters caused a configuration error
- Modbus, fixed an error in the calculated memory-layout when ModuleOrdering=AsConfigured and two 16-bit digital modules were placed after each other
- CDPLogger, improve database size limiting performance
- Fix CDPPort not being able to connect to NMEA0183IO.SendData
- Fixed Sequencer BasicBlock Operation Done emit to complete the emit at the same time to always provide correct output even data
- Increased StudioAPI value queue to 8000 values per process.
Update 4.11.7 September 2023
- CDPLogger: fix performance regression
- Modbus slave now closes and reopens the transport if no data is received within the configured timeout
- Modbus/UDP, on packet loss/failure; resend up to RetryCount times before closing/opening the socket and packet only goes Offline when a failure occurs and RetryCount is reached or exceeded.
- Fixed SendMessage without parameters and TextCommand set, to correctly send textCommand.
- CDPSim: Fix routed SimSignals not getting routed value after simulator reset.
- CDPSim: Allow inheriting non-code models from SimPort
- Fix MQTTIO not to block publishing in cases where invalid message-based publish request has been received
- Fixed periodic CDPProperty value propagation under large amount of continuously changing routings at fast pace and corrected CDPProperty KeepLastValue behavior to never flicker to zero between values.
Hotifx 4.11.6 June 2023
- Added support for NMEA-450 header in front of MRU Normal header
- To ensure communication recovers after a failure, Modbus UDP will now close and reopen the socket when communication fails
- Fixed issue with not setting transmission error if no communication on startup.
- PortMUX: Support reverse proxy for values as well. This means feedback signals from output port are propagated to all input ports.
- PortDEMUX: Add option for propagating values to all output ports.
- Fix CDP crashing when event does not send any text argument
Hotifx 4.11.5 April 2023
- ModBus: Fixed regression that caused byte-sized channels to be incorrectly swapped
- CDPLogger: Fix bug causing data extraction to ignore the query limit argument and overload the application
- CDP Simulator: Make non-routed input SimSignals save their value across application reboot
Hotifx 4.11.4 March 2023
- Fixed alarm operator’s status-propagation to component parent
Update 4.11.3 March 2023
- Fix, Slider widget now updating value when clicking outside the knob
- New custom graphics UI example and tutorial
- Fix, AlignOnWordBoundary could cause a faulty mapping of digital I/O
- Fix, a permanently suspended component could cause high processing time for the CDPEventSubscriber component in rear cases
- Fix, KeepLastValueOnDisconnect handling in ModbusIO so it is read and written correctly
- Fix NetworkTransport StudioAPI structure spamming on Open/Close
- Fix, periodic gaps in CDPLogger log could occur if deleting old records was slow when limiting database size was configured
- Improve automatic reconnect of CDPLogger to also work when the connection is temporarily lost but the remote application itself was not restarted
- Improve performance of the CDPLogger dbextractor tool when extracting only by date with no data filtering or compression
Release Notes – october 2022
CDP Framework v4.11
Highlights in the CDP Framework release
- A new Kinematics design module for forward and reverse kinematics supporting Denavit–Hartenberg chain is used to simulate the behaviour of kinematic link chains. This is very useful when designing systems with robotic arms, cranes or other systems with a chain of moving arms. The Kinematics editor (viewer) shows the system graphically
- Automatic test script enhancements, the configurator command-line (CLI) tool test sections, in addition to simple node value assertions, now more complex value test expressions can be used
- New Database Extractor Tool (under the tools folder) allows you to extract a small part of the stored data into a separate file from a potentially very large database file. Very convenient for remote service and maintenance or incident analysis
- Multi-language support and translation; added tools to extract translatable text from a system and merge multi-language texts. Language can be changed by an operator run-time
- Added support for Azure direct method handling to MQTT
- EQ and NE Operators now support string type. The Out-argument is changed from T to bool
User interface (UI / HMI) enhancements
- Set any widget property from the control system by adding a dynamic routing property for it
- The stacked widget now supports showing its pages in a slideshow. It can also be configured to reset to first page every time the widget becomes visible
- The slider widget now supports sending values when being moved and returns to the centre point (minValue if fillStartValue has not been changed) when released (joystick mode). Set cdpsend to onMoveAndRelease
- Web UI: CDP application IP and port can now be customized using Javascript
- Possibility to add an overlay over a container that can be enabled from the control system (by a routed value). Useful to overlay a grey colour over a container if the subsystem is offline or a red colour if there is a critical alarm
- The stacked widget now supports showing its pages in a slideshow. It can also be configured to reset to first page every time the widget becomes visible
- The slider widget now supports sending values when being moved and returns to the centre point (minValue if fillStartValue has not been changed) when released (joystick mode). Set cdpsend to onMoveAndRelease
- Web UI: CDP application IP and port can now be customized using Javascript
- Possibility to add an overlay over a container that can be enabled from the control system (by a routed value). Useful to overlay a grey colour over a container if the subsystem is offline or a red colour if there is a critical alarm
- The button and signal selector widget that can be used to select signals to plot in the database graph now supports search, useful for service engineers to plot any signal in the system from a system operator display
Improvements
- Note: Removed automation_deprecated. Old projects should be upgraded to use operators from ‘Automation’ instead.
- TextCommand CDP messages and CDPSignal routable value maximum length is increased up to 925 bytes
- Support operator== with string literals for CDPSignals and Arguments
- Reduced overall CPU load for data propagation between components and operators in the same ThreadGroup and Priority
- Reduce unnecessary XML changes when running a CDP application to reduce the amount of differences visible in version control tools. That includes not saving programmatic updates to CDPAlarm Text and StudioAPIServer active IP and port
- Reduce CDPLogger CPU usage when using a lower PeriodicLogFrequency and add an alarm which will be triggered when the logger must drop samples because of an overload
- The number of parent levels to search from can now be limited by prefixing type names with the corresponding number of dots in ScopedNode and ScopedNodeList TypeHint.
- New TypeHint RoutingList is added to CDP model syntax, which allows multiple routings to be connected to one object
- Make StudioAPIServer component listen on all network interfaces when NetworkInterface property is set to an empty string
- Make CDP Browser and WASM web UI apps use high-resolution icons on high-DPI monitors
- Intro 2 example is now using yr.no REST service (instead of metaweather.com)
- Improved Modbus documentation to make it clearer how the Modbus protocol works
- Implemented ‘AddNodeAddress’ setting in CANIO TPDO,RPDO and Object Dictionary Entries to make it easy to set up automatic value-adjustment relative to CAN node address for the selected items
- Updated spin box to also support showing out of range values
- CDPPort connection propagation can now be controlled by separate connect property
- Alarm event re-reporting is now handled by CDPEventNode
- Added signals to CDPEventNode to keep track of Unack, Set and UnackSet alarms
- Updated CDPBaselabel setWidgetStyle to refresh styleSheet.
- Updated CDPBaselabel properties to be editable no matter the stylingType.
- Added feature in the slider widget for allowing to paint fill before the background. This allows filling in patterns and shapes by having transparent sections in the background
- Added OperatorContainer to allow creating better design hierarchy when using operators in the same scheduling context
- Added CDP message based triggering support to MQTTClient (see SendOnMessage and OnReceiveMessage in MQTTIO documentation).
- Added MessageTransform and MessageRegexProxy POSIX string value matching and transforming operators
- Add string support to several CDP Operators
- Add the example “How to use anti-sway on a crane”
- Added Custom IOServer wizard, example, and documentation. Updated Documentation for IOServer, ChannelManager, and Transport
- Use static linking of libraries for the ‘configurator’ tool included with CDP to make running it more convenient
- Fixed widgets max/min handling to avoid race conditions when routed
- Fixed widget dialogs to take global position into account when having multiple screens and no parent. Also, updated the translucentBg property to hide the window frame when true and having no parent
- Fixed running application LogURL log file can now be opened in a browser also on Windows controllers
- Fixed values TypeHint being applied to all other properties in the node
- Fixed relative routing to work when using the trigger attribute
- Fixed a bug in TCPTransport that in some cases caused a hang on application exit
- Fixed CDPProperty flag automatic loading from XML model tree in online mode at application start-up
- Fix offline value feature to work with widgets that can support text
- Fix node visibility flag (Important, Internal, etc) reading from complex model structure in online mode
- Fix issues with dialog startup animation and moving
- Fix header to include paths in the class documentation
- Fix the meters widget causing GUI freeze when scaling down texts
- Fix Web GUI failing to load resources with special characters in their name
- Fix PriorityEncoder IgnoreZeroValues option for double types small and negative values
- Fix OPC UA Client write permissions to always show correctly
- Corrected documentation regarding conditional breakpoints
- Fixed CDPBaselabel precision to update displayed value directly
- Fixed CDPBaselabel setValue to avoid showing a negative sign when visible digits are zero
- Added CDPBaselabel property to make it possible to convert label text to upper or lower case
- Fixed the wheel event in the slider to be disabled during joystick mode as it shouldn’t be possible to use the wheel in this mode.
Updates and hotfixes:
Update 4.11.1 November 2022
- Fixed TCPTransport issue causing possible application hang on exit
- Fixed seldom GUI startup issue where widgets did not get initial value
- Fix issue with ModbusIO TCP resend
- Fix Port name collision in OperatorContainer based structures with Ports
Release Notes – november 2021
CDP Framework v4.10
Highlights in the CDP Framework release
- Cyber security support according to IEC 62443-3-3 and maritime specific DNV RUSHIP Part 6, Chapter 5, Section 21 Cyber Security for ships. This includes amongst others user and user roles, authentication for accessing any system object or accessing any system API, encryption, security patch updates and vulnerability fixes, file access limitations etc
- Automatic conversion of drag-and-drop UI to web-UI supported by any web browser with web assembly. Added support for small screen with automatic layout changes based on width, expand vertically and show/hide container.
- Added support for Revolution Pi Flat, RevPi Compact and RevPi Connect in addition to the RevPi Core
- New functionality in Event List to avoid acknowledging not visible alarms by mistake for general safety and this is a maritime requirement
- New examples, cyber security, Web UI with web assembly, Simple redundancy and QML/QtQuick
Improvements
- Update MariaDB client to support newer versions of MariaDB and MySQL databases
- Added support in LineEdit for disabling auto convert from string to double.
- Some operators (mathematical functions) are updated allowing them to be used in CDPChannels
- Update jQuery in web gui template
- The Value of a StateVariable in CDP Simulator is now possible to set from CDP Studio and via SetProperty-msg
- The Com Widget now includes support for emitting string values
- RevolutionPi I/O no longer writes to the config.rsc file.
- Removed memory leak from Activate/Suspend sequence in StudioAPIServer
- Remove routings of internal implementation objects from CDP RoutingTracker table
- Reduce idle CPU usage of CDPLogger’s built-in database server
- QQuickWidget: fall back to software rendering when OpenGL version is too old (min 2.1)
- New property TypeHints like Flags, ScopedNode and ScopedNodeList are added. See CDP Model syntax for more info
- ModbusIO: In a special case, some digital modules >8 bit were aligned incorrectly in the Modbus mapping image
- Make it possible to inherit operators
- Fix sending TextCommand messages from Studio where no parameters are included
- Fix not showing messages in Studio for objects not able to receive them
- Library build date/time is now updated
- InfluxDB bow support API token authentication
- Improved configurator commandline interface to accept strings with spaces
- Fixed wrong channel-size calculation when operators were used in the IOServers modbusio, plcnextio and wagopfcio
- Fixed wrong calculations and scheduling for Operators and DynamicSimComponents used with CDP Simulator
- Fixed value-propagation when Operators are used in CDP Simulator
- Fixed startup-problem for TOF and TON operators
- Fixed some routing-problems for properties in Operators/Arguments
- Fixed changing fs on a CDPComponent during runtime sometimes had no effect
- Fixed alarm reporting before application itself had started
- Fixed CDPConnectors would not connect when path is to non CDPObject
- Fixed IIRFilter and RampFilter used wrong frequency when used in DynamicSimComponent
- Fixed pin pad to use asterisk and line edits to forward echo mode to key pads
- Fixed bug that prevented windows cross compilation to PLCnext applications to run
- Fixed LineEdit preventing setting cdp values received during focus, if focus out was triggered manually
- Fixed annoying prompt in LineEdit when new value was equal to old and confusing question mark in prompt text
- Fixed Kongsberg Seatex MRU serial implementation causing invalid CRC and faulty data
- Fixed automatic calculation of MessengerIOServer’s fs could be set too low causing signal update between applications becoming too slow
- Fixed CDP Simulator where using OverrideStateValue() in Reset() had no effect
- Fixed CDPNode element-type property value not to be written to XML configuration
- Fixed Scaling operator Description can now be edited
- Fix problem regarding not releasing packet when still needed. This could cause change in signal value for other signals with routing to the same signal.
- Fix graph widget yAxisMinValue property resetting on startup
- Fix slider now updates routed value when multiple GUIs are controlling the same object
- Fix ScalingPoint of a ScalingOperator listing some unknown message nodes in online mode
- Fix DB Graph Signal Selector widget not connecting to CDPLogger when the logger was started after the widget
- Fixed if signals A and B are routed FROM signal C, and the routing of A is changed, the value of B go to zero for some time
- Fix CDPProperty in some cases not escaping the string when saving a value to XML
- Fix CDPPort data to propagate without delay when using same fs, Priority and SchedulingGroup in TopDown scheduling mode
- Fix CDPLogger failing when logged value name included an apostrophe
- Component Status is now exposed as a CDPProperty<unsigned int> to simplify testing alarm conditions on components
- CDPLogger sometimes fails to log values in a rare case of application handle collision
- Allow renaming CDPLogger LoggedValues and Datastores in Block Diagram mode.
- Allow CDPPorts to be chained and subscribing to proxy type CDPPort
- Reduce memory usage of StudioAPIServer
- Added new toolkits for Insys
- Added description of Domain property in Application
- Added configurator tool documentation and -cli option for configurator tool to enable scripting of configuration tasks
- Added Integrator (simulator-component) to CDP Simulator
- Added ‘Troubleshooting’ documentation to ‘A Getting Started Guide’
- Add other interpolation options (in addition to Linear) to ScalingOperator – like Makima, PCHIP, BaryRatio
- Add GetChild(name) method to ICDPNode which allows accessing the children of any CDP class
- Fixed an issue where some Modbus RTU packets could be dropped
- Added support for additional wait time before sending a Modbus packet
- Fix issues with ExternalControlIO HTTPRequest when PATCH and DELETE method was used
- Prevent deleting mandatory arguments from operators in online mode
- Fixed some crashes, squashed some minor bugs and fixed documentation
Updates and hotfixes:
Hotfix 4.10.13 March 2024
- Fixed an issue where the UDPTransport/TCPTransport IsOpen() API function didn’t test additional conditions where the socket could not be connected. This caused misbehaviour in ModbusIO masters in some cases
Update 4.10.12 January 2024
- Move Cyber Security documentation to CDP to make it version dependent
Update 4.10.11 March 2023
- Compatibility update for CDP Studio v2.4
Update 4.10.10 October 2022
- Use static linking of libraries for the ‘configurator’ tool included with CDP to make running it more convenient
- Fix library block diagram showing Operator models as lables
Update 4.10.09 July 2022
- Fix an issue with ModbusIO KeepLastValueOnDisconnect
- Fix CDPPort connection failing in some condition
Update 4.10.7/8 June 2022
- Modbus, improved handling non-responsive devices
- Modbus, enable/disable individual package sending (use case: do not set values before values are read)
- Fixed B&R digital module handling
- Fixed Weidmuller DO16 numbering issue
- Fixed validity check in TONOperator
- Fixed AddRandom random generator initial seeding on Windows
- Fixed event list to support Unicode translations on Windows
- User-defined operator argument can be flagged as important to stand out or made read-only
Hotfix 4.10.6 May 2022
- Fix WebEngineView widget support on Ubuntu 22.04
- Fixed value of NumberOfNodesOnline for ModbusMaster when OutputDisable is true
- Fix crash in CDP2Qt during startup when Routing from a MessageOperator
- Fixed MQTT channels were not able to put into ChannelGroups
- MQTTIO automatic ClientID generation is now based on MQTTIO component full name instead of short name, to ensure better uniqueness
Update 4.10.5 March 2022
- Added support for new Raspberry Pi Debian 11 Bullseye toolkit and Raspberry Pi 4
Hotfix 4.10.4 February 2022
- Fix crash on right-click in the Security Configurator web UI and now able to open the UI without first clicking on table background
- Added support for fill start value in the slider widget
- Fixed CDPBaseObject::GetProperty()/SetProperty() to use improved function to find the property. Also fixed printing of objects (when pushing ‘o’) to print CDPBaseObjects if having handle
- Updated CDPIO PLCnext addon to support the latest PLCnext SW version. Available in the PLCnext Store
Update 4.10.3 February 2022
Cyber security feature enhancements
- Pre-made application (web UI) allowing end-users to do system user admin (add and remove operators, reset passwords etc). App also supported for service engineers to change security settings
- Auditable event logging, logging of changes to the system is now supported – IEC 62443-3-3 SR 2.8
- System Use Notification text can be now configured – IEC 62443-3-3 SR1.12
- The Idle Lockout Period can be now configured before re-authentication is required – IEC 62443-3-3 SR 2.5
- StudioAPI server now sets Content-Security-Policy HTTP response headers to help reduce cybersecurity risks on modern browsers
- Added support for delaying configuration write to ensure uncorrupted backups
- RolePermissions for CDPNodes are enabled for some nodes (see user guide)
- Fix Design Mode security properties not being editable
- Fix CDPOperator RolePermissions being written to the parent node instead
- Documentation updates for how to conform to CR 3.14 – Integrity of the boot process, and software and information integrity
Improvements
- Enable high DPI scaling by default for HMI/GUI applications
- Update jQuery version in CDP2SQL Chat example
- Model editor supports now forward declared attributes
- Increased max NMEA telegram size from 82 bytes to 1400 bytes.
- HMI/GUI documentation improvements for widgets and troubleshooting
- If high resolution timing is required in threaded code, globalTime (GetGlobalTime(), GlobalClockMs() and CDPTimerMs) should no longer be used. CDPTime::GetGlobalTimeFromHardware(), CDPTime::GlobalClock() and CDPTimer should be used where more precise timing is required
- Fixed opening correct help-page when clicking F1 in Studio Configure mode for some resources.
- Fix Design Mode security properties not being editable
- Fix CDPOperator RolePermissions being written to the parent node instead
- Fixed crash in CDPConnection.
- Fix potential crash when editing the TriggerRouting property during runtime.
- Fix crash caused by unconfigured transport
- Connected status is now also set to true on the first CDPPort in the connection chain.
- Bit-number (Nr) for bool-channels in modbusio is now showed in online view in Studio. Also Description for ModbusModule and ModbusPacket is shown in online view.
- Automation.Delay operator is fixed for not to miss near-process-cycle length bursts in the input and delay them correctly on output.
- Added support for operators and OutputDisable in nmea0183
- Added a CDPConfigurator python class to simplify reading and writing application information. By using this class from a python script, it becomes possible to change application configurations or extract information from a CDPStudio application configuration
- Some changes in canopenio regarding ObjectDictionary section containing Entries, where Online-view is updated.
- Fixed length check for Modbus master requests
- Fixed an issue on Linux where Serial API PutByes() would return prematurely if socket write() returned fewer bytes than requested.
- Fix meter widget value rounding around zero
- CDPPushPort can now be used on block input side for incoming push port connections
- Fixed problem setting argument value (from GUI) of an CDPBaseObject operator
- Fixed bug in CDPBasePicture that prevented repositioning when having a relative position set and parent being resized
- Added support for moving CDPBasePicture by its center position.
- Fixed meter rounding issue for values between -1 and 1
Hotfix 4.10.2 December 2021
- Fix IOServers could report invalid timestamps for values. Effected plotting in Analyze mode and logging
Hotfix 4.10.1 November 2021
- Fix ExternalControlIO HTTPRequest with GET method in cases when request channels are configured
Release Notes – SEPTEMBER 2020
CDP Framework v4.9
Highlights in the CDP Framework release
- New signal type supported: String
- New Possible to connecting to SQLite and MySQL databases
- New Change the displayed language in a GUI applications runtime
- New Export plot data from graph widgets
- New Expose application message log and save it to log.txt file
- Allow adding values to CDPLogger during runtime
- Added support for Automation operators in CDPSim
Improvements and corrections
- Added Cron generator and the math functions Derivative, Integral, Greater than and Comparison
- Create support for string signals for MQTT and OPC UA
- Add the actual SW code in the documentation for all the math (operator) functions
- Database graph widget autoscale slot scale both axises if no axis is selected selected
- Added scaleXAxis and scaleYAxis slots to graph widgetsF
- Full resolution data downloadable from CDP Logger
- Fixed some components that cleared alarms omn every run
- Modbus RTU now always recovers when ethernet cable is unplugged and reinserted
- Running dummy app with dummy Beckhoff-EK9000-TCP IOServer will close down the app
- Fixed CDP Python examples for Ubuntu 20.04 default install
- CDPBaseObject::GetTypeIdName and CDPBaseObject::GetTemplateSubTypeInfo broken for string types on some compilers
- Fixed requesting extended event info based on eventId and handle fails
- Fixed that Non-GUI applications get access violation when Connecting in Studio under Windows
- Fixed strange properties in dump of CDPEventSubscriber
- CDPEventSubscriber dropped sending delayed property request for properties with too long names
- Routed property does not propagate from remote app (re-route)
- Support sending/receiving (property)names/shortnames longer than 32 chars in EventManager-msgs
- Alarm OutUnack signals are created when SignalOutUnack is set to 0
- CANOpen IOServers show wrong Unit for Bytes sent/received/total signals
- CDP writes reparented not-required values to wrong (parent) node
- ExternalIO default auth type is now Basic instead of AnyExceptBasic
- The æ,ø and å key texts in the GUI keypad are only displaying during move
- Unable to plot “node signals” from CAN nodes
- Remove duplicate definition: CDPCOMPONENT_PRIORITY_e and CDPProcessMode
- CDP XML model and template charset (encoding) is now set to UTF-8
- CDPSim: Mass Hangig example graphs MassSpring.x are fixed
- The sequence of scheduling components is not always correct.
- Add xAxisRangeReceived signal to DatabaseGraphWidget to be able to automatically autoScale
- Toggle button bugs: routing, value timeout/flicker during move and move not working when size is small
- Updated GUI classes for use in QML
- Graph data is painted incorrectly when zoomed out
Updates and hotfixes:
Update 4.9.14 March 2024
- Fixed an issue where the UDPTransport/TCPTransport IsOpen() API function didn’t test additional conditions where the socket could not be connected. This caused misbehaviour in ModbusIO masters in some cases
- To make sure communication recovers after a failure, Modbus UDP will now close and reopen the socket when communication fails, in the same way as Modbus TCP does it
Update 4.9.13 March 2023
- Compatibility update for CDP Studio v2.4
Update 4.9.12 October 2022
- Fix library block diagram showing Operator models as lables
Hotfix 4.9.11 September 2022
- Fix, Modbus TCP could in some cases take a long time to reconnect
Update 4.9.10 February 2022
- Fix potential crash when editing the TriggerRouting property during runtime.
- Model editor supports now forward declared attributes – it shows forward declared attributes and allows users to mark them defined at any inheriting model level.
Hotfix 4.9.9 November 2021
- Fix ExternalControlIO HTTPRequest with GET method in cases when request channels are also configured
Update 4.9.8 November 2021
- Fixed automatic calculation of MessengerIOServer’s fs could be set too low causing signal update between applications becoming too slow
- Fix issues with ExternalControlIO HTTPRequest when PATCH and DELETE method was used
- Fix crash in OSAPIMutex possible deadlock notification
Hotfix v4.9.7 – June 2021
- Fix MQTTClient not able to connect to HiveMQ Cloud
Hotfix v4.9.6 – June 2021
- Fix for TOF and TON operator, initial value is now false (0) when default is set to False for PT>ET
- Automation Scaling operator Description can now be edited
- Fix crash when browsing CDPPort with CDP Studio caused by serializing an uninitialized boolean
- Fixed CDPSim where using OverrideStateValue() in Reset() had no effect
- Fixed CDPPortBase model file so Connected property is not written to component file
- Fixed wrong calculations and scheduling for Operators and DynamicSimComponents used with CDPSim
- Seatex MRU Serial, fixed an issue where it would sometimes drop data prematurely, causing invalid CRC and faulty data
- Fixed changing fs during runttmes for a CDPComponent sometimes had no effect
- Fixed possible routing-problems for properties in Operators/Arguments
- Fix PortSimSignal and dynamic SimSignal handling
- Improve example and tutorial title and introductions
Hotfix v4.9.5 – March 2021
- Fix unneeded CppName attribute to appear in Application XML configuration header when top-level operator was added at runtime
- Fixed problem where alarms reported before application itself had started, would be reported every 30 sec
- Now possible to fill Tag attribute for IOServer channels and for alarms in system to refer to tags used in project design and documentation
- MessengerIOServer execution frequency will be increased/decreased automatically according to the frequencies of components sending request-messages, default frequency reduced from 100 to 10Hz
- Fixed Routed CDPParameters will now keep the value if the routing destination no longer is available, it will no longer be set to 0 (zero)
Hotfix v4.9.4 – March 2021
- Fix PLCnextIOServer accidentally clearing application project dependencies list
- Fix hang in database graph widget when browsing or downloading logged data.
- New RPi SenseHAT predefined recipe. Adding the SenseHAT you get component with relevant Sense HAT signals and a pre-configured I2CIOServer
- Fixed I2CIOServer channel offset calculation for channel-types of ‘bool’ when operators were used
- Fixed I2CIOServer value calculations for Sense HAT Humidity, Temperature and Pressure
Update v4.9.3 – December 2020
- Fixed – Property value was in some cases not set default values and flags
- Added support for graph value label precision
- Fixed initial GUI values never changed if value change was 0 or empty string.
- Fix compile error when using the SimPort wizard in a library project
- Fix the “Preparing ValueProvider failed” error which sometimes occurred on CDPLogger startup
- Added communication property in database widgets to make it easier to connect them to database logger
- Fix live connect to system issue causing connect failure to every application in the system
Update v4.9.2 – December 2020
- Allow adding values to CDPLogger during runtime
- Added support for Automation operators in CDPSim
- Removed event subscription via connections in CDP2Qt as this fallback should not be needed
- Fixes CDP millisecond precision scheduling for latest Windows updates
- Fixed problem where property SourceValue for CDPAlarms generated many events.
- Fixed issue where ModbusIO debug printouts showed wrong data for responses
- Fixed an issue with the Process Overload alarm being incorrectly set.
- Fix upgrading project from CDP 4.2 or 4.3 adding two copies of ProcessTimer
- Fix broken configuration was written to XML on operator argument remove in online mode
- Fix CDPPort being unable to set Routing to CDPNode’s child property
- Fix CDPLogger logging to wrong database column if a new LoggedValue is added to the middle of the list of LoggedValues
- Fix CDPLogger configured with CDPCompactDatastore not respecting SizeLimitGB after the database splits (happens when logging over 100 values)
- Added ui loader finished signal to CDP2Qt and main window. This can be used to measure ui loading time and other tasks we want to run when ui is ready
- Improved data-propagation path for I/O-Servers
Update v4.9.1 – October 2020
- Fix CDPPort not clearing old remote routings when editing the Routing property
- Improved data-propagation path for I/O-Servers
- Fixed problems regarding BrokenRoutings for event-based properties. In some cases, some requested property-values would not be received, or old values could be returned.
- Make StudioAPI connections independent with separate request queues in CDP to ensure that requests from all subscriber are handled (round robin)
- Fix TopDown scheduling mode to process blocks in single cycle when Operators and Components are mixed in multilevel flow.
- Fix online add was not working when mklink-ed folder was used in Windows target
- Fixed bug that could cause widgets, like sliders and bars, to not receive initial value when they also have routing set for their max value. The fix will correct all widgets that use CDPBaseTickMarks.
- Crash fixes
Release Notes – APRIL2020
CDP Framework v4.8
Highlights in the CDP Framework release
- Support PLCnext controller from Phoenix Contact
- Top level operators
- OPC-UA: Client and Server
- Better support for multi-core controllers, major upgrade of CDP Scheduler
Improvements
- Improve GUI performance on slow hardware (PanelPC)
- Add Input attribute to CDP Parameter
- Remove “Value” and “Name” CDP Settings from CDP Property
- Make PropertyIOServer publish routings to StudioAPI
- Rename and refactor Argumentable operator
- Remove unused Parameters in MessengerIOServer
- Increase fs for EventManager components
- Add support for Push and Pull Port
Updates and hotfixes:
Update 4.8.14 March 2024
- Fixed an issue where the UDPTransport/TCPTransport IsOpen() API function didn’t test additional conditions where the socket could not be connected. This caused misbehaviour in ModbusIO masters in some cases
Update 4.8.13 February 2023
- Fix, CDP Studio connecting to a multi-applications system sometimes failed. Affected also CDPLogger and OPC-UA-Adapter.
Update 4.8.12 October 2022
- Fix library block diagram showing Operator models as lables
Hotfix 4.8.11 September 2022
- Fix, Modbus TCP could in some cases take a long time to reconnect
Update v4.8.10 – February 2022
- Fix potential crash when editing the TriggerRouting property during runtime.
- Model editor supports now forward declared attributes – it shows forward declared attributes and allows users to mark them defined at any inheriting model level.
Update v4.8.8 – November 2021
- Fixed Kongsberg Seatex MRU serial implementation causing invalid CRC and faulty data
- Update Library Documentation and Semantic UI wizards to support Qt Creator 4.13
- Fix crash in OSAPIMutex possible deadlock notification
- Fix crash when browsing CDPPort with CDP Studio caused by serializing an uninitialized boolean
Hotfix v4.8.7 – March 2021
- Fix PLCnextIOServer accidentally clearing application project dependencies list
Update v4.8.6 – December 2020
- Fix compile error when using the SimPort wizard in a library project
- Fix the “Preparing ValueProvider failed” error which sometimes occurred on CDPLogger startup
Update v4.8.5 – December 2020
- Fix upgrading project from CDP 4.2 or 4.3 adding two copies of ProcessTimer
- Fixes CDP millisecond precision scheduling for latest Windows updates
Hotfix and update v4.8.3 – September 2020
- The scheduling sequence of components was not always correct
- AckAll in alarm list now only send Ack to shown alarms
- Fixed incorrectly painting of Graph data when zooming out
Hotfix and update v4.8.2 – July 2020
- New Waveform (signal) generators (look under operators)
- New DA and AD converter operators
- New UI example, the UI used for HW IO YouTube tutorials
- Fixed OPC UA Discoverer issue when a PLC OPC UA Server is scanned
- Sending the CM_TEXTCOMMAND message CDPBaseObjects now works
- Routed Properties can in special cases receive incorrect value
- Fixed issue in CDPSim routing
- Fixed – configurator tool can now be used to test if a value is not changed
- Fixed – changing relative routing runtime now works
- Fixed – signals can in special cases drops to zero
- Fixed – Bar widget fails to connect to a periodic property
- Fixed – Too many Process thread overload alarms when in connected mode
- Fixed – when a routed signal is de-routed and then routed again, the input signal gets the value from before the disconnect
- Fixed – CANIO does not come back up if socket goes down.
- Fixed – CDP Python examples fail to start on Ubuntu 20.04 default install
Hotfix and update v4.8.1 – April 2020
- Added a great number of readymade functions useful for automation, maths and value transformation (operators)
- Show Parameters on left side of blocks in block diagram online view
- Improve TimeStamp operator + included FromTimeStamp and ToTimeStamp operators
- Fixed Requesting extended event info based on eventId and handle
- Fixed project upgrade script for 4.3 to 4.8 upgrades
- Fixed Properties values are not always correct in a GUI
- Show ScalingPoints for the ScalingOperator in Block diagram online view
- Alarm’s Signal routings are shown as red/invalid when routed to an IOChannel
- Properties not connected in some cases
- Improve documentation and examples
- Squashed some crashes