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 4


Release 4.1

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. Usage okular.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

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

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

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.

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 session
  • Configuration 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 the MasterHost key is used from the config.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 https://github.com/docker/docker/blob/master/docs/reference/run.md
  • 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. More details on Handling command errors with JavaScript “Promise” feature
  • 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.