Summer 2015 release notes

The 2015 summer release to our product line is now available. This release contains a massive number of improvements and bugfixes, many of which have been incrementally implemented over the past 9 months (so you may have seen some of this already over the past seasons). All of the software changes listed below are now live on our paragonrobotics.com site, so you can start using them immediately.



Hardware

  • modify PCBs for SC1/11/12/22/13 boards to substantially improve antenna performance. These devices should see 2x to 3x wireless range improvement after this change
  • add epoxy to USB power jack on all gateways to increase strength and reduce change of jack separating from circuit board during impacts


Firmware (firmware version 1.23)

  • fix bug in lookup table calculation logic, affecting some specific lookup situations
  • revise TCP keep-alive logic on HaloCloud connections to better detect HaloCloud server restarts
  • ensure extra touch sense machine check timer is not ignored when clock is updated
  • fix potential message close during fragmented "change contents" messages when the last chunk is small
  • fix potential crash during specific fragmented "change contents" message
  • make sure all read change calls stall until the full message is received
  • add a full memory throttling to read contents handling in order to accommodate new products with very large machine trees
  • fix unused key encryption lookup for potential future use
  • do not allow arbitrary key lookups during firmware write requests, preventing possible crashes with bad firmware packets
  • immediately flush any bad incoming encrypted message packets to prevent memory shortages during invalid long writes
  • when routing packets, make sure we don't prematurely signal the packet as finished
  • fix potential crash when return routed packets do not match any existing socket
  • properly save/restore signal byte during exotic write operations
  • during write commands, make sure we wait to respond until we received the entire packet, to eliminate possible error returns upon receipt of the final segment
  • improve SMBus serial communication window size logic on small windows
  • fix SC18 wireless communication issues when power cycling device after adding external sensor
  • help ensure haloCloud alarms are forwarded through superGateways
  • do not send client IP during DHCP request packets, as at least one known router will ignore request packets with this field non-zero
  • create a new random DHCP client transaction ID whenever we start a new DISCOVER search
  • add ability to force device wakeup for 10s at a time to more intelligently speed up latency when interacting with PC software
  • better pack wireless packets so that all short packets fit into a single packet instead of 2, speeding up wireless communication and improve reliability for short requests
  • tune radio parameters to improve sensitivity by around 5dB at lower speeds
  • add extra check during initial beacon search to ensure only beacons make it through one of the checks
  • improve initial beacon search robustness when bad beacons are received
  • remove possible startup delay for GW beacon sending to help speed up time to first beacon send
  • if restarting a piconet search in the middle of a piconet switch, be sure to clear the bit and not try to switch when finding the next piconet
  • fix SC18 power button issues after adding external sensor
  • forcefully disable SMBus for SC8/18 devices, as it caused additional battery leakage before any external sensors were added
  • fix possible memory corruption during aborted transfers of large writes
  • expose MAC address to a readable node
  • eliminate the "be sure to enable offline storage" in gateway embedded webserver 404 page, as we don't use offline storage on paragonrobotics.com site anymore
  • when pressing a button on a sensor, if it's in long-search mode or long-latency mode, try searching for a gateway immediately to improve response time for eager users
  • increase timeout allowance for non-routed packets, to help improve communication in poor wireless environments
  • fix possible corruption during storage of very long device ids on gateway device list
  • fix possible crash when using SMBus serial communication


super gateway firmware (version 1.23)

  • increase inter-processor buffer size to help throughput speed and stability
  • make sure we don't start duplicate DHCP clients
  • revise factory reset LED timing to ensure all factory reset process portions are executed when the LED stops blinking
  • do not allow user to overwrite the network key if one already exists (must factory reset to clear first, which is inline with basic gateway behavior)
  • fix "format storage" function
  • improve error checking to catch corrupted SD filesystems better
  • help prevent wireless message sending timeouts during interprocess communication
  • help prevent wireless message sending timeouts during SD write operations
  • fix haloCloud logon after power reset
  • properly broadcast all connected devices to haloCloud server
  • create a new random DHCP client transaction ID whenever we start a new DISCOVER search
  • fix DNS server notifications when using built-in DHCP server
  • add MAC address with IP response


