Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
For release software update packages, visit http://pathfinderpc.com/releaseDownloadsCorePro.htm
Click on the subsection for the appropriate major/minor version to view release notes.
Fixed an issue that would prevent user panels from working if the security settings denied access to the main Devices object since their ability to work relies on being able to check the service load state and the ping property.
Get operator only is granted access to that object's few properties for all valid user logins so that these properties may be queried.
Added some error trapping to catch a rare situation where an ip client in the process of being disposed and sending at the same time might cause a crash.
Removed an error message from the logs regarding the failure to remove meters from a lookup collection that is not actually an error.
Clarified an info log message to make it less error-like regarding Qor Lwcpss message handling for amix.
"amix" parameter support currently requires the beta version.
Fixed an issue with the userpanels xy grid and locks with virtual routers.
Added code to decode ampersands properly in uerspanel properties that use url as their property type in the property grid.
Fixed an issue where the user panels list web page still displays notes and warnings about using legacy panel designer.
These notes should have been removed in version 1.4.
Fixed an issue with user panel countdown clocks where the change of countdownlength was not being raised to sapV2 and therefore would not update data in the countdown clock without refreshing the panel web page.
Fixed an issue with user panel countdown clocks where reloading the page or changing the countdown time on a page where the timer had elapsed but not been reset would show the count down duration instead of 0.
Added code for user panel countdown timers in countdown mode to display 0 if countdownlength minus elapsed milliseconds is less than zero.
In the User Panel Designer, added an alert and block to the countdown timer --countdownlength, stopmode, and resetmode properties to prevent them from being unbound as binding must be left on for them to function properly.
Fixed an issue with UserPanels where it is possible to start receiving state messages before the bindings file is loaded leaving those states with no place to go.
This could cause some panel objects to have an incorrect starting state when the panel gets loaded.
To address this problem, this version does not connect the web socket until the bindings file has been loaded.
Fixed an issue where phase 1 of the Lwcp state initialization was sending GET SUPV STATE whereas Quasar would only accept GET supv state.
The result was that with Quasar we would often not get to phase 2 and therefore not get initial states for a variety of parameters until those parameters changed.
For example, a user panel label bound to the show profile name would likely be blank on system startup until the show profile was changed or we happened to poll that parameter.
Fixed an issue where generic emulators set to TcpClient mode were not raising connected change events.
Fixed Connected property for Device Emulator listeners so that it will be true if at least one client is still connected and False otherwise.
Fixed an issue where subscribing to a GenericEmulator would yield a ToSend event with an empty string for each ToSend attempt.
ToSend is a write only property and should not raise events.
Fixed Generic Emulator ConnectedCount not displaying the correct count and not changing when tcpclient is selected as the connection type.
Fixed an bug introduced in version 1.6.6.00 where user logs were no longer accessible from the web ui and were instead showing a forbidden access error message.
Fixed a bug where the disabled property on Html5 user panel buttons was not being respected by touch actions on touch screens.
Added a blankvalue property to the saselector drop down control in html5 panels.
The blankvalue property allows you to define a value to use if the value returned is blank.
For example, the manual example refers to using the currentsource property of a virtual destination and filling the list with virtual sources.
The None source has a value of "0" but often a cleared destination route is returned as a blank field instead of 0.
Using 0 in the blankvalue property will force the empty currentsource to be interpreted as 0 which matches the none source causing it to be displayed.
Without this property being configured, a destination with nothing returned as the current source will simply not make a change to the current item in the list causing it to retain a route where none actually exists.
This has been implemented as a separate field because each list might or might not require different values to be used or not used for a blank field.
Please review the release notes for the non-public 1.6.6.00 version as those changes exist in this version as well.
Change the factory default file to alter the timezone localtime symlink rather than overwrite the file.
In some cases this was overwriting the underlying symlinked file causing a specific timezone to show Eastern offset rather than the correct offset for the timezone after a factory default.
Bank updating would fix the problem as well until the next factory default.
Added a question to the r2 production install script to ask if it is being installed on the mbx platform.
If the answer is yes, the crystal fontz display application is disabled and we use the new default ip addresses in the ip address questions.
This version includes major changes in how PathfinderCore PRO is compiled and built in order to bring it more inline with other Telos Alliance products and Continuous Integration policies.
As this is a major change, please report any bugs you encounter.
This version was not publicly released.
Fixed an issue where an image assigned to an SaConsole button would not display and would disappear after saving the panel.
Fixed an issue changing the name of a logic flow view (folder) would cause flows within that view and/or its sub views that have combiners in the flow not to function past the combiner.
Previously the workaround was to either reboot or rebuild the flow.
Fixed an issue where the default friendlyname if no other was specified for an object was the object type without the id which led to duplicate entries in the logic flows tree.
Fixed issues with image properties in the user panel designer not displaying a list of panel images as choices in the translation dialog.
Added the overflow property to label controls which when used in conjunction with text-overflow can prevent the text from overflowing the label.
Fixed an issue in the user panel designer where the image selection dialog appeared when pressing the bind button for background-image and img src properties when it should not.
Fixed an issue in the user panel designer where the image selection dialog appeared when clicking the property header for background-image and img src properties when it should not.
These two issues made it difficult to get to the flow editing of those properties.
Fixed an issue with image fields in the user panel designer property list where the shift-click option for manual editing would not work.
Fixed issues with images switching from relative url to full url when saving a user panel design.
Fixed a bug introduced in 1.6.2.00 which only affects a small number of customers who have been provided with information about using auto insert limits in Axia Audio Routers to split Ios from different sites into different routers.
1.6.2.00 changed when backfeed sources where tested against the autoinsert limits which broke backfeed discovery when auto insert limits were used.
That should be fixed in this version.
Warning: If migrating from a patch version earlier than 1.6.2.xx or 1.7.2.xx review the notes for 1.6.2.00 and 1.7.2.04 regarding a manual sync.
Fixed additional bugs related to discovering backfeeds introduced in 1.5.20.43.
New backfeeds were often not being discovered into the router or on clusters they might only be discovered on one of the systems or neither of them.
Fixed an issue where newly discovered Ios (especially backfeed ios) might not make it into the io lookup table on the secondary server in a cluster.
This might cause certain parameters on those ios to not update until/unless the secondary server took over.
Fixed issues with the cluster synchronization of newly discovered backfeeds which was not working correctly in all situations.
Fixed an issue where the secondary server in a cluster might not show the current owner changes for backfeeds until/unless it took over as primary.
Fixed an issue with Gpio routing to iport destinations which was not allowing the route to take place.
The command was sending invalid name information in the SRCA property which other devices allowed but Iport did not.
Warning: Because of the discovery issues above it is possible that clusters might have backfeed Ios on only one server or the other. After updating, a manual sync from primary to backup is recommended. Review the manual for details on executing a manual sync. To sync from Primary to Secondary, open the clustering tab on the secondary server and click the manual sync button. This will request a special clustering backup from primary and restore that backup into the secondary PathfinderCore PRO which will subsequently trigger a reboot of the secondary PathfinderCore PRO.
Fixed bugs introduced in 1.5.20.43 related to how backfeeds are handled differently with iQx/Qor.
The changes required to handle differences in how iQx/Qor handle backfeeds caused backfeeds to sometimes be created without certain information in the database.
In some situations this could cause the backfeed to display as a normal source rather than a backfeed source.
The backfeed rtp stream address was also appearing in some cases in the device's normal port causing multiple source targets for a route due to the duplicated multicast address.
This version fixes the missing data in the database on ingest of the io so that it properly gets created as a backfeed object.
This version fixes the missing data when new backfeeds are discovered on an iQx/Qor and are added to the database.
This version sets the device port to no address, disabled, and a default name in the source table when being used as an autobackfeed style source.
Updated copyright footer on web pages.
1.6.0.00 release build for fanless engine, r2, and vm platforms.
This build is the same as 1.5.20.43 but moved to the master release branch and versioned as 1.6.0.00.
All future bugs related to features already in this version will become patches to 1.6 versioned as 1.6.x.00 where x is the patch number.
All new features will be created in the next 1.7 beta branch.
Updated the manual link to version 1.6 of the manual.
See for details.
Fixed an issue with DayOfWeek timers during the Daylight Savings Time Shift.
In some cases it was causing an endless loop for an hour after each DayOfWeek timer scheduled for the day the time springs forward.
This was also causing the watchdog to reboot the system periodically until the hour after the timer should have fired had passed.
Fixed a bug that was causing the cluster backup generator to sometimes hang and then fail in the backup generation.
Fixed a bug where cluster backups in a plus GMT timezone could not be deleted due to the plus in the filename.
In this version plus is replaced with underscore in the generated name.
Fixes an issue with passwords with certain characters.
Due to a malformed regex some passwords would not get written properly from the web page password editing to the back end.
When setting the Admin password this could cause a lockout of admin capabilities forcing a call to support.
Characters that could cause problems prior to this update include: \^$.|?*.
While this version fixes the problem, you may have to forcefully reload the web page to make sure the new code versus cached code is used.
In chrome while on the user page, hold Ctrl and Shift while clicking refresh to reload the new JavaScript files.
It is also not a bad idea to have a second Admin user that works before changing the password of the primary admin user. That will allow access if the password change is problematic.
Fixed an issue with Classic Ids being incorrect between two nodes of a cluster when a device was added after the cluster was formed.
This could cause issues with user panel controls which would work when connected to one server and not the other.
While this fixes the bug that was causing the classic id mismatches, it is recommended to do a manual sync to force synchronicity if you find this to be a problem in your system.
To do a manual sync go to the secondary server and click the manual sync button.
This will request a special backup from the primary, pull it over to the secondary, and exeucte a restore on the secondary.
Added warning messages if the file selected for a bank update does not appear to be named correctly for the deployment target.
Fixed an issue with log writers that were tcp listeners.
Changing the log parameters was sometimes causing an application crash due to a socket exception.
Updated Client/Mini links to 5.81.
Made meterfaders send -3276.8 to console fader when below -79.0 to force the Fader_State=DOWN value.
Fixes an issue where meterfaders were not populating controls properly if pointed at fusion vmixers or console channels.
Fixes an issue where meterfaders were not controlling console gain faders correctly.
Important Notes: Updates to the Pathfinder Client and Mini for Core only.
This Client update can be used with Core PRO software 1.2.2.00 or later
Made meterfaders send -3276.8 to console fader when below -79.0 to force the Fader_State=DOWN value.
Important Notes: Updates to the Pathfinder Client and Mini for Core only.
This Client update can be used with Core PRO software 1.2.2.00 or later
Fixes an issue where meterfaders were not populating controls properly if pointed at fusion vmixers or console channels.
Fixes an issue where meterfaders were not controlling console gain faders correctly.
Fixed potential issues with item deletes and the possibility of the web page refreshing before the message was sent.
Fixed a problem where the base io editing on routers would not work correctly if numbering was off.
Fixed an issue where the page could be reset after editing base ios before all messages got sent to the server.
Fixed an issue where legacy panels could endlessly causing excessive cpu load trying to rectify classic ids if the classic id does not exist.
Incorporated scripting changes related to the dynamic construction of a core dll from 1.3.7.04 as they apply to 1.2.xx as well.
Fixed a bug with virtual IO base point editing that was preventing the removal or reordering of base points in a virtual io.
Fixed a bug that was causing virtual base IO reordering and sometimes deleting of base io points not to work correctly.
In some cases the final rectification was incorrectly ordering the base ios.
The divergence point in the base point analysis was generating a delete message based on the path including the mount point instead of just the virtual base io path.
Note: Base IO reordering still may not be entirely correct. Still testing and tweaking the code.
Changed client link to 5.78 which disables/hides the Scheduling button which is non-functional in CorePro.
Changed client application links to point to PathfinderPc.com instead of internally to save some space on the cf card.
Based on 1.2.6.00
Added scrolling on logic flow folders for long lists of folders in the web UI.
Added some code to force ownership and securities on network config files during a restore operation including an update restore.
Attempts to fix a reported issue where occasionally the office network cannot be changed from the web page.
Fixed an issue where double clicking on an endpoint would select the correct property but sometimes would display the incorrect property description.
Fixed a bug where deleting combiner inputs was not always causing the combiner to get rewritten to backing storage.
As a result the deleted passiveinput ids would load after a restart even though no translator was hooked to them.
This could cause unassigned states on those combiner inputs and prevent the combiner from analyzing properly after the reboot.
This fix will prevent this from happening with future flows.
If you have a flow in this state it is easiest just to recreate it.
If the flow is particularly complex to recreate, contact support as there are ways using the API to remove the extra combiner inputs.
Added a hover balloon over combiners to show the passive input count.
Used to determine a discrepancy in the input count.
This will allow you to determine if a combiner is in the state mentioned above where it has more inputs than translators tied to its inputs.
Based on 1.2.5.00
Fixed a bug that was preventing the creation of String Builder memory slots. This was broken as of 1.0.0.36 when startup states were introduced.
Fixed a bug that was causing Virtual Routers not to show the Other source state in many situations.
Adjusted the settime parameter when setting the time from local pc to enforce more complete and proper formatting between the JavaScript browser and PathfinderCore PRO.
Modified the backup script to include the DNS settings file.
Previous to this change DNS settings were being lost during firmware updates.
Note: the update uses the existing backup script to do the update so DNS will have to be reset after this update and should then be correct for future updates.
Refactored some code in LogicFlowManager which theoretically might leave objects in ram that had been deleted when a complete folder was deleted.
Fixed a bug in Client and Mini that was causing frozen meters when audio cut out in some situations where decay rate was used.
This fix requires installing the 5.77 version of mini and client.
Fixed a bug introduced in 1.2.1.00 that in certain rare cases could cause logging to create a deadlock on the SapV2 connection.
Fixed a bug that was causing Logic Flow views to leave residual data in the backing storage after more than 1 rename of a view.
Changed the audio alarms web page data table to make the save state option enabled.
Changed the scenes web page data table to have filtering enabled.
Important Notes: You may need to hold cntrl-shift and click refresh to refresh the logic flows web page the first time after updating to ensure you are not using cached javascript.
Be sure to update client applications (client, mini, panel designer) to the versions in this software package.
Fixed an issue with day of week timers in a cluster that was causing them not to fire on subsequent days in some situations.
The elapsed property on a Day of week event when in a cluster was not resetting back to false such that the next day event would not happen.
The elapsed property should now flip back to false 10 seconds after it flips to true.
Important Notes: You may need to hold cntrl-shift and click refresh to refresh the logic flows web page the first time after updating to ensure you are not using cached javascript.
Be sure to update client applications (client, mini, panel designer) to the versions in this software package.
Fixed inconsistencies between lists on the web pages as far as pagination controls and count fields.
Limited send buffer size of network loggers.
Fixed a file access problem with log file writers after changing the write fields.
Fixed a bug that was sometimes causing day/time and day of week timers not to execute when in clustering after a restart.
Fixed a bug where a collection in log files was growing with repeat instances of file information.
Removed some DateTimeOffset calls that were unnecessary.
Cleaned up some string processing for potentially faster results.
Added code to not send poll messages if send buffer already has things waiting in the queue.
This prevents the queue from increasing and causing a memory leak.
Discovered that meters were defaulting to an incorrect polling rate and not respecting the request of the clients.
This in some cases was causing the memory to leak.
Removed a LastContacted datetimeoffset that was getting set with every set of bytes received as it was degrading performance.
Fixed an issue with send buffers that theoretically could allow dequeued items to still consume memory.
Important Notes: You may need to hold cntrl-shift and click refresh to refresh the logic flows web page the first time after updating to ensure you are not using cached javascript.
Be sure to update client applications (client, mini, panel designer) to the versions in this software package.
Updated the manual to version 1.2.
Fixed a bug that could cause client silence bubbles to appear on a node's alarm web page after a restart when in a cluster.
Updated the bank description.
Fixed an issue where if both nodes have the same office ip address, cluster reconnects could end up causing a node to connect to itself.
Now the system will not try to connect to a remote cluster node on a local ip address.
Fixed issues where event system state changes were not being raised to subscriptions in all cases.
This meant sometimes you had to refresh the clustering web page to see the actual event system state.
Fixed an issue where leaving a cluster would delete the ClusterAdmin user from all other nodes in the cluster as well.
Removed the service restart buttons from the services page as they are no longer effective now that the services are launched internally to the supervisor process.
Event system state on the logic flows page was superimposed over the nic state icon. Adjusted css to fix.
Fixed an issue where saconsole buttons in html5 panels were leaving the inner button visible when the button was set to hidden.
Fixed a bug where if you saved a panel using legacy PanelDesigner and entered the name during the save instead of before the save and the name has a space, it would not get replaced with underscores and the panel would be undeletable due to an incorrect filename.
Fixed a bug in html5 panels where if editing two different panels on two browser instances, clicking save on one would cause a reload on both.
Fixed a bug with pasting copied custom user controls.
For example custom console buttons would appear with double inner buttons after saving pasted components.
Added some fixes for ampersand encoding and decoding in links where the links are exposed as values in the html5 panel property grids.
Fixed a bug where if you created a panel with bindings, then deleted the panel, then created the panel again with the same name and bindings, the binding logic flows would not get created the second time without a restart.
Updated production installer to ask about initial ip addresses for multiple production builds in the same network.
Bumped the font size in crystal fonts display up one size in Linux to look better under dotnetcore.
Added a bit of code to handle engine aes67 responses without the 5004 port.
Removed an unnecessary force of the nic name to Eth0/1 during boot.
Fixed a benign issue with setting network address with the cfontz display and console menu related to storing broadcast address and prefix values.
Fixed a bug where object translators could not be used in panel bindings.
Added a view button to the panel designer page which opens a running instance of the panel in a window.
Fixed a bug with the IFB changes that was not sending the correct syntax for ptt on the up state.
Fixed an issue with the flash property and legacy panel hardware mapping.
Important Note: Please review release notes for version 1.3.13.31 relative to changes in the operating system as these also apply to this version.
Cleaned up presentation of lwcp objects and properties for Qor.
Some properties and objects were being presented based on similar objects in Fusion but do not apply in Qor.
They have been removed in Qor branches of the logic flows property tree and API.
Fixed an issue where monitor section properties were not being displayed in the Logic Flows simple tree.
Fixed an issue where monitor section objects and properties were sometimes not appearing after a restart until a button was pushed.
Note that many of the monitor section properties are read only and so will only be presented in relation to logic flow start points.
Fixed an issue with html panel faders outputting an incorrect value to xnode gain states.
Added correct numerical range for INGN and OUGN in attributes for SRC and DST.
Fixed the logic flow tree css so that properties line up under their parents more intuitively.
Added support for Element/Fusion fader IFB. Please review the beta documentation for important details on using these parameters.
This version is functionally equivalent to 1.3.13.30 but with a new operating system and target framework.
Starting with 1.3.13.21 we have had parallel development branches with a new operating system and target framework. This alternate version (referred to as the buildroot version) has been going through internal testing as well as testing with select customers for several months. The difference in this version is that the operating system has been completely reworked to be a purpose built version of Linux rather than being based on a stripped-down version of Debian. This gives us much more control over what exists in the operating system. Additionally any of the code based on dot net technologies has been reworked and recompiled to target the dotnetcore framework as opposed to the mono framework. We have done this to obtain the following advantages:
Better control over the operating system and an optimized build process.
Better control over the codebase.
Much smaller footprint on the disk (~300MB as opposed to ~600MB). This leaves more space for image files with panels, etc.
Smaller update packages (~100MB as opposed to ~200MB)
Significant performance improvements and lower cpu utilization under dotnetcore.
Improvements in memory consumption and management.
Subsequent releases will use this new operating system and codebase.
Warnings: Users of PathfinderCore PRO on the fanless engine platform (as opposed to vm beta testers) will see an initial increase after startup in memory consumption. This is due to the fact that this build moves from a 32bit OS to a 64 bit OS on the Fanless Engine platform. However we see much better memory management as the system runs.
The update package will make certain changes to the boot sector. Upgrading and downgrading of software will continue to work properly in all but one situation. If you upgrade a bank to .31 or later and then switch back to a pre .31 version and try to overwrite the .31 bank with a pre .31 software image, the write will work but booting into that downgraded bank will hang. Power cycling will then boot bank into the previous bank. In this case you can run a special update package that only fixes the boot sector. Note this only happens when running on a pre .31 bank and trying to downgrade a .31 bank to a pre .31 software image. Most customers will never experience this. We only expect to see this with systems integrators and support engineers who may need to be switching their software versions regularly to match that of their customers.
The repair update package can be obtained at Boot Sector Fix Fanless Engine or Boot Sector Fix VM
Fixed an issue with logic flows startup where external start point states were being requested numerous times if the same startpoint existed in multiple flows when it only needed to be requested once.
In some cases this was causing heavy analysis and long startup times for complex flows where certain start points were reused regularly.
Added a hash table to make sure requests only happen once after the initial flow objects are loaded.
Changed subscriptions in sapclients to use indexing for non-max depth subscriptions for better lookup performance.
Stopped the last evaluated property from being raised in logic flows to reduce subscription analysis.
Removed some unnecessary and noisy sap messages related to logic flows for faster response times and cleaner analysis.
Reworked LogicFlow Manager to handle logic flow internal changes directly rather than subscribing and passing them through the normal subscription matching process for better performance.
Added an option to combiners called RaiseOutput that takes two values: RaiseOutputOnSet(Default) and RaiseOutputOnChange.
This defines whether an analysis due to a change on a combiner input causes the rest of the flow to execute if no change to the combiner's output occurs.
When set to RaiseOutputOnSet, any change entering the combiner will cause blocks beyond the combiner to also be analyzed and set.
When set to RaiseOutputOnChange, blocks beyond trhe combiner will only be analyzed if the output state of the combiner changes.
This option can be very useful in certain situations to reduce analysis load.
See beta manual for more details on this feature.
Also added a write only property on Logic Flows folders called ChangeAllCombinerRaiseOutput which can be used via the API to set all combiners under that folder and its subfolders to one state or the other.
Note that if you change a combiner from the default RaiseOutputOnSet state to the new RaiseOutputOnChange state this will alter the stored init messages in a way where that flow will not be loadable by older versions of the software.
Added UI changes for the raiseoutput property in combiners.
Changed the watchdog ping startup delay to 10 minutes from 2 minutes for very large systems that have a great deal to load on startup.
Fixed the ChangePage functionality in html5 panels.
This was broken in 1.3.13.28 and 29.
Fixed the occasional double click necessary to move between pages in Html5 Panels.
Removed Analog micro logging from php scripts.
This logger was accidentally left in place for debugging and was generating logs in the /tmp folder which is not managed by log rotation.
In the case of buildroot preview versions this was leaking ram since /tmp is a ramdisk in that version.
In the case of normal versions this was causing unnecessary space to be used on the cf card.
Fixed an issue where bindings on html5 panel controls were not being copied when a copy and paste took place.
Fixed a bug where changing the name of an html5 panel control with bindings would cause the bindings to get lost.
Fixed a bug in html5 panels where removing all characters from a control name would cause it to jump to the far left corner and if you then try to select it without first giving it a valid name (leave the name blank) it would become unselectable.
Fixed a bug with the new route locking where changing pages in the router was causing locked ios to show up with an unlocked icon even though they were still locked.
Fixed an issue where when editing a virtual router, the edit page would not return to the points tab.
Added additional version stamps to html5 user panel links to reduce browser cache problems.
Made the html5 panel designer save button wait for confirmation of successful save from the server before refreshing the page to allow for slow writes of large panels on cf cards.
Added the swap option to html5 panel button indicators.
Fixed a bug with users and new object messages where if a standard user with no rights to the created object was logged in, it could use an indi NONE message for all user socket responses instead of the correct message depending on the user's rights.
This was causing problems with clustering as well in some cases as an new NONE was being generated instead of the new object to the other node.
This only occurs randomly when a standard user with limited rights is logged in
Though it can occur consistently for a while depending on the order of the client returns when iterating through the clients where the first in the iteration does not have rights to the object.
Fixed in this version.
Because of the bugs addressed by this version, a manual sync may be a good idea after updating both nodes in the cluster just to ensure nodes are properly synchronized.
Fixed a problem with new user creation with the route locking options.
They were not properly exposed in the constructors.
Fixed a bug in html panel console channels where double digit fader numbers (10,11) were being confused with 1 due to an incorrect startswith line of code.
Fixed some other panel bugs related to object path matching.
Added user panels into user api security links.
User security for html panels is still in progress and not complete in this version.
Fixed a bug where any login was updating clustering lastupdate on all users during the validation process.
Fixed a bug where no access was updating a noaccess security profile in the database for each failed login.
Fixed issues with user clustering.
Removal objects were not being created when users were removed and cluster was not in sync meaning the users could reappear when synchronization was reestablished.
Improved the network connectivity and route locking icons.
Fixed a bug with cloning panels where the folder security was not being set properly so new pictures could not be uploaded into the cloned directory.
Added an option to fix panel directory security for panels cloned under previous versions.
Login to port 9600 with the appropriate user name and password and send SET UserPanels#0 FixPanelSecurity=True
This command should only be necessary if you have cloned html panels in versions prior to this version and can't upload pictures to the cloned panels.
Contact support if you need help.
Fixed a race condition that could happen with virtual routers where the sources/destinations have multiple base points.
It is expected that these will pass through a -3 other state as route changes happen, but prior to this fix it was possible that while the route state would be correct in the data structure, the -3 might get sent out the subscribed ports after the full change.
Added route locking in routers. See beta documentation for details.
Added CanLock and LocksDoNotApply options to users.
Note: Locks do not apply option is working for the API but not for the web page UI at this point in time.
When locking a virtual route the underlying base point will not be locked.
When locking a base point, the virtual destination will become system locked and the lock can only be cleared by clearing the base point lock.
See Beta documentation for more details.
Added testing support for in development equipment.
Fixed a clustering bug for memory slot and html panel states.
With memory slots whose startup state are not set to last known, the current state is not written but the last sync value on a restart thinks sync is up to date so it was not pulling the latest value from the other node.
Similar issue with many html property states.
Clustering now pulls all sync dates for these objects to make sure sync state is updated on these objects.
Fixed an issue with image syncing after one of the nodes was offline.
Decreased ping time for clustering for more frequent pings.
Added a warning that images may not be uploaded if the panel has not been saved - i.e. still in New Panel state.
First version with Panel clustering for internal testing.
Fixed a bug with SapProperty generation in messages when there are embedded encapsulations.
Fixed <br> in a label so that it converts to \n when sent to Lcd buttons.
Added a system item and used it for the initial get request to exclude NOSYNC and non cluster items - $CLUSTER_SYNCABLE
Fixed a clustering issue where during initial synchronization one system would ask for changes since the time of the last known in sync and the return would include times equal to rather than just later than.
This could have unexpected results for objects changes right before one of the servers wen offline.
Example create a panel when both in sync. Shut down one and delete the panel on the other.
During a restart, the panel might get recreated.
Fixed the css refernces to include version data to help with browser caching problems with the css when working on a panel design.
Fixed an issue where the parameters of the disk space added to the system status page in 1.3.13.23 were reversed.
Fixed the message displayed in logic flows regarding disk space to be more descriptive.
Added the ability to send ascii as hex in translators and Lwrp/Lwcp tosend using \%XX where XX is the hex numeric value to send.
Escape values are now: \cr, \lf, \t, \%XX.
Double slash to escape the escape slash and send the literal value.
So for example \%41 sends A but \\%41 sends \%41 and %41 sends %41.
Fixed an issue with the disk space alerts added in 1.3.13.22 that was sending erroneous -1 values.
Fixed an issue where the reported diskspace alert values would not match the alert parameter but rather the current value which made it hard to match in flows.
Added the Disk Space alert to simple flows.
Added Disk Space to the system status web page.
Made the routes tab the default tab when you open a router rather than the points tab.
Added a checkbox to enable/disable push and move on virtual router editing.
Added a confirmation message on push changes in virtual router editing.
Fixed a bug that was causing a loop looking up all ordinal base points in a virtual route over and over again times the number of ios in the router when opening the edit page for the virtual router.
Fixed a bug where if a source was added to the virtual io base package of a destination, the application could crash during startup.
Added an advanced option to check whether logs need to be rotated every x number of message writes.
Enable this option in advanced options by adding: SET Logs#0 CheckRotationAfterMaxWrites=250
Added a diskspace object to the API including an alerts property that can be set via advanced options.
By default this is enabled for 95%
This feature is still a work in progress and is only available for monitoring in logic flows via the api tree.
This feature will be fine tuned and added to system level email alerts soon.
Increased the open file limit from 1024 to 4096 in order to increase the number of available open sockets, etc.
Added the IO number in the routes page for virtual routers.
Fixed an issue where the sort arrows for some routers for the destination name would instead be tied to the pointer arrow.
Added a confirmation message if you attempt to delete a base io on a virtual source or destination.
Fixed an issue where newly discovered devices would sometimes show as offline even though they were online.
Added a manual reconnect api property to lwrp and lwcp interpreters.
Fixed a bug that was sometimes causing the connection recycling on a failure to stop attempting to connect.
Fixed an issue for better manual recycling of connections.
Added an icon to the devices web page to allow recycling of device connections manually.
Added livewire channel number column to the import lists. This column is only visible if importing sources from an Axia Audio Router.
Added an alert error message if the user tries to change a virtual io id to one that is already in use in the router.
Previously it would just overwrite the io.
Hid certain router editing fields when editing is disabled due to user rights.
Added the ability to import starting with a specific number in the virtual router.
The default value of -1 will import at the end of the router.
Added cross checking to make sure importing at a certain id would not overwrite existing ids.
Got moveup, movedown, pushup, and pushdown in virtual routers working.
Move up and move down will increase or decrease the id of a selected IO swapping with the one it is moving to if it is already in use.
Push up and push down will increase or decrease the id of a selected IO pushing all later/earlier ones up or down up to the next hole in the ios.
Push down will fail if there are no available open id numbers.
Down or up refers to the Virtual IO numbering which may or may not be the current sort order in the grid.
It is highly recommended to sort the router by the IO number when using this feature to prevent confusion.
These features can be used to specify specific numerical ordering in a virtual router to match controller system numbering.
We may still revisit this in the future to migrate this to a in browser change that is applied rather than actually changing the router on the fly for each change.
Fixed a bug that was causing gpios to not mount backing device data correctly in some cases.
Fixed an issue where incorrect pending import ios could wind up in the import list if cancel was selected and a new router or import list selected before the first ones were complete.
Important Notes: First public beta of html5 panels. Please review the beta documentation for version 1.3.13.20 in detail: Beta Feature Documentaion 1.3.x
This version is a combination of several internally released versions.
Please review the notes below for versions 1.3.13.14 through 1.3.13.20 for the full scope of the changes.
There are a number of changes and fixes in addition to the html5 user panel changes.
Html5 panels will not synchronize in a cluster in this version. That is coming soon.
Html5 panel faders will not work with Qor in this version. That is coming soon.
Html5Panel changes since internal release 1.3.13.19
Added versioning to the html panel sub panel iframe loading to improve browser caching issues.
Fixed some of the magnet snapping that was acting a bit funky to be more intuitive.
Fixed bugs with the spread functionality.
Stored the snapto and magnet states in browser local storage so the state is remembered on page reloads.
Fixed an issue with multiselect dragging that was requiring the shift or ctrl key to be held while dragging when custom type elements were selected.
Fixed an issue where clicking property row names were not always updating to the correct flow display.
Fixed a bug where not all name data for button devices was being filled into the data grid.
The flow block was not being hidden when changing selected objects.
Fixed a bug with changing bindings that would sometimes add duplicate binding properties into the backing storage causing unpredictable binding behavior.
Added some code so that selecting a hardware map button will automatically enable hardware map bindings.
Fixed a panel de-serialize issue with bound IO fields.
Got changing of io on faders and meters working.
Got proper io selection on AudioIO based binding.
Fixed an issue with apostrophes in user panel names.
Fixed box shadow property in grid to show actual box-shadow value. Previously it was trying to do an RGB conversion.
Wrapped up beta documentation for html5 user panels.
Moved OS to use mono 5.8 as there are reports of a memory leak surrounding file objects in 5.10.
Optimized a bit of code with panel hardware map loading
Added user names to the access violation log message.
Excluded none as a possible access violation.
Fixed logging of login attempts using the alternate login . username=xxx password=xxx method
Fixed an issue introduced in 1.3.12.12 that affected io discovery in certain situations.
Occasionally it would not add new ios discovered during startup.
Made individual Router IO deletions cause a re-query of the device data which causes the io to get added back if auto insert is on.
10 second delay on the re-add.
Fixed an incorrect value in default advanced options for SkipCleanLogs.
SET Logs#0.SkipCleanLogs=False should have been SET Logs#0 SkipCleanLogs=False
Hid the discovery autostart checkbox on the admin-system page and removed the persistent property on the livewire discovery.
Moved that functionality to an advanced option since it is not a recommended setting.
To enable the autostart of discovery change the nop to init for discovery in the advanced options.
Fixed an issue with the Online property that was causing the false state to get raised repeatedly during reconnect attempts.
Fixed an issue with users where save could be clicked before the API tree was filled and populated.
Fixed an issue with users where the API tree did not automatically display for general users if only root level objects were enabled.
Removed the LogAccessViolations advanced option briefly added in 1.3.13.17.
Moved log access violations, login successes, and login failures to log tree options under the messaging branch.
Made some small performance improvements.
Updated one log message due to a structure that is marked obsolete in nlog4.
Removed NLog 2 from the project library now that we have moved to nlog 4.
Added code to retain the original date/time stamps when rotating log files so that they retain original data rather than the time of the rotation.
Fixed an issue where the log list was not showing the correct date time stamp. They should have been showing last modified not last changed.
Fixed bugs with user editing.
Editing and then saving a general user without expanding the sub branches of the api tree that had custom options set would cause the custom options to be lost.
Fixed an issue where canceling an edit user and then moving to a different user might not display the correct API data.
Canceling an edit now causes a page reload.
This version also expands all sub branches that have been set to anything other than inherit when you edit the user.
Non Public - Internal Release Only
Preview of Html Panels for internal review only.
Added a way to get data with a similar callback as json but in multiple messages instead of json to core connector.
Changed the routers loading code for better performance.
Removed a bug that was causing unneeded lookups inside a loop.
May need to refresh the page code with Ctrl-Shift plus refresh on the display page for the router to make sure the new javascript is loaded.
Moved router callbacks back to messages rather than a single json blob in order to prevent possible out of memory issues with large routers.
Fixed issues where dns.gethostname might not return a response.
Optimized local ip address lookup code.
Fixed a bug where editing a virtual IO that had no base points would present an empty base point in the javascript UI.
Fixed a bug in LwcpClient and SapClient regarding selecting incoming only for message logging.
Made an optimization such that if Sapv2 messaging is enabled the message is only built if enabled on at least one logger and then is remembered throughout the rest of that loop.
Added the Skip Web Client SapV2 option to log writers.
If checked and SapV2 external messages are enabled, this will not log messages from the web clients.
Added an option for logging user rights access violations to the sai-supervisor.nlog log.
This is in the advanced options and requires the value SET Users#0 LogAccessViolations=True.
Also added LogRotator settings to the options default file.
Note that turning on LogAccessViolations has the possibility of generating large logs at will log any branch that is requested but rejected due to access restrictions.
In max_depth message situations this could generate lots of log messages.
This is recommended to turn on for debugging and back off otherwise.
The parameter may be adjusted via the Users#0 Sap path as well for temporary setting and unsetting.
Added information to the log message about the source of the access voilation - what method sourced it.
Modified the cleanlogsforsize script to not execute the clean if the /srv/pathfindercore/skipcleanlogs.txt file exists and contains skipcleanlogs=true.
Modified the factory default script to delete /srv/pathfindercore/skipcleanlogs.txt if it exists.
Fixed an issue with subscription accessviolation logs that was generating access violations on any message the user did not have access to whether or not a subscription existed.
Added a network icon to show connection state.
Hooked that to the socket connect and close to show whether the web page socket is connected to Core PRO.
Added an error alert message if sending a change message (init, set, del) when the socket is closed.
Updated the baseinstall script to include python-numpy which is supposed to have some performance benefits with websockify.
Updated the OS to use mono 5.10.
Changed nlog from version 2.2 to version 4.5. Still needs testing. 2.2 was broken with mono 5.10.
Failed login attempts will now get logged to sai-supervisor.nlog.
New Advanced options (may not display in an upgrade but may be added):
SET Users#0 LogAccessViolations=False
Ignore option above - removed in the next build
SET Logs#0.LogRotator#0.RotateRule#0 MaxFileSize=1
SET Logs#0.LogRotator#0.RotateRule#0 MaxCount=3
SET Logs#0 SkipCleanLogs=False
LogAccessViolations options will log user access violations to sai-supervisor.nlog.
Note this can generate a lot of data as it will log any message from a sub, get, etc. that is restricted due to user rights.
It is recommended this gets turned on for debugging and turned off again for production.
MaxFileSize will set the maximum file size in MB for each log before it gets rotated.
Please do not alter log rotation and max size settings unless you are working in a vm with plenty of disk space.
There is some slop on either side of this as it is analyzed periodically rather than on each write.
If SkipCleanLogs is false there will still be a 100MB restriction on the entire logs folder and forceful cleaning to enforce that.
MaxCount will set the maximum number of rotatable logs for each log type.
SkipCleanLogs will allow you to disable the cron job that clens up log files by forceful deletion to attempt to keep the log folder < 100MB.
This option should never be set to True for cf cards or installs with limited log space.
Non Public - Internal Release Only
Preview of Html Panels for internal review only.
Fixed a bug with the htmlpanels button pull for hardware mapping.
NAB 2018 show version.
Non Public - Internal Release Only
Fixed a bug with the getversion script that was always returning 1.0.0.00 rather than the correct version.
This was affecting previous attempts to reduce the need for clearing the browser cache.
Forcefully reloading pages after the update may still be necessary as browser cache invalidation is still a work in progress.
Preview of Html Panels for internal review only.
(From 1.2.13.00) Fixed an issue with DayOfWeek timers during the Daylight Savings Time Shift.
In some cases it was causing an endless loop for an hour after each DayOfWeek timer scheduled for the day the time springs forward.
This was also causing the watchdog to reboot the system periodically until the hour after the timer should have fired had passed.
(From 1.2.13.00) Fixed a bug that was causing the cluster backup generator to sometimes hang and then fail in the backup generation.
(From 1.2.13.00) Fixed a bug where cluster backups in a plus GMT time zone could not be deleted due to the plus in the filename.
In this version plus is replaced with underscore in the generated name.
Made Object Translators able to have multiple matching inputs so that a single input could trigger multiple property changes on an output object.
Review the beta documentation for details.
(From 1.2.12.00) Fixes an issue with passwords with certain characters.
Due to a malformed regex some passwords would not get written properly from the web page password editing to the back end.
When setting the Admin password this could cause a lockout of admin capabilities forcing a call to support.
Characters that could cause problems prior to this update include: \^$.|?*.
While this version fixes the problem, you may have to forcefully reload the web page to make sure the new code versus cached code is used.
In chrome while on the user page, hold Ctrl and Shift while clicking refresh to reload the new JavaScript files.
It is also not a bad idea to have a second Admin user that works before changing the password of the primary admin user. That will allow access if the password change is problematic.
(From 1.2.12.00) Fixed an issue with Classic Ids being incorrect between two nodes of a cluster when a device was added after the cluster was formed.
This could cause issues with user panel controls which would work when connected to one server and not the other.
While this fixes the bug that was causing the classic id mismatches, it is recommended to do a manual sync to force synchronicity if you find this to be a problem in your system.
To do a manual sync go to the secondary server and click the manual sync button.
This will request a special backup from the primary, pull it over to the secondary, and execute a restore on the secondary.
(From 1.2.12.00) Added warning messages if the file selected for a bank update does not appear to be named correctly for the deployment target.
Some of the logic flow changes in 1.3.11.11 were not working completely as expected.
Some change messages that did not execute a change were not being passed through as intended.
Logic Inputs were not being cleared of their init state during disable/enable.
Enabling a disabled flow was sometimes causing things to execute after a relay combiner that should not have.
Please note that Logic flow changes from 1.3.11.11 and 1.3.12.12 could cause changes to how logic flows function. If problems arise please revert and report the flow to support.
Review beta documentation for details on the logic flow functionality changes in 1.3.11.11.
Added a shutdown menu item to the console menu and R2 crystalfontz display.
Added code for proper licensing links with vm.
Fixed an issue where in some cases extending a logic flow would not pick up the initial state immediately until sourcing translators changed.
Fixed a bug that was not including the id in the set message for translators when the SkipInitialGet option is enabled to the backing storage.
Worked on an improved implementation of the SkipInitialGet option.
Fixed an issue where the SkipInitialGet request did not work if there was another flow that had the same start point which did not have this option engaged.
Updated copyright on the web page to 2018
(from 1.2.11.10) Fixed an issue with log writers that were tcp listeners.
Changing the log parameters was sometimes causing an application crash due to a socket exception.
(from 1.2.11.10) Updated Client/Mini links to 5.81.
Made meterfaders send -3276.8 to console fader when below -79.0 to force the Fader_State=DOWN value.
Fixes an issue where meterfaders were not populating controls properly if pointed at fusion vmixers or console channels.
Fixes an issue where meterfaders were not controlling console gain faders correctly.
Fixed an issue where Lwcp Mon commands were being sent to the equipment as mon#0 instead of mon.
This was not causing any issues because the equipment does not currently allow get or set with the mon object.
Changed logic flow translators and combiners to execute on inbound messages whether or not a change takes place.
This is potentially a breaking change but makes certain kinds of flows work more intuitively.
See beta documentation on this change.
If you have problems with certain flows after moving to this version please revert and then report the flows to us so we can evaluate.
Consoles now support a subscribe message for fader gain states reducing the ability to poll.
This new feature has been implemented in this version so that console fader gain changes are now subscribed to.
This allows for faster realization of these changes when they happen on the physical console rather than having to wait for a periodic poll response.
Added the swap value to properties that are binary (two state) in nature.
This allows for much simpler latching logic flows.
For details see the section on 1.3.10.09 in the Beta feature documentation.
Fixed potential issues with item deletes and the possibility of the web page refreshing before the message was sent.
Fixed a problem where the base io editing on routers would not work correctly if numbering was off.
Fixed an issue where the page could be reset after editing base ios before all messages got sent to the server.
Fixed an issue where legacy panels could endlessly causing excessive cpu load trying to rectify classic ids if the classic id does not exist.
Fixed a bug with virtual IO base point editing that was preventing the removal or reordering of base points in a virtual io.
Fixed a bug that was causing virtual base IO reordering and sometimes deleting of base io points not to work correctly.
In some cases the final rectification was incorrectly ordering the base ios.
The divergence point in the base point analysis was generating a delete message based on the path including the mount point instead of just the virtual base io path.
Note: Base IO reordering still may not be entirely correct. Still testing and tweaking the code.
Changed client link to 5.78 which disables/hides the Scheduling button which is non-functional in CorePro.
Changed client application links to point to PathfinderPc.com instead of internally to save some space on the cf card.
Updated the operating system and kernel to newer versions including mono from 4.2 to 5.4.
Fixed an issue which could cause memory leaks when running on a processor other than the fanless engine I5 processor.
Important Note: The first startup after bank updating beginning with this version may take 10 to 15 seconds longer as a new file is compiled and generated. Subsequent startups will return to normal.
Based on 1.3.6.02 but with the patches from 1.2.7.00 plus a few new features.
From 1.2.7.00 patches: Added scrolling on logic flow folders for long lists of folders in the web UI.
From 1.2.7.00 patches: Added some code to force ownership and securities on network config files during a restore operation including an update restore.
Attempts to fix a reported issue where occasionally the office network cannot be changed from the web page.
From 1.2.7.00 patches: Fixed an issue where double clicking on an endpoint would select the correct property but sometimes would display the incorrect property description.
From 1.2.7.00 patches: Fixed a bug where deleting combiner inputs was not always causing the combiner to get rewritten to backing storage.
As a result the deleted passiveinput ids would load after a restart even though no translator was hooked to them.
This could cause unassigned states on those combiner inputs and prevent the combiner from analyzing properly after the reboot.
This fix will prevent this from happening with future flows.
If you have a flow in this state it is easiest just to recreate it.
If the flow is particularly complex to recreate, contact support as there are ways using the API to remove the extra combiner inputs.
From 1.2.7.00 patches: Added a hover balloon over combiners to show the passive input count.
Used to determine a discrepancy in the input count.
This will allow you to determine if a combiner is in the state mentioned above where it has more inputs than translators tied to its inputs.
Fixed a typo in the web page with the clear options for the delay combiner.
Added an option to use <%DateTime%> in email messages and subject lines to insert Date and Time into the message.
Based on 1.3.5.01 but with the patches from 1.2.6.00 plus a few new features.
From 1.2.6.00 patches: Fixed a bug that was preventing the creation of String Builder memory slots. This was broken as of 1.0.0.36 when startup states were introduced.
From 1.2.6.00 patches: Fixed a bug that was causing Virtual Routers not to show the Other source state in many situations.
Changed email host code such that a blank user name will cause the email to be sent without any credentials. The host would need to support non-credentialed emails.
Added a pair of properties to DelayCombiners to allow for a momentary output value:
Clear output after countdown completes: When the countdown completes the correct value is passed to the output and then it is set to the clear value afterwards.
Clear Value: The value to reset the output to after passing the delayed value through.Version 1.3.7.03 12/14/2017
First beta version with new features since 1.2.0.00.
Based on 1.2.5.00 patch status.
Added a link on the system page to documentation on the new beta features until they are folded into a new revision of the manual when beta moves to release.
Use this link to gain more information about using the new beta features.
Added a write only property to interval timers called reset.
When a timer is running this will restart the countdown.
If it is not running this will set elapsed to false.
Added a write only property to interval timers called ResetStart.
When a timer is running this will restart the countdown.
If it is not running this start it.
Added a write only property to interval timers called ResetStop.
When a timer is running this will stop the timer.
If it is not running this will set elapsed to false.
Added copy, cut, and paste to the Logic Flow views for copying, cutting, and pasting entire views.
Select a view to copy and click the copy icon.
Select a new parent and click the past icon.
The system will ask for a new name for the view to be pasted.
Paste will always paste flows in a disabled state assuming you will want to modify the settings after the copy and paste.
If a view has sub views those will also be copied.
You cannot paste a view into itself.
As this is a beta feature please take regular backups while beta testing until this feature is proven.
Double clicking a combiner will no longer rotate through combiner options. Instead it will open a combiner editing dialog.
This allows you to select the desired combiner type directly.
Additionally new variations of combiners require configuration parameters and so this dialog is also necessary for setting those parameters.
Added an Equality combiner.
This combiner accepts multiple inputs and yields True or False depending on whether the inputs are the same.
A case sensitive or insensitive option is also provided in the dialog when an Equality combiner is selected.
Added a Delay combiner.
This combiner allows you to introduce delay into a flow without needing to use an interval timer.
Delay Combiners only accept a single input.
Interval timers should still be used when multiple different flows need to interact with the interval timer.
The Delay Combiner includes several configuration parameters:
Delay Time: The time of the delay in milliseconds.
Reset delay if input changes: If checked any time the input to the combiner changes the delay is reset rather than continuing its countdown.
Output Value: Select whether the delay combiner should output the input value from the start of the delay countdown or the input value at the end of the countdown once the countdown is complete.
Cancel Value: A value that if seen at the Delay input will cancel the delay countdown.
More detailed documentation of the changes may be found at: betamanualchanges1-3.pdf
Added some changes to the metering device object to correct the possibility of a crash during a lost connection disabling of the timers.
We have seen two sites that have exhibited crashes with a logged stack trace on the same line of code.
This line of code deals with the disabling/enabling of certain timers during a loss of connection to the equipment of a metering device.
While we have not been able reproduce in the lab we believe the changes in this version should correct the problem.
Included the VMware paravirtualized scsi driver in the vm and installer images.
This version only makes a change in the vm version.
The driver has been included for testing with VMware sites where ISCSI is being used for the host storage.
Reworked day of week timer threading to prevent day of week timers from getting stuck in an elapsed state when they are supposed to flip back to not elapsed 10 seconds after execution.
Added an hourly safety catch to catch any that are in the wrong state.
Improved performance of timer lookups and moved some of the dayofweek elapsed resetting into each day of week object.
Fixed a bug in object translators where if the input was a specific property rather than an object but the output was an object, the system would process other properties on the input side than just the one selected.
Cleaned up some css around meters.
Fixed a problem with html5 gradient meter off colors shifting the transition points if they were not all the same color.
Fixed a bug that was causing the schedule column for DayOfWeek events to switch to a number rather than the correct value until the web page was refreshed.
Fixed a bug with user log rotation that was causing rotated files to have large blocks of NUL characters at the beginning in certain situations.
Fixed an issue where activate scene did not submit the scene messages to the system in the order specified.
It is important to understand that even though the scene will now submit the change messages in order that does not guarantee they will be completed in order.
Each Scene item is sent to the system without waiting for completion.
Added code to the silence alarms to more quickly detect device failures.
Currently the default Linux settings will only raise an error on tcp send failures after approximately 15 minutes of failed retry attempts.
This is much longer than the similar windows defaults.
Device management relies on application level ping messages to detect failures quicker but this was not implemented in silence alarm device connections.
In this version silence alarm device connections will also drop the tcp connection and will start counting down the failure after approximately 45 seconds of failed ping (VER) messages.
Switched the SRC Rtpp property to be read/write.
Fixed a bug where opening an object translator created with an API property while the Simple tree is selected and then selecting the item in the translation convert list might leave the property name field blank which after committing would wipe out that api property name in the conversion.
Disallowed most punctuation in panel names.
This fixes some panel incorrect functionality when certain characters such as the slash are used in the panel or page name.
Moved the meters and scenes to startup prior to logic flows in the service startup list.
Added some threadlocking around device online/offline state in router IO DeviceOnline property setting to prevent a potential race condition where offline to online messages in quick succession especially during initial load could theoretically interfere with each other.
Fixed an issue with gpi dynamic additions not getting an index in the device io collection.
This can cause the ios not to show online/offline correctly.
Fixed a bug with case sensitivity of On/ON and Off/OFF with html5 buttons.
Fixed an issue where changing backcolor on or off on an html5 button while a flash was in progress would not change the flashing color without turning flash off and back on again.
Added a None option to the hwmap list to be used to unmap a mapped button.
Added the ability to hwmap buttons to the overbridge display on fusion button modules as this was missing and should have been there.
Fixed a bug where removing a virtual route point's base ios would cause the underlying audio point to become unmounted from the device DST/SRC object.
This could break routing for that IO until a reboot takes place.
Also fixed some issues with mount point meta data after a removal which only came to light after this change which made remounting problematic.
Mounting and umounting primarily occurs in routers where fast direct access (mounting) of the underlying DST/SRC objects from the devices tree is necessary.
Fixed an issue with rediscovery of deleted audio ios where the DST/SRC object still exists.
Added some code to requery the resulting DST/SRC after a manual reconnect request of the device.
Fixed a bug with removing ios from the devicepath lookup collection probably introduced in 1.4.9.00.
Fixed a bug where removing an IO (or other object that was mounting other objects) in some cases could cause the base device object (mounted object) to get removed from the lookup collection.
This would mean the object would show up in the lists when walking the tree but would return INDI NONE when accessed directly.
Added a chunk of code to make sure Html5 panels clean up any residual unused bindings on save.
Fixed some outdated unit tests.
Fixed a memory leak in database record updating.
Checks to determine if we needed to insert or update were spawning a datareader object which was never being closed and therefore never released from ram.
This was causing more and more of these to exist in ram as data writes occurred.
This was especially prevelant when writing regularly changing memory slots that were set to the LastKnown state.
If this is your situation please also review the notes on LastKnown state for memory slots.
The LastKnown option should only be used when necessary as it causes additional disk I/O.
Use the LastKnown option only when the memory slot state cannot and will not be able to be determined via flows by the existing state of the system on startup.
Fixed a bug introduced in 1.4.9.00 that was only removing ios from ram on either gpio or audio when a device was removed rather than both.
The database was being cleaned properly so a restart was necessary to fully remove those ios prior to this version.
This could also lead to clustering anomolies if the device was added back into the system before a restart occurred.
A restart of both could also be used to clear those anomolies.
Fixed an issue where the omnia one would still show as offline if it was in the database prior to the update to 1.4.11.00.
Since the Lwcp connection was already in the database it would still get loaded.
Now it gets skipped.
The Omnia-one device type incorrectly had LWCP options enabled. This is fixed.
This was causing the device to appear as offline.
Fixed a bug introduced in 1.3.13.31 with time zones that was not setting one of the operating system shortcuts to the correct time zone symlink.
If you suspect the need to reset the time zone first update to this version and then switch the time zone to something else and then back to the desired time zone, set the time using ntp or the set time from pc link and then reboot.
Fixed a bug introduced in 1.3.13.31 where the set time from pc web ui link was not working.
Improved device removal performance.
Certain recursive, redundant, and non-optimized calls were causing high cpu load in larger systems during a device removal while cleaning up the device's route points.
Added some code to prevent a device removal from making redundant database calls to the router database.
Made optimizations in the router io removals for a device removal by including hashed lookups of ios by device.
Made io removal messages when initiated by a device removal cluster quiet as they should be handled by the device removal cluster message.
This reduces unnecessary cluster messaging.
Fixed the sub cache descendent branch removals by querying the object for the additional branches to be removed rather than looping through all items repeatedly.
Improved the io lookup collection for theoretically better performance.
Very minor performance improvement to router load times.
Added an exception to not cache messages for response for Device Emulator ToSend when forwarding them to the emulator.
Made a couple of other minor optimizations which may improve performance slightly.
Extended the disk device timeout in the OS to 180 for the vm build for better compatibility with network (iscsi) backing storage.
Added some code to swap a device path in the legacy Panel device cache if the object path changes relative to the ip:port.
If a device type changes (engineacl to fusion), it must be removed and re-added to PathfinderCore PRO to generate the new object paths.
If the device type changes (for example engineacl to fusion) and the device is removed and re-added, legacy hardware maps are not valid without a restart.
This version allows a save of the legacy panel to regenerate the hardware maps with the new device type object path after the device has been removed and re-added without a restart.
Io mapping on legacy panels may have to be recreated in this case due to io number changes after removing and adding the device.
This situation should be virtually non existent as device types do not change unless you replace the device with one of a different type.
Added an exception to prevent log messages for duplicate inits when the objects are the default none, previous, and other ios.
Added a DataIndex property to better track the internal database index for ios.
Fixed an issue where adding audio ios via a cluster message was not incrementing the max index which meant a virtual io addition after that might try to reuse an index causing it to get created in ram but not stored to the database with a database error in the log.
Added cluster synchronization of the routers MaxDataIndex.
CRITICAL NOTE: The items above fix a critical bug in clustered scenarios.
Prior to this version if you added an Axia Audio device to an active cluster and then created a virtual router after that prior to any restart, the ios for that virtual router would appear on the secondary node but might not get written to the database.
This means they could be missing on the secondary node after a restart.
If you think your system may be in this state it is highly recommended that you backup both systems and then do a manual sync from primary to secondary.
To do a manual sync from primary to secondary, go to the secondary node and from the clustering tab on the secondary node click manual sync in order to take and restore a backup from the primary node.
It is recommended that you do this and then upgrade to the new version.
Fixed a bug where Ios returned from the equipment with no rtpaddress or enabled fields (vx and intercom) could replace the none source in some routes causing those sources rather than none to display and causing corresponding virtual destinations to report an other state rather than a none route.
Locked down device addition and loading to license validation.
Fixed an issue where enabling two identical channel numbers and then disabling one of them could leave routes in a state where the route takes but does not display properly in PCP.
This fix involved recrafting the rtp stream address lookup table and how it functions relative to address changes and enable/disable of properties.
Fixed an issue with non standard engine version numbers so that an error is not thrown and caught.
Recrafted database writes for devices and routers databases so make sure deleted and creates are done atomically.
Previously there was a possibility of deletes not being completed before create messages got added into the queue.
This would affect and be primarily seen when thirdy party apps delete an entire router and then immediately recreate the router and ios.
Fixed a benign log message about duplicate ios being added for aes67, none, and previous sources.
Fixed a bug where deleting a device with an ip that is the beginning of another ip (172.16.25 and 172.16.251) could cause deletion of both devices IOs from the back end database.
Modified some database code in the routers database to make it more transactional.
Added code to clean up SystemIos, AxiaAudioIos, and AxiaGpios if the router that gets deleted is and AxiaAudio or AxiaGpio router.
Fixed a bug where router manager was not always successfully subscribing to device deletions meaning that a device deletion might not clear up the ios for that device from the audio and gpio routers.
Refactored device status discovery code during start up of routers to enforce all subscriptions before all getters.
Added a mount complete property to ios and virtual base ios to detect whether the backing object has been successfully mounted.
For example: get Routers#0.AxiaAudioRouter#1 MountComplete=False $MAX_DEPTH=-1
The above will return mount points that have not been established between the route point and its base IO from the devices branch.
It is normal for some engine resources to not be mounted as engines sources and destinations are not returned if they are inactive.
The router database had a stream enabled field for Axia sources but it was not being read from and written to.
Changed it so that this is stored to the database.
This means the first start after upgrading will do a lot of writing to the database as this field gets set to its normal state.
Also sources will be loaded with rtp not enabled until it detects from the device that it is unless a state (non blank) is stored in the database.
This also allows for better troubleshooting when backups are sent to support since the rtp enabled state will reside correctly in the database.
Moved the thread locking to include the initial search when attempting to fill a mount point.
This helps prevent a potential race condition where the object is not found but then added before ending up the pending collection leaving it permanently unmounted.
Added some code to double check mount points after they have been added to the pending collection to handle a potential race condition case where the object gets added between searching for it and adding its absence to the pending collection.
This helps prevent mounts from becoming stuck unmounted.
Fixed a bug in the UI where virtual base points would not show if their mapped io did not exist.
Fixed a bug where the removal of devices and routes would not cause the mapped virtual ios to be added back into the mountpending collection.
Therefore if the device was added back into the system the virtual points would not re-acquire the map.
Fixed a bug where deleting a device and its Audio sources and destinations would cause virtual points that map to those points to drop their base io existence in the database only.
This would make things look like the base ios still exist but after a restart they would get removed.
Fixed an issue where move and push would not cause a relook up of the modified virtual io route state causing them sometimes to appear as blank routes until the next change.
Fixed an issue in the UI where removing an IO might not remove from the routes table without a refresh of the web page.
This was also causing extra IOs to appear after moving or pushing until a refresh of the web page was done.
Eth4Can had HasAudio set to true. It is now false.
Made buttons in html 5 panels work properly with touch by emulating mouse down and up with touch and release rather than click with touch.
Adding proper touch/multi touch control to the console fader buttons.
Fixed a bug where Previous states in Axia Audio Destinations could change when there was no actual change of the multicast address.
For example changing the address field from 239.192.0.101 <> to 239.192.0.101
Fixed a bug related to changing an html5 panel Control id whose properties are mapped to other items on the same page that could leave the buttons flows non working and the old button id orphaned in the logic flows.
Fixed an issue where labels and images could not be moved on the html5 panel using the arrow keys because they shifted their focus.
Used drag helpers for these objects so that now they are movable with the keyboard keys.
Fixed an issue in html5 designer where after a dropping a control onto the panel the keyboard move buttons would not work without a second click on the control.
Fixed a bug with collections that was allowing the OnCollectionChanged event to be raised before items were added to the index.
This was causing scenes to not set their initial state properly.
Hid the include logs option on the restore dialog.
There are security issues with overwriting all logs.
This option fails if turned to true.
For now hiding the option until such time as we decide to handle such issues.
Fixed an issue in the logic flow editor where the views scroll bar was disappearing when the canvas size changed.
Fixed an issue where the src property of image html5 elements was not hooked up to the image selector dialog.
Changed the file date time format on the backups page for more accurate sorting when the date/time column is used for sorting.
Added a write only Requery property to virtual routers that would double check any missing mount points and then recheck the route state of each io in the router.
This is not for normal use but could be useful to force a recheck of all route points in the virtual router.
Set Router#0.VirtualRouter#3 Requery=True
Added an icon to trigger the new requery property on the routers page on each Virtual Router line.
Upon clicking, it will ask for confirmation before triggering the requery.
Upon clicking, it will ask for confirmation before triggering the requery.
This can be used to recheck the route status amd mount state of each IO in the virtual router.
Should not be normally used (hence the warning confirmation) and can cause cpu load on larger virtual routers while the analysis loop takes place.
Fixed an issue where renaming a logic flow view/folder with logic flows that were disabled in it where the flows also had combiners could leave the folder with scrambled flows.
Fixed an issue with rtpstream address swapping such as happens with vxengine that can leave source to destination routing unresolved after rtp addresses (livewire channel number) has been changed.
Fixed a bug where legacy panels with IO mapping were not resolving the map path when very large routers were involved because the routers had not finished loading yet.
This corrects an issue where the subscription to those router loading states was not passing the correct source or destination state on newly added ios during the load process.
Fixed bugs with backfeed switching. Names and owners were sometimes getting confused when backfeed sources moved between faders.
Fixed a bug with memory slots where changing the startup state when editing an existing slot was not always getting stored to the backing storage and so could revert after a restart.
Removed an unnecessary lookup and debug message.
Added code into the logic flows ui to issue a requery of the show profile or source profile list when the corresponding object/property is selected.
The consoles do not announce additions or removals of source and show profiles but they also happen too infrequently to warrant polling so this change allows the ui to request updates when configuring those parameters.
Fixed an issue where None (-1) was not an option in FaCH source profiles to be used for unloading a profile from a fader and indicating that unloaded state.
1.4.2.00 Patches.
Fixed a bug where the bindings file for html5 panels was sometimes being cached by the browser causing settings to appear to not stick or revert when making changes.
This file is now pulled with a no cache option and with a version stamp of current time to prevent the browser from using a cached value for the json data.
1.4.1.00 Patches.
Saving panels was sometimes generating css in both the html and css file and it was possible at times for them to conflict - especially with hardware mapping.
The save now strips out any inline styles in the html leaving all styles in the css file only.
Fixed an issue where changing a color on one button and then moving to the next and clicking the color again would sometimes update immediately to the color of the previously changed button.
1.4.0.00 release build for fanless engine, r2, and vm platforms.
This build is the same as 1.3.13.35 but moved to the master release branch and versioned as 1.4.0.00.
All future bugs related to features already in this version will become patches to 1.4 versioned as 1.4.x.00 where x is the patch number.
All new features will be created in the next 1.5 beta branch.
See Version Numbering for details.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Fixed an issue with the current owner property of backfeeds when used with iQx and Qor.
Backfeed messaging in iQx and Qor differs in how it presents backfeed sourcing compared with Fusion.
This required adding some custom code to handle backfeed current owner tracking when Qor and iQx are involved.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Warning: Critical bug fix with Logic Flow's ability to send Emails introduced in 1.5.20.33.
As a part of the licensing changes in 1.5.20.33 we broke the ability for stored email message objects to be accessed directly by their object path in the API. In most cases this also broke the ability for logic flows to access the message object to send email.
Any users of version 1.5.20.33 (Oct 4, 2019) through 1.5.20.41 (Nov 11, 2019) should update to 1.5.20.42 as soon as possible to regain email messaging capability.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Fixed an issue where the Logic Flows simple tree was showing a ToSend property on both the Generic Emulator and on the emulator's tcp/udp client.
The latter should have been API only as you should use ToSend on the emulator itself.
Fixed an issue where the friendly name property was incorrect on Device Emulators causing them to sometimes lose their name representation in the logic flow tree.
Did some minor optimization in the name lookup for logic blocks with io names for large routing systems.
Originally a name lookup queried the entire Router Manager for the pathio to name lookup.
This version more intelligently queries the information accessing the object path hash table.
This improves performance when switching between flow folders where start and end points use audio and gpio route points.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Fixed a bug with inner panels relying on panelmemoryslots as described in 1.5.8.07 that was causing indicators that should have been displaying the value from the internal panel memory slot to display blank instead.
This was broken in 1.5.9.09.
There was an assumption that the first message return with a done set system item was a response from the initial state request of the panel and that was not the case.
Now it looks for done set with a specific transaction id to make sure the initial get state is complete before applying the internal panelmemory states.
Fixed a problem with the xy matrix where it would require a browser refresh in order to pick up newly added or removed IOs.
Fixed an issue where the drop down selectors would not work in the user panel property editor on Firefox.
Fixed a issue in Firefox where the bind button height was inordinately short.
Fixed an issue with the audio alarm editor where clicking on the ellipsis for a source or destination that is defined in the audio alarm but no longer exists as an io in the router would throw an error silently and fail to open the io selection dialog.
Fixed an issue with the lines between flow items in the user panel editor not displaying properly in edge and Firefox.
Added Firefox and ms user-select none options to other css places where we had selected user-select:none in the css.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Fixed an issue with executing user panels in Firefox where dragging a fader or knob would cause items to be selected.
Fixed a bug with gradient meters not displaying in Firefox.
Fixed some button sizing issues when simple mode was used on console buttons in Microsoft Edge.
Fixed some text centering issues with buttons when used in Microsoft Edge.
Important Note: Despite the above fixed items, Chrome is still the recommended browser for the best user experience.
Added a 1500 ms delay to the UI for router deletion to make sure the UI has a chance to send the command to the equipment before reloading the routers list.
Fixed a bug where virtual routers with base points referencing other virtual routers would cause a problem in the base point display which if resubmitted during editing could cause additional IOs in funky ways.
Essentially the UI was requesting and presenting an infinite depth list rather than just the base IOs under the current IO.
This has been fixed.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Fixed a bug with auto resizing when the panel is running in the core pro browser with menu system rather than a pop up or standalone panel.
This bug was introduced approximately 2 months ago when we changed the name of one of the parent divs.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
This build should theoretically be identical functionally to 1.5.20.36.
It is the result of merging the beta branch changes into the master branch in preparation for a new release.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Fixed a bug with set time from pc and hardware clock management.
Pathfinder Core PRO should be set to sync to an NTP clock for accurate time services.
This issue is not a problem for PathfinderCore PRO instances which are properly set to sync to NTP.
In the case where NTP is not configured properly or is unreachable, setting the time using the set time from pc would cause the clock to look correct until a reboot.
After a reboot though the clock might be off by the time zone offset amount.
Ntp if configured would correct this automatically.
The problem was caused by not properly informing the hardware clock that the time being set was a local time and should be adjusted accordingly to utc so that the hardware clock is utc and the os clock is then derived from that based on the utc offset.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Fixed a bug where with Logic flow folder renaming.
While you could not create a logic flow folder with a forward or back slash in the name, after creating a folder using a legitimate name you could rename it to one with a bad name.
The result could be funky behavior where certain flows would be nested incorrectly after a reboot and might not work properly.
Slashes are used in os file system and are therefore illegal in the name.
This version tightens the validation to prevent folders from being created or renamed using these illegal characters.
Important Note: This version is still feature frozen in the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Fixed a potential memory leak with continuing device reconnection attempts.
Also improved socket cleanup and disposal code.
Made the metering device reuse its client socket rather than destroying and creating a new one.
Fixed an issue where hardware mapped buttons would not work with the mouse up event properly.
Fixed a bug where enabled state changes were not hooking to licensing properly sometimes requiring a restart to update license usage counts.
User panel element ids must start with a letter to be fully browser compatible.
If you enter an element id that starts with a number, that first number will be converted to the equivalent numerical word followed by an underscore when the id is stored.
Previously trying to enter an id that started with a numeral would cause the item to jump to the top corner of the panel and become inaccessible.
Removed the links to the legacy client applications as they are deprecated.
Updated the Date/Time stamp for manual links in the systemstatus page.
Updated email web page to Say SSL/TLS instead of just SSL as it figures out the request to upgrade to TLS so this label was confusing.
Fixed a bug when deleting a pass thru combiner that left a residual half complete flow that would also have to be deleted.
Reworked licensing names to better match marketing materials.
Important Note: This version represents a feature freeze for the 1.5 beta branch in preparation for a 1.6 release.
Bugs will continue to be fixed in the 1.5 branch during the remainder of the beta testing but any new features will go into a 1.7 beta branch.
Updated the logic flows simple tree to present friendly names for Quasar buttons.
Fixed a display bug with time on the system time web page when utc offset was positive rather than negative.
Added a localtime property to the System#0.Time#0 object.
Added a local time field to the system time web page and made the original time printout display using iso format.
In Virtual Router IO editing, added the paging and entry count selection fields to the BaseIo package table for use with larger base ios.
Fixed a bug where if you delete a device that had hardware mapped buttons, you then would not be able to change the hardware mapping of the button due to an error in the web page when trying to find the missing device path.
Added a cell-autoscale property to the saroutingmatrix user panel component which is true by default on panel route matrixes and false in the routes table version.
When false the cells stay roughly the same height and width rather than expand to fix the matrix.
Fixed a bug in saroutingmatrix that was causing the listed rows to run over the end of the component and not allow scrolling to the last row in situations where no search was in place and the horizontal scroll bar was hidden.
Modified the saroutingmatrix styles a bit for better header display.
Changed the code in saroutingmatrix such that filtering (searching) with small numbers of returns will change cell size if autoscaling is on but not if it is off.
Fixed a bug where a blank "from" value in a logic flow translation conversion item would cause the UI to hang in an endless loop.
Added Startup state to the memory slot grid view.
Changed the Quasar monitor section friendly name to be Master_TS_Monitor as that is more intuitive.
Switched off the use of begin/end on metering commands as the devices were not respecting that optimization anyway and the iports/engines were actually throwing error messages.
Added Lwrp CMD support into PCP gpio node.
Added the command (Lwrp CMD) item to gpi and gpo and exposed it in the API logic flow tree.
It is important to note that while CMD on GPO ports works across all devices, CMD on GPI ports only works on software nodes such as the windows driver and the Pathfinder Core PRO gpio node.
Made the Command item of gpios clear after 100ms inside the Pathfinder Core PRO data structures and SapV2.
Note that if your logic requires this clear state to not hit the logic endpoints, it can be skipped by making a conversion item where the from is bank and the to is <NoChange>
Fixed a bug where restricted by license translators were not displaying with the dark color as they should.
Added a note to the hover balloon for translators that have been restricted by license.
Changed the license counting such that you no longer need to specify whether an extension license applies to logic or audio and all licenses including the base licenses function as a shared pool.
Starting with this version the total license count is a pool that is shared between audio and logic points.
Therefore the base license which used to be 500 audio and 500 logic is now just a shared 1000 point pool used for audio and logic.
Updated the licensing display on the system page and license editing page to reflect the license counts and pool utilization.
Internal Task 572
Internal Task 573
Internal Task 574
Added an option to silence and clipping alarms where you can select Left, Right, All, or Any in order to specify which channels need to be silent or clipping in order to trip the alarm.
By default existing alarms will function in the Any state to match previous functionality.
Fixed a bug where editing and changing a silence or clipping alarm could leave it in an unknown state until the next message.
Now if the subscription state already exists it will adopt the correct change which may trigger a count.
Set Quasar monitor button count to 32.
Added an AllInternalServicesLoaded property for use by the web pages in case a device emulator has problems starting.
Previously some web pages would recycle their websocket connection until all services were loaded.
This change excludes Device Emulators from that restriction.
Added some 30 second crosschecking to discover any device emulators that did not hook into the main application properly during startup due to a bound cpu and need to be relaunched.
Added a ClearRoute value to SapPropertyRouter available in the router translation button.
When a property route is cleared, by default the value of the destination property is not changed.
This field can be used to specify a value to be sent to destination property when the source assigned to it in the Property Router is cleared.
Note that currently this field requires knowledge of the correct value to send. In the future we may add additional helpers for this field.
The default value is <NoChange> in order to match functionality from the previous build.
Updated some Quasar monitor section button naming with more friendly names in the logic flow tree.
Fixed an issue in User Panel editing where internal sub panels using the IFrame might re-grab the focus while trying to edit the src link of the IFrame.
Added a function to strip out Kaspersky injected header code before saving a panel if it exists.
Some versions of Kaspersky have been known to inject code into every web page that is accessed.
In previous versions, this injected code was sometimes being saved out to the panel definition.
Made the switch of fader and meter orientation more intuitive by swapping the height and width at the same time.
Adding some titling in the SapProperty Router translation dialog for hover pop up explanations.
Added a SapProperty Router for using any properties PathfinderCore PRO knows about as sources and destinations in a router.
Please review the Beta Manual for details.
Added an advanced field in the logic flow translation dialog for manually editing the selected conversion list item if necessary.
This field allows you to bypass the helper fields such as the color selector and directly enter data into the conversion.
Please review the Beta Manual for details.
Added Regular Expression capabilities to Generic Emulation watchers and translator from-conversion list items.
Also added a TriggeredValue property.
Please review the Beta Manual for details.
Added a NoChange option to logic flow translation to-conversion list items.
Please review the Beta Manual for details.
Fixed a bug with hardware mapped buttons that make use of the disabled option.
Fixed a bug with the ToSend option of Generic Emulators that might incorrectly strip off carriage returns and line feeds at the end or beginning of a message that should be passed through.
Fixed a bug that has existed since the ui overhaul in 1.5.19.25 where the advanced link in logic flow translation was not working.
Fixed a bug that has existed since the ui overhaul in 1.5.19.25 where the clear route would only work after selecting a source in the take list.
Altered the take and cancel button style in XYMatrix slightly to prevent overlap with low io counts.
Fixed a bug in the XYMatrix where after doing a search and resize of the xy grid, the vertical scroll bar and the preset rotation controls would overlap.
Fixed a delay when opening a router with no ios in the web ui.
Reworked the advanced options translation display code to be more intuitive across user panels and SapProperty router.
Fixed some bugs in scenes related to cluster synchronization in the 1.5.20.29 build.
These primarily caused issues in the case where a scene design was modified while one of the nodes was offline and then re-synced.
Fixed a bug with scenes in 1.5.20.29 where the correct version stamp was not being written into the storage file.
Completed an editor webpage for creating and editing scenes.
Please review the Beta Manual for details.
Initial feedback on the xy matrix from 1.5.20.28 determined that the cell resizing when using search filters was distracting.
This version maintains cell size during search filtering.
This also addresses an issue where when filtering, the display list could extend beyond the bottom of the component without the scroll bar appearing.
Quasar button support.
Added fader user buttons and monitor module user buttons to the button list available when hardware mapping in user panels.
Improved some performance issues when initially entering the panel designer related to populating the data selection tables.
Added additional styles (simple and touchbar) to fader and consolefader user panel objects.
Added an orientation property for horizontal and vertical display of fader user panel objects.
Added a number of additional styling properties to the fader and consolefader user panel objects.
Added a router xy matrix both as a user panel object and on the route details web page for routers.
Please review the Beta Manual for details on these new features.
Added some minor optimizations to io state changes in the router details tables.
Added hover titles for properties in the user panel property list in order to better display long property names.
Important Note: The changes above and detailed in the Beta Manual required a number of changes to the user panel default skin css file. If the components discussed do not appear correctly in the panel designer web page, your executing panel, or in the router-details web page, try forcing the browser to refresh its cache.
In Chrome this can be accomplished by holding Ctrl and Shift while clicking the reload this page icon while on the web page having difficulties.
You should only have to do this once on each of these three pages and then the browser will fetch and cache the revised stylesheet file.
From: 1.4.20.00: Added some changes to the metering device object to correct the possibility of a crash during a lost connection disabling of the timers.
We have seen two sites that have exhibited crashes with a logged stack trace on the same line of code.
This line of code deals with the disabling/enabling of certain timers during a loss of connection to the equipment of a metering device.
While we have not been able reproduce in the lab we believe the changes in this version should correct the problem.
Made some minor performance improvements in fader manipulation.
Please review the release notes and beta documentation for 1.5.19.25 as well.
Please review the Beta Manual for details on all of the features listed below.
Added support for the LwcpSs control protocol within Iqx and Qor based consoles.
This adds many new control points in logic flows for Iq/Qor based consoles.
This option may be disabled via the configuration advanced options page by adding the following line:
SET Devices#0 LwcpSs=False
Added a monitor section Html5 userpanel component for use with Iqx and Qor based consoles.
This option may be disabled via the configuration advanced options page by adding the following line:
SET Devices#0 QorMonitor=False
Added a border gradient property with values of simple and complex to saconsole buttons.
Added an autoscale property to html5 user panels.
Known Issues: there is a known issue with the height_and_width value and consolefaders.
This issue is discussed in the beta documentations as well.
This build reflects a major refactoring of the web ui underlying code.
Also includes updates to the web ui data tables to a newer api and deferred rendering option.
Almost all of the files in the web ui were manipulated in some fashion during this rework.
Please report any issues you encounter so that we may fix them as soon as possible.
Please review the Beta Manual for details on these changes.
Added a new sort icon at the beginning of the routes table in routers that sorts based on the destination path io for a more natural ordering.
Removed some unnecessary links to jquery in panel definition files.
Added code to clean up unnecessary jquery links when an existing panel is saved.
Fixed a bug with the Pathfinder gpio and multicast which broke receive multicast communications in situations where both livewire and office nics were active and the gateway was on the office nic.
Fixed an issue with the stop button for livewire endpoint discovery not updating after discovery was stopped.
Fixed a bug where save was not available when editing an existing user that was not an administrator.
This bug was introduced in 1.5.10.10.
The problem occurred because we moved to a progressive tree where not all data is loaded up front but rather it is loaded as the branches were being expanded.
Unlocking the save required a full load of the data which would not occur.
In this version we still do not fully load but we do a cross check on save and assume that originally selected settings that do not exist in the current instance of the tree were never expanded and changed and should therefore retain the value from the original setting.
Fixed a bug in a custom meter handler when unassigned meters are on the panel.
Fixed a bug where the property dialog in user panels was showing endpoint options as opposed to start point options in some situations.
Added a timestamp memory slot type.
Please review the Beta Manual for details on this feature.
Fixed a bug where passing false to the Zip One drop property would also drop the call when only True should cause a drop.
Cleaned up some unused files in the Web UI folders.
Clean build on OS.
The changes in this version relate to html5 user panel components.
Please review the Beta Manual for details on these features.
Updated the Fader control to be able to manipulate numeric and non-numeric properties in addition to the normal fader mapping.
Added a rotary knob control.
Updated the user panel analog and digital countdown timers with additional properties for stop, reset, pause, elapsed complete, and count up functionality.
Faders and knobs now will display their value when hovering with the mouse.
Faders and knobs will now work with the mouse wheel.
Added a drop down component.
Configuration is complex at this point in time and currently should be for advanced users only.
More intuitive user interfaces for configuration will be coming in the future.
Please review the beta manual documentation for details.
Added source profile selection to console faders.
This feature may also be disabled using the allowsourceprofilechange property.
Exposed the transform css property to user panels.
Holding the shift key while clicking into the property fields for user panel component will now allow direct text editing bypassing the normal helper dialogs.
Qor LwcpSs support - hidden for internal testing only at this point in time. Will be released in a later build. (552 notes)
Qor Monitor section panel component support - hidden for internal testing only at this point in time. Will be released in a later build. (553 notes)
Added a write only append property to memory slots that allows you to append data into a memory slot as the endpoint of a logic flow.
From 1.4.19.00: Included the VMware paravirtualized scsi driver in the vm and vm installer images.
This version only makes a change in the vm version.
The driver has been included for testing with VMware sites where ISCSI is being used for the host storage.
Added support for Zip One Control including phonebook dialing and management.
Please review the Beta Manual for details on this feature.
Added support for Iport specific Lwrp commands.
Please review the Beta Manual for details on this feature.
Both of these features should be considered beta features.
Please report any issues you experience and be prepared to roll back to a previous version/bank if you encounter any difficulties.
From 1.4.18.00: Reworked day of week timer threading to prevent day of week timers from getting stuck in an elapsed state when they are supposed to flip back to not elapsed 10 seconds after execution.
Added an hourly safety catch to catch any that are in the wrong state.
Improved performance of timer lookups and moved some of the dayofweek elapsed resetting into each day of week object.
From 1.4.18.00: Fixed a bug in object translators where if the input was a specific property rather than an object but the output was an object, the system would process other properties on the input side than just the one selected.
From 1.4.18.00: Cleaned up some css around meters.
From 1.4.18.00: Fixed a problem with html5 gradient meter off colors shifting the transition points if they were not all the same color.
From 1.4.18.00: Fixed a bug that was causing the schedule column for DayOfWeek events to switch to a number rather than the correct value until the web page was refreshed.
Please review the notes on 1.5.16.18 and 1.6.16.19 regarding the gpio that now exists in the beta branch.
From 1.4.17.00: Fixed a bug with user log rotation that was causing rotated files to have large blocks of NUL characters at the beginning in certain situations.
From 1.4.17.00: Fixed an issue where activate scene did not submit the scene messages to the system in the order specified.
It is important to understand that even though the scene will now submit the change messages in order that does not guarantee they will be completed in order.
Each Scene item is sent to the system without waiting for completion.
From 1.4.17.00: Added code to the silence alarms to more quickly detect device failures.
Currently the default Linux settings will only raise an error on tcp send failures after approximately 15 minutes of failed retry attempts.
This is much longer than the similar windows defaults.
Device management relies on application level ping messages to detect failures quicker but this was not implemented in silence alarm device connections.
In this version silence alarm device connections will also drop the tcp connection and will start counting down the failure after approximately 45 seconds of failed ping (VER) messages.
From 1.4.17.00: Switched the SRC Rtpp property to be read/write.
From 1.4.17.00: Fixed a bug where opening an object translator created with an API property while the Simple tree is selected and then selecting the item in the translation convert list might leave the property name field blank which after committing would wipe out that api property name in the conversion.
From 1.4.17.00: Disallowed most punctuation in panel names.
This fixes some panel incorrect functionality when certain characters such as the slash are used in the panel or page name.
From 1.4.17.00: Moved the meters and scenes to startup prior to logic flows in the service startup list.
From 1.4.17.00: Added some thread locking around device online/offline state in router IO DeviceOnline property setting to prevent a potential race condition where offline to online messages in quick succession especially during initial load could theoretically interfere with each other.
From 1.4.17.00: Fixed an issue with gpi dynamic additions not getting an index in the device io collection.
This can cause the ios not to show online/offline correctly.
Added the ability to insert a pause as a scene item for situations where a pause in the scene execution is necessary.
This feature can only be used via the API at this point in time until we complete the Scene editor UI.
When initing the scene item use a changemessage property of: nop . Pause=5000
Where 5000 is the pause timeout in milliseconds.
Example: init Scenes#0.Scene#Off.SceneItem order=4, changeMessage="nop . Pause=5000"
Added an offset property to Html5 faders which can be used to offset the fader gain range similar to the custom property in the fusion and Qor consoles.
Since the offset property in the console is not exposed to Pathfinder for reading we cannot detect the console setting, so this parameter must be set for each fader in the Html5 panel designer if you want it to be anything other than the default 0 offset.
For example setting the offset value to -10 will cause the top of the fader to be 0 rather than +10.
You can also use the optimum property to change what value the fader double click will move to.
Please review the notes on 1.5.16.18 as this version builds upon the internal gpio node added in that version.
This version adds cluster synchronization to the internal Gpio node in Pathfinder Core PRO.
Please review the Beta Manual for details on the nuances related to synchronization of this feature.
The internal Gpio node is still a new feature to PathfinderCore PRO so report any issues you encounter as you start using it.
Fixed a bug where loopback (127.0.0.1) snake gpio routing that was in external gpio devices was either not matched or showing up as pcpgpio sources in the gpio router.
Fixed an issue in the internal gpio node where adding and removing ports would be picked up by the gpio router, but not on subsequent adds because some data was not being cleaned up in the devices tree.
Fixed some issues with connection recycling in the internal gpio node.
Added some code to prevent looping Lwrp ERROR 1000 messages in the internal gpio node between clustered Pathfinder Core PROs.
Fixed an issue with added ports in the internal gpio node when a global ADD GPI or ADD GPO had been requested.
In the previous build the new ports would not be subscribed to.
Fixed some issues with Pathfinder Core PRO routing and object updating when internal gpio port counts are changed.
Added code to clear internal snake subscriptions when an internal gpio port is removed from the system.
Fixed a bug in the web page with sensing whether the internal Pathfinder Core PRO gpio node was in the devices list or not
Fixed an issue where the connection to the internal Pathifnder Core PRO gpio node was occasionally recycling based on a poll lack of response timer.
This was a fault in the polling when the device was local and therefore could respond threading wise before the poll send date/time stamp was set.
This version adds a virtual gpio node into PathfinderCore PRO that can interact with both snake routing and multicast gpio.
Important Note: This is a preview build of this feature and cluster synchronization of this feature is not complete yet. Please review the Beta Manual for details on this feature.
There is a known bug where adding new ports do not show up in the routers. Removing the device from the devices list and then clicking on the gpio link to prompt rediscovery will fix this until we have a patch.
From 1.4.16.00: Fixed a bug with case sensitivity of On/ON and Off/OFF with html5 buttons.
From 1.4.16.00: Fixed an issue where changing backcolor on or off on an html5 button while a flash was in progress would not change the flashing color without turning flash off and back on again.
From 1.4.16.00: Added a None option to the hwmap list to be used to unmap a mapped button.
From 1.4.16.00: Added the ability to hwmap buttons to the over bridge display on fusion button modules as this was missing and should have been there.
Added hardware map binding to label and input box. Still needs testing.
From 1.4.15.00: Fixed a bug where removing a virtual route point's base ios would cause the underlying audio point to become unmounted from the device DST/SRC object.
This could break routing for that IO until a reboot takes place.
Also fixed some issues with mount point meta data after a removal which only came to light after this change which made remounting problematic.
Mounting and umounting primarily occurs in routers where fast direct access (mounting) of the underlying DST/SRC objects from the devices tree is necessary.
From 1.4.15.00: Fixed an issue with rediscovery of deleted audio ios where the DST/SRC object still exists.
From 1.4.15.00: Added some code to re-query the resulting DST/SRC after a manual reconnect request of the device.
From 1.4.15.00: Fixed a bug with removing ios from the devicepath lookup collection probably introduced in 1.4.9.00.
From 1.4.15.00: Fixed a bug where removing an IO (or other object that was mounting other objects) in some cases could cause the base device object (mounted object) to get removed from the lookup collection.
This would mean the object would show up in the lists when walking the tree but would return INDI NONE when accessed directly.
From 1.4.15.00: Added a chunk of code to make sure Html5 panels clean up any residual unused bindings on save.
From 1.4.15.00: Fixed some outdated unit tests.
Fixed an issue with API trees and branch selection.
Fixed issues with api tree auto selection.
Added support for the Omnia Volt device type.
Added hp202 as a device type.
We do not have one of these so this is completely untested and may or may not work with the equipment.
Stored the DEVN from the device into the devices database so that if the device is an unknown device and is offline on startup the sapobject type would be correct rather than generic.
For existing unknown devices this field will be updated in the database when the device is connected to and the SapObjectType changed based on the DEVN discovery.
Added an additional cross check when loading from the device to change an unknown device type to a known one at load time if the DEVN can be interpreted based on the new coded devices.
Fixed an issue where devices list web page was not always updating background page data without a browser refresh.
From 1.4.14.00:Fixed a memory leak in database record updating.
Checks to determine if we needed to insert or update were spawning a datareader object which was never being closed and therefore never released from ram.
This was causing more and more of these to exist in ram as data writes occurred.
This was especially prevalent when writing regularly changing memory slots that were set to the LastKnown state.
If this is your situation please also review the notes on LastKnown state for memory slots.
The LastKnown option should only be used when necessary as it causes additional disk I/O.
Use the LastKnown option only when the memory slot state cannot and will not be able to be determined via flows by the existing state of the system on startup.
From 1.4.13.00: Fixed a bug introduced in 1.4.9.00 that was only removing ios from ram on either gpio or audio when a device was removed rather than both.
The database was being cleaned properly so a restart was necessary to fully remove those ios prior to this version.
This could also lead to clustering anomalies if the device was added back into the system before a restart occurred.
A restart of both could also be used to clear those anomalies.
Fixed an issue from 1.5.10.11/12 where the API tree in logic flows was not displaying.
This is a quick fix to get the API tree working again for those that need it.
Known Issue: There is still an issue with double clicking start and endpoints that are already assigned when the API tree is selected where it may not find and select the property in the tree.
Known Issue: We will work on a fix for this issue in the next build.
Fixed an issue with pulse on html5 buttons and lcd buttons where the flash would not stop if the indicator was in a blank (unset) state when the pulse started.
Now that is considered to be an off state.
Fixed an issue where the disable property in Html5 buttons added in 1.5.9.10 did not work properly with mapped hardware buttons.
Added a folder enable and disable option in logic flows that allows the enabling or disabling of all flows in the folder.
A recurse option also exists to change the enable/disable state on flows in the sub folders as well.
Please review the Beta Manual for details on this feature.
Known Issue: This version has a broken API tree in logic flows. Simple tree is working with the optimizations from 1.5.10.11/12. Targeting a fix for version 1.5.12.15.
From 1.4.12.00: Fixed an issue where the omnia one would still show as offline if it was in the database prior to the update to 1.4.11.00.
Since the Lwcp connection was already in the database it would still get loaded.
Now it gets skipped.
Known Issue: This version has a broken API tree in logic flows. Simple tree is working with the optimizations from 1.5.10.11/12. Targeting a fix for version 1.5.12.15.
From 1.4.11.00: The Omnia-one device type incorrectly had LWCP options enabled. This is fixed.
This was causing the device to appear as offline in some cases.
Added the pulse option to html5 panel button indicators and LCD button states.
Please review the Beta Manual for details on this feature.
Known Issue: If the button state is blank flashing may not stop. Working on a fix for this in 1.5.12.15.
Please review notes for 1.5.10.11 and 12 below as well.
Important Notes: Known Issue: This version has a broken API tree in logic flows. Simple tree is working with the optimizations from 1.5.10.11/12. Targeting a fix for version 1.5.12.15.
This version (in addition to 1.5.10.11 and 1.5.10.12) have major changes to the web page data loading architectures. Please report any bugs and be prepared to roll back to 1.5.10.10 if issues are uncovered.
Fixed an issue where the logic flows simpletree json file did not have versioning in the ajax request and so would require a Ctrl-Refresh of the browser to obtain the new changes.
Fixed an issue from the rework of the json file in 1.5.10.11/12 which caused some devices and routers to be presented in the property tree by their id rather than their friendly name.
Important Notes: Known Issue: This version has a broken API tree in logic flows. Simple tree is working with the optimizations from 1.5.10.11/12. Targeting a fix for version 1.5.12.15.
This version (in addition to 1.5.10.11) has major changes to the web page data loading architectures. Please report any bugs and be prepared to roll back to 1.5.10.10 if issues are uncovered.
Reworked the branch loading in logic flows property tree to allow large groups to be loaded at once without frequent rendering.
This improves load performance of some branches such as the main audio router branch.
Applied the same changes as above to the logic flows folder tree.
Added Xnode mix points back into the simple tree now that the property tree is filled on demand rather than being pre-filled.
Important Notes: Known Issue: This version is reported to having broken the API tree in logic flows. Simple tree is working. Targeting a fix for version 1.5.12.15.
This version has major changes to the web page data loading architectures. Please report any bugs and be prepared to roll back to 1.5.10.10 if issues are uncovered.
Made some minor improvements to router web page loading for large systems.
Work is continuing on this optimization and should improve more in future versions.
Changed the logic flows loading page to not pre load router resources.
Changed the logic flows simple tree to load branches on demand rather than pre-loading data.
This improves a cpu hang during the initial logic flows page load on larger systems.
Changed all pages that were using json pulls to use SapV2 streamed messages instead.
This improves cpu and memory utilization in Core PRO during large list loading as it removes the need to build large json blobs in ram.
Changed the message counter during router loads to only change on every hundred rather than every message to reduce rendering load.
Fixed an issue where DeviceEmulators were not appearing in the property grid when accessed from html5 panel designer.
Added a UseStagedWrites option to MemorySlotManager to control the frequency of updates to the cf card to no faster than every minute on vm and r2 and no faster than every 15 minutes for fanless.
This is to save the cf card if the customer uses a fast changing memory slot with the lastknown option enabled despite the warnings against this in the manual.
The option can be disabled via the options file if necessary.
Fixed a bug that was preventing object translation properties to appear in the to field of the translation dialog in certain cases.
It looks like this has been there for a while but may have been masked in previous versions by the lower level rfs pulls which are now staged in this version.
From 1.4.10.00: Fixed a bug introduced in 1.3.13.31 with time zones that was not setting one of the operating system shortcuts to the correct time zone symlink.
If you suspect the need to reset the time zone first update to this version and then switch the time zone to something else and then back to the desired time zone, set the time using ntp or the set time from pc link and then reboot.
From 1.4.10.00: Fixed a bug introduced in 1.3.13.31 where the set time from pc web ui link was not working.
Fixed an issue introduced in 1.5.9.09 where the web page during the reboot after a bank update might navigate away from the correct system web page.
Fixed a bug introduced in 1.5.9.09 that was causing cluster data to show up as routers on the routers web page.
Added a new property to allow the enabling and disabling of html5 user buttons.
Important Note: Sometimes when rebooting the web page will try to roll to the other nic or to the other node in the cluster. This will be fixed in the next build. In the mean time you may have to type the correct url back into the browser to see the results of the update/reboot.
Warning: This version pulled from the site due to a bug. All changes in this version are also in 1.5.9.10 but without the bug.
Made the browser page title reflect the panel name when opening an html user panel.
Added a ping/pong message every 10 seconds on html user panels to act as a keepalive if network proxies or security try to close the websocket due to inactivity.
Added code to reconnect user panels automatically if the websocket loses connection.
This will attempt to reconnect to the Pathfinder Core PRO currently in use first.
If that connection fails it will cycle through the other livewire and office tcp connections in the cluster.
Important Note:
If the panel rolls to a different Pathfinder Core PRO in the cluster a new login may be required. We intend to address this second login request during a cluster redirect through the use of floating ips in the future.
From 1.4.9.00: Improved device removal performance.
Certain recursive, redundant, and non-optimized calls were causing high cpu load in larger systems during a device removal while cleaning up the device's route points.
Added some code to prevent a device removal from making redundant database calls to the router database.
Made optimizations in the router io removals for a device removal by including hashed lookups of ios by device.
Made io removal messages when initiated by a device removal cluster quiet as they should be handled by the device removal cluster message.
This reduces unnecessary cluster messaging.
Fixed the sub cache descendent branch removals by querying the object for the additional branches to be removed rather than looping through all items repeatedly.
From 1.4.9.00: Improved the io lookup collection for theoretically better performance.
From 1.4.9.00: Very minor performance improvement to router load times.
From 1.4.9.00: Added an exception to not cache messages for response for Device Emulator ToSend when forwarding them to the emulator.
From 1.4.9.00: Made a couple of other minor optimizations which may improve performance slightly.
Demo option (Notes 517).
Added control option to html5 panel fader and console fader controls to support Lwch in addition to Fach as well as QOR based consoles.
Please review the Beta Manual for details on this feature.
Made Lwch objects for a specific console follow the fader gain value of the console's fach object that currently has that channel loaded.
The subscribe command in LWCP for fader gain states in the consoles does not support a similar variation for Lwch objects so this keeps them in sync within Pathfinder Core Pro's objects.
Hid the A/B buttons in html5 console fader controls when the control property is directed at a Qor Fach object since Radius and Iq do not have the A/B buttons.
From 1.4.8.00: Extended the disk device timeout in the OS to 180 for the vm build for better compatibility with network (iscsi) backing storage.
Added support for Imagine Logical Router Control Routers.
Please note: This feature is very much a beta feature at this point in time and is still undergoing testing.
Please review the Beta Manual for details how how to add an Imagine router to your Pathfinder Core PRO system.
Added a load event to the web browser Html5 panel control (iframe) which cycles false when the frame starts to load and true when the loading is complete.
Hid the network connection icon during initial panel loading in frame min to prevent its momentary appearance during launch and subpanel loading.
Added support for the lwrp STAT DST, STAT SRC, STAT ICH, and STAT SYNC commands to Axia audio devices.
These features are currently only in the API tree of logic flows under the device.
Note: Because STAT SYNC will be infrequently used and can generate lots of traffic in large systems, it is disabled by default.
Enable STAT SYNC with an API command like: SET Devices#0.XNodeCombo#[tcp://172.16.1.95:93].LwrpInterpreter#0 SubscribeToSync=True
Please review the Beta Manual for details on properties and functionality exposed via the STAT command.
Exposed route destination lock states in the logic flows simple tree.
Added an html5 panel input box for capturing user input.
This input box can be displayed in several different types for capturing different kinds of data.
Please review the Beta Manual for details on this new Html5 panel control.
Added a setlocal property to html5 main panels that can be used to set properties on components in the panel, its parent, or subpanels.
Syntax is target|elementid|propertyname=propertyvalue.
Target can either be local for the local panel, parent for the parent panel, or the name of an iframe.
For details on using the feature please review the Beta Manual.
Added a panelmemoryslot control to html5 panels.
This control is similar to a normal memory slot except that its scope is internal to a specific instance of the panel.
Please review the Beta Manual for details on this new Html5 panel control.
From 1.4.7.00: Added some code to swap a device path in the legacy Panel device cache if the object path changes relative to the ip:port.
If a device type changes (engineacl to fusion), it must be removed and readded to PathfinderCore PRO to generate the new object paths.
If the device type changes (for example engineacl to fusion) and the device is removed and re-added, legacy hardware maps are not valid without a restart.
This version allows a save of the legacy panel to regenerate the hardware maps with the new device type object path after the device has been removed and re-added without a restart.
Io mapping on legacy panels may have to be recreated in this case due to io number changes after removing and adding the device.
This situation should be virtually non existent as device types do not change unless you replace the device with one of a different type.
From 1.4.7.00: Added an exception to prevent log messages for duplicate inits when the objects are the default none, previous, and other ios.
From 1.4.7.00: Added a DataIndex property to better track the internal database index for ios.
From 1.4.7.00: Fixed an issue where adding audio ios via a cluster message was not incrementing the max index which meant a virtual io addition after that might try to reuse an index causing it to get created in ram but not stored to the database with a database error in the log.
From 1.4.7.00: Added cluster synchronization of the routers MaxDataIndex.
Warning: CRITICAL NOTE: The items above fix a critical bug in clustered scenarios. Prior to this version if you added an Axia Audio device to an active cluster and then created a virtual router after that prior to any restart, the ios for that virtual router would appear on the secondary node but might not get written to the database. This means they could be missing on the secondary node after a restart.
If you think your system may be in this state it is highly recommended that you backup both systems and then do a manual sync from primary to secondary.
To do a manual sync from primary to secondary, go to the secondary node and from the clustering tab on the secondary node click manual sync in order to take and restore a backup from the primary node.
It is recommended that you do this and then upgrade to the new version.
From 1.4.6.00: Fixed a bug where Ios returned from the equipment with no rtpaddress or enabled fields (vx and intercom) could replace the none source in some routes causing those sources rather than none to display and causing corresponding virtual destinations to report an other state rather than a none route.
Please review all release notes from 1.5.5.05 and 1.4.5.00 as this is just a quick patch on top of those changes.
Fixed a bug introduced in 1.5.5.05 that was preventing flow editing within html5 panels because the link to the advanced options was not present when viewing the flows from user panels.
From Patch 1.4.5.00 => Please review all release notes for version 1.4.5.00 as well as they apply to this version also.
Worked on an analysis tool for missing mount points.
Fixed an issue where the execution limit property could be incorrectly affecting logic flow license count.
Added an option in the logicflows root to change the default settings for recursion.
Changing this will also update all translators that are currently at the default settings.
Property is DefaultRecursionSettings and is in the format iterations/ms.
For example 50/1000 means recursion will disable if the translator executes more than 50 times in 1000 ms.
Added execution limit settings to the translator dialog to allow adjusting the recursion detection settings.
Moved skip initial startup and recursion settings into an advanced settings in the translator ui.
From 1.4.4 Patch: Fixed an issue with rtpstream address swapping such as happens with vxengine that can leave source to destination routing unresolved after rtp addresses (livewire channel number) has been changed.
From 1.4.4 Patch: Fixed a bug where legacy panels with IO mapping were not resolving the map path when very large routers were involved because the routers had not finished loading yet.
This corrects an issue where the subscription to those router loading states was not passing the correct source or destination state on newly added ios during the load process.
Fixed a bug in Logic Flows introduced in 1.5.0.01 where the ExecutionLimit propety change was being raised by EvalSuccess causing poor performance due to that property raise generating repeated saves to the cf card.
Fixed a bug with Logic Flow license counting introduced in 1.5.3.03 or earlier.
From 1.4.3 Patch: Fixed bugs with backfeed switching. Names and owners were sometimes getting confused when backfeed sources moved between faders.
From 1.4.3 Patch: Fixed a bug with memory slots where changing the startup state when editing an existing slot was not always getting stored to the backing storage and so could revert after a restart.
From 1.4.3 Patch: Removed an unnecessary lookup and debug message.
From 1.4.3 Patch: Added code into the logic flows ui to issue a re-query of the show profile or source profile list when the corresponding object/property is selected.
The consoles do not announce additions or removals of source and show profiles but they also happen too infrequently to warrant polling so this change allows the ui to request updates when configuring those parameters.
From 1.4.3 Patch: Fixed an issue where None (-1) was not an option in FaCH source profiles to be used for unloading a profile from a fader and indicating that unloaded state.
Updated the vm iso installers, update packages, and images to support /dev/hda and /dev/vda as root OS disks in addition to the normal /dev/sda.
Required for some vm hypervisors such as Stratus.
Added device objects for infinity devices so they would appear as inifinity objects rather than generic livewire devices.
Added a write only property called SendToRestApi to Inifinity objects which accepts strings in the format: OPERATOR PATH VALUE (i.e. PUT /api/s/main/audio/speakerMute true) to sent http commands.
Responses are not functioning yet but PUTS should work.
It is important to know if the value needs to be wrapped in quotes and to use those quotes if necessary.
Added a write only property to MemorySlotsManager to change the value of all slots that have a certain value.
Example: SET MemorySlots#0 ChangeAllByValue=oldvalue-->newvalue
Use --> to separate the old from new value.
Added a CopyValue property to memory slots that allows you to copy a value from one memory slot to another via a command.
Example: SET MemorySlots#0 CopyTo=slot1-->slot2
Use --> to separate the old from new value.
Useful for dynamically altering the copy source and/or target via a logic flow translator.
From 1.4.2 Patch: Fixed a bug where the bindings file for html5 panels was sometimes being cached by the browser causing settings to appear to not stick or revert when making changes.
This file is now pulled with a no cache option and with a version stamp of current time to prevent the browser from using a cached value for the json data.
From 1.4.1 Patch: Saving panels was sometimes generating css in both the html and css file and it was possible at times for them to conflict - especially with hardware mapping.
The save now strips out any inline styles in the html leaving all styles in the css file only.
From 1.4.1 Patch: Fixed an issue where changing a color on one button and then moving to the next and clicking the color again would sometimes update immediately to the color of the previously changed button.
Fixed an issue where the log message generated by translator recursion detection was not including the path to the translator being disabled.
Changed the link to the new beta features manual for 1.5 and set display to visible again for it.
Added an init messages field to generic emulators in order to send a login or other init message on connect.
Added a Connected Property to Device Emulators for logic flows to determine whether the emulator has any successfully connected clients.
Added a ConnectedCount Property to Device Emulators for logic flows to start based on the number of connected clients.
Added a ConnectionLost Property to Device Emulators for logic flows to trigger off of when connections get lost.
This property pulses true then false when a connection gets lost.
Added a ConnectionObtained Property to Device Emulators for logic flows to trigger off of when connections get obtained.
This property pulses true then false when a connection gets obtained.
First beta build after 1.4 release.
Added swap as an option in html5 panel and control's visible property.
Switches between visible and hidden values.
Added a SendCriticalMessage Property to the email host object that can be used to send messages to the critical event email address.
Property should be set with a subject and message where the subject will be split from the message at the first carriage return and line feed.
May not be usable via logic flows yet, only via the API.
Added recursion detection to translators to prevent a badly formed recursive or looping logic flow from killing the cpu or causing a stack overflow.
The default functionality is to disable the translator if the translator is being analyzed for execution more than 50 times per 1000 milliseconds.
These parameters may be changed via the api by setting the ExecutionLimit property on the translator.
For example, to make the flow get disabled if it is executed more than 20 times per 1000 ms, use the command:
set LogicFlows#0.LogicFlowFolder#Test.ListTranslator#6ef05ca8-e530-4326-8a35-85e9e41495af ExecutionLimit="20/1000"
In the case that a translator gets disabled by recursion detection, a log message will be generated and an attempt will be made to send an email to the critical event email address.
There is no UI yet for editing the recursion detection settings to anything other than the default.
It currently must be changed to anything other than the default via the API.
Important Note: You may need to hold cntrl-shift and click refresh to refresh the logic flows web page the first time after updating to ensure you are not using cached JavaScript.
Fixed a bug where object translators were sending an incorrect message for obtaining the initial state of the object.
This was affecting the initial state setting of color and text on hardware maps.
Important Note: You may need to hold cntrl-shift and click refresh to refresh the logic flows web page the first time after updating to ensure you are not using cached JavaScript.
Fixed a bug with logic flow folder/view renaming that was causing garbage folders with identical object ids to be left behind - since 1.0.0.40.
Fixed a bug where factory default was not properly wiping out the new LogicFlows folder - since 1.0.0.40.
Fixed a bug in the UI code that was creating a garbage combiner with an undefined operator when deleting a combiner.
Fixed a bug in the logic flows color selections where when selecting translations that had colors, the color selectors were not updating with the color.
Fixed an issue with the Alarm web page where editing an existing alarm would not show the name of the io in the io field.
It was showing the address instead. Now it will switch to the name once the name is resolved.
Warnings: This version is a rollup of unreleased changes from builds 1.0.0.36 to 1.0.0.39.
Please review the release notes for 1.0.0.36 through 1.0.0.40 to fully understand the changes.
1.0.0.36 through 1.0.0.39 have significant changes in Client, Mini, and Panel Designer as far as connection recycling and connection cpu load.
Client, Mini, and PanelDesinger must be re-installed as well to recognize these benefits.
Fixed an issue where Day Of Week time events were not shifting or not shifting properly over daylight savings time shifts even after the changes in 1.0.0.36.
Warnings: Version 1.0.0.36 and later have major changes as well as some important bug fixes. Please read the release notes for more details. Please report any issues as soon as possible.
1.0.0.36 through 1.0.0.39 have significant changes in Client, Mini, and Panel Designer as far as connection recycling and connection cpu load.
Client, Mini, and PanelDesinger must be re-installed as well to recognize these benefits.
Fixed a bug where a blank logicflows.txt file would cause the application to crash trying to update to the new logic flows storage structure introduced in 1.0.0.36.
Fixed an issue introduced in 1.0.0.36 where DateTime events could not be inited for the future.
Fixed an issue where the new clock/fixed options introduced in 1.0.0.36 for day of week and date time events was not being loaded from the database properly after a restart.
Fixed a bug where time manager date/times were being forced back to within 100 seconds of now on load from database. This bug introduced in 1.0.0.36.
Hid the event system message on the logic flows page until a valid response is returned. This prevents stand alone instances from showing an unknown state.
Changed max time differential to be 10 minutes in future instead of 100 seconds.
Cluster nodes need to be within 10 minutes of each other and ideally much closer.
Warnings: Version 1.0.0.36 and later have major changes as well as some important bug fixes. Please read the release notes for more details. Please report any issues as soon as possible.
1.0.0.36 through 1.0.0.38 have significant changes in Client, Mini, and Panel Designer as far as connection recycling and connection cpu load.
Client, Mini, and PanelDesinger must be re-installed as well to recognize these benefits.
Fixed an issue with cluster joining. The ClusterAdmin password was not getting set properly.
Added an optional file for PathfinderPC Client at C:\ProgramData\PathfinderPC\fixedips.txt.
If this file exists PathfinderPC client will use it for the ip address list to attempt instead of what is reported by clustering.
This allows you to lock client to specific PathfinderCore PRO instance if you want.
Fixed a bug with Panels that causes panels not to display or become confused in Panel Designer, mini, and client if the panel names are continuations of other panel names.
For example Blah and Blah2. Often one of these would not display in designer and editing could overwrite the wrong one.
Fixed an issue with the new logic flow backing storage changes in 1.0.0.36/37 that might cause flow objects not to load due to differences in linux line endings in the file.
Compiled PathfinderPC Client as 5.76.
Fixed an issue where the new internal check in clustering was not clearing on a loss and reconnect sometimes leaving the cluster resynchronization process in a hung state.
Fixed an issue with the new memory slot startup state option. It was not changeable from the API or UI except at creation.
Warnings: Version 1.0.0.36 and later have major changes as well as some important bug fixes. Please read the release notes for more details. Please report any issues as soon as possible.
1.0.0.36 through 1.0.0.37 have significant changes in Client, Mini, and Panel Designer as far as connection recycling and connection cpu load.
Client, Mini, and PanelDesinger must be re-installed as well to recognize these benefits.
Fixed a bug with incorrect logic gate results for inputs greater than two for NOR, NAND, XOR, XNOR gates.
Warnings: This version has some major changes as well as some important bug fixes. Please read the release notes for more details. Please report any issues as soon as possible.
This version has significant changes in Client, Mini, and Panel Designer as far as connection recycling and connection cpu load.
Client, Mini, and PanelDesinger must be re-installed as well to recognize these benefits.
Fixed a critical bug with date/time and day of week timer. Events were stored with the UTC offset.
This means that after a daylight savings time update, the event would execute at the requested time under the previous UTC offset which in many cases would be wrong.
There is now an option to select whether a date/time or day of week timer is tied to clock time or fixed time.
By default all old timers will be tied to clock time.
Clock time means that an event will continue to execute at a specific time according to the clock before and after a time zone offset from utc shift.
Fixed time is useful in situations like satellite feeds where the sourcing program's time zone does not shift.
In that case after a daylight savings time shift the event should happen at a different clock time.
This is a critical fix for anyone using this feature and needs to be updated prior to the Daylight savings time shift.
Completely changed how logic flows are stored in the backing storage.
Originally logic flows were stored in a single file of SapV2 init messages used to recreate all of the flows on startup.
There is the potential if corruption, errors, or a crash were to happen while the file was being written for the loss of many flows.
This version stores flows to a folder architecture with a single one or two line sapV2 init file for each combiner or translator.
This means that edits and/or changes will only affect the translator and combiner files being edited.
After migrating to this version on startup the old flow file will be read and rewritten to the new format.
The file will then be marked as already converted but left in place for safety.
This has important ramifications for rolling back to a previous version.
New flows created after the conversion will not appear after a software rollback.
This is a pretty major change so report any issues to Axia support.
Updated factory default and restore scripts to delete the new LogicFlows folder during the factory default or as part of the restore process.
Fixed a bug introduced in 1.0.0.34 with obtaining the initial Vmixer states.
Adding IN_SELECT to vmixers meant that the initial state query message we were sending included the IN_SELECT property.
In Engine versions prior to 3.1.5, IN_SELECT does not return a response.
This meant the entire initial VMIX IN state query was failing and we were not obtaining the VMIX state on startup.
Only subsequent changes would be seen by the flows.
This version does not request the IN_SElECT state if ENGINE/PowerStation version is prior to 3.1.5.
Currently we do not query the initial IN_SELECT state of Iports as the query state has not been ported to an Iport version to our knowledge yet.
Fixed bugs with Logic Flows that were allowing the flows to run on the secondary server once local sync had happened but before sync was complete with the remote device.
Now attempts must be completed to all devices before logic flow states will update and initial gets are sent.
This was causing flows to occasionally run on secondary during startup when primary was already executing them.
Added an option for the state of a memory slot on startup. You can now select whether the memory slot will start blank, with a fixed value, or with the last known state.
It is important to understand that selecting the last known state will mean writes to the backing storage for each change of the slot.
For cf card based PathfinderCore PRO systems this can be intensive and slow so select the memory slots you need to retain state between restarts carefully.
Added an additional clustering cross check step to double check date/time stamps on internal objects with no remote references such as memory slots, timers, and panel items.
Changed cluster web ui page to submit additional properties in the ClusterAdmin init message to force Admin state for the ClusterAdmin user when it is created. Broken as of .35.
This was causing clustering join problems in 1.0.0.35.
Changed the last update properties related to clustering to force them to be no later than 100 seconds from now.
Forced all DateTimeOffset to string conversions to go through the same method to maintain formatting consistency.
Fixed a bug with panel designer as it was not outputting version stamps in the correct format. Added code to force versions to the correct format upon ingest.
Worked on database auto fixing of dates more than 100seconds in the future other than Timer based DateTime events.
Fixed a bug in logicflows UI. Display was showing partial flow elements from folders 1 to 2 levels down from the selected folder even if those lower folders were not selected.
This was causing odd partial looking flows to be displayed.
Rewrote lwcp/sap message parsing to greatly reduce string copying when dealing with large messages such as the contents of a large panel file embedded in the message.
Huge performance difference for messages like this.
Migrated the new message parsing changes to the javascript code as well.
Added the $EXCLUDE_PROPS system item. Using this item means the properties in the get message should be the ones excluded from the response messages.
Reduced the panel xml returned during mini startup.
Used a background task to obtain panel xml data.
Removed the currentpanelxml from get requests in Client and Mini. This was causing unnecessary noise and processor load.
Added code to only send differences in properties between initial xml load and current on startup for panels.
This should vastly reduce initial panel property push.
Changed the ContainsPath messages to a full router sync for io sync with panels and metering to prevent multiple loops through the router on the server side hunting for classic ids.
Removed the syncio recursive contains_prop lookup with client and mini.
Revised the client and mini reconnect code significantly.
Spread out the load of uninitialized combiner input timeout requests over a period of time to reduce the initial processor spike.
Changed the dispose code for pcp objects (client and mini) to improve client shutdowns.
Adding debug messages for debugging connection recycling
Greatly improved client and mini connection recycling issues when the client loses connection with the server.
Previously in certain situations the client/mini might endlessly recycle connection attempts sometimes with large data dumps from Core PRO on each attempt.
Randomized the client connection order a bit by randomly selecting whether to go through the connection list in ip address order or reverse ipaddress order.
Added a force option for manual selection of ipaddress.
Compiled the new clients as 5.74.
Added a ping to PCP to test responsiveness and recycle connection if unresponsive.
Fixed a bug where Routers and UserPanels menu items could not be disabled in the user editing.
Also attempted to add some css coloring to hidden versus visible but most browsers are not displaying it.
Important Notes: User security changes caused large amounts of code to be modified in 1.0.0.34 and this version. Please report any problems.
This version fixes bugs with the new user security features found during in-house testing of 1.0.0.34.
1.0.0.34 was never publicly released but the feature set is described and applicable to this version so please review the 1.0.0.34 release note carefully.
Fixed a variety of bugs with cluster synchronization of the new user features from 1.0.0.34.
Fixed a bug with initial tree display with new users creates.
Fixed a bug with changing api settings in the tree where previously selected but unchanged settings were not getting written out again.
Made the password property in Sapv2 changeable with the set operator.
Previously it was read only and required recreating the user to change it.
If the password is not structured as an Apache hash, the property setter will detect that and hash it.
Reworked the user editing web page to make it work more cleanly now that passwords and properties are more easily editable.
Important Note: User security changes caused large amounts of code to be modified in this version. Please report any problems.
Fixed a bug where IN_SElECT was not appearing in the property tree for VMIX.
Fixed a bug where IN_SELECT was read only for both VMIX and VMODE when it should have been Read/write.
Fixed bugs with sap memory slot selection that got introduced when we moved to json blobs.
Added some code to property trees to swap the loading to No Items Available if response comes back with None or there is no query message in the node.
Removed icon for loading/no items in property tree.
Added code to insert version number into JavaScript and css links to help make browsers recognize a software update and reload JavaScript rather than relying on the cached version.
Made cfontz use the watchdog so if we do not ping the display every 5 seconds or so, it will reset.
Added user level security.
Warnings: It is critical that at least one Administrative user is maintained at all times in the system.
Deleting all Administrative users may prevent you from accessing the system properly and will require a call to support and possibly a deletion of the user files to gain access again.
You can now define users as type User in addition to type Admin.
After selecting the user type (as opposed to the Admin type) two trees will appear for selecting user rights.
These trees are not present for Admin users because Admin users have access to everything.
The Menus tree affects which menus will be available to the user in the web page's navigation bar.
When these options are modified the system will create a custom navigation bar for the user.
The allowed APIs list presents a list of common objects to which the user may be given one of 5 levels of access.
Inherit - The security is inherited from the parent branches of the tree. This is the default for most branches.
No Access - The user cannot see or use this object.
Display - The user can see the object and view the changes to properties on the object but cannot make any changes.
Change/Use - General properties of the object may have their values changed by the user, but creation and deletion are not allowed.
Full Access - User has full access rights to the object.
By default sub objects inherit security from their parents.
A good example to discuss is routers.
No Access - The router will not be visible to the user in either the web pages or Pathfinder Client.
Display - the user can open and view the router in both the client and web page, but they will not be able to make any route changes.
Change/Use - the user can use the router normally but will not be able to add or remove route points.
Full Access - the user has the rights to completely change the router including deletion and creation rights.
The rights selected apply to the API (port 9600) and since both client and the web pages use the API they are affected accordingly.
The system can actually allow security changes at any branch level within the API branches, but only the normally used ones are present in the UI tree.
Currently there is no API view of the UI tree. This may be added in the future if it is deemed necessary.
VmixControl access is currently a little tricky as it requires both display access to the engine device, full control of the VMIX Sub object, and change access to the audio router.
In the future we may simplify this and also make virtual routers work properly with the VMIX control application.
If routing is not necessary, display access to the router can be used.
It is important to note that some web pages require Admin rights.
For example backup/restore, bank changes, update uploading, and log manipulation are only allowed for Admin users.
The licensing section of the System page is also hidden from non-admin users.
All configuration options on the System Configuration page are also disabled if you are not an Admin user.
Cluster web page buttons are also disabled if you are not an Admin user.
Remember these web pages can be hidden in the navigation bar using the menu tree of the user definition.
Users and their securities should sync across the cluster is this version.
Revised PathfinderClient_Core as version 5.72 to use new security settings.
Fixed a bug with the Constructor property of Aes67 sources.
It was returning blank and therefore clustering was unable to reproduce new Aes67 ios on secondary nodes.
Please Note: A one time manual sync may be necessary to get Aes67 sources that existed prior to the upgrade from primary to secondary.
Fixed a bug where the web page was not showing the updated host name after a route change with Aes67 sources.
Instead the host would get cleared until the web page was reloaded. This should be fixed.
Fixed an issue where altering a sip based aes67 source would cause the livewire channel field to be populated with the description instead of 0 until the web page is refreshed.
Fixed a bug where the generic client (tcp client) in device emulators was not automatically reconnecting.
Fixed a bug where the probel general client (tcp client) in device emulators was not automatically reconnecting.
Fixed a bug where the probel switcher client (tcp client) in device emulators was not automatically reconnecting.
Got Aes67 editing and deletion working in the web pages.
Made Aes67 sources show the corresponding livewire channel in the ui if it is multicast and is in the livewire multicast address range.
Made Aes67 sources available for routing in the PathfinderClient application (version 5.71).
Updated the system page download links for the new version of PathfinderPCClient_Core_5.71.
If the description field of an Aes67 source ends with " ON devicename", then devicename will also be displayed in the hostname field.
For example: MySource ON MyDevice. The " ON " is case sensitive.
Fixed a label in Aes67 source addition/editing window. In multicast selection option, host IP should have been labeled multicast ip.
Added automatic backlight dimming to optional crystalfontz display.
Added support for the CrystalFontz front panel display.
Added a menu at the Linux console that provides equivalent functionality to the front panel. This is useful if the front panel is unavailable for any reason.
Did build installer work for easier deployment in the production department.
Added options to the mnt/conf/displays directory for appropriate display binary launching and configuration.
Fixed a bug that reset messages were not pulling from ModAccess for modaccess in PowerStation.
Fixed a bug that the autoreconnect property for devices was being presented as read only instead of read/write.
Fixed an issue where IN_SELECT in VMODE was not fully populated with all viable options.
Fixed an issue where IN_SELECT did not exist in VMIX and it should.
Important Note: This build has some significant changes to logic flows. Please report any problems.
LwrpSendMessage and LwcpSendMessage were not appearing in the API logic flows tree. This is fixed.
Added the ability to use escape character sequences in LwrpSendMessage and LwcpSendMessage properties.
Added code to clear LastOutput state of translators that should not execute on backup cluster node.
In the logic flows web page there is now a message in the top right hand corner of the screen indicating whether the event system is active on the particular node.
In the logic flows web page end points will display with the disabled color if the event system is not active.
Fixed a number of places in the API tree where friendly names were not displaying properly and so lists of objects were indistinguishable from each other.
Fixed a bug created by the changes in 1.0.0.29 which in some cases was causing long logic flow load times especially if start point objects did not exist in the system.
If the load time got too long it could cause the watchdog to kill and restart the supervisor.
Modified the changes to remove this long load time.
Modified the code for logic flow initial get requests depending on the cluster system state.
Removed xnode mixer branches from the simple tree for now.
Large numbers of xnodes was causing significant delay in the initial loading of the property list.
Working on a better solution to this in a later version.
In the mean time these branches are still available in the API tree under Devices/xnodedevice/lwrpinterpreter/lwrproot.
Important Note: This build has some significant changes to logic flows. Please report any problems.
Fixed a bug. Updating a generic translator watcher value was not triggering a write to the back end storage.
This means changing a watcher value after it had been created might revert to the old value after a restart in previous versions.
In Logic Flows stripped values from combiner inputs and translator start and endpoints when writing to and reading from back end storage.
Added some code to prevent combiners from being analyzed until valid values from an initial get request to each input have been received and/or a timeout waiting for those inputs occurs.
Modified the code to tune the initial get requests of logic flow states when a new flow gets loaded and/or the system starts.
Fixed some bugs that were causing extra and incorrect messaging with relay combiners were tied to object translators.
Fixed a bug where object translator property changes matching the root level of the object translator's object path were not being sent properly.
Made internal translations work on the non-active cluster node. Only ones whose activeoutput is pointed externally will be blocked until the node becomes active.
This helps internal transitions to be in the correct state already during a switchover.
Many of the above Logic Flow changes target some inconsistencies with logic flow states during system startup.
In the translator dialog added the "Skip startup state request and wait for next change option."
If this is checked changes for the start point will be subscribed to, but an initial get will not be sent and changes will wait for the first property change thereafter.
Made some of the logic flows modal dialogs unselectable to prevent drag selection from highlighting arbitrary sections of the dialog.
Fixed a bug with loading previously discovered user modules.
It would only reload the first discovered module per ip address on a restart. This is fixed.
This was reported in relation to IP Tablet.
Added options for Sound4 processors.
Note: Voco will still not be discovered properly due to an issue with the Voco Lwrp messaging.
This has been reported to the Sound4 team to address.
Fixed a bug that was causing a recursive get request on the selected item in the API tree.
This was causing the UI to keep moving to the selected item when attempting to scroll and was also causing unnecessary messaging.
Fixed a bug with licensing after a factory default.
Reading the unlicensed state could cause a crash.
Important Notes:
Significant changes have been made to the web page messaging in logic flows and route lists.
Please clear the browser cache and/or use the browser method to forcefully reload JavaScript files.
For Chrome hold Ctrl+Shift and click the circular arrow refresh button next to the address bar on each relevant page.
Failure to do this may cause the browser to attempt to use cached JavaScript which will not use the new changes and may or may not work properly.
Fixed a bug with Gpio routing.
Gpio routes were not displaying as routes in the router if the name was embedded in the SRCA field from the equipment.
Since we are now sending the name as a part of the command this was breaking the display of gpio routes in many cases.
Not sure in which version this bug was introduced.
Fixed a bug introduced with the changes in 1.0.0.26 with logic flows and device emulators.
Device Emulators were not appearing in the logicflows tree because they were external and not being handled by the bulk json command.
Fixed a bug that was preventing a double quote and a comma from coexisting in a flow title.
If you had both in a flow title, the quote was not being escaped properly and the constructor message was being dropped.
Important Notes: Significant changes have been made to the web page messaging in logic flows and route lists.
Please clear the browser cache and/or use the browser method to forcefully reload JavaScript files.
For Chrome hold Ctrl+Shift and click the circular arrow refresh button next to the address bar on each relevant page.
Failure to do this may cause the browser to attempt to use cached JavaScript which will not use the new changes and may or may not work properly.
Revised logic flows web page extensively to use more optimized messaging for better performance.
Added a timeout of 750ms when selecting flow folders so that you can select/deselect multiple folders without a redraw between each one.
Revised router web pages to also optimize messaging for better performance.
Fixed a bug from .24 or .25 which might break the io list loading in alarm web page and possibly fully break vmixcontrol web page.
Added an error trap to handle io import failures.
Fixed issues with lag when loading the initial large list. Recursive parsing as the large json list came in was causing issues
Fixed an issue with parsing aes67 pathios.
Finished the Aes67 io addition web pages.
Refactored the Sap Message parsing in web pages for better performance and to make it closer to back end code.
Fixed a bug with the asynchronous handling of inbound data in the web page sap message parsing.
Fixed a bug in the logic flows tree that was causing sort to happen on branches over and over again as items were added when it only needed to be sorted once after the additions.
Modified the sorting algorithm to further reduce extra sort operations.
Added button 3 to Lwch and fach faders for element/fusion.
These will only do anything on the revised European modules that have this button but there is currently no way to detect which is present.
In the future perhaps use the press of button 3 to detect and populate.
But for now it will be on all of these objects.
Fixed a bug where object translators would continue to add available properties as you switched between different object translators instead of resetting the list to the new object.
Fixed a bug where sometimes object translators would only present one property in the list until you closed and reopened the dialog.
Completed the Virtual Router editing web pages.
Modified the css with more apparent row selection colors for all lists.
Removed the color alteration for sorting on all lists as it was unclear.
Added unselectable css to most of the lists to prevent weird click and drags display issues.
Added unselectable css to logic flows to prevent weird click and drags display issues.
Warnings: While this version fixes a couple of bugs it also has some new features that are incomplete and therefore not entirely working.
We are releasing it anyway to provide the bug fixes to customers that need those fixes.
Please review these release notes for details.
Fixed an issue that was preventing the addition of combiners when picking start and endpoints.
This prevented certain types of valid flows from being created/extended.
Fixed an issue that could cause blocks in a flow to overlay when a translator with an external start point is joined to a combiner in the middle of a flow.
Fixed a bug that was causing tcp listeners in emulators not to be able to send data to connected clients when in a cluster.
Work in progress: Added the ability to add AES67 streams to the Axia Audio Router manually.
There is still some work we need to do to make the addition UI more user friendly.
Work in progress: Started the ability to edit virtual routers from the web UI.
Please Note: This work is not complete and the web pages are not fully functional yet.
Work in progress: Added the JSON system item to retrieve blocks of responses in a json blob.
Expect another version very soon with the work in progress complete.
This is the first version since the new build process has been implemented in 1.0.0.23.
Please report any issues as that may indicate permissions or other file settings that have been missed in the new build scripts.
Added a pair of scripts to monitor the ifconfig network files for gateway changes and clone the gateway change to the opposing file.
Made extension licenses cluster aware.
Added round robin connection support for clustering between Axia and Office Lan for better clustering redundancy.
Added the ability to change the default level for silence and clipping on the Alarms web page.
Fixed an issue introduced by the Qor changes in 1.0.0.18 where Lwch channels were not presenting the But#1 and But#2 objects on Element and Fusion anymore.
Updated Pathfinder Client to 5.70.
Switched the default state of meters obtained by right click on route points to use Standard scale and 3000 decay.
Increased the default width of source and destination name columns especially in situations where the left hand route panel is closed.
Added the MIX and INP objects to Xnode devices.
Exposed the MIX capabilities in the logic flows simple tree.
Additional work is planned in the UI surrounding this capability, but this exposes the XNode Mixer functionality to be used in Logic Flows.
No real functional changes in this version.
This version was about automating the OS and update package build process with this version as the result.
Report anything that does not work as this would indicate problems with the new build script that need to be resolved.
Important Notes: This version includes a major rework of clustering started in 1.0.0.14. See notes from 1.0.0.14
We recommend doing a manual sync on the secondary server after both are upgraded to force synchronicity.
Fixed an issue with Fach and Lwch mute state sending the incorrect case sensitivity.
We were sending MUTE_State=MUTED instead of Mute_State=MUTED.
Updated licensing to support vm version of license.
Fixed a bug that was sometimes causing the new generic emulator udplistener object to fail to be created.
SapId was requesting the local endpoint uri before it was available.
Important Notes: This version includes a major rework of clustering started in 1.0.0.14. See notes from 1.0.0.14
We recommend doing a manual sync on the secondary server after both are upgraded to force synchronicity.
Fixed an issue where Mute_State was being displayed in logic flows as on and off instead of Muted and normal.
Fixed an issue where changing the name and/or description of a router was not always getting written to the backing storage and so could revert after a restart.
Added a confirmation dialog to device emulator removal.
Updated PanelDesignerCore to 5.68
This version adds an experimental menu item called Open Local.
This will allow you to open a panel designer file from PFPro that is on your local hard drive and then resave to CorePro.
Warnings: Use SaveAs rather than save to save it to CorePro for the first time.
The panel may need some changes in order to get mappings correct.
This is a new feature and not completely proven or tested.
If the panel is not synchronizing correctly across the cluster or being retained after a restart after uploading it, try deleting it and resaving it from Panel Designer.
There are differences between PFPro and CorePro in panels so please report any panels that do not work properly so we can continue to make this feature better.
Important Notes: This version includes a major rework of clustering started in 1.0.0.14. See notes from 1.0.0.14
We recommend doing a manual sync on the secondary server after both are upgraded to force synchronicity.
Added a confirmation to timer deletion.
Added a Generic Udp Client and Listener to Generic Emulators.
Removed Timestamp from MessageReceived as it was not being used and therefore was just superfluous memory utilization and calculations.
Fixed a bug with LegacyPanel renaming.
The new code that made sure removals were created with SapIdChanges when necessary had a bug that was not expressing the object path in the removal correctly.
This was causing problems with Legacy Panel synchronization.
If node B was offline and a panel was renamed, when B came back online and synchronized it would end up with two copies of the panel under both names.
This has been fixed.
Working on fixing an issue with renaming LogicFlowFolders.
If node B was offline and a Flow folder was renamed, when B came back online and synchronized it would end up with an empty folder on the B server.
This requires querying the sub objects in that case when a new object is constructed based on a Sync Message.
Also added some optimization code to prevent numerous unneeded messages for branches where this is not an issue.
Fixed multiple issues with Device Emulator cluster synchronization.
Fixed an issue with Generic Emulator Watcher removals and cluster synchronization.
Fixed issues with "get _" and Last_Update with redirected services such as DeviceEmulators.
Fixed some bugs that were returning an extra NONE from the update moderators when the underscore was used as the object path with last update values.
This is because updatemoderators have not been updated to support these features.
So excluded them to prevent the extra None message.
In PathfinderPCClient_Core5.68:
Added buttons under the virtual router editing grids that will ask for a new id number and allow you to assign one as long as it is not already in use.
Added a button to the virtual router IO editing window that reset the virtual io name and description to the selected item in the list.
Fixed some issues regarding description fields in the virtual router io editing window.
They were showing ip addresses instead of descriptions.
In some cases this could still occur on the first attempt to edit a virtual IO.
Closing and reopening the edit window will display the correct description.
Widened the Id column in virtual router editing for longer numbers.
Compiled as 5.68_Core
Important Notes: This version includes a major rework of clustering started in 1.0.0.14. See notes from 1.0.0.14
We recommend doing a manual sync on the secondary server after both are upgraded to force synchronicity.
Added support for Qor console changes.
Requires Qor version 2.2.0.125 or later
Lwcp access will not be attempted if the Qor software version is earlier than 2.2.0.125.
Added some code to prevent increment/decrement from being processed on numerical memory slots during sync operations to prevent the value creeping when a node comes back online.
Some work done on logic flow folder renaming when one server is offline in a cluster. There is still an issue here we are working on fixing. See Known issues below.
Changing the name of a panel could cause it to be unusable until the system was restarted. This should be fixed.
Worked on name changing of objects and making sure that synced properly in a cluster.
Added stacktrace to the generated log message in ordinalmessagequeue failures for easier debugging.
Added some better error trapping to cluster message handling to prevent a group of messages from not being processed when one in the middle fails.
Fixed an issue where changes to a translator's conversion list would not sync when the secondary was offline and came back online.
Fixed and issue where you cannot change the pattern of a StringBuilder memory slot because the set accessor did not exist.
This affected changing it from the web page and some cluster sync scenarios.
Fixed a bug that was preventing name and description properties from being updated on VirtualDestinations via SapV2.
This also affected cluster synchronization of changes on Virtual Destination name and description changes.
Fixed a bug where the BaseRouter class was not exposing the Subversion property.
Fixed an issue where cluster sync messages would get processed by the code for sending to remote devices.
This in some cases prevented certain updates. For example this was causing virtual destination name changes to not sync properly when secondary comes back online.
Known Issues:
No confirmation message on the deletion of timer on the timers web page.
Changing the name of a logic flow folder on one server when the other server is offline can leave the changed folder empty on the server that is being brought online after it syncs.
This will be fixed in the next build.
This can be fixed by a manual sync.
Changing the name of a Legacy Panel on one server when the other server of offline can leave both the old panel and the new one on the server that is being brought online after it syncs.
This will be fixed in the next build.
This can be fixed by just deleting the extra panel on the newly recovered server.
Important Notes: This version includes a major rework of clustering started in 1.0.0.14. See notes from 1.0.0.14
Fixed an issue that was causing IE to lock up on the systemstatus web page.
Please note that IE is still not updating the cpu usage as frequently as other browsers, but at least it is no longer locking up the web page in this version.
Sped up the update interval on cpu usage on the system status web page.
Fixing an issue with processing removal items on the Email branch. Since they are a level up, the system#0 was not being passed through.
Updated client/Mini/PanelDesigner application to 5.67.
The only change in this version of clients is an update of the dlls to support nested encapsulation messages.
Added the SynAck operator for acknowledging cluster synchronization changes and updating the node version stamp.
This makes update version tracking more accurate requiring fewer sync messages during startup synchronization.
Important Notes: This version includes a major rework of clustering started in 1.0.0.14. See notes from 1.0.0.14
Fixed a bug with nested encapsulation that was introduced in 1.0.0.15.
This bug was causing a parsing error that was preventing legacy panels from being initialized properly.
Fixed a bug with the synchronization of device emulators. The constructor was being synced as a single message rather than multiple as intended.
Fixed a bug introduced in 1.0.0.15 that was preventing multiple device emulators of the same type from being loaded during startup.
Fixed a bug where the redirector for deviceemulators was not obtaining the correct version stamp.
This prevented emulators from being deleted when an offline node came back online and one of the emulators had been deleted while it was offline.
Fixed an issue with calculating memory like TextBuilder slots where they where clustering LastUpdate was being updated when it should not.
This was preventing proper removal in the case of an offline server coming back online.
The state change as it came back online was overriding the remove from the online server.
Important Notes: This version includes a major rework of clustering started in 1.0.0.14. See notes from 1.0.0.14
Added a confirmation message to the leave button of Clustering.
Hid the itemsloadeded and removed on the clustering tab as these are meaningless after the clustering revisions in 1.0.0.14.
Fixed a bug with properties that SetLastUpdate but are existence only synchronization objects.
Those were not being transitioned across the clustering.
This could be seen with logic flow objects where the enabled property state would not replicate.
Changed the log level for initObject when the object already exists to Info for normal inits and Debug for clustering inits.
Combiners were set to full synchronize instead of existence only. Fixed.
Object translators were passing additional property values if their input was a relay or pasthru combiner. Should be fixed.
This was occasionally causing cyclic clustering messages.
Added escaping of nested BeginEncap and EndEncap escape them by wrapping with <> - for example: <%BeginEncap%> - multiple levels would then become <<%BeginEncap%>>.
Decorated the device password property to set last update so that it synchronizes properly across the cluster.
Updated the name and description property changes to be decorated with clustering setslastupdate.
Added a manual sync option to the clustering web page.
Clicking this in an active cluster will raise a confirmation message.
If confirmed the system will request a backup from one of the other nodes in the cluster, download and restore that backup, and reboot.
This feature may still be a bit rough. Need to add better status information to show possible failure states if it is unsuccessful.
Also this button is currently active whenever the cluster exists but in the future should only be active if one of the other nodes in the cluster is currently online.
Warnings: This version includes a major rework of clustering.
Take a backup before upgrading to this version.
It is recommended to have all nodes leave the cluster, upgrade them them to the new version, and then recreate the cluster.
Please report any issues. We are still actively testing this version internally as well for any clustering issues.
Added error catching around log files in case they are not obtainable.
In a destroy/create scenario of a logger this also allows the previous instance to release its hold on the file.
Optimized the SapMessaging to remove some unneeded storage structures except when SapMessages are being stored as SapObjects.
Fixed an issue where Email Host was getting added with NOW as the lastversion and then getting the lastversion reset with the file version.
Fixed a bug where it is possible for clustering to think a node is done starting all services when services are still loading.
Fixed a database storage error that affected storing persistent changes to memory slots.
Fixed a bug with the parameterization of update queries in certain cases. This bug has existed since the database changes in 1.0.0.01.
Fixed a bug where ACK was not being returned for diverted property changes such as route changes.
Ack means the message has been received interpreted and the target obtained - not necessarily that the change has been completed.
Optimized DeviceEmulator removals.
Added some code to prevent recreating DeviceEmulator request objects if the device emulator already exists.
This prevents a clustering redundant device emulator creation situation.
Fixed a bug specific to the powerstation and Fusion that could cause a stack overflow crash during certain subobject removals.
Fixed a bug with virtual io deletions from the database. There was an incorrect query syntax.
Probably started after the database revisions in 1.0.0.01 but could have been earlier.
Fixed an issue where Synchronization messages could cause changes to be sent to equipment when they should not be.
In the case of route points this was occasionally causing some destination routes to be cleared during certain cluster synchronization steps.
Fixed an issue where certain changes were causing an extra Last update cluster message.
Fixed an issue where removing an object was causing a recursive analysis of the path to object lookup list to remove entries.
This caused huge cpu load when doing things like deleting a router with a large number of ios.
Added the ability to query using the Last_Update system item and a greater than operator to return changes later than a certain date/time.
Added the ability to return Constructor with other properties by using the $CONTAINS_PROP system item along with the Constructor property.
Added the ability to request objects with properties using get _
This can produce lots of data and it not intended for general use without additional parameters.
It is used in the revised clustering synchronization in addition to LastUpdate to return changes later than certain time stamps.
Completely redesigned and rewrote clustering
This version uses a fraction of the messaging between systems during synchronization of previous versions.
This version removes some potentially large and now unnecessary data caches.
Fixed a bug in the time creation window with date time events. The default value was incorrectly formatted.
Fixed a bug with DayOfWeek events. They were firing repeatedly for about 15 seconds at the requested time. This should be fixed.
Fixed a bug where NextRaiseTime was not always being raised to SapV2 when it changed.
Since mount points the internal address of Axia Audio sources were not getting updated when the RtpStream Address (Livewire Channel) was being changed. This is fixed.
Since mount points the internal address and livewire channel changes on Axia Audio sources were not being raised as change messages on route points when the RtpStream address changed.
Fixed an issue where source channel number changes were not being updated in the io grids on the web page.
Updated the client, mini, and panel designer to 5.66.
Added a CenterPad property to the Meter control in panels.
Increasing the center pad will open space between the left and right meters, and once large enough scale markings will appear.
Added a MeterStyle property to both the meter control and meterfader control in panels.
This property will allow you to switch the meters from Led to gradient on either control.
Added a MeterScale property to both the meter control and meterfader control in panels.
This property will allow you to switch between linear (same as old meters), standard which has different decibel ranges accented, and British which uses a more BBC like scale.
Added a LevelLineColor property for adjusting the color of the lines in the scale markings on meter controls.
Added a DecayRate property to meter and meterfader controls.
This property allows you to define a time range in ms over which the meter will fade to nothing and yields smoother looking meters.
The time range defines the falloff time if the level drops from 0 to -100.
For shorter drops, the falloff is computed as an equivalent rate over the length of the drop.
We are finding that around 3000ms on the decay rate yields much more natural looking meters.
Please note that setting the decay rate to anything other than zero will increase cpu load on the client displaying the meters as the falloff is computed and drawn at 10ms intervals. This will be most noticeable on larger meter panels.
Please note that for now in this version the default meter style is the same as the meters have always been. You must edit the panels to make use of these new features.
Updated the gain range of meterfader controls to reflect xnode gain ranges.
Added a FaderNominal property to MeterFader. This property allows you to set the red nominal gain box at a value other than the default 0.
Added the property HideGainValue to MeterFaders. This property hides the box displaying the gain value.
This is designed to be used if you are altering the FaderNominal level and do not want to confuse the user by displaying the actual gain value from the device.
Fixed a bug that was sending VMIX#0.SUB#1. . . instead of VMIX.SUB#1 to the equipment.
This worked on some versions of Element/Engine/Fusion software and not on others but the latter is more correct.
Fixed a bug that was introduced when we moved the services internal during the past few beta versions.
Changing properties on mounted objects was not always working. For example trying to change the gpio on a virtual router that had the gpio mounted was broken.
Fixed a bug with setting pinstates property instead of the individual pin object pinstat property.
Added new versions of PanelDesigner, Mini, and Client (5.64).
Added a CenterPad property to the Meter control in panels.
Increasing the center pad will open space between the left and right meters, and once large enough scale markings will appear.
Added a MeterStyle property to both the meter control and meterfader control in panels.
This property will allow you to switch the meters from Led to gradient on either control.
Added a MeterScale property to both the meter control and meterfader control in panels.
This property will allow you to switch between linear (same as old meters), standard which has different decibel ranges accented, and British which uses a more BBC like scale.
Added a LevelLineColor property for adjusting the color of the lines in the scale markings on meter controls.
Added a DecayRate property to meter and meterfader controls.
This property allows you to define a time range in ms over which the meter will fade to nothing and yields smoother looking meters.
The time range defines the falloff time if the level drops from 0 to -100.
For shorter drops, the falloff is computed as an equivalent rate over the length of the drop.
We are finding that around 3000ms on the decay rate yields much more natural looking meters.
Please note that setting the decay rate to anything other than zero will increase cpu load on the client displaying the meters as the falloff is computed and drawn at 10ms intervals. This will be most noticeable on larger meter panels.
Added code to LegacyPanelManager to handle the new properties in meters and meterfaders in panels.
Fixed an issue where DeviceDicoveryItems were not being cleaned up from the path lookup table after they were done being used.
This was preventing an item from being submitted for discovery a second time if it had been removed or failed the discovery the first time without a restart of the software first.
Fixed an issue where newly discovered devices were often recycling their connections once after being added into the system when they did not need to be.
Fixed an issue where pending device investigations would not be queryable with a SapV2 get request.
Fixed an issue where device investigations were sometimes getting stuck in the open investigation list.
This could prevent new investigations without a restart since the concurrent investigations have been limited to a count of 3 in order to prevent overloading the processor during large numbers of device discovery requeue.
Marked the enabled property on Combiner and Translator for cluster synchronization.
Improved detection of property changes on items that are set for existence only synchronization but have specific properties that require full synchronization.
This could be a breaking change. Please report any issues with clustering if the arise.
Implemented ordering when pulling ip addresses from the investigation todo list.
Please note that items may not be added in order because of response time differences with parallel investigation, but it should be closer and less random when investigating a specific ip range.
Added a property to modify the number of allowed parallel device investigations. By default it is 3. This is not saved between restarts.
Use the Advanced options to add this to the startup config options if it needs to be retained.
Fixed a bug that could cause the device list to be analyzed repeatedly trying to convert unknown lwrp devices to known types.
Fixed a bug with re-investigating happening with emulators with certain device type misnames.
This should not happen in real life but should be fixed.
Fixed bugs with the license counting on routers. It was counting active sources more than once in some cases and was also including the None and Previous sources.
Added code to exclude translators that point to other objects within the flow (for example combiners) so that only actionable endpoints are counted against the licensing.
Also made route licensing get counted after all route points are loaded during startup instead of potentially causing cpu load while loading is taking place.
Fixed a cluster sync speed issue with disabling/enabling logic flows.
Fixed an issue with exception logging in Clustering.
Reworked the PathIo object to only require SapObject meta data in the rare cases it is needed rather than for all instances.
This potentially has a significant impact on reducing memory consumption on large systems.
Channel Numbers was not being raised as an INDI when Axia Audio Destination routes were changing. This is fixed.
This was causing the issue where livewire channel numbers were not being updated in the web page routing list without a refresh of the page.
Warnings: This version along with 1.0.0.09 have significant internal changes with SapV2 and parallel message processing.
If these changes cause problems, please report and revert to an earlier version.
Fixed issues with the IPClient that was causing Linux to retain excessive numbers of open file handles when sockets were recycling.
In some situations this was causing too many open files errors in the logs and connectivity problems as well as some additional cpu load. This was typically seen only in large systems where a number of devices where offline.
Fixed an issue introduced in 1.0.0.09 with the local service changes. Mount points were not being established properly if the mount target was not available on the first initial mount request.
Fixed a benign issue where PFCorePro was requesting show profile states from Iports which do not have show profiles.
Improved the device discovery process under Linux.
Added a property to the device investigator object to display in progress investigations.
Updated the notes in the advanced options web page to indicate that the options require a restart to take effect.
Important Notes: This version has significant internal changes with SapV2 and parallel message processing.
If these changes cause problems, please report and revert to an earlier version.
Fixed a bug with the SapV2 revisions in 1.0.0.08 that was not doing case insensitive comparisons on sub and unsub.
Added a property option to switch Lwrp message polling to be VER only. This appears in Device#0 as LwrpVerPollingOnly.
Got rid of the timer being used for VirtualMount mapping and instead depend on analyzing based on additions and removals.
Greatly reduces cpu load when there are many outstanding virtual basi ios trying to be mapped when the ios they are being mapped to do not exist.
Added an option to skip router sanity polling - Set Routers#0 SkipSanityPoll=True/False
Recrafted the receive part of IpClient to share a buffer rather than recreating and to use the ReceiveAsync methodology instead.
Property changes that were not supposed to raise cluster messages were raising them in some cases. This should be fixed in this version.
Moved all services to local startup without the extraneous redirects.
Added startup config file options to define this.
Reworked the threading, task switching, ordered messaging to improve performance. The system was spawning more tasks than necessary.
This is a shift in how parallel processing is handled in the application.
Fixed a bug that was in certain cases leaving the clustering stuck in a GatheringLocalCacheData state.
Added a property to Clustering to define whether to use message buffering for internal messages. False by default.
Added a property to LogicFlows to define whether to use message buffering for internal messages. False by default.
Added a property to LogicFlows to define whether to use message tasks for internal messages. False by default.
Added a property to allow logic flows to spawn tasks on inbound messages if desired.
Revised the options file so that it could contain the settings for the optional queueing, tasks, sanity polling and VER polling.
Reworked Supervisor to write the options file with default values if it does not exist on startup and to set the Linux permissions such that nginx can manipulate the file.
Reworked Supervisor to write a default options version file with default values for the software revision if it does not exist on startup.
This can be used to reset to the software version's defaults.
Added a web page for the advanced configuring of the options file.
Included warnings that the options are for tuning a system in collaboration with Axia support only.
Fixed an issue with editing virtual ios in the client where changing a base io might spawn a second base io or not be picked up in the Pcp cache requiring a client restart to see the changes.
Fixed an issue with changing the name or description of a Virtual IO via the client application.
It could cause the base ios to be removed from the virtual IO.
Fixed an issue where removing base ios from a virtual io using the client was not always working properly.
Fixed an issue where after changing a base io, the description field in the editing window grid was not updating.
In the client, moved the Create and Edit menu items to the top of the list so that with large router lists they are not below the list.
Compiled Client, Mini, and PanelDesigner to 5.63 to make sure all are using most recent dlls.
Known Issues:
If a Virtual Router is left open when you shut down the Client, we have occasionally seen the virtual router open up when the client restarts with no route states. Closing and reopening the router in the client fixes this. Still investigating if/when this happens.
There has been a report of the web page for routing not updating the source channel number for audio routers.
Warning: This version has significant internal changes with SapV2. If they cause problems, please report and revert to an earlier version.
Reworked the code such that redirects if using an Internal sap client bypass the message queuing and reworking of transaction ids, etc and instead just pass the originating client directly to the redirected object. This should improve performance especially in parallel client get requests.
Reworked a number of other things with internal Sapv2 messaging for better performance and parallel processing.
Made internal clients by default not use a message queue.
Enabled the queue on the receive side of service connection home clients only. So sends go from the service to device manager with no queue but responses may get queued.
Fixed a bug that was introduced between 1.0.0.05 and 1.0.0.06 which broke Lwrp discovery.
Fixed a bug with the log writer editor that on each save after connection was adding _log to the name of the file.
Finished fixing LWRP so that DST no longer sends a blank Name field when sending route changes.
Lwrp Change messages are now generated by a separate method than was being used for emulation messages as they do need to be slightly different in many cases.
In Axia Audio route changes included the Io name in the Address message when making standard route changes.
Fixed a few places where event handlers may not have been cleaned up properly after object deletion causing the potential for memory leaks.
Fixed an issue where event handlers might get removed during mount point removal where the primary object still exists.
Made discovery device connections stop discovering during disposal to make sure event handlers are removed.
Fixed an issue where audio routers might not reduce the used source count on removed source ios.
Fixed an issue where gpio routers might not remove a lookup when the corresponding io was removed.
Added a hook for specific removal options to be processed in a route during io removals. This is similar to what already existed for io additions.
VXEngine does not have Lwrp addressable Gpios. Switched the HasGpios property for this device from True to False.
Added some code for generic devices that present Gpios in VER to flip the generic device from HasGpios=False to HasGpios=True.
Modified LogManager to work as an internal process.
Added the ability to enable logging of Lwrp, Lwcp, SapV2Internal, and SapV2External messages.
Warnings: Logging such messages can cause increased load and stress on the cpu. These options are designed for troubleshooting.
The SapV2Internal item is especially verbose and should only be used in consultation with support and/or development.
Also hooked mount requests to the SapV2 internal message logging.
Added a warning asterisk in the log writer configuration web page regarding message logging.
Fixed an issue where virtual sources and destinations were trying to mount empty device paths.
Virtual sources and destinations should not mount anything. Only their BaseIos in the packages should mount.
Fixed an issue where none and previous routes were requesting mounts with empty device paths.
Prevented mount messaging if the requested path was empty.
Fixed a bug introduced in 1.0.0.02 with sending lwcp changes to the equipment. That change started sending an erroneous object in the path as part of the lwcp message object path which means lwcp commands would not always work as of 1.0.0.02.
Removed the attempts from panel hwmap generation. It will now continue trying to regenerate its flows every 5 seconds until it is successful rather than stopping after 4 attempts.
Important Note: It is a known issue that hardware map flows will not be generated for a panel if the panel has a control mapped to a device ip that does not exist in the devices list.
Made hardware map devices list pull unsorted for better cpu utilization.
Fixed an issue where GPI names were not being picked up all the time.
This version adds the CFG GPO mount point under GPI sources in addition to where it was previously under GPO Destinations.
Fixed an issue where gpio name changes were not always being written to backing storage.
Fixed a bug where sometimes if a device was offline when PCP started, audio alarms associated with that device would not be reset and start working when the device comes online again without a restart of PCP.
Not released to public. Bad compile.
Skipped this version number.
Not released to public do to problems with the SapV2 changes in this version.
Found a problem with the new SapV2 changes introduced in 1.0.0.02 that was causing items to get a path with no root object. This was affecting some object's property change reporting.
Not released to public do to problems with the SapV2 changes in this version.
Fixed a memory leak that could happen if device data points were not present after a restart that were utilized by routers. This could happen after a restart if the device in question was not online.
Optimized some of the code around SapV2 object paths.
Fixed an issue where services might not get shut down properly during a restore operation.
Fixed an issue that was sometimes causing router deletes not to get stored to the backing storage. Previous was causing duplicate removals in a dictionary and erroring out. That is fixed.
Fixed an issue that was causing removals to sometimes get written to the backing storage even if the cluster was synchronized or there were no nodes in the cluster.
Made one more fix potentially related to the audio router not posting routes when multiple Axia Audio routers are present.
Added a timeout in waiting for the router to sync in pcp on virtual routers in order to account for missing base io resources.
Fixed virtual router editing when Base Ios are pointed at devices that do not exist. This condition was not allowing the virtual router to be edited previously.
Fixed a bug where routes might not work when there were multiple Axia audio routers in the system (only currently possible using the API).
Fixed a bug with clients where devices and/or the underlying base ios cannot be discovered when resaving the router.
Ordered routers by Id in the client application.
Added the id field to the routers web page.
Fixed a bug where gpio names were not getting picked up into the Gpio Router.
Fixed an issue where the mount points for gpio destinations was incorrect. Pins were appearing under cfg.gpo mountpoint instead of under the gpo mount point which did not exist. And cfg.gpo was connected to the wrong gpo object.
Ordered the virtual router list by router id.
Ordered panels by name in Panel Editor.
Fixed an issue where using a password when initializing a DiscoveryDeviceData object via the API in order to investigate an object was not passing the password object through to the investigation.
Fixed an issue where set messages in the API with acks were not always returning an ack.
Fixed an issue where del messages in the API with acks were not always returning an ack.
Fixed an issue where double led messages were often being returned when a del message was sent in the API.
Reworked the database queries for better security and to properly allow characters like the single quote in IO names.
Modified the code so that logic flows that live under the hardware maps folder as well as the hardware maps folder itself do not get written to backing storage as those flows get recreated anyway by the legacy panels load function.
Fixed an issue where hardware maps were going through a double create and delete during startup. This should fix an issue where occasionally hardware map flows were not coming back after a restart requiring opening and resaving the panel to get them back.
Fixed some pcp errors with associating the correct router to scenes in the client application.
Fixed an issue where the writepanel property of panels was being written to the xml when it should not have been.
Version 1.0 release.
Edge browser and Internet Explorer both lock up on several of the web pages. Chrome is the recommended browser to use though Firefox also works.
Silence and audio presence thresholds are currently fixed at -80.0 and -1.0 and cannot be changed. That will be addressed in a later version.
The gateway needs to be assigned in both Lan and Wan to the same Gateway address or it may pick randomly which one to use.
Clustering currently only uses the Axia Nic. In the near future it will use both for redundancy.
Clustering will eventually pick up extension licenses from connected clustered units but in version 1.0 extension licenses must be added manually to all units in a cluster.
A virtual router may not be editable in PathfinderPC Client if the device the virtual router is referencing has been deleted from the system. Fix will be posted to the beta page shortly.