Visionect Software Suite#
The release notes cover the changes to the Visionect Software Suite and implications for end users. Please consult these before upgrading to the new version of the Suite.
Note
The Visionect Software Suite was previously known as Visionect Server.
Software Suite version 7#
Release 7.9.3#
Improvements:
Added logger to Redis
Make docker image smaller
Release 7.9.2#
Improvements:
Security fixes
Fix for licensing getting stuck in some cases
Release 7.9.1#
Improvements:
Fix for one updated package
Fix for automatic bootloader install feature
Release 7.9.0#
Improvements:
Add secure password policy for VSS users
Disable PV2 for everyone and make new PV3 implementation default
Implemented an automatic bootloader install to a device if device connecting to the server doesn’t have it
Release 7.8.7#
Improvements:
Smaller fix for PV3 protocol
Release 7.8.6#
Improvements:
Bugfixes and improvements for PV3 protocol
Release 7.8.5#
Improvements:
Gallery memory and CPU usage optimizations
Added gallery image preview
Added an icon to indicate locked devices without licenses
Display licensing information in the Status page
Fixes for licensing
Release 7.8.4#
Improvements:
Images that are added through “Display image” do not get deleted from storage fix
Fix for gateway not re-connecting to engine
Gallery causes large memory usage of admin process fix
Update device fails if device doesn’t exist
Release 7.8.3#
Improvements:
Encryption packets causes panic in new PV3 fix
Added support for browser local storage in HTML backend
Release 7.8.2#
Improvements:
Fix for PV3
Release 7.8.1#
Improvements:
Improved file system handler
Parallelized webhook sending
Support file uploads via downloads
Release 7.8.0#
Improvements:
New PV3 gateway implementation
Fixed panic with live image API
Added support for intermittent connectivity for AC devices
Release 7.7.2#
Improvements:
Fix for the device not getting the correct local address on IPv6 hosts
Fixes on HTTP backend
Release 7.7.1#
Improvements:
Print to stdout when VSS_LICENSE_ID not set
Release 7.7.0#
Improvements:
Introduced mandatory licenses for the VSS
Release 7.6.7#
Improvements:
Minor fix for AC renderer
Release 7.6.6#
Improvements:
Added support for BSSID in status
Some fixes for AC devices
Release 7.6.5#
Improvements:
Fix for the new 42” display ID not being recognized
Fix for sleep manager causing protocol errors
Fix for session cleanup not working after NM restart
Release 7.6.4#
Improvements:
Fix for default backend
Fix for network manager not handling changes to device
Smaller fixes to logging
Release 7.6.3#
Improvements:
Fixes for the log outputs
Release 7.6.2#
Improvements:
Fix for docker build
Upgrade of certain packages due to bugs
Release 7.6.1#
Improvements:
UI fix in advanced device settings
Fix for when ACRenderer2 is default renderer
Fix for gateway creating unreachable engine sessions
Release 7.6.0#
Improvements:
Fix for 32” partial updates toggle
Fix for the WebKit and AC Renderer logging
Release 7.5.0#
Improvements:
Fix for not being able to set different default backends issue
Fix for the image gallery issue
Retry logic added to firmware upgrade
Improvements on infrastructure
Release 7.4.6#
Fixes
Fix nil pointer exception when changing the webkit backend
Multiple CBOR requests hangs the connection
Release 7.4.5#
Fixes
Fix differences between new and old status and the comparing process
Release 7.4.4#
Changes
Improves a process in Network Manager
Added old/new status testing
Fixes
Fix device status missing in device detail API response
Fix issue with termination of AC renderer process
Release 7.4.3#
Changes
Added log id of connection for AC renderer
Small code refactoring and fixes for AC renderer
Release 7.4.2#
Fixes
Fixes production build
Release 7.4.1#
Fixes
Fix crashes with the gateway
Code changes for status requester and bootloader upgrade
Release 7.4.0#
Changes
WebKit upgraded to a newer version
Base image updated to Ubuntu 22.04
Small code refactoring
Add JSON logger in WebKit
Release 7.3.7#
Changes
Move all metrics from vss-middleware to VSS itself
Enabled profiling to ease debugging sessions
Add default app config for AC render
Fixes
Fix Go routine
Fix with AC renderer
Release 7.3.6#
Fixes
Fix with sending on nil channel
Small code changes and refactoring
Release 7.3.4#
Changes
Added support for new 42” displays
Changed backend functionality for AC render and fixes in WebKit render
Memory migration pack sessions
Smaller code changes and refactoring
Fixes
Fixed a crash in AC renderers
Fixed local tests
Release 7.3.3#
Changes
Test memory migration with unavailable engine
Hide max sessions when memory migration is configured
Fixes
Implement acking queue (FIFO)
Fix crash in network manager
ACrender2 fixes
Release 7.3.2#
Fixes
Fix a rare occurrence of panic when checking for RSS limit of acrender process
If acrender doesn’t define app, don’t try to download it wait for it to be configured instead
Release 7.3.1#
Fixes
Fix the UUID in ACrender2
Fix device sleep on AC render
Server image size optimization
Release 7.3.0#
Changes
Add new and improved ACrender2
Fixes
Fix the issue of Joan 6 devices not going to sleep when renderer is set to ACrender
Release 7.2.5#
Fixes
Add user param as a first param to more CRUD methods
Release 7.2.4#
Changes
Add user roles
Add automatic cache refresh
Add session restart callback to AC
Add unassigned sessions metric
Fixes
Fix add user bug
Fix downloading AC app every time
Fix status callback in AC
Release 7.2.3#
Changes
Add renderer name to status
Changes in the engine server templates
AC app download should be retried when one fails
Fixes
Retry AC store download on errors
Fix AC renderer
Fix TCLV write response
Fix memory leaks
Release 7.2.2#
Changes
Add reserved and accept memories to engine to better handle memory
Fixes
Fix memory leaks in AC renderer
Release 7.2.1#
Changes
Print out the memory of session that is restarting
Report rss memory immediately (use defaults)
Watchdog should terminate session when under memory pressure
Fixes
Fix JSON logger
Fix memory migration
Release 7.2.0#
Changes
Add memory watchdog to engine
The status is sent to render process as soon as it arrives
Add memory session migration strategy
Fixes
Don’t run AC stack in separete thread
Restart AC process to apply settings
Don’t panic on setting config html fields
Ignore TCLV response when AC render is terminated
Release 7.1.12#
Changes
Simplify startup configuration and lower memory usage
Change gateway size to allow uploading larger AC apps to device
[AC] implement json logger in ac-render
[AC] handle AC apps automatically
Release 7.1.11#
Fixes
Fix logging in web API in case of an error
Upgrade to handle new proximity threshold status
Upgrade Go and third-party libraries
[AC] fix ac-renderer crashes by catching up to the libac-stack changes
[AC] Set proper device screen size immediately so there is no need to restart the renderer process
[AC] Move image conversion completely to C
Release 7.1.10#
Changes
Use TLS certificates for device communication
Prevent session restarts on TLS errors
Release 7.1.7#
Fixes
Fixed go routine
Fix memory leaks on device update
Release 7.1.6#
Fixes
Prevent panic when device doesn’t have enough displays configured (only fix in 7.1.5 version)
Upgrade to handle DTIM status
Fix RequestedFirmware set blocking auto update from picking newer firmware
Release 7.1.4#
Fixes
Add millisecond precision to the log time stamps when logging into the logstash
Small code changes
Release 7.1.3#
Fixes
Fix the way we handle JS errors
Release 7.1.2#
Fixes
Delay responses to the device that happen during transfers to minimize device disconnects
Release 7.1.1#
Fixes
Improved the way we communicate with the device with larger transfers e.g image transfers, ac app uploads, live image transfers
Release 7.1.0#
Changes
New firmware API access which takes into account caching headers
Upgrade Go
Automatic TLS reload certificate feature to support the Let’s encrypt certificates that change very 90 days
Check for new bootloader and firmware only once per hour if device sends statuses very frequently
Fixes
Stop sending images to device after a few NACK’s
Release 7.0.7#
Fixes
device timezone settings not applied
Release 7.0.6#
Changes
disable detecting TC mode in AC firmware
Fixes
fixed possible firmware update boot loop
fixed possible deadlock conditions
Release 7.0.5#
Changes
smaller code changes and refactoring
Release 7.0.4#
Fixes
fixed critical flaw where the Automatic firmware update would upgrade the AC device with AC firmware to a TC firmware
Changes
updated Go routine
Release 7.0.3#
Fixes
fixed AC device live-view image requests in web management interface
fixed a bug in web management where a blank screen would appear instead of the device statistics screen
Changes
optimizations for AC devices
Added
added support for fast boot support
Release 7.0.1#
Changes
updated Go routine
Added
support AC device switching to TC mode and vice versa
Fixed
fixed inconsistencies in network packet handling
don’t reboot device if there is no bootloader and FW upgrade is scheduled
don’t auto update device if there is a newer FW and device doesn’t have a bootloader
better quality of AC device live-view images
Release 7.0#
The largest changes are:
Changes
removal of armhf (32bit arm) build and and adding arm64 build
removal of cookiefs component
upgrade and optimization of Docker images
Fixes
report latest image CRC
websocket now detects disconnects and reports them tho the AC device
don’t flash the device if auto-update choose the same fw that’s already on device
Software Suite version 6#
Release 6.4.1#
Changes
Sessions constantly hitting RSS limit
Release 6.4.0#
Changes
Change how we detect AC device
Typo in Auto(Boot)Flash flag name
Device backend changes when device becomes online
Ability to push images to HTTP backend when session doesn’t exist yet
Apply new TLS certificates if they were changed
Support data push towards AC device
Release 6.1.4#
Changes
experimental support for new 42” displays,
cleaner log messages,
fixes for device session limits.
Release 6.1.3#
Changes
Use another environment variable for deployment secret: the environmental variable is now called VISIONECT_SERVER_COOKIE_SECRET and replaces VISIONECT_SERVER_DEPLOYMENT_KEY. Deployments must be modified in order for cookies to work correctly.
Remove partial image update option if device is Place&Play 32”.
Remove error message flooding by removing a false-positive when executing JavaScript scripts.
Modify Engine health-check to contain shutdown info.
Release 6.0.8#
Changes
users must provide a deployment UUID value in order to have persistent HTTP cookies on Docker container restarts
support for custom images if the server reached max. session capacity
fixed possible issues with handling physical buttons
Release 6.0.1#
Changes
fixed a bug where the server stopped updating images
device firmware version and basic information were missing when connecting to the server for first time
fixed an issue where Gateway could block if logstash was unavailable
Release 6.0#
This is a major release of the software that adds support for running our new next-gen applications. The Engine component recognizes the new ACRender content renderer and will run render application content to devices. The ACRender is a replacement for the HTML render but the application must be rewritten in order to be used correctly.
Software Suite version 5#
Release 5.3#
5.3.6#
Changes
There was a regression where image ACK JavaScript event didn’t work. This is now fixed
5.3.5#
Changes
turned off TCP keep-alive for new connections. This reduces device power consumption.
5.3.4#
Changes
session restart bug fix,
fix for possible dead lock that could happen when WebKit session is being destroyed,
fixed a bug where sleep packet was not sent to the device if at that moment, the device was not assigned to any engine.
5.3.3#
Changes
device doesn’t ACK/NACK timeout if the VSS deployment has bad connectivity to the firmware server,
fixed edge case where WebKit sessions wouldn’t respawn if the initialization process failed,
web management interface doesn’t break anymore if device statuses are missing,
gracefully shutting down Engine nodes can timeout, preventing possible VSS cluster destabilization.
5.3.2#
Changes
support custom fonts for HTML renderer
fixes for possible HTTP cookie loss
5.3.1#
Changes
Look At X-Forward-For HTTP Header
Fetch Last Device Status From Database
GPS Events In JavaScript
5.3.0#
Changes
Added Option To Force Bootloader Upgrade
Added Default Option For PV3 Security
Disable Writing Of Device Statuses If Logstash Is Detected
More Sanity Checks Against Session Unpairing
Don’t Fail To Request Engine On Invalid Statuses
Gateway Crashes Because Of A Race Condition
Open Up Go Profiler Ports Regardless Of The Build Type
Release 5.2#
5.2.4#
Changes
writing device events sometimes fails because the server sends data towards the device before the device identifies with its UUID
fix Gateway crasher where certain features would access invalid resources in memory
fix hourly device update feature to correctly update devices by forcing full-screen of the next update, if the device was idle more than an hour.
added extra checks if a session wants to overwrite a cookie for a session
smaller RPC call optimizations
The Go run-time was updated from 1.12 to 1.13, bringing additional stability, performance and security updates.
5.2.3#
Graceful WebKit Process Shutdown
A bug in the Software Suite causes an overwrite of HTTP cookies. In effect, paired Joan devices will be un-paired. This happens to a small percentage of devices and is fixable by manual re-pairing. We assumed this bug is caused by race conditions why the cookie database is syncing. The bug can be reproduced by forcing the device session to migrate a lot between different Engine nodes. This led us to think that new Engine nodes weren’t synced at the time of the session creation, therefore the cookie was overwritten.
We fixed the sync problem by pre-fetching all cookie data before new sessions were created (before any migration). While this change did reduce the number of un-paired sessions, the problem was still there.
Now we’re thinking that it has to do something with how we terminate WebKit processes. It is possible that the process installs signal handlers that affect the state of the cookies and might do a cleanup if the process was not gracefully
terminated. We changed this by using another process signal when killing the process.
Removal of hourly display updates
Content of devices was automatically updated hourly in order to prevent ghosting and other artifacts. This was removed as screen updates are now forced by the device firmware. Also device battery usage should now be lower.
Pass Device Statuses When Initializing HTML Sessions
If the HTML session was newly created, restarted or migrated to another Engine, the web app wouldn’t get the status of the devices inside the session. This could be clearly observed when running the demo clock app. The web app doesn’t show or shows only partial device data.
This is fixed by passing the lest recorded device status when a HTML session is created, restarted or migrated.
Log Device IP On Possible DoS Attack
If an incoming PV2 or PV3 network packet with payload length value greater than 1MiB is detected, then an error message is reported, together with the IP address of the offending device.
This change enables possible further investigation of the source IP address.
Pass Device States Synchronous And Explicit
Device state (e.g. offline,online,sending, …) must be passed to other components in order to trigger certain actions. We discovered that wrong state order causes the server to misbehave because certain actions are dependable and the order of arrival is important.
We fixed this by passing state synchronous to a queue and by making certain states to be more explicit rather than to be a part of a common function call.
5.2.2#
Changes
The component now fetches all cookie data on startup instead of waiting on IO requests. This minimizes chances for race conditions.
Another change fixes Engine crashes by making additional error checks.
5.2.0#
- New features
Support for database caching using Redis
Updated Go stack to 1.12.4
- Changes
Engine session limit is applied without server restart,
fixed possible issues with the cookie file system when used in a scaled deployment,
Greatly reduced calls to the PostgreSQL database server
Release 5.1#
5.1.0#
- New features
Disable image pushes option added to the Management Interface under Devices/Advanced.
Database pool setting exposed as an env variable.
- Changes
Partial updates while device reconnected fixed.
Fixed networkmanager crashes.
Truncate large backtraces
Log cleanups
Release 5.0#
5.0.3#
Bugfix release
5.0.2#
- Bugfix release
Log messages cleanup and NetworkManager fix.
5.0.1#
Bugfix release
5.0.0#
- New features
Scalable architecture.
Support for new network protocol, version 3 (PV3).
Software Suite version 4#
Release 4.8#
4.8.5#
- Bugfix release
Fix RTT by activating a ping request.
Incorrect handling of working hours fixed.
Fixed possible engine crash.
4.8.4#
Bugfix release
4.8.3#
- Bugfix release
Internal monitoring fix.
4.8.2#
- New features
New session scheduling algorithm.
4.8.1#
- New features:
Additional health check including orphaned devices.
If environmental variable VISIONECT_SERVER_TWO_WEEK_STATUS_HISTORY_LIMIT is set to TRUE, chart API fetch will be limited to 2 weeks.
- Changes:
Fixed showing incorrect hardware version.
Reconnect to gateway if RPC connection was lost.
Fixed possible lock if using multiple engines.
4.8.0#
- New features:
Automatic session limits. Enabled if VISIONECT_SERVER_AUTOMATIC_SESSION_LIMIT is enabled. Setting can be overridden by setting value to VISIONECT_SERVER_SESSION_LIMIT environment variable.
Preliminary PV3 protocol support.
Release 4.7#
4.7.0#
- New features:
Multiple load balancers supported.
Prometheus metrics for Engine endpoint added.
Engine process health reporting.
- Changes:
Fixed possible Engine crash.
Changed default network connection settings.
Release 4.6#
4.6.5#
- Bugfix release
Every 10th display update is a full-screen update.
4.6.4#
- Bugfix release
Sleep management is not ran on removed or re-added devices.
Display offsets are fixed when changing orientation for devices in virtual screens.
Partial change detection was limited to avoid processing large amounts of rectangles.
Charts show correct image count for devices in virtual screens.
Full-screen refresh after session idle.
Fixed N-th full-screen update.
4.6.3#
- New features:
Show status requests in charts
- Changes:
More precise data aggregation in charts
Fixed virtual screen synchronization
4.6.2#
- New features:
Device events, like sleep and disconnect, are now pushed to logstash together with the last device status.
- Changes:
Fixed parsing firmware checksum.
Device events chart now shows heartbeats made by server requests.
4.6.1#
- Bugfix release
Fixed TTS handling of multiple speech requests.
Re-enabled ARM build.
Fixed possible race condition when using virtual screens.
Fixed invalid values for certain TCLV packets.
Apply bootloader and firmware update settings to new devices
4.6.0#
- New features:
Added per-device inverse updates.
- Changes:
Log cleanups.
Fixed scaling issues.
Fixed possible deadlock between Gateway and Engine.
Multiple fixes for text to speech.
Release 4.5#
4.5.8#
- Bugfix release
Fixed possible networkmanager crash, while checking idle sessions.
Fixed issue where image rectangles were rendered on an invalid surface
Fixed possible engine crash when checking migration availability.
Fixed Text2Speech TCLV reply timeout.
4.5.7#
- Bugfix release - AMD64 build only
Fixed partial update issue
4.5.6#
- Bugfix release
Fixing interlacing issue on Place and Play 32” devices.
4.5.5#
- Bugfix release
Fixed OpenCv wrapper gray to RGBA color image conversion.
Fixed a bug where network manager would not assign device to the engine inside existing Virtual Screen session.
Management Interface is now able to authenticate multipart requests.
4.5.4#
- Bugfix release
Improved connection stability.
Fixed session initialization problems on device reconnects.
Corrected sleeping state, where device status would be disconnected instead of sleeping.
Scenario where it was possible to crash gateway by sending sleep commands via JavaScript is fixed.
4.5.3#
- Bugfix release
Fixed possible crash when removing idle session.
Fixed issue where images would be applied even if virtual screen group is canceled.
4.5.2#
- Bugfix release
Fixed a bug where unnecessary full-screen images were pushed to devices.
4.5.1#
- Bugfix release
After reboot, device may get partial updates, which means that incorrect content was displayed. That is fixed.
Text to speech (TTS) now allows up to 1000 bytes of text instead of 255. If the limit is exceeded, JS app return error now.
4.5.0#
- New features:
Added battery threshold and mode TCLVs in the Management Interface.
Support for the new 32” Place&Play hardware.
Dynamic RSS calculation, based on device screen size and device application.
Support new image push states.
- Changes:
Improved scalability.
Release 4.4#
4.4.3#
- Bugfix release
Fixed bug where touch events may get ignored.
4.4.2#
- Bugfix release
Fixed sleep schedule handler.
4.4.1#
- Bugfix release
Gallery interval settings are now correctly applied.
Device statuses are now sent to the Elasticsearch.
4.4.0#
- New features:
A new device status message Image Push Allowed was added, which solves the problem when device is charging but it is configured (via
system_conf_set
) to receive new images. Older firmware versions are not affected by this change.- Changes in the management interface:
device chart view for 7 days now shows data, aggregated daily,
server load indicator becomes red when load is more or equal to 3,
sorting preferences for device list are stored.
The environmental variable
VISIONECT_SERVER_LOGS_TO_STDERR
was deprecated.
Release 4.3#
4.3.2#
- Bugfix release
NetworkManager crashing while updating device’s firmware bug fixed.
4.3.1#
- Bugfix release
Critical bug for possible ACK/NACK timeouts fixed.
4.3.0#
- New features:
A drop-down option was added to the device charts to select a time zone that should be used when displaying charts. The charts are updated when a time zone is selected.
- Changes:
Refactored Gateway code to comply with the new deferred session creation architecture that was introduced in the past. As a consequence, the log messages and program flow are clearer.
Fixed stability issues with NetworkManager.
Device periodic sleep manager respects device time zone.
Fixed a bug in Engine where deferred rectangle changes were forced to a full-screen update.
Fixed supervisor configuration for log files.
Update CA certificates on Docker container startup.
Fixed handling of RPC calls in NetworkManager.
Release 4.2#
4.2.7#
- Bugfix release
Fixed issues where engine would crash because of legacy code and an edge case.
Fixed issues where networkmanager would crash when an engine would re-appear after crashing.
Fixed handling of frontlight command in protocol implementation.
Fixed clearing WebKit cache for sessions with the HTML backend.
4.2.6#
- New features:
Added per device time zone setting.
- Changes:
Fixed server instability issue caused when user keeps admin pages open for longer period of time. Application will now detect idle state and suspend unnecessary api calls to server.
Fixed lost region updates in virtual screen mode. Vss will not abort image responses for other devices if one of them respodes with error.
OpenCv C interface memory managment violations were fixed with rewrite of image processing functions in C/C++. Also not all but some of the OpenCv functions that were written using old deprecated C API were rewritten with new C++ API.
4.2.5#
- Bugfix release
Fixed a bug where each session connected to the database to get global settings. This caused the connections to stack and eventually take all free slots on the SQL server.
Fixed a bug where session reassignment on engine timeout could enter into an endless loop. Also removed possible deadlock in the same procedure.
4.2.4#
- New features:
Added ‘Virtual Screens’ option in web management interface.
- Changes:
The TCLV list for devices is automatically updated every 30 minutes.
Device working hours in web management interface can now span over the next day.
(internal only) The VSS source tree now uses ‘dep’ for managing external dependencies. Also the project directory layout was changed to comply with the Go community standard.
Minor optimizations when fetching device statuses from database.
The ‘Restart Services’ button was removed from the web management interface.
Fixed loading settings from database in WebKit processes.
Global settings are applied without the need to restart any of the VSS components.
Charts show correct data for the selected timezone.
- Known issues:
Changing device rotation in a virtual screen requires session restart.
4.2.3#
- Bugfix release
Fixed partial updates on hardware, different than id 5
Fixed session crasher if updating timezone
4.2.2#
- New features:
If the VSS server is started with the
VISIONECT_SERVER_LOGS_TO_STDERR
environmental variable, the logs will be in JSON format and are logged to stderr.
- Changes:
Log filenames are changed in a way that both stdout and stderr are written in a single file. Therefore, there is no longer
-stderr.log
or-stdout.log
file suffix.The HTML backend now honors global settings.
Fixed rectangle support non Visionect Sign 6” devices
4.2.1#
- Bugfix release
Device session creation deferred to 20 seconds after the connection has been established. If there are more then 50 concurrent requests for new sessions, they will be created in a bulk of 50 per 20 seconds.
Fixed race condition in HTML backend when initializing process watchdog.
Fixed access to invalid pointers in networkmanager when assigning sessions.
The X server spawner starts with –daemon=no, preventing a restart loop.
Fixed display dimensions on V-Tablet 1 and 9” V-Tablet 2,
Fixed passing default session values when adding new session.
The RPC TCP ports can be reused.
4.2.0#
- New features
Storage: The storage component was removed and replaced by directly connecting to the database. This improves the throughput as it lowers the system load.
- Changes
Fixed a bug where device won’t flash if flashing the firmware failed and the device reconnected to a different VSS server.
Fixed a bug where gateway would push an image to the device before it ACKed the status packet.
Fixed debugging mode for sessions.
Release 4.1#
4.1.7#
- New features
GTIN: Added PV2 status support for device GTIN values
- Changes
Partial updates disabled for devices with hardware revision less than 1.0.0
Fixed possible WebKit session crashes
4.1.6#
- New features:
Text to speech: Added support for Text2Speech by exposing the
okular
.Say function that sends arbitrary text to a specific device and triggers the speech module. Usageokular.Say([device id], [arbitrary 255-byte text]);
. Sending multiple speech requests will be queued.
- Changes:
Fixed protocol state machine to follow packet timeouts on write requests, fixes issues with live view being out of sync.
Fixed web management not showing generic TCLV commands if the firmware server doesn’t contain updated TCLV tables with new firmwares.
4.1.5#
Bugfix release
- Changes:
Heavy engine refactoring and code cleanups.
Changed product naming from Place & Play Onethree to Place & Play 13.
Fixed a bug where a gateway connection could hang when sending a status request and a connection was terminated.
Fixed a bug where a terminated X server wasn’t re-spawned.
Fixed a bug where networkmanager would crash because of invalid interface conversion.
Fixed a bug in gateway where the heartbeat interval wasn’t reset if an extension owned the connection.
Fixed networkmanager to always reboot the device when automatic firmware upgrades are turned on and a newer version of the firmware is available.
Fixed problems with image display on live view.
Fixed a bug in gateway where long image sends cause device disconnects due to status interval not being reset.
4.1.4#
Bugfix release
- Changes:
Fixed networkmanager crasher at startup where the RPC subsystem was not entirely initialized while RPC calls were possible,
Fixed networkmanager crasher due to concurrent dictionary read and writes
4.1.3#
- New features:
GPS support: Added support for GPS via new HTTP API endpoints. This feature is supported only on devices using 3G for connectivity and have a GPS receiver.
- Changes:
Removed signal strength calculation for old firmwares that reported raw data for RSSI
Updated the Go runtime from 1.7 to 1.9 which brings minor performance improvements, bug fixes and security fixes.
Fixed removal of larger number of devices via web management interface
Fixed stability issues when server experiences larger amount of reconnnects of several hundred devices
Fixed marking a device to be flashed with a firmware even if the device doesn’t have a session yet
Fixed border update flags by adding extra UI options in web management
4.1.2#
Bugfix release
- Changes:
supervisor bug fixed
fixed possible configuration corruption if VSS looses connection with the database
4.1.1#
- New features:
Place & Play 13” support: Added support for Place & Play Place & Play 13”.
- Changes:
Fixed stacking of Gateway goroutines when extensively using TCLV packets while devices disconnect.
Smaller bug fixes to gateway.
Fixed problem with sending image updates to device because of wrong configuration.
Engine code cleanups and improvements.
HTML backend honors timezone configuration.
4.1.0#
New features:
Password change: Users are prompted to change the default admin password on first login.
42” display support: Added support for 42” display.
Changes:
Fixed session migration on new engine and engine timeouts.
Fixed status requester code in gateway.
Backend fixes to virtual screen handling.
Fixed possible deadlock if ‘Sleep Manager’ is enabled
Release 4.0#
Note
To upgrade from Visionect Software Suite version 3 to version 4 follow simple upgrade example.
4.0.1#
New features:
System Board support: Added support for System Board 32” 1.0B0 and 1.0B1 (new DPU)
Extensions: Added a setting for disabling/enabling the extension to prevent I2C errors on the console for System Board 9.7”, 13.3” and 32” 1.3B1. Note: the extension is disabled by default.
Front light sensor: Added front-light sensor value reporting to the status packet.
Standby switch: Added a standby switch to System Board 32”.
Wpa2eu: Added a new wpa2eu setting to disable device side certificate authentication in WPA2 Enterprise mode.
CLI for GPS: Enabled CLI commands for GPS.
External voltage measurement: Added the option to measure the external voltage for System Board 32” (>0.5B0), sending the data via the status packet
Changes:
With System Board 32”, the external temperature is now sent as part of the status packet before drawing an image.
Fixed the wrong IC type message before image update.
Fixed border support.
Fixed the default frontlight table.
4.0.0#
New features:
Landing page: The landing page has been redesigned.
Basic settings: Added: a new basic device view in the web management interface, highlighting common device options.
Digital signage: The digital signage application was integrated as a way to create carousel content.
Image upload: Added: the option of uploading static images. The content is stretched or cropped automatically.
Intelligent updates: Added: intelligent updates that automatically detect content changes and create partial updates to be sent to the device.
Image optimisation: Added: image optimization techniques that enhance image quality on device displays.
Changes:
The possible race condition in NetworkManager where a concurrent map write was possible.
Devices will receive click response even if they didn’t send an initial status packet after connecting.
The Virtual Screens feature was temporarily removed for this release. Installations using this feature will still work, however the device management via the web interface is now disabled.
Software Suite version 3#
Release 3.4#
3.4.6#
Changes:
Instead of relying on an external tool to count the number of connected clients, reference counting is used instead.
Fixed numerous possible race conditions and deadlocks inside the Network Manager.
3.4.5#
Changes:
Fixed statsd metrics path
Fixed /api/devicefile/ to remove redundand “.png” suffix in filename before uploading.
3.4.4#
Changes:
Fixed DU waveform code.
Management interface uses cached device information, speeds up device querying.
<<<<<<< HEAD 3.4.5
Changes
Statsd metrics: Fixed statsd metrics path
Image upload: Fixed /api/devicefile/ to remove redundand “.png” suffix in filename before uploading.
3.4.4
Changes
Waveform code : Fixed DU waveform code.
Query speed up : Management interface uses cached device information, speeds up device querying.
3.4.3#
New features
Button count: A new ‘ButtonCount’ status is added to the /api/devicestatus API call.
Changes:
Fixed possible deadlock in networkmanager if deferring a session assignment when engine was down.
Fixed possible larger HTTP requests on firmware server by caching the firmware list.
Prevent device reboots with pre-unifi firmwares by hiding TCLV options in ‘Device configuration’.
3.4.2#
New features
Flashing: Added support for flashing using the legacy (pre-unified firmware)
ARM: ARM architecture support
TCLV: Updated the TCLV table to support newer firmware releases
Changes:
Fixed possible deadlock in the gateway where connection multiplexer hangs reading an incomplete PV2 header data.
Fixed possible endless TCLV approval wait by limiting the wait to one minute.
If submodule crashes an error message is shown instead of gateway crash.
3.4.1#
- Changes:
Fixed button support bug
3.4.0#
- New features:
Button Push Event: If one or more physical buttons are pressed on the device, then the webkit service will dispatch a “button-push” custom js event. The event provides us with source device ID and with state of all buttons.
Release 3.3#
- New features:
Session Cleanup: The Session Cleanup Threshold is available again.
Data usage chart: A data usage chart is now available, showing data usage (inbound and outbound) for a device.
Changes:
3.3.1#
Config file: Added missing “AutoUpdater” and “AutoBootUpdater” fields to the default config.json.example configuration file
Environmental variables: Fixed environmental variable parsing in docker containers for server setup.
3.3.0#
Scaling: Scaling the Visionect Software Suite no longer requires generating a service dictionary file, as the Network Manager does this automatically.
Web page caching: Fixed web page caching settings for the HTML backend.
Correct tags: Visionect Signs 6” using the CC modules are tagged correctly in the Management Interface.
Deadlock: Fixed possible deadlock when querying for TCLV packets.
Release 3.2#
- New features:
Custom image upload: Users can upload custom ‘disconnect’ images using the new
okular.SetImage
JavaScript API.HTTP API: Disconnected images can be pushed using a POST request on
/api/devicefile/
. To change the disconnected screen, the image must be PNG and named “disconnected.png”Online help: A new ‘Online help’ section has been added, linking to the Visionect Knowledge Base.
List device files: The API enables the listing of files on the device.
Changes:
3.2.1#
Display info: Fixed wrong display configuration.
Log download: Fixed invalid log name
Security: A security issue fixed.
3.2.0#
WebKit upgrade: The WebKit library was updated from WebKit2Gtk 2.4.10 to WebKit2Gtk 2.14.2
Fixes: New devices are configured using the reported width and height instead of the reported display ID.
Device session stability fixes: Various fixes to charts in the Management Interface, including timezone fixes and chart plotting.
Release 3.1#
- New features:
Log download: It is possible to download all the Visionect Software Suite log files with the new
/api/logs
web API. This works only if the server is running all the components inside a docker container and logs are available under/var/log/koala3
.Working hours: A new client device sleep option, called ‘working hours’ was added to device settings that puts a client device to sleep if outside the specified working hours.
New chart field: Device charts now contain an external temperature graph.
Device configuration: A new ‘Device configuration’ tab was added to the device settings, enabling advanced device configuration.
Time zone selector: The ‘Settings’ panel of the Management Interface now contains a time zone selector. The time zone is applied when plotting charts and configuring client device working hours.
Debugging: The ‘Debugging’ option that was removed in version 3.0 is now available again.
Log redirection: Log messages can be redirected to stdout/stderr if the environmental variable ‘VISIONECT_SERVER_LOGS_TO_STDOUT’ is defined when starting the container. If so, downloading logs with ‘api/logs’ won’t be possible since messages won’t be stored inside files.
- Changes:
Device event timestamps: Device event timestamps (statuses, image updates, disconnects) are now stored in The UTC timezone. Older event records are automatically converted to UTC, assuming they are in host local time.
Firmware flashing: Fixed device firmware flashing if the previous flashing was interrupted and the device got stuck in bootloader.
- Other:
Fine-Grained Device Configuration: The ‘Fine-Grained Device Configuration’ entry was removed and replaced by the new ‘Device configuration’ tab.
Release 3.0#
Warning
Don’t upgrade to Visionect Software Suite version 3.0 if you own a first generation Visionect 6” Sign, since software support for that particular hardware has been discontinued. More at: Visionect end-of-life products.
- New features:
Container-based Deployments Only: From release 3.0 onward, Visionect Software Suite can be deployed only by using Docker containers. We don’t provide any DEB packages anymore. Exported virtual machines with the latest server release are still available for download.
Support for first generation 9.7” and 6” Signs discontinued: From version 3.0 onwards, the first generation 9.7” and 6” Visionect Signs are no longer supported by the Software Suite. Connecting a first generation Sign to a deployed 3.0 Suite will display a notice on the device to use a compatible Visionect Software Suite from the 2.x series of releases.
Idle sessions are destroyed: By default, sessions that idle more than two days will be automatically destroyed. This applies only to sessions with all devices either disconnected or sleeping. The destroyed sessions are recreated when any of its devices appear. Sessions with online and active devices are not affected. The feature is intended to relieve the server RAM usage by cleaning up sessions of devices that are possibly not in use anymore.
- Changes:
New TZ field: Device status entries, obtained through the web API now contain a ‘TZ’ field with the timezone as configured on the Software Suite.
Removed session pre-loading: The possibility of pre-loading sessions was removed. Any session, marked to be preloaded will behave as if the option is not set.
Software Suite version 2#
Release 2.12#
- New features:
Session information: Display session limitations for registered engines on web.
Restart session from web app: A call to
okular.RestartSession()
from JS will restart the current sessionConfiguration moved to database: The Software Suite configuration was moved to the database, so editing the existing
config.json
file doesn’t have any affect. All changes must be applied from the Management Interface.Access to Live-vie imagew: The user application can fetch live view images by using special API functions - see more at Access the live view image.
- Changes:
Automatic update check: Check display IDs instead of comparing strings when automatically updating.
External temperature chart: Fixed the external temperature chart Y axis.
Release 2.11#
- New features:
Remote notifications:: The Management Interface n front page is able to show remote notification messages, warning the user to upgrade the Software Suite.
Display initialization:: The Software Suite can now initialize the device display while in bootloader.
TCLV GUI:: A new TCLV input entry is available in device settings in the Management INterface, enabling the user to send or receive TCLV data for a selected client device. The data inside the input entry must be JSON-formatted.
Release 2.10#
- New features:
Virtual screen synchronization:: If enabled, client devices inside the same virtual screen will try to change content synchronously, by first uploading the display content without updating the actual display.
Sending commands over HTTP:: It is now possible to send commands over HTTP by using a web API.
Services restart through web: It is now possible to restart all major components of the Visionect Software Suite remotely, by pressing the red Restart Services button found in the Settings sub-menu of the Management Interface. The services will be available again after a few seconds.
- Changes:
TCLV: Updated the set of supported TCLV commands
Release 2.9#
- New features:
Bootloader flashing: If the device supports bootloader flashing, the server will (if enabled) select the latest available bootloader from the firmware repository and flash it on the device. This feature can be regulated from the Management Interface. More details are available in Bootloader updates.
Directory service support: If there’s a file named
directory.json
in the$VISIONECT_KOALA_HOME
directory, it will be used to map engine UUIDs to host names. If there’s no such file, the value of theMasterHost
key is used from theconfig.json
file. The directory service file is used when deploying the Visionect Software Suite using multiple systems.
The example directory.json
below describes two engines (UUIDs are deployment keys, found in config.json
of each engine installation) and the IP addresses of their location.
Example:
{ "Engines": { "0854e487-11b1-46bd-987d-b51f4a8233bf":"10.7.0.11", "847a53de-5bfc-4c8a-acc1-cf5393520341":"10.7.0.10" } }
More flexible access to devices: A new JavaScript method
okular.NewCommand
was created that constructs commands and sends them to the specified devices using a device’s unique ID. The command data is formed with JSON and is specific for each and every command.
okular.NewCommand(device-id, command-name, json-data)
The only supported command in Visionect Software Suite version 2.9 is Param
. Calls to existing command API (e.g. okular.Sleep
) still work as expected.
Parametric Read/Write: Support for parametric read/write operations was added. This enables querying the client device itself by pushing a set of requests to the device or create write request to configure the device. The return values are device responses in JSON format and contain either read/write success responses or error messages.
Changes:
- 2.9.2
Separate bootloader and application firmwares to be compatible with older Visionect Server releases
Fixing constant device reboots if non-existent firmware was selected in web administration
- 2.9.1:
Request status after bootloader flashing is done
Honor ‘automatic bootloader flashing’ check box in admin
Report errors when reading bootloader data blocks from firmware repository
Fix engine image checksum handling
- 2.9.0:
A new request/reply IPC system was added to achieve better performance and cleaner code design
Added Gateway support for extensions
Engine no longer handles commands from the backend
General code cleanups in Engine
Communication of components is moving away from the star network topology to mesh network (which is more robust in case of failures)
Release 2.8#
- New features:
Cookie global storage: Web cookies are now accessed through a networked virtual file system and the cookies themselves are stored inside the database. Each engine instance within a Visionect Software Suite deployment will see the same cookies, no matter if the engine runs on a different machine. This is achieved using FUSE and the already existing Software Suite service. To support FUSE based ‘cookies’ inside the Docker container, the container needs to be created with special options. For details see docker/docker
Server scaling: The Visionect Software Suite now performs better with large number of client devices by configuring the deployment to use multiple engines with a single, master host.
DOS-attack prevention: The server allows max. 200 new connections within 10 seconds.
JavaScript okular.ConfigureSystem() additional options for touch: In addition to the enabled and disabled settings, the new option enables touch and causes the device to beep when touched (NOTE: will only work on devices with a touch screen).
Changes:
- 2.8.9
Fixed polling interval for first generation Visionect 6” Signs.
Exposed polling time in the Management Interface if device reports hardware revision “2”.
- 2.8.8
Fixed the first generation Visionect 6” Signs synchronous protocol implementation problem.
Fixed NetworkManager crash case.
The default rendering of First generation Visionect 6” Signs is now set to “portrait”.
Rendering engine image cache deadlock removed.
Fixed Front-light support.
Different fixes to second generation Visionect 6” Sign 6” flashing.
- 2.8.7
Various bug fixes to cookie virtual file system and webkit rendering.
- 2.8.6
Automatic firmware updater was integrated. This is a per-device setting: the user can choose if a device should be automatically flashed to latest firmware or not.
Management Interface: Image and Rectangle flags are now check boxes.
Several bug fixes.
- 2.8.5
Added support for turning on/off the disconnected screen inside JavaScript.
Virtual screen editor is available from the Management Interface.
Various smaller bug fixes.
- 2.8.1 - 2.8.4
Various fixes.
- 2.8.0
Battery values in mV are correctly shown in the Management Interface.
Release 2.7#
- New features:
Remote devices: The web frontend shows available remote device firmwares (if the Software Suite is configured to fetch device firmwares from a remote firmware repository).
Charging state: A new ‘charging’ state is shown in the web panel if a second generation Visionect Sign is connected to the Software Suite and attached to a charging cable. During this state the client device does not accept any pushed data from the Suite.
unsent commands are no longer stacked in a queue; it is now up to every developer to take care of a proper behaviour. Usage of the new JavaScript ‘Promise’ feature is encouraged to handle any request errors.
Unsent commands: Unsent commands are no longer stacked in a queue; it is now up to each developer to take care of proper behaviour. Usage of the new JavaScript ‘Promise’ feature is encouraged to handle any request errors.
Device and Javascript communication: More reliable device communication from JavaScript: issuing device commands from JavaScript is now returned with a JavaScript ‘Promise’ where the developer can wait and check if the command was successfully sent and received by the client device, or handle any errors that may occur. This change applies to all old and new functions that do ‘send’ commands.
Flags exposure: Image and rectangle flags are exposed: it is now possible to optionally set image (clear screen, border) and rectangle flags (transparency, disable inverse).
The option to change the following settings via JS API:
Request for device display touch software update (for second generation Visionect Signs)
Enable/Disable battery indicator & touch (for second generation Visionect Signs)
Configure battery indicator (for second generation Visionect Signs)
Configure Device Display’s VCOM
Configure Device Display’s Type
Device status during frequent usage: Device status during frequent usage: a ‘status request’ command is sent every 15 minutes that tells the client device to send a status packet back as a reply. The Software Suite then waits a minute for a reply and resends the request if there is none. It takes five tries (taking at most 5 minutes) before the initial request expires and the Suite gives up. In case of a failure, a warning message is printed out. The request is repeated in the next 15 minutes. This feature is enabled by adding StatusRequester to the Features list in config.json.
Note
This feature is supported only by second generation Visionect Signs with the firmware revision 0.0.269 or higher.
- Changes:
Flashing: Client devices can now be flashed with latest firmwares from our firmware repositories.
ARM installation: Installations on ARM systems are now faster; live view rendering was optimized.
Device ban: It is possible to ban devices from connecting to a deployed Visionect Software Suite by using ‘whitelist’ files.
Release 2.6#
- New features:
Preloading session option: Sessions can be set to be preloaded on startup.
Automatic page reloading feature (watchdog timer): It enables the developer to reload the page (app) after a certain amount of time if the page becomes unresponsive. Check the documentation.
Support for touch packet: New V2 protocol way to report that the display has received a touch command.
- Changes:
Config-json changed: The format of the configuration file config.json has changed and is automatically updated upon first run. The old configuration file is backed up under the name config.json~.
Display editor: The display editor in the Management Interface was changed to enable more display options.
Release 2.5#
- New features:
Support for different displays was added by introducing display drivers: It is possible to select display drivers in the Management Interface, under Device properties. Supported drivers are :
E Ink ®: driver for 6”, 9” and 13.3” E Ink displays
Plastic Logic Germany: driver for 10.7” Plastic Logic Germany displays
E Ink ®: driver for the 32” E Ink display
E Ink ® 32” Color Mask: driver for the 32” E Ink display with color support
New CLI flags were introduced to NetworkManager to fine-tune the Software Suite behaviour: Flag
-i
: set it to ignore number of displays, reported by device (default to true). Flag-s
: set it to set status filtering option and consequently reducing log level (default is disabled).Management Interface related changes:
System status (server load, disk usage) available via admin HTTP remote API in
/api/sysinfo
.Network stats for devices are available at
/api/netstat/{UUID}
where{UUID}
is the target device UUID.
Database changes: In the version 2.5 of the Visionect Software Suite comes without a default database install.Previously the Software Suite installed CouchDB by default, but this has been changed as Suite 2.5 comes with official support for multiple databases. Old installs will not be impacted by this change, while this version will require a manual database install - pick between PostgreSQL and CouchDB. By default, when doing a fresh install of Visionect Software Suite 2.5., the PostgreSQL database is selected in the config file, but you’ll need to add connection details.
Note
While PostgreSQL and CouchDB were both supported in version 2.5, currently (versions 2.6 and above) only PostgreSQL is supported. PostgreSQL uses much less memory and disk space (up to 10x) while running much faster (up to 25x) compared to CouchDB.
Warning
Visionect Server must be restarted for database changes to take effect.
- Changes:
HTML Backend: Image caching for the HTML backend is now based on storage size instead of number of elements with arbitrary sizes. The field ImageCacheSize in the config.json defines maximum size of megabytes to use for image caching. The default value is 16.