⚙️ Simulation & Modeling
Dead-Time Dynamics Fixed Across Models (SB‑526)
A major correction was implemented in the simulation engine to fix a long-standing issue where dead time could increase but never decrease during a running simulation.
This affected:
- First-order transfer functions
- Higher-order functions
- Any block sharing the same queue/deadtime backbone
The queue logic has been redesigned so the model responds correctly to both increases and decreases in deadtime during live operation. The fix is expected to improve behaviors in other modules, including PID tuning.
Live Delay Increases No Longer Cause Output Jumps (SB‑580)
Increasing delay using the User Value In block’s arrow-up control caused visible output jumps.
This has now been fixed with updates to a shared code path used by multiple dynamic functions.
🧩 User Interface & Visualization
Plotter Grid Auto-Rescaling Restored (SB‑579)
The plotter failed to rescale its grid when new values appeared—especially when starting from an all-zero baseline. A periodically triggered grid sanity-reset (every 15 seconds) now ensures proper redrawing without performance penalties.
Level Indicator Rendering Overhaul (SB‑555)
The level indicator received significant internal improvements:
- Fixed stale % numbers that persisted when transparency was enabled
- Proper refresh cycle using a double‑pass paint (solid → transparent)
- Added new options for Unfilled Area Color and Opacity
- Eliminated “ghost” number artifacts even with text disabled
- Updated terminology from Transparency to Opacity
Final confirmation on Jan 28 confirms the component is fully aligned with intended specifications.
User List Display Corrected (SB‑571)
The “Current Users” pop-up incorrectly displayed users horizontally.
It now correctly lists each user vertically, one per line.
Messagebox formatting for over‑limit users also displays correctly.
🔐 Licensing & System Behavior
Offline License Validation Logic Restored (SB‑576)
Machines without internet access (common in industrial networks) occasionally attempted forced cloud license validation, resulting in failures.
The system now:
- Checks for internet availability first
- If offline, falls back to local license validation
This prevents unnecessary license errors when SharpBot is used in isolated control networks.