setupDevices widget (version 3.1)

  • make sure we don't ever convert numeric IP addresses found using the "button search" method to local versions
  • add special advanced configuration GUI for super-gateways
  • improve dialog feedback for super-gateway firmware updates, as they take awhile to update and reboot
  • add random password generator for highest security
  • improve logic when multiple keys are being created, and let user lazily abort creating a new key
  • improve auto-detection of devices with multiple keys present
  • properly save the gateway version number when configuring first time (fixes software alarms when first configuring gateways)
  • after updating device firmware, ensure gateway remains in open mode afterward so it can continue setting up other devices with requiring user to close and reopen setupDevices
  • add better result dialog message after reformatting gateway storage
  • do not show static IP information twice for super gateways
  • automatically change the connection address for gateways when changing static IP info
  • when launching "specific IP" dialog, focus on input element
  • add key handler on "specific IP" dialog to allow user to press Enter
  • preload static IP fields with 0.0.0.0 to help show user the format requested for each field when first switching over to static IP
  • skip automatic "searching for gateway" step after user already has a gateway setup
  • skip automatic "searching for devices" step after user already has a device setup
  • fix group label display for devices
  • speed up description changes by eliminating post searching step
  • when editing key name when multiple keys are present, auto-update the drop-down label when changing the username, to help display to user the changes were accepted
  • when setting up super-gateways, add ability to select key for each connection to other gateways
  • display gateway current IP address in advanced setting area
  • display gateway MAC address in advanced setting area
  • after factory resetting a gateway, when clicking on gateway row, show the "claim" button immediately without requiring a claim operation
  • add overall search security option to first page to optionally disable auto-search mode when using setupDevices (useful for high-security setups)
  • add overall search security option to first page to optionally disable all-local-link gateway search mode (useful when multiple gateways are present locally, however user only wants to connect with one)
  • remove colons from all table labels, to align with adjustment to Paragon interface guidelines
  • add credential version selector on network security page, for optional v2 format
  • add super gateway IDs to the HaloCloud assisted search function dialog
  • add ability to load additional keys onto devices, allowing them to log on to multiple Halo/S networks


accountManager widget (version 3.1)

  • warn user when caps lock is on when entering passwords
  • change name and company storage format to align with other sales system changes
  • improve speed at which information is retreived from server (haloS library speedup)


systemSimulator widget (version 1.4)

  • tweak input styling for improved appearance


helpViewer widget (version 2.1)

  • fix "have an engineer contact me" links
  • reinstate the "download as PDF" button on HTML manuals


dataAnalyzer widget (version 1.1)

  • this widget provides a simple way to view/inspect saved logged data without going through dataRecorder
  • add "export all data" option, in addition to existing "All visible data" option


softwareManager widget (version 1.1)

  • change name from appManager -> softwareManager
  • change to new app file format
  • launch BACnet/IP and Modbus/TCP server software to marketplace
  • add "rescan devices" function to update the known list of apps
  • improve styling on mobile view


dataRecorder widget (version 3.1)

  • fix obfuscation-related issue when removing machines on SC14 and SC18 devices
  • remove 0.001 minimum resolution limit when logging
  • update and expand thermistor calibration curves
  • when refreshing a chart, also update the min/max dates for the data series so zoom-fit includes new data
  • fix scale and range calibration issues for SC14 devices
  • when dataChart is loading data and showing "Loading data..." throbber, when user resizes the window make sure we don't hide the throbber prematurely
  • correctly color the status text of the device when clicking on a device row
  • fix small bottom border issue with "Loading data..." throbber mask
  • add GUI to enter Steinhart-Hart thermistor constants
  • allow disabling the "All devices" view for large systems in which it isn't used
  • add a "mass download" dialog to allow large systems which are offline to be periodically downloaded manually
  • add a compressed data file format option to help reduce size of saving large data files
  • add a compressed data importer on the chart widget
  • when starting logging with multiple gateways configured, improve logic to automatically choose the best gateway to store the data on
  • when importing data from file, always start off with the series visible
  • eliminate the "refresh" setting on the quick watch, and instead just provide a link to manually update the watch value. Some users previously confused the quick watch refresh with the logging interval, and also the auto-refresh checks would sometimes interfere with other operations and incorrectly flag devices as disconnected if there was a conflict of several wireless requests at once
  • allow user to edit name and group from the device page (clicking on device in left sidebar)
  • properly update the left sidebar when sorted by group and a group has been changed
  • correct calibrations for some 3rd party preset transducers
  • eliminate 2 duplicate chart refreshes when first drawn, to make sure all series display at once
  • implement the first use of the new device wake mechanism, and wake up devices as soon as the user clicks on its row. By routinely waking up device every 8s or so, we can eliminate the up to 2s latency for each subsequent communication. Also, reimplement the inactivity timeout watch so we can stop waking the device if the user leaves the screen up for 5min
  • help ensure GUI tree and sensor list update correctly after adding/removing external sensors
  • add "are you sure" dialog when closing chart tabs
  • when adding a SC18 CT sensor, add option to output power in Watts, inputting power factor and voltages to automatically output power instead of current
  • discontinue the "do you want to continue" dialog and just simply turn off rapid-wait command after a timeout (will just be re-enabled when user clicks on a row again)
  • add a "manual force only" update option for all-in-one view, so it shows data but user has to click refresh to update each time
  • move all charting to new "dataAnalyzer" widget, so that all created charts are now in a standalone tab and provide more analysis capability
  • adjust styling to maximize space now that charts are moved out of dataRecorder
  • in all devices view, display alarm clock icon next to any sensors with running alarms (to help user quickly check setup)
  • in all devices view, display recording icon next to any sensors which are logging (to help user quickly check setup)
  • when trying to chart motion data, properly alert user when device is not connected
  • save the last selected unit on the "quick watch" view, and use it next time user clicks on row (global SI/US preference is still stored separately as well)
  • allow user to chart "fake" sensor data
  • on bulk export dialog, add a "beginning of time" option to start time option
  • help prevent all-devices view from trying to refresh view when gateway is not connected


Paragon workspace/website (version 2.1)

  • make sure all character encoding meta tags are first in head, so that it is within the first 1024 chars
  • correct contact html form to include proper header and encoding
  • move to haloS+haloView dependencies only
  • separate out all support documents from helpViewer widget
  • tweak styling of footer (copyright, social media links, etc) on Firefox to improve appearance
  • remove IE7 website workarounds, as it is more-or-less not used anymore and was clunky
  • remove bottom quick menu product links for all product pages as we can't fit all products in there anymore
  • upgrade home screen icon resolutions to 192px
  • fix home screen icon format for recent Android versions
  • add Android manifest so that home screen icons launch in standalone mode (no navigation bar) for nicer experience
  • add help documentation for website portal


haloS (version 2.4)

  • revise app support libraries for new file format
  • add GW10 server app functionality
  • add support for binary AJAX file transfers
  • ensure all chart series colors do not use gray, as that looks like an unselected series in legend
  • use rounded chart series lines, eliminating a visual "spike" when angle is small at high zooms
  • properly flush any record of routed messages if the channel is destroyed unexpectedly
  • fix bug in chart indexing cache, where wrong index data could potentially be loaded during certain circumstances
  • cleanup basic alarm app variable names to compress app size by 2%
  • fix firmware updating process for non-super-gateways
  • add API docs for read/write Ethernet settings functions
  • fix some obfuscation problems with list-all-devices-with-search example
  • fix example type when stopping logging on sensors
  • remove some debug output from command line when creating alarms
  • remove compile-app example since it is obsolete
  • allow reading non-floating point numbers in compressed chart series
  • change default time view for charts to "your current timezone"
  • allow "software alarms" to be received through haloCloud connections
  • improve local link discovery performance on windows by fixing some old fixed logic depending on .local extension
  • large speedups in halo object to contents conversion (20x in some cases)
  • add error callbacks on networking clientOrganisms when servers cannot be contacted, in order to provide better error messages to callers
  • improve robustness when deleting apps which have previously failed during removal
  • when creating alarms, add a random delay up to 10% of the refresh time. This helps ensure devices with multiple sensors with same alarm refresh rate will not all synchronize, improving memory and wireless performance.
  • when hovering over chart points, show 5 significant digits on value (was 3)
  • large speedup when reading/writing very large server storage databases
  • add MAC address to readGatewayEthernetConfiguration function
  • when using the search/filter bar for device tree, filter by sensor names as well
  • when using the search/filter bar for device tree, do not filter on ID anymore
  • when logging on to server with bad credentials, delay the socket close slightly so we can respond with useful error message first
  • add a v2 credential option, to help reduce hash collisions on key names which are very similar


haloView/website platform (version 1.2)

  • check for Android users and assume they don't have local link discovery and make some tweaks
  • move more functionality to public API
  • release 1.0.0 version of package
  • when clearing PC storage, close all tabs first to help ensure everything is cleared
  • remove ".local" extension for local link discovery on Windows clients, as some Windows O/S versions don't automatically resolve .local addresses using LLMNR properly
  • when leaving the page, add a "are you sure you want to leave" warning in case user accidentally exited
  • when using the ?login search term, do not show the HaloCloud login dialog when we are going to try to auto-login
  • add a sort by description/group/id/type selector on most device tree widgets
  • when loading saved settings and multiple keys are present, properly assign each credential per network connection
  • when loading saved settings and multiple keys are present, properly assign each credential per device/gateway
  • do not fire onchange handler on tree widgets when user simply expand/collapses a grippy
  • FEATURE: add load and save settings options to allow user to manage device settings better
  • FEATURE: add ability to store multiple "contexts" (or users) on a PC, and be able to switch between them to facilitate large installations better
  • FEATURE: allow creation of "user" contexts instead of the default "admin" type. Users cannot access setupDevices or make and changes to their system, providing a way for a site admin to lock down access for certain users. Access to the admin context can be protected via password, preventing users from gaining admin privileges
  • gray out "disabled" tree rows better for better visual standoff
  • properly save/load external sensor jack numbers when saving/restoring from file/haloCloud/gateway
  • when registering a haloCloud account, force lower case before registering to make sure we can find the credentials when logging on later
  • fix bug where second time looking at preferences lost some temporary settings (previously had to refresh page to fix)
  • remove unnecessary right padding to the tree widget rows, so text fits better
  • rename "vacuum" button to "clear context" in preferences dialog
  • do not show the "clear context" button in the preferences dialog when only one context exists
  • fix saving/restoring of device names when switching contexts or saving/loading settings
  • when logging on to HaloCloud, add separate error message for when server cannot be contacted, so users do not get confused and think their password is wrong when they simply don't have an Internet connection
  • add support for local "HaloCloud" server login for super-gateways using embedded website
  • add full support tab to super-gateway embedded website
  • add accountManager to super-gateway embedded website
  • fix regression where clicking on tree "checkbox" during charting did not toggle the visibility
  • improve robustness of close+reconnect with remote servers when refreshing the website
  • warn user when caps lock is on when entering passwords
  • on the group selector dialog, reset the dialog properly when reopening, ensuring and special add/rename GUI is removed
  • on group selector dialog, autofocus new or rename input fields
  • on group selector dialog, allow Enter keypress to trigger Ok for new and rename entries
  • when saving settings to file, include the time as well to help ensure the filename is unique even if multiple exports are done in the save day
  • change label "Manage settings on this device" -> "Current user/context" in the preferences dialog
  • in tree view, do not trigger a changed event when user simply collapses or expands a tree level
  • update method for reading and writing user data, to match up to new superGateway server capabilities
  • when logging on to HaloCloud, check for optional security settings for the account
  • allow optional two-factor authentication for HaloCloud accounts (not currently enabled for Paragon server accounts yet)
  • when logging on to HaloCloud, notify user if user/password is wrong, or if there simply isn't a network connection to the server
  • add check for super gateway embedded server before rejecting 2 logins to the same server address
  • don't load any dataAnalyzer tabs at startup, as they don't contain any saved data yet and are annoying to manually close
  • when charting sensor data, try to at least show all historical data even if the sensor is not connected
  • implement automated password reset process for HaloCloud accounts
  • fix several issues with loading minor sensor settings from HaloCloud account
  • add throbbers when saving user/context to HaloCloud or gateway


haloCloud (version 1.2)

  • fix memory leak #1
  • fix memory leak #2
  • fix memory leak #3
  • add "standalone" device pool implementation for super-gateways
  • improve robustness of broadcast channel tracking
  • only check base routing target names when looking for a match, to fix haloCloud alarms for super-gateways
  • check for any sensitive information in url options and strip them out before logging http request to disk
  • update API for reading and writing user data, to match up to new superGateway server capabilities
  • properly recognize both GW2/3 and GW1x versions of the local IP address response for use in remote claiming and setup of systems
  • commonize cache between http and https servers to reduce memory usage
  • add a signal catch to force haloCloud server to flush cache (e.g. when static website files are updated on disk)
  • add the beginnings of a simple monitor function to remotely monitor status of a haloCloud server


modbusServer (Modbus/TCP) app (version 1.1.1)

  • add endian (word order) option for all 32 bit data types
  • add "float-32" description to the single precision data option for extra clarification