Loading...
Loading...
Loading...
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.
Warning: This version is a special build. Please review the release notes below to determine if 1.8.11.00 or 1.8.11.01 is more appropriate to your environment.
This version should be functionally the same as 1.8.11.00. However in order to try to address an issue that has been only rarely encountered, this version pulls in the operating system and framework updates from the beta branch. If you have an issue with PathfinderCore PRO periodically (weeks or months apart) restarting and support reviews the backup and determines that there is a specific segfault error message in the messages log, this version may be recommended. Otherwise most customers who wish to stay in the release rather than beta track can continue to use 1.8.11.00.
Fixed an issue with LWRP route changes on mix engines where an algorithm designed to prevent an overflow of the command buffer in the engine was introducing more delay than necessary when making large numbers of route changes at once.
Fixed an issue with LWRP route changes on mix engines where an algorithm designed to prevent an overflow of the command buffer in the engine was introducing more delay than necessary when making large numbers of route changes at once.
Fixed an incorrect calculation of the memory percentage on the system web page.
This calculation was including disk buffer cache which is not actually consumed or unavailable memory.
Fixed a bug that was leaking a small amount of ram each time a tcp connection was connected and then disconnected from port 93 of the internal GPIO node.
Added code to restart the internal GPIO node if the process dies.
Fixed a bug with the list that kept track of port 93 connections to the internal GPIO node that in rare situations might cause the GPIO node application to crash due to the list not properly supporting multi-threading.
Fixed an issue with cluster synchronization of licenses when certain time zones were in use.
This is in response to an issue where a backup license was not obtaining the correct license count from the primary server. Log messages showed UTC offset errors. We discovered one place in the code where we were using an incorrect DateTime comparison in relation to licenses which particularly was affected by certain time zone offsets. This should be fixed in this version.
Fixed an issue where the AUDIO_MODE property of VMODEs was set to read only when it should be read/write. The property should now be available as end points in logic flows.
Fixed an issue where the FpStatPollRate property could not actually be changed.
Additionally made a change where assigning an FpStatPollRate value of 0 (or any value under 100) would stop the polling of FpStat data.
To retain the setting between restarts, use the Advanced Options.
Note that advanced option changes require a restart to take effect.
Note: This version also contains the fixes from the unreleased version 1.8.6.00. Please review those release notes as well to understand all changes in this version.
Warning: Changes had to be made to the build container used to compile the release branch of PathfinderCore PRO. While these changes should have no effect, there is always a chance something will compile and behave slightly differently. Please report any issues you may encounter.
Fixed issues with cluster synchronization of the Internal GPIO node's pin states.
In some situations double pin entries would be expressed in some of the nodes. While this should be benign, in some external use cases, it was causing unexpected behavior. Work was done in this version to try and address that issue.
Updated the build container used to build the product.
Warning: This version was not released to the public due to testing errors. The fixes listed below are also present in 1.8.7.00.
Fixed a bug with the internal GPIO node where clearing a route on a GPIO would not reset the pins back to high.
Fixed a bug where the internal GPIO node was responding with a change message in Lwrp even if no pin state changed.
Fixed bug when changing properties in the user panel properties list by clicking on the name column.
Clicking on the name column rather than the value property would sometimes not cause the metadata in the translation properties to update properly. This would mean clicking on the active translation afterwards would present the previous item's drop down items.
Fixed a bug with subscriptions in logic flows where the need to subscribe/unsubscribe was being counted per object flow and property, but the actual sub and unsub was only using the object.
When multiple flows used different properties on the same object, the removal of one of them could cause the whole object to get unsubscribed and the remaining flows using start points on that object to stop functioning until a reboot occurred.
This occurs during flow editing and not spontaneously on a running system.
This bug has probably existed almost since the beginning of PathfinderCore PRO and may explain a number of anomalies systems integrators have reported when first setting up flows at a site.
Added code to handle input and select box change events when the change is the same as the last requested change but might not actually be the current value.
Previously this condition would not issue a change command.
Fixed a bug with the gpio node where if multiple ports had the same multicast channel number only one would be returned for processing.
This could lead to only one port firing or none if the one returned was in the wrong mode (Node/Console) to fire.
Removed a logging message regarding udp buffers that was an unnecessary holdover from debug testing and was displaying in the supervisor log.
Fixed an issue where when a SapProperty router source or destination was tied to a different route point, a lock recursion error could occur in the logs during loading.
This was because the sub object also was trying to be mounted.
This fix addresses that problem and prevents the write lock recursion log messages.
We do not think this additional mounting attempt was causing any other issues other than the additional log messages.
Fixed an issue where SapProperty sources and destinations were trying to be added to a lookup table where they were not needed.
This was causing log messages about trying to add duplicate sources and destinations
We do not think this was causing any issues other than the erroneous log messages
Fixed a spot in the code where logic flow folder creation messages might get created in the file system with a message that was missing the trailing LogicFlowFolder in the object path
This appeared to be benign as the folders still loaded.
Added code to correct for init messages in logic flow folder init files if they were missing the trailing LogicFlowFolder in the object path.
In cases where it was a first level folder, this was causing a constructor parameter list error in the logs trying to create root level logic flows.
The error appears to be benign but this should fix it.
Added an exception for the device emulator log message about redirecting the initial id message as it is expected message.
Downgraded the "Setup and Startup from connection function complete" log message to debug state as it is not informative in normal logs.
Cleaned up the "deviceid branch not found" log messages as they are expected and not informative.
Fixed a bug which was introduced in 1.8.3.00 with the internal GPIO node where pulse messages (DURATION) would cause additional pins on the port to flip state.
Fixed an issue where SapProperty memory slots might not subscribe to changes and get their initial state from their underlying properties after a reboot.
The subscription message was being sent before the internal connection to the SapMessage engine was being set up. This is now fixed.
Fixed an issue with the internal gpio node where it would accept pin state letters other than l, h, and x.
Fixed an issue with the CMD option in the internal gpio node when used in a cluster.
Using the CMD command on a gpio pin would cause a message to bounce back and forth between the Pathfinder internal gpio nodes in the cluster. This is now fixed.
Updated the build process to work better with the Telos Alliance continuous integration pipeline.
Added code to prevent a double entry which sometimes occurred after dropping a new event onto a calendar and then switching views.
Fixed an issue where recurring events set to Saturday were not displaying on Saturday in the calendar.
Fixed a bug with the timer list display where it was not always showing the correct state of timers without a browser refresh.
Fixed an issue with timers where the new end date/time in date time and day of week timers was not being updated to the new offset after a daylight savings time shift.
Fixed an issue where when time jumps from before a dayofweek timer event to a new day, that could cause the event to raise last raised repeatedly when it executes.
Fixed issues with generic emulators that use UDP client and UDP listener.
In some cases the UDP client would stop sending data after a failed attempt.
Additionally this version adds a local port to UDP client for bi-directional communication.
This change is cherry-picked from 1.9.0.03.
Reworked syslog log writers to use the new UDP client changes from generic emulators
This fixes an issue where the UDP log writer might stop sending data to the syslog server after it fails to send a few messages.
There is a possibility once that stoppage happened that the UDP client might also leak a small amount ram.
These issues with UDP syslogs should be fixed in this version, but the fixes did require overhauling the UDP client technology so report any issues you may encounter.
Fixed an issue where None sources as base points pointed at a virtual router base point might not clear properly due to an incorrect ordering of the destination base point return.
Fixed an issue where some LWCP messages were bypassing logging options when Lwcp message logging was enabled.
Added code to skip source list polling on Qor versions earlier than 2.4.0.2 in order to prevent triggering the source list query memory leak in Qor software earlier than that version.
Updating Qor to 2.4.0.3 or later is recommended to regain the best functionality with PathfinderCore PRO.
Modified the compilation and build procedure to be more inline with the continuous integration process of other Telos Alliance projects.
Added some code to streamline event data changes in a calendar in the scheduling system.
Note: This version is identical to 1.7.13.23 but updated to the release version number. Patches to any bugs will be released as patch update and described here. New features will move to a 1.9 beta version.
Changed the documentation links in the software to point to the 1.8.x.xx version of the manual and remove links to beta documentation.
Warning: The 1.9.xx.xx versions are now feature frozen in preparation for a new release. During the final beta period, only bug fixes will occur in the 1.9.x branch prior to a 1.10 release. Any new feature work will now move to a new 1.11.x beta version.
Warning: This fix was a pretty low level change in the routing infrastructure code. If you run into any issues after moving to this version, please revert and report them.
Fixed an issue which would prevent objects from raising event changes if they were added after the system was running and were subobjects of a path that was used in a SapProperty Router. An example of the problem this version fixes would be using MemorySlots Ping property in a Sap Property Router (no we do not recommend this). After the system is running, if you add a new memory slot it was getting its primary object path switched from what it should be to a path under the SapProperty source. Only a restart would get the memory slot reporting events to the logic system and API. This version should fix the problem, but please see the warning above.
Fixed an issue introduced in 1.9.12.97 with border colors in user panels not changing properly.
23872: Fixed an issue where equality combiners with the RaiseOutput on Change selection would not write to the storage correctly so that on restart the combiner would be missing its inputs.
23682: Fixed an issue with the end action not executing randomly on date/time (non-recurring) timer events when in a cluster.
A single run date/time timer disables itself after start and end completes. The disable property was occurring on both nodes of the cluster and sending synchronization messages. If the secondary completes first this can cause the primary (which actually executes the actions) to get disabled before the actions execute. In this version only the primary (active) server will trip the disable state at the end of the execution.
Warning: Version 1.9.12.95 was only available on the site for a short period of time. There was an issue where extra parameters were being written into panel css files when opened for viewing or editing. This actually broke css on pages beyond the default page. If you loaded 1.9.12.95, and have not made a lot of changes to your system it may be advisable to return to the previous bank with its unchanged panels and then update to 1.9.12.96.
Fixed an issue introduced in 1.9.12.95 that broke css for pages beyond the default page in a panel. See Warning above.
The new code does not modify the css files. Instead it interprets css in the following way in order to support backwards compatibility. If textcoloron/off is present in the panel page's css or in the inline css for the button it wil be used. If not if the color property is present in the panel page's css on in the inline css for the button it will be used. Otherwise the theme css will be used where the same color is used for both. This better supports backwards compatibility with panels that do not have the textcoloron/off but have been modified with custom color properties.
The same logic is also used for bordercoloron/off and bordercolor.
23645: Single run date/time timers were not being cleaned up (removed) according to the cleanup days value. This should be fixed in the version. It is recommended to use a value more than zero for this parameter.
23703: Device emulators would sometimes not close the client port when changing the emulator port without removing and recreating the emulator or restarting Pathfinder Core PRO.
23683.2 - Made some changes to Calendar event editing to disallow certain characters at the start of the timer name (such as _ and .) as the calendar would not present the event name properly when events were named this way.
Changed the name of the Remove Flow Control button introduced in the panel designer in 1.9.12.95 to instead be Remove Binding which better expresses what the button does.
Fixed an issue that was preventing some standard iPort style parameters from being available in ZephyrConnect. The ZephyrConnect was not using an iPort interpreter class with the additional capabailities enabled. This should be fixed in this version.
Removed from the site due to a problem with the panel button changes surrounding textcoloron/off and bordercoloron/off.
23458: Added a state column to the device emulators list in the UI which displays connection information.
Changed button binding in logic flows so that the binding button will turn the binding on, but turning off the binding requires selecting the field and then disabling the binding using a new button near the logic flow for the binding. This presents users from accidentally clearing an active binding.
Note: This version was not released publicly and only released for internal testing. All changes in this version are also in 1.9.12.95
19651: Fixed an issue with backups where they could be taken via a hidden ajax page by non-admin users.
23279: Fixed an issue where a scene named with a forward slash in the name would be lost on a reboot. This version will change the character to an underscore if a scene name is created with a forward slash.
23355: Fixed an issue where if a memory slot is at the beginning of a scene, the following items might not display correctly when viewing the scene items in the editor. This was a display issue only.
23402: Added the startup value to the columns in the memory slots page for better visibility.
23461: Fixed an issue where Passthru combiners would not retain the RaiseOutputOnChange setting when applied via the logic flows UI.
23468: Fixed an issue where users with permission to see a panel with a clock might not see the time moving. This was do to a security restriction regarding obtaining time from the Pathfinder Server.
23503: Fixed an issue with image tools in the user panel designer where the logic flow editor might not be available after initially setting it on the image source property.
23520: Fixed an issue where renaming logic flows was increasing the consumed license count incorrectly.
23574: Fixed an issue with certain button colors and backwards compatibility due to newer properties added to the system in the last few versions.
Fixed an issue with the fmt structure being removed with Quasar Engines when Aes67 sources are used.
Removed Engine from the check to remove the fmt structure since engine code 3.2.2 now requires the fmt structure for Aes67 addresses outside of the livewire range.
Multiple changes with Quasar Smart Key and other LCD buttons:
Fixed an issue with Quasar smart key buttons where on reconnect to the console the ForecolorOn/Off (TextColorOn/Off) state was not being pushed.
Reworked pushing state on reconnect so that it only happens from the active server in a cluster.
Fixed a situation where it could theoretically be possible for buttons states to be pushed before a successful login was completed.
Added storing the existence of SK buttons to the devices database so that the buttons can be initialized before a connection to the device is made. This allows state to be set before a connection is made if the connection is delayed.
Warning: These changes involved considerable reworking of the LCD and SK button state management. Please report any issues you may encounter.
Fixed a query message for Quasar Aux buss states that was sometimes using the wrong parameter name.
Fixed an issue in the new Calendar Resource Display control that was not showing the last item in the list if the list was not full.
Fixed an issue in the new Calendar Resource Display control that was not displaying the title font size option correctly.
Changed the displayed information in the Calendar Resource Display to use the following logic:
If there is a description that is not empty, use that for the event data display.
If there is a name that does not follow the default naming scheme and no description, use that.
If there is no description and the name follows the <TemplateName>_<ResourceName>_<Guid> format, display the template name only as the resource name is redundant in a control tied to a single resource and the GUID is not useful except in comparison to the API instance of the event.
Add a hover title in the Calendar Resource Display control with the full name in case it is needed.
Added new device types.
Fixed an issue when two instances of a calendar are open and more than one non recurring item was added in a single apply that would cause the second instance to show duplicate items until the browser page was refreshed.
Added a Calendar Resource Display control to user panels. This control requires a scheduling license to function. Review the beta documentation for details on how to use this control.
Fixed an issue with Timers where the DerivedStartTime property changes were not always being raised to SapV2.
Fixed a bug where the hover tooltip on calendar items was showing the resource name when it should show either the event name or description.
Updated component licensing
Changed login state on devices page to immediately switch to None on loss of connection as this was looking incorrect.
Fixed a bug in device emulators list user interface where incoming connections to a listener were being listed in the port field. There is some usefulness to having this information in this table so we also added a ticket for a future feature change to add an additional column to display this state information.
Copyright update
Made an adjustment to the RestApi client. If you remove the Authentication line from the header and then configure a user name and password, the client will now try to figure out the methodology for authentication. This is working for digest authentication on some test systems.
Fixed an issue where xml data in a memory slot would not display in the memory slots data grid.
Added code to force a mouseup on user panel buttons if the mouse slides off the button while the mouse button is down. Without this, the button could get latched in the down state.
Note: This is not working inside a full console widget at this point in time.
Added an option to RestAPI devices called AllowEscapeChars which if turned on will cause header and data messages to convert standard Pathfinder escape sequences (like \cr\lf) to the requisite escaped values. To prevent backwards compatibility issues, this is an option that has to be turned on. Use the edit link in the devices page for the parfticular Rest API device.
Made changes to Aes67 message handling by device type as follows
Removed some old code relative to Vmixers that was never supported.
Changed Aes67 output addressing such that fmt is included whenever the multicast IP address is outside of the livewire range.
Added an exception check in the Router Manager during routes for when the destination device type is Engine or Powerstation which will then exclude the fmt syntax as neither of these support the fmt syntax.
Note: Fusion software must be at version 3.2.2 or later to work with Aes67 sources with this version of Pathfinder as that is the version where the fmt syntax was added. If you need this functionality in Fusion, please upgrade the software in your Fusion in conjunction with this update. Click here to download Fusion 3.2.2. https://telos-support.s3.amazonaws.com/Axia/Fusion/1601-00531-019-Fusion-3.2.2f.tar
Note: iPort classic software must be at version 2.4.4 or later to work with Aes67 sources with this version of Pathfinder as that is the version where the fmt syntax was added. If you need this functionality in iPort classic, please upgrade the software in your iPort in conjunction with this update. Click here to download IPort 2.4.4 https://telos-support.s3.amazonaws.com/Telos/iPort/Updates/1601-00535-022-iPort-2.4.4a.tar
Added RecordModeStat (recmode_stat) property to the Quasar AppControl Object
Warning: This is currently configured in Pathfinder as a RW property, but is only RO in the latest version of the Quasar software. We made it RW in Pathfinder because it is slated to become RW in the Quasar software as well in the future.
Fixed a situation where if a scene item's requested value is blank, it would not get set to active after startup if the source property was also blank on startup.
Changed LwcpSs fader automix property from amix to amen for Qor, iQx, iQs, and Altus as that is what the property is in current software.
Added an Automix object and properties to act as a target for show profile amix change values. Previously this was causing a log message because there was no LwcpSs target for the property.
Changed Logic Flow removal file naming to a hash of the previous name. The removal file only gets created and used if a system is clustered, the cluster is currently disconnected, and a flow gets deleted. It holds the deletion information for future cluster synchronization. Previously it was named in a way that could exceed operating system file name size limits.
Changed the setting of CurrentChannelNumber property in Axia Audio routers such that if the requested channel number is 0, double quotes are sent to clear the route rather than sending 239.192.0.0. This is because numerous Axia devices do not see 239.192.0.0 as a valid livewire channel. That multicast address can still be used via Aes67 syntax in devices that support that syntax.
Made some changes to interval timers to prevent state fluttering when AutoReset is off and the interval time is very short (~200ms), and the systems are clustered.
Warning: Please review all notes for 1.9.12.87 as well as this version has those changes as well.
Fixed an issue introduced in 1.9.12.77 where the simple tree in the logic flow editor was not displaying XNode mixer options.
Fixed an issue introduced in the timer changes between 1.9.12.83 and 1.9.12.87 where a timer instance might still raise events after being disabled or deleted.
Warning: This version makes major underlying changes to the timer system that raises interval, date/time, day of week, and calendar timers. While the user experience should differ very little, the code driving these systems has changed significantly as described below. Please report any issues you may encounter.
This version is a major rewrite of how times and calendar events are managed in favor of a number of libraries instead of custom code.
Corrects a very rare but occasional situation where a calendar based event might not fire correctly.
Corrects multiple issues with how time zones and Daylight Savings time are handled.
Each Date/Time and Recurring (DayOfWeek) event now also carries a field that holds the time zone used to create the event. The event will follow the DST rules of the time zone for which the event was created. This differs from the previous version where events were coerced into Pathfinder's time zone and followed its DST rules. In previous versions after a DST change, clock based events were updated with the new offset. Now the event does not change the offset of the underlying event but uses the time zone field accordingly.
Added the time zone field to the date/time and dayofweek event editors.
Selecting a different time zone in the calendar will also cause events created when the calendar is in the time zone to be created with the selected time zone.
Solidified the rules around what happens during DST skip forward and DST fall back times when clock as opposed to fixed mode is selected as follows:
Skip Forward Recurring (DayOfWeek) Events:
If a recurring event starts before skip forward and ends in the DST skip time, it will be displayed in the calendar with a black background and a note that the end will be skipped. Any ending behavior will be skipped when the event executes on that day.
If a recurring event starts during the skip forward time and ends after the DST skip time, it will be displayed in the calendar with a black background and a note that the start will be skipped. Any starting behavior will be skipped when the event executes on that day.
If a recurring event exists entirely in the skip range, it will be displayed in the calendar with a black background and a note saying the event will be skipped. No behavior for the event will execute.
If a recurring event spans the skip time, it will be displayed in the calendar as normal. When executed however, it will respect the start and end times meaning the actual execution duration will be reduced by the skip forward duration. For example, a 90 minute event spanning the skip forward time range will only execute for 30 minutes if the skip forward is one hour.
Dragging a recurring event onto the calendar on the skip forward day, with a start or end time in the skip forward time range will be prohibited when attempting to drop the event.
Editing a recurring event on the day of the skip forward such that the end and/or start wind up in the skip forward range will cause alerts and confirmation messages in the time event editor.
API submission - The API will not prevent you from defining illegal combinations of offsets and time zones. Incorrect combinations might cause the time to be advanced to the next hour, the event not to be created, or other ill-defined behavior. Be careful when defining events using the API.
Skip Forward standard (DateTime) events
Dragging a standard event onto the calendar on the skip forward day, with a start time in the skip forward time range will be prohibited when attempting to drop the event.
Dragging a standard event onto the calendar on the skip forward day, with a start time before the skip forward time and an end time in the skip forward time will cause the end time to bump to the same minute in the next hour. The event end will execute at that time.
Editing a standard event on the day of the skip forward such that the end and/or start wind up in the skip forward range will cause alerts and confirmation messages in the time event editor.
API submission - The API will not prevent you from defining illegal combinations of offsets and time zones. Incorrect combinations might cause the time to be advanced to the next hour, the event not to be created, or other ill-defined behavior. Be careful when defining events using the API.
Fall Back standard (DateTime) and recurring (DayOfWeek) Events
All events will execute as defined but only once. They will not execute on the repeat of the hour.
Interval events are unaffected and will continue to execute every x milliseconds.
Made disabled calendar events display with a dark gray background color.
Recurring events will now start on the day on which they were created in the calendar or editor and will not backfill to previous days.
Fixed an issue where the now time line was not properly moving if the calendar time zone was different from the system or browser time zone.
Added a clock in the left corner of the calendar to display the current time in the selected calendar time zone.
Added a window on the time page where an Administrator may define an allowed list of time zones. If time zones are moved into this list then the calendar and timer editors will only allow time zones from that list. By default (empty list), all time zones are allowed.
Fixed an issue in user panel clocks introduced in 1.9.12.81 which was not always displaying the correct time when different time zones were selected for the clock.
Fixed a disappearing flow issue when editing a flow when editing an existing logic flow with a complex value displayed in the current translation value. This was due to the event creation code including the active input and output property value as opposed to just the property name.
Improved the code in the logic flows editor to enforce quoting and encapsulation of certain fields when initializing or rewriting a flow object.
Fixed an issue with submounts under SapProperty Router sources and destinations.
Unreleased versions used during internal testing leading to the list of changes in 1.9.12.87.
Warning: This version is not yet recommended for users of the Calendar add-in. Despite the fact that it fixes the moving of recurring events and the timeline when viewing from different timezones, there is a bug that causes the start of day to be calculated based on UTC instead of the timezone. This does not affect the execution of events, only the display of recurring events in the UI calendar. We are working on a fix but it is not included in .81 or .82. For all users who do not use the paid calendar add-in review the release notes below to determine if you need this update.
Added code to stop timers during object removal including child object timers. In some cases timers which were executing inside of objects being removed could cause a deleted object to not get marked for memory cleanup causing a memory leak.
Note this change should be transparent, but did require touching a lot of places in the code. Whenever that many places get worked on, there is the possibility of introducing bugs so report anything you find.
Warning: This version is not yet recommended for users of the Calendar add-in. Despite the fact that it fixes the moving of recurring events and the timeline when viewing from different timezones, there is a bug that causes the start of day to be calculated based on UTC instead of the timezone. This does not affect the execution of events, only the display of recurring events in the UI calendar. We are working on a fix but it is not included in .81 or .82. For all users who do not use the paid calendar add-in review the release notes below. For all users who do not use the paid calendar add-in review the release notes below to determine if you need this update.
Updated web page packages for feature and security improvements.
Changed web page support for recurring events in the calendar add-on to move properly when viewing from different time zones by using more advanced recurring event packages.
Changed the current time line in the calendar to switch when changing the viewed time zone.
Made a slight change to persistent memory slot writes to keep disk writes backgrounded where previously the first one in a time frame might happen synchronously.
Added content to the rest API device send message log error which should provide more detail if the message fails to send.
Added an option to ignore cert errors on rest API devices to the advanced options: set Devices#0 RestApiIgnoreCertificateErrors=True.
Adding this option to the advanced options requires a reboot before it will function.
Fixed an issue where the connected state of device emulators was not always showing a connection failure when using TcpClient as the connection type.
Fixed a SapV2Message parsing bug brought on by the changes in 1.9.12.79 when a single encapsulation spans many incoming packets.
A manual sync in cluster is recommended after upgrading to this version if you were previously on 1.9.12.79 or 1.9.12.80 and made significant panel changes or bulk API commands to ensure that an error in the messaging did not cause an incorrect cluster sync.
Added additional unit testing for message parsing.
Fixed an issue where the SubmitSapMessage write-only property in the API view under Devices would not accept \cr\lf as an escape to send multiple messages at once.
Fixed an issue with the IncludeProps system item in subscription Sap Messages which was not allowing separate subscriptions that include this system item and did not include them. One or the other would win out in the structuring of the change messages. This has been fixed.
Adjusted log handling to account for this and remove the system item when printing the log message.
Fixed a bug with LWCP and potentially SAPV2 message parsing that would incorrectly parse encapsulations where the %BegingEncap% or %EndEncap% word would get split between two packets. This was displayed as a bad encapsulation message in the logs, and most frequently was found with longer quasar src_lists. This in some cases could cause lost messages for several seconds as well.
Removed version checking on IN_SELECT on Vmixers. If this generates excessive error logs in either Pathfinder or the Engine based product, update the Engine based product to the latest version.
Updated support for Task 22046
Added support for a comma delineated list of listen ports on TCP listeners in ProbelGeneralRouter and ProbelGeneralRouterSilence device emulators.
Fixed an issue with infinity websocket api where the websocket did not have a buffer large enough to get all data when the button list expanded beyond 32.
This version adds bytes to an internal buffer to account for frame splitting and watches for the websocket End of Message indication
Added support for additional LWRP parameters in newer software versions of Infinity Link.
Added InfinityLink16 device type.
Fixed an issue which could generate an error in the log and potentially a crash and restart when requesting the first item in internal logic item lists when none exist.
Added error handling around metering timer starts to prevent a possible use after free error.
Fixed a bug in device emulators where after editing an emulator with a TCP listen port and changing the port definition, the old port listener would still maintain the open socket potentially making the new unable to obtain the socket. This required removing and recreating the emulator or rebooting to fix previously.
Note: This version includes the fixes from 1.9.12.75. Please review the notes from that version carefully when upgrading to this version particularly if date/time, day of week, and calendar timers factor heavily into your use cases.
Removed an unnecessary log message regarding canceling logic flow delay timers.
Fixed an issue where a change to lastupdate in the cluster item of an object should not automatically update last update on objects that mount this object.
This bug presented in a SapProperty with thousands of sources and destinations tied to the same memory slot. This was causing sluggish routing behavior due to incorrect cascading of date time stamps in the internal mounts.
Fixed an issue where SapProperty routers were storing route state in the database but without a timestamp making cluster synchronization after different restarts not completely reliable.
If you shut down Secondary, change a SapProperty route on Primary, shut down primary, bring up secondary, and then bring up primary, the resulting route state would be either incorrect or not matching between the two servers. This is fixed.
Added a Placeholder property to Routers#0 object. This property can be used as the backing property to a SapProperty router whose sole purpose is to retain a route state without actually transitioning any data. By using the Placeholder property as the target for a SapPorperty source and/or destination, the system will skip any attempts to subscribe to changes or transition data for that router. This can be useful as an anchor route point in a virtual router where the other base IOs points might be disabled, but the requested route state needs to be retained.
Fixed an issue where after changing the port of a TCPClient log writer, the old connection would also still be active and not closed.
Added code to send get requests on log writers during a system restart after the Devices AllServicesLoaded property is set to true to prevent misleading "indi none" log messages when get requests are used in the logs.
Made Constructor responses always encapsulated to make the constructor easier to pick up and use manually without having to deal with lots of quote de-escaping.
Note: in some messages de-encapsulation of interior encapsulation pairs may be necessary.
Added allowance for PATCH and DELETE headers in the RestApi device type.
Supported header types now include GET, POST, PUT, PATCH, DELETE.
Added missing log files for the web server, system messages, and php to the logs available from the administrative system logs user interface.
Added clustering log items to the available items in log writers.
Added new properties to the user panel RouterXyMatrix component.
Added --header-hover-text property which can be used to specify whether hovering over column or row headers display description(default), full name without ellipsis, or a combination.
Added the following properties to allow programmatic searches:
--block-manual-search: disables the manual search boxes while leaving them present in the UI for programmatic adjustment
--source-search-text, --source-device-search-text, --destination-search-text, --destination-device-search-text
These can be used to dynamically load the search fields on the routing matrix widget.
Note: In the backend changing these fields is a momentary property change followed by a --NONE-- value. If a button state needs to be bound, add an additional --NONE-- translation to the indicator as shown below where MySearch is the value the button mousedown places in the search field:
Note: This version includes the fixes from 1.9.12.75. Please review the notes from that version carefully when upgrading to this version particularly if date/time, day of week, and calendar timers factor heavily into your use cases.
Added code to handle recurring timer events being dropped on a calendar where the end time is equal to or later than midnight.
The code will set the end time to 23:59:59.900 if the recurring timer attempts to extend beyond the day where the start is.
Previously these events would not correctly add to a calendar.
Fixed an issue in recurring timers where the constructor message would use nextrun for the start time rather than the scheduled time.
In situations where a recurring event was being added that spanned the current time, this caused clustering to incorrectly create the event on the secondary server with no time span.
Fixed an issue with editing log writers created in the last couple of versions that was generating an error and not completing when creating a new TCP log writer or client if no offline max value was specified.
Note: This version makes multiple fixes to timers with relation to clustering. If you are making extensive use of Date/Time and DayOfWeek timers especially when using the Scheduling license, it is recommended to do a manual sync before upgrading to this version to get rid of any anomalies. Both servers should be updated to this version or there is a risk of incorrect clustering commands. If an outage can be tolerated, you can update both servers and then reboot them at the same time. Please review your calendars, Date/TIme timers, and DayOfWeek timers after upgrading for accuracy. Some of the bugs that were fixed in rare situations could have led to objects that were in the running system that were not stored to the database and therefore would not come back after a restart or could have resulted in old events coming back. Review the release notes carefully.
Added CurrentSourceDescription as a property of router destination objects.
Fixed multiple issues with timers and clustering
Fixed a bug where a cluster in a disconnected or broken state would occasionally cause a date/time event miss if the cluster reconnect attempt lined up very close to the timer start or end time.
Fixed a bug with the cluster synchronization of calendar objects
If the calendar creation message included template and resource names, the database might not store the calendar. This would mean the calendar object would be there initially but not after a restart. This was a bug in the calendar database storage functions where a function was expecting an incorrect type for template versus resource This usually would not happen when making changes using the UI, but might cause a cluster item not to properly instantiate a new calendar.
Fixed an issue with the calendar constructor where an empty template or resource list might generate a blank resource or template in the database.
Also added code to not load a template or resource from the database if it has a blank name to account for any existing blank entries
Made multiple changes to timer property decoration and execution
Changed time properties to not raise cluster changes for time based properties as those can execute on both servers independently
Changed ShouldExecute cluster states to only affect start and end change messages and not the timer raise itself.
Fixed a bug in DateTime/DayOfWeek/resource timer loading from the database that was causing last update to get updated to current time instead of what was in the database
In the case where a server was offline and events were deleted on the online server, this could cause the events to re-appear when the offline server started back up again. This would happen because the last update value would be updated to the current time before cluster synchronization would take place so the current item would be newer than the held delete message.
Forced database storage of enabled property change for date/time timers.
Timer events alone use the ClusterNoSync decoration for some properties to prevent cluster messages on property changes that are internal and will properly execute on both servers. This functionality was not working correctly in the Sap message interpreter.
This in rare situations could cause a blitz of reflected message for the duration of a timer event.
Fixed an issue where some properties were being raised to SapV2 twice.
This caused multiple clustering lastupdate time stamps.
In situations where editing was changing start and end time in the same set of messages (such as after dragging an event to a different slot on the calendar), it would often cause one of the times to be incorrect on the second server. This was because there would be an extra lastupdate on the second server that would end up being later than the requested second property change.
Reworked the watchdog service as it was not performing as expected.
Decreased application restarts before full system restarts to 1.
Fixed a bug where the application reset did not reset some of the ping timers making a second restart inevitable.
Added additional testing procedure code.
De-bounced some connection stop messages and ping failures to prevent duplicate restart calls.
Improved decision tree after a process restart if an additional failure takes place within the first few hours of restart.
Added newer services that were not being reset correctly to the watchdog reset script.
Improved log and email messages to be more specific.
Added OfflineMaxCacheCount and GetOnConnect options from 1.9.12.73 to TCP client log writers as well. Previously it was only available in TCP listener log writers.
Move Get messages during initial connect out of queue limits to allow more in-depth initial GetOnConnect state grabs.
Removed extra flash options from Quasar buttons in the logic UIs as only normal flash is supported.
Fixed a display issue with the PULSE_0 option on buttons in the editor UI.
Fixed a bug with the parsing of a Probel message for dual controller support so that it should be responded to properly if queried.
Dynamic changes will only be sent if the request has been made once during the connection.
This command will return the state of the cluster to the requestor.
Added a missing on_air property to the Quasar mon object.
Warning: Quasar does not currently raise events for this, so you can change the property but changes to the property will not trigger logic unless a get is issued. This is currently being reviewed internally.
Fixed an issue where if no IOs were configured/licensed in AIXpressor or flexAIserver, the device would not add successfully to Pathfinder.
Added the INF_MUTE parameter to HP202 object.
Fixed an issue where the Probel Emulator could not bind to a SapProperty Router. Now both Virtual routers and SapProperty routers are allowed for Probel emulator router bindings.
Fixed an issue with the certificate trust link in the clustering tab when using encrypted SapV2 and self-signed or untrusted certificates. This link was using the incorrect Sap object target path in some cases (<IP>:9600 instead of <IP>:9602) so the trust was not getting applied.
Added a warning in the security section apply button that if the SapV2Tls option is changed a reboot is required for the changes to take effect in the clustering links.
Fixed an issue where the clustering Init messages on startup were not always being adapted to the correct port after a change in the SapV2Tls security settings.
Changed the Quasar Fach settings to only present 4 user buttons rather than 13 as that was incorrect.
Added flash to the Quasar smartkey buttons as an option for future Quasar software versions.
Added two options to TCPListener Log writer:
OfflineMaxCacheCount: Will hold up to the defined number of log messages in a cache in memory when no clients are connected to the log writer rolling the oldest out of the cache when new ones come in. Then the first client that connects will get all the messages from the cache. Warning: the cache is in memory so be careful how many messages you define so as not to use too much ram for this. The purpose of this setting is to reduce missed messages if the external log collector has to disconnect and/or restart. A value of 0 (default) will function as this writer has always functioned and will not use the cache.
GetOnConnect: allows you define a list of SapMessage get requests that will be returned each time a log client connects. This allows a logger to get current state of certain parameters. The get messages should be separated by \cr\lf to differentiate multiple get requests.
Fixed an issue with user panel objects that are given the same name but with different case sensitivity and are also bound and therefore in the API.
Added code into the UI to disallow this and make the administrator designing the panel correct the problem. Once two controls have the same case insensitive names and have binding turned on, the designer will throw an error and prevent the save from completing.
Added code in the backend to more gracefully handle this situation immediately rather than escalating the error up the call stack.
Added additional information to the logs for errors with websockets to better understand what situation caused the websocket to generate an error.
Added an additional system item ($INCLUDE_PROPS) to the API to be used with subscriptions and especially with custom log items.
When the $INCLUDE_PROPS property exists in a subscription message, you can specify additional properties in a comma delineated list whose values will be included when the subject of the subscription changes.
Example:
sub Routers#0.VirtualRouter#37 CurrentSource $MAX_DEPTH=-1 $INCLUDE_PROPS="CurrentSourceName,Name"
indi Routers#0.VirtualRouter#37.VirtualDestination#1 CurrentSource=1, CurrentSourceName="AAN-SRC 1", Name="DST 1"
In this example, each time the CurrentSource property changes, the indi message will also include the value of the CurrentSourceName and Name properties. This is particularly useful in custom log messages.
Warning: The success of this may be subject to the order in which things change in some situations.
The comma delineated list in the system item should be quote surrounded as in the example above.
Added horizontal overflow scroll bars that will appear as needed to all data tables to prevent smaller screen widths from cutting off the add and delete icons at the end of rows.
Fixed a bug when changing an event type from the calendar editor from once to recurring that would not update the type properly in the backend.
Note this will generate a new name when making this change.
Fixed code in DateTime and DayOfWeek timers and templates to allow an event to only have a start or end property if desired.
Fixed issues with deleting a start or end property from these types of timers.
Fixed code in the UI as well to support this change.
Updated PreviousSource and PreviousSourcePath properties in virtual routers to ignore the other state and only change on source changes where the source exists in the router.
Fixed an issue with the timestamp memory slot format property where it would not stick on creation and you would have to modify it after the object was created to create the desired formatting.
Fixed an issue with the cleanup options link in the timers list not scrolling and overlapping the list of timers.
Despite the intended feature freeze in advance of a release, a few new features had to be added to this version to handle project requirements. They are listed below and included in the beta documentation. Features are frozen again at this point.
Added the ability to override a virtual router's disabled advanced settings on each destination's base IO. This allows for a global setting for the router, but also being able to override the "Push route change on enabled" option and "send route to disabled base IO" option on each destination base IO.
Added an edit link to each Virtual Destination base IO that allows for the manipulation of these settings as well as the enabled state.
By default the setting will be Follow which means follow the router settings.
Added an Enabled option to audio alarms which allows you to disable an alarm. The option allows you to fix the alarm to a specific state while taking equipment offline for maintenance. It essentially disconnects the AlarmState property from audio changes and fixes it to a specific value. Note that the timer state countdown will still function as the code will still keep track of the Alarm State as it should be under the hood for the return to Enabled state. The options are:
Enabled - Alarm is enabled and hooked to the audio state changes
AudioPresent - Alarm is fixed to the audio present state ignoring changes in the audio
Silent - Alarm is fixed to the silent state ignoring changes in the audio
Clipping - Alarm is fixed to the clipping state ignoring changes in the audio
Added Scene options to the log writer dialog.
ActivateSceneRequested - logs when a scene activation is requested.
ItemsAreActive - logs each scene item's active state.
ItemsCurrentValue - logs changes to each scene item's current value.
SceneIsActive - logs whether the entire scene is active
SceneState - logs the scene state (Some, None, All, etc.)
Fixed a bug where disabling all flows at the root logic flows level could write files in to the _panel folder that are supposed to be dynamic only
This fix prevents that and also cleans up that folder if it exists on startup
Fixed an issue with usernames and audit logging when Active Directory is used.
The user name was being displayed in the logs as "guid" rather than the name
Masked user associated guids in the logs
Fixed an issue where a failed Ldap user login to the API would not log the attempted username.
Fixed additional login support for task 20858 and 19475.
Fixed an issue where changing a logic combiner to a different type in an active flow would not establish the new results without disabling and enabling the flow or having all of the inputs change.
Now it will update after a 20 to 30 second timeout waiting for other changes.
Note: This required changing some of the combiner code which also runs during LogicFlow startup. While it should not change startup functionality, please report any issues you may encounter as a result of this change.
Fixed a startup SQL file that was missing a field. The field got added in a sanity check anyway, but the initial setup should have been correct.
Made the group value column for Synchronization Master property groups display blank as it is not relevant to that type of property group.
Added code to protect user account writes during the load process to prevent a very rare situation where the Admin account could get over-written with no access.
Added the following properties to VirtualRouter:
DisableBaseIoByPathContains
EnableBaseIoByPathContains
DisableBaseSrcByPathContains
EnableBaseSrcByPathContains
DisableBaseDstByPathContains
EnableBaseDstByPathContains
These properties allow you to look for base IOs in a virtual router whose path contains some text and enable or disable them.
For example:
DisableBaseIoByPathContains="192.168.1.240:93"
This would disable all base IOs in the router that have that IP Address. This is useful for quickly enabling and disabling base IOs by device IP address
Fixed a bug in silence alarms that could leave it in an unknown state when it should be known.
Changed the ProbelGeneralRouterSilence device emulator to allow for the selection of which layer of base IOs (1 through 5, any, or all) would be used as the alarm back to the controller.
Fixed additional login support for task 20858 and 19475
Fixed a bug where the property descriptions in the logic flows tree were not displaying when the API tree was selected.
Fix issues with the Synchronization Master property group type:
When "Allow Out Of Sync" option is false, added a timer when the group is not in sync to repeatedly retry forcing it into synchronization - default 5 seconds
Previously only one attempt would be made which made this feature not work for one of its primary intended use cases of forcing state after an equipment outage.
Fixed an issue where the Synchronization Master property group was determining in sync or out of sync by whether the item properties were the same as opposed to whether they all match the master value.
Fixed an issue where a change to the master value of a Synchronization Master property group was not causing a re-analysis of the state unless an underlying property changes. This was occasionally leading to an incorrect state if the change messages were not reflected by the underlying items.
Added authoritative retry and master value fields to the synchronization master property group editor UI to support the fixes mentioned above.
Fixes for IO type support for task 20858 and 19475 in the web UI
Fixed additional login support for task 20858 and 19475
Add additional SET lic support for task 20858 and 19475
This version has all of the changes from the release notes of 1.9.12.64 but with the fix listed below.
The previous version (1.9.12.64) broke login to Lwrp devices as a result of the login for task 20858 release note item. This caused devices to appear to be logged in but not accept Lwrp commands including route changes and gpios. This problem only existed in 1.9.12.64 which has been removed from the site. It has been fixed in this version.
Warning: Pulled from the site because of a bug. Use 1.9.12.65 instead.
Fixed an error message when trying to recycle a connection when logged in as an unprivileged user where the word delete instead of recycle was used in the message.
Fixed issues with Altus not appearing with console resources to user panels and logic flows.
Fixed a bug in user security where the tree was only showing devices that had gpios or vmixers.
Fixed an issue introduced after web page package updates where the lock icon in the routes list view was causing a selection of the destination line rather than a change to the lock status.
Fixed an issue where log writer name validation was not properly disallowing certain illegal character names for file naming which in some cases was leading to an application crash when trying to create the log writer.
Fix a bug with log file editing that might cause an exception after editing or removing the log writer.
Fix login issues for Task 20858 and 19475
Fixed a bug with the optional scheduling calendar licensing probably introduced in 1.9.12.57.
Clean build from new master.
Warning: This version represents a feature freeze of any new features in the 1.9.x beta branch in preparation for a new release. During the final beta period, only bug fixes will occur in the 1.9.x branch prior to a 1.10 release. Any new feature work will now move to a new 1.11.x beta version.
Task 20859 - Additional fixes
Fixed a bug where the XY routing grid was sometimes sending double route change messages because the initialization function in the web page was running twice and adding two subscriptions to the need send event.
Added additional log options described in the Beta Documentation for this version including:
AuditGet
AuditSet
GenericEmulatorsLastSent
GenericEmulatorsLastReceived
ProbelEmulatorsLastSend
ProbelEmulatorsLastReceived
ProbelEmulatorsRouteChangeRequestRecieved
Custom group as described below
Added a custom log message type for defining your own log message subscriptions. See Beta Documentation for details.
Fixed an issue with logging where it was not able to obtain the actual source IP address of messages for audit purposes because of the webserver proxy.
Fixed issues with login messages in message logging containing the actual passwords in the log messages. This has not been replaced with a fixed number of asterisks.
Fixed a bug with the bank switching UI when accessed using Firefox.
Optimized the instantiation of a lookup table as it was being created in situations where it was not needed.
Fixed an issue that was causing hangs in the user interface and API during system startup. This involved internal tasks with intentional delays while loading the logic for user panels. These delays were blocking threads in the thread pool consuming all threads in the pool. Changed this to use a non-blocking wait freeing the threads up for other tasks during the delay time.
Also found a number of places throughout the system where this pattern existed and could be optimized.
Warning: Versions 1.9.12.53 through this version had major changes. Please review the release notes carefully before installing this version.
Task 20858
Task 20859 - Work in progress
Fixed potential bugs with the push on reconnect function in Lwcp for resetting button states after a reconnect to the device where we were not properly error handling certain functions.
Fixed a bug with virtual router base point additions primarily on destinations where the mapping to the base point might complete before the change event handler is added leading to the route state not getting updated after the addition until the next poll.
Changed DateTime and DayOfWeek timers NextRaiseTimeIsEndTime property to appear in the simple tree. Also improved the description. This property can be useful when you want to check if you are inside or outside of the time range in these timers.
Warning: This version made changes to improve the SapV2 message parsing in the web user interface. These changes affect all messages on all web pages. Please report any issues you may encounter from these changes.
Note: This version also contains the fixes from 1.9.12.59 which was not released. Please review those notes as well.
Warning: This version contains all of the changes from the 1.9.12.53 through 1.9.12.57 versions. As these versions had major changes under the hood, please review the release notes carefully from those versions as well before upgrading to this version.
Fixed several encapsulation parsing errors in the user interface and improved sap message parsing when multi-encapsulation is used in the user interface.
Updated logic flow hover balloons when encapsulation is used for the sap property value for a cleaner looking balloon.
Warning: This version was not released due to issues found after compilation. 1.9.12.60 has all of the changes from this version as well.
Warning: This version contains all of the changes from the 1.9.12.53 through 1.9.12.57 versions. As these versions had major changes under the hood, please review the release notes carefully from those versions as well before upgrading to this version.
Fixed a bug in the user interface with log writer generation creating a syslog log writer introduced by the web changes in 1.9.12.57.
Fixed a bug in the memory slots user interface that was displaying encapsulated values in the memory slots data table with the BeginEncap and EndEncap headers when it should not have been.
Updated copyright dates in the user interface.
Fix a bug with the message encoding of SapProperties when the property value contained a BeginEncap in the middle and ended with an EndEncap .
This would not get encapsulated with escaped encapsulations properly.
This exhibited at a customer site as a disappearing logic flow when the active input value required encapsulation.
Warning: This version contains all of the changes from the 1.9.12.53 through 1.9.12.57 versions. As these versions had major changes under the hood, please review the release notes carefully from those versions as well before upgrading to this version.
Made the Generic Emulator Watcher's BufferMax property a stored item to the emulator files so that it could be adjusted and retained between restarts.
Changed the default value of the Generic Emulator Watcher's BufferMax property from 500 bytes to 5000 bytes.
When using a translator other than direct passthrough of data (particularly a regex) there is a buffer that is used to retain data until a match is made. This buffer has a size limit to prevent data without a match from causing an out of memory error. This also prevent DOS attacks. If the buffer is exceeded, the first 2/3 of the buffer is wiped and the last third becomes what is left. Depending on the size of the expected incoming data, this buffer size might need to be adjusted. This is now possible by changing the BufferMax property.
Exposed the BufferMax property in the Generic Emulator user interface so that it can be configured without needing to do it through the API.
Warning: This version contains all of the changes from the 1.9.12.53 through 1.9.12.56 versions. As these versions had major changes under the hood, please review the release notes carefully from those versions as well before upgrading to this version.
Warning: This version contains major updates to the operating system, code frameworks, and web packages. Please report any issues you may encounter.
Update the Operating System to the latest version of all packages for security, feature, and performance reasons.
Update webpage packages to the latest versions for security, feature, and performance reasons.
Fixed issues with number detection in variables due to changes in new packages.
Updated web socket handling to newer packages.
Fixed issues with data table state storage related to package updates.
Update the Pathfinder code execution framework from version 5 to 6 for security, feature, and performance reasons.
Update Pathfinder code packages dependencies to latest versions for security, feature, and performance reasons.
Fixed issues in external ldap authentication code due to updates in execution packages.
Improved an error handler around route mounting lookups.
Warning: This version contains all of the changes from the unreleased 1.9.12.53 and 1.9.12.54 versions. As these versions had major changes under the hood, please review the release notes carefully from those versions as well before upgrading to this version.
Support for task 20140
Support for task 20439
Fix a bug that prevents the deletion of a router with a single quote in the name of the router using the UI.
Fix a typo in the Calendar demo message.
Warning: This version contains all of the changes from the unreleased 1.9.12.53 and 1.9.12.54 versions. As these versions had major changes under the hood, please review the release notes carefully from those versions as well before upgrading to this version.
Fixed an issue where the users database was not being loaded until after the devices. With the WebSockets now directly in the main application, this was causing an issue where the system might show repeated login requests on the web page after a restart until the devices were all loaded because the login was being rejected due to no loaded users.
Warning: This version was not released to the public do to bugs found while testing. This version fixes bugs found in 1.9.12.53. 1.9.12.53 has major changes that are also included in this version. Please review the notes for 1.9.12.53 as well before installing this version.
Fixed a clustering issue caused by the changes in 1.9.12.53 that was preventing clustering from detecting the startup state of itself or other nodes in the cluster.
Warning: This version was not released to the public do to bugs found while testing, however the changes in this version are in all subsequent versions and are significant. Please review the changes carefully before updating and report any issues you may encounter. This version has major changes within the socket and object handling code.
This version changes all WebSocket communications on all web pages to use different WebSocket tools. Previous versions used a python based WebSocket proxy between the web server and the SapV2 port. In rare situations, this proxy could leak ram. While we have not been able to duplicate the problem in the lab, the log files show this to be the case. This version removes the proxy and implements the WebSockets directly in the main application. This allows the application to keep better track of situations where the commands being sent to web page clients might be stacking up. This allows us to slow down metering and/or dropping the connection rather than risking leaking ram via buffered messages. While this should be a transparent change to the user, it is a major change under the hood so please report any issues you may encounter.
Add queuing to WebSockets to better control message delivery.
Cleaned up some event handlers to prevent a low risk of cyclic dependency that might prevent certain objects from being disposed and the ram reclaimed.
Removed PathfinderCorePRO device object from the devices list to reduce the risk of a cyclic dependency. This required reworking some of the service startup code.
Removed SapV2 clients from the object lookup hash tables as they do not need to be accessible by SapV2 and this reduces socket removal complexity.
Added buffer size limits for incoming socket communications to prevent incomplete message DOS attacks that could exhibit as ram leaks.
Changed SapObject definitions to support objects that will never require mounting to reduce the risk of cyclic dependencies on transitory objects.
Added memory profiling tools for use in special situations by Telos Alliance support staff.
Added log messages to the supervisor startup log to capture the assigned program ids of services which can then be used to compare against certain program id based system log messages.
Updated the system web page with improved memory utilization statistics that show actual consumption and availability instead of just a percentage.
(From 1.8.12.00) Removed a metering lookup that could in certain rare situations get out of sync with actual metering subscriptions causing extra meter poll messages to be sent to a specific IO.
Note that while we have not reproduced this in the lab we did see situations at one site where duplicate messages were being sent to a node. The node in question also had meters in a Pathfinder panel whose Io pointers were being changed by a combination logic flow that might cause fluttering in the subscribe and unsubscribe messages.
(From 1.8.12.00) Added a slight delay in the web UI when changing a meter IO pointer between the removal and the and Add messages to help prevent thread based conflicts in case the fix above still could lead to a race condition.
Added advanced section to the AES67 source creation editor for additional fields needed in future workflows.
Created code to handle more complex address fields needed for future AES67 and TV workflows. Note: this changes how audio IOs are uniquely identified in tables inside the audio router code. This is a significant change though it should be transparent to existing systems. Please report any issues you may encounter.
Added additional device support: Ticket 19904
Fixed a bug related to disabling the first base Io in a virtual package when push current source on base enable is enabled and send route changes to disabled destination base IOs is disabled.
If the virtual destination is cleared while base IO 0 is disabled, the virtual destination would incorrectly enter an "other" route state and would therefore not push the correct base IO state back when re-enabling the first base IO.
Warning: While this change was a small change in the code, it was in the middle of some pretty intricate logic surrounding base IO Enabling/Disabling. Please report any issues you may encounter.
Added support for alternate ports in lwrp/lwcp device discovery by adding a colon and port in the discovery range (172.16.250.22:9393).
Improved support for legacy console intercom and its discovery via port 4013.
Added a SetTimeStampPlus property to TimeStamp memory slots which accepts a millisecond value. It will populate the memory slot with the configured time format according to the current time plus the requested number of milliseconds.
Added InnerHtml property to user panel labels. This property respects html attributes such as <br> for multi-line labels. The textContent property which is also still available interprets text literally as opposed to interpreting the html.
Added the whitespace css property to all panel components. Note that this property may or may not do anything depending on other css settings.
Additional improvements to line break handling in user button code.
Changed the subscription commands in the device emulator list web page to reduce load with verbose emulators such as Probel.
The data subscription from that web page was making all send and receive data get posted to the web page web socket if the device emulators web page was open. For verbose protocols this caused sluggishness on the web page.
Warning: If you make changes on one browser instance and view on another browser instance or on the back-up server, you may need to refresh the device emulators list web page to see the changes. We have a ticket in place to clean that up but this is better than the alternative for now.
Fixed an issue with the Probel route change code fixed in 1.9.11.49.
If the Probel interface requested a route and then a manual change was done in the pathfinder router to another route and then another manual change was made back to the original route requested by Probel, the last change would not send a route update command to the Probel interface. This is fixed.
Fixed some extra duplicate route change commands that were occasionally being sent to the Probel device emulators.
Fixed a bug with the constructor request of recurring templates not including the full path and therefore not cluster syncing properly.
Warning: This may mean if you have used calendar templates where the template is set to recurring that you should do a manual sync after updating both systems in the cluster to make sure the recurring templates end up in the backup system.
Fixed a bug with the creation of recurring templates using the endproperty twice instead of the start and end property.
This would result in the template showing the same start and end properties if they were configured to be different.
Added some additional code surrounding new line handling in buttons.
Added support for Task 19709.
Fixed a bug where route changes that happened outside of a Probel request were not sending a Probel connection message about the changed route.
Fixed an issue where Probel optimistic mode was not sending an update if the mismatch timeout expired.
Added a RemoveSource property to VirtualMixingRouter router object which allows you to send a source id and remove a source from all destinations in the router that have that source routed to it.
This property is only available in the API view so it is not confused by normal users with the more commonly used RemoveSource in a specific virtual mixing destination.
Added Conversion for task 19476
Added additional parameters for task 19475
Fixed an issue in SapProperty Routers where a source with a value that never changes (fixed) would not push through the correct value after the conversion list was changed
This usually is most noticeable when setting up the fixed source and then editing the conversion.
Fixed issues with pulling certain router data from the database and applying it to newly loaded ios where the values were not being properly encapsulated and de-encapsulated.
This primarily caused issues with SapProperty Router translation conversions with data that had quotes and other special characters but may have caused issues in some other places as well.
Fixed a bug in device emulator regexes where if the end of the regex expression is a close parenthesis, the code would strip that off when creating the regex and it would therefore not work.
Fixed a bug in translator regexes where if the end of the regex expression is a close parenthesis, the code would strip that off when creating the regex and it would therefore not work.
Fixed a bug where the time type (clock/fixed) was not storing to the database if changed as a single property change from the API
Updated the web UI to fix issues with timetype (clock/fixed) parameter submission from the calendar and time editors.
Fixed issues with getting UI TimeType from calendar based timers during the apply sequence.
Fixed numerous bugs around the proper UI application of changes to the timetype (clock/fixed) parameter.
Fixed an issue where NextRaiseTimeIsEndTime property in DateTime and DayOfWeek events was changing but the changes were not being raised to SapV2
This property can be useful to know whether you are in a timer's timespan or outside of it.
Added a RotateSource property to VirtualRouter destinations and SapPropertyRouter destinations. See the Beta Documentation for details.
Fixed a bug with SapProperty Ios sometimes not displaying when the property chosen was from and API properties of the Lwrp Dst object.
Fixed an issue introduced in 17.13.15 where sources for an Imagine LRC router might not load properly from the database.
Fixed an issue where SapProperty source and destiantion recursion events were not being raised in the API.
Modified the aes67 upconvert function for checking against aes67 formatted IOs to upconvert for multicast ranges beyond 239.
Improved the intelligence for upconverting aes67 multicast addresses with partial syntax.
Added additional support for future devices:
Task 19473
Task 19474
Task 19475
Task 19476
Task 19477
Warning: This version includes the same major changes as 1.9.11.44. Please review the release notes for both versions carefully before updating to either.
Added the first 8 characters of the translator or combiner GUID to the hover box in logic flows in order to make it easier to reference the drawn items to the API or backup files.
Improved the loading time of the device emulators data table in the UI when large numbers of device emulators are in a system.
Optimized certain low level collections used throughout the application for small performance improvements. Please report any issues you may encounter do to this change.
Optimized a function that was checking to see whether certain things should run based on the cluster state. This function was using a slower DNS lookup when it should have been comparing against known internal IP addresses.
Removed an internal connection from Generic Emulators that was unnecessary and could introduce latency in certain situations where there were a high number of Generic Emulators.
Added an option to disable recursion checks on a translator. See the Beta Documentation for details.
Warning: Removing recursion checks is not recommended except in very specific cases such as a flow that is based on fader moves. Recursion checks are there to prevent incorrect logic from causing a loop that affects system stability.
Warning: Any translators on which you enable this option will not be loadable by earlier versions of the software. If you enable this checkbox and then downgrade to an earlier version, the flow will not load from the config file into the system. See the Beta Documentation for details.
Changed the recursion detection settings within SapPropertyRouter translations in order to fix a rarely occurring issue which can cause the router translator to become disabled by recursion detection. Review the Beta Documentation for details.
Warning: This version includes a major change to device emulators. It is recommended that a backup of your system be taken and copied off of the system before upgrading to this version. Review the release notes below carefully before updating to this version. This is one of two major changes we have been working on which will require a full round of beta testing in advance of the next release version. This version should be very much considered beta. It is also recommended that both nodes of a cluster be upgraded. Using an older version with this version in the same cluster will cause issues with device emulator synchronization.
This version moves device emulators from standalone executables to threads within the main application. This provides huge memory savings to customers with many DeviceEmulators. As an example, spawning 50 emulators in previous version could consume upwards of 50% of a 4 GB virtual machine. Under the new version we can spin up 300 generic emulators and only consume a couple of percent of ram. This is partially because shared libraries are only being loaded once. This change also provides performance benefits as messages do not need to cross process boundaries. However, this change also comes with some risk. Generic emulators are generic and cannot validate input because of their generic nature. If a bug was to cause the emulator to crash in previous versions, it would be restarted by the supervisor service without affecting the rest of the application. By moving it inside the primary application, there is a risk that an uncaught bug in the emulators would cause the primary application to crash and be restarted by the watchdog. We have added additional error trapping and are in the process of generating additional test applications to catch and prevent such a thing. Since logs were not showing this to be a problem customers were experiencing, we believe the benefits greatly outweigh the risks. But this should be very much considered beta.
As part of the change above, device emulator API commands for creating and destroying device emulators have changed. In an effort to remain backwards compatibility, a function has been added which modifies the new messaging to and from the old format when writing to the device emulator config files. This should allow emulators created with the new version to work if the customer downgrades and emulators created in the old version to work after an upgrade. However, since this is beta software, it is recommended that a backup be taken before moving to the new version in case there is an issue with this translation.
This also means both nodes in a cluster need to be updated to this version or device emulator synchronization will not function properly.
Updated draw functions of router tables in the web UI for better performance.
The router display web pages consist of multiple data tables. By updating the backing data without issuing the draw command on tables that are not currently in view, we get some performance boosts when large numbers of route changes are occurring at once.
Fixed a bug with Probel device emulator generation where occasionally the router selection would not take during the original creation, and you would have to edit the emulator and select it again.
Fixed a bug with the ProbelRemoteSwitcher device emulator where if Tcp Client was chosen, it would not display properly in the data grid even though the client would get created.
Fixed a bug with logging Probel device emulator incoming and outgoing data.
Not released due to an incorrectly placed repository tag. See 1.9.11.44 instead.
Fixed an issue with the "nonavnohead" option in calendars introduced in 1.9.11.41 which was causing the date to disappear from the top of the calendar when executed in that mode.
Note: this version has all of the changes from 1.9.11.41. Please review the Beta Documentation for details.
Added additional functional tests.
Added READY_State and Fader_State properties to the Lwch and Fach objects in Element, Fusion, and Quasar. Review the Beta Documentation for details.
Added the ability to add a range of multicast AES67 ios rather than requiring that each one be added one at a time. Review the Beta Documentation for details.
Fixed a bug with clocks in user panels when the clock is configured with Pathfinder as the source and a specific timezone rather than using the source option.
In some cases this would cause an incorrect timezone offset.
Added a "nonavnohead" option to the calendar viewer web page url to allow a calendar to be displayed with no other pathfinder header or navigation bar. Review the Beta Documentation for details.
Added aux_ret#1 and aux_ret#2 objects to Quasar. Review the Beta Documentation for details.
This requires version 2.1.0 or later of Quasar software.
Added a CurrentChannelNumber property to Gpio router destinations. Review the Beta Documentation for details.
Fixed a bug with Gpio router destinations where switching from a known gpio snake route to a channel number that is not in the audio database would not clear the CurrentSourcePath property making it look like the snake route was still in place.
Fixed an issue where using an audio source path on the Gpio router destination CurrentSourcePath property would convert the value sent to the equipment to the multicast address rather than the channel number
Note this possibility is only rarely used by the api.
Add support for task 18764
Add additional testing tools for internal testing
(From 1.8.11.00): Fixed an issue with LWRP route changes on mix engines where an algorithm designed to prevent an overflow of the command buffer in the engine was introducing more delay than necessary when making large numbers of route changes at once.
Fixed a bug with the new pulsevalue property introduced in 1.9.10.38 where it was repeating the pulse value rather than returning to the original value.
(From 1.8.10.00): Fixed an incorrect calculation of the memory percentage on the system web page.
This calculation was including disk buffer cache which is not actually consumed or unavailable memory.
(From 1.8.10.00): Fixed a bug that was leaking a small amount of ram each time a tcp connection was connected and then disconnected from port 93 of the internal GPIO node.
(From 1.8.10.00): Added code to restart the internal GPIO node if the process dies.
(From 1.8.10.00): Fixed a bug with the list that kept track of port 93 connections to the internal GPIO node that in rare situations might cause the GPIO node application to crash due to the list not properly supporting multi-threading.
Added a pulse property to SapPropertyRouter sources and destinations. Review the Beta Documentation for more details.
Added a pulsevalue property to SapPropertyRouter sources and destinations. Review the Beta Documentation for more details.
(From 1.8.9.00): Fixed an issue with cluster synchronization of licenses when certain time zones were in use.
This is in response to an issue where a backup license was not obtaining the correct license count from the primary server. Log messages showed UTC offset errors. We discovered one place in the code where we were using an incorrect DateTime comparison in relation to licenses which particularly was affected by certain time zone offsets. This should be fixed in this version.
Fixed a bug with ldap login which was preventing the login page from being displayed when the ldap authentication was selected.
Bug was introduced in version 1.9.7.32.
Updated Copyright date on web pages.
Updated date of beta release notes link.
Fixed a bug with the network display and config on the config web page which was preventing nic information from being displayed.
Change the Probel device emulator creation user interface to only display virtual routers in the router list. A Virtual router should always be used with a Probel device emulator.
Added configuration options when the new ProbelGeneralRouterSilence option is selected (added in 1.9.8.34). These configuration options allow you to define the alarm time, release time, and alarm channels used for the dynamically generated silence alarms used by this feature.
Added an option to the alarms user interface to display the normally hidden dynamic alarms (Display Dynamic).
Optimized the population of the alarms list for situation where large numbers of alarms exist.
(From 1.8.8.00): Fixed an issue where the AUDIO_MODE property of VMODEs was set to read only when it should be read/write. The property should now be available as end points in logic flows.
(From 1.8.8.00): Fixed an issue where the FpStatPollRate property could not actually be changed.
Additionally made a change where assigning an FpStatPollRate value of 0 (or any value under 100) would stop the polling of FpStat data.
To retain the setting between restarts, use the Advanced Options.
Note that advanced option changes require a restart to take effect.
Fix an issue in the API parsing with odd numbers of quotes inside an encapsulation.
This could sometimes cause issues with messages when (for example) a regex required a double quote without its matching double quote inside a parameter value.
Fix and issue in the API where property parameters that should include a backslash followed by a quote should use encapsulation.
Warning: The two API fixes above required making changes to the fundamental parsing of all Sapv2 messages. Unit tests and other initial tests indicate these changes are working properly, but please report any issues you may encounter. While these same issues exist in the release branch, the rarity of occurrence coupled with the nature of the fix means we are only applying it in beta versions for beta testing at this point in time.
Warning: This version contains the same major updates of the underlying operating system, framework, and web packages from 1.9.7.32. However it reverts some of the web packages to a previous version due to page load problems as described below. Please report any issues you may encounter.
Added additional extended commands to the ProbelGeneralRouter device emulator type for IOs above 1023.
Added ProbelGeneralRouterSilence Device Emulator Type.
This is the same as the ProbelGeneralRouter device emulator type except that it switches the response for destination names to express silence data instead.
Some unique systems have been developed to use these commands to allow silence alarm data to be passed over the protocol.
Note that this automatically and dynamically generates silence alarms for all audio destinations found in the virtual router that is linked to the emulator. These alarms are hidden in the UI to maintain attention on the normal alarms. But they are available for review using the API.
This is still very much a beta feature. Please report any problems you encounter using it.
Reverted some of the web packages for things like data tables to the version from 1.9.7.31 due to problems loading pages.
The updated packages were sometimes causing the page load to error and leave a red NIC x. Refreshing the web page would usually fix it, but that was cumbersome.
Reverted those packages until we have time to explore deeper.
This was especially obvious when trying the edit virtual router base IOs.
Minor change to security audits during automated builds of the web pages.
Fixed a bug with SapProperty Sources and Destinations when constructed with the conversion list as part of the constructor.
The conversion list would get created but not transferred to the underlying translator object leaving it in a *=* state.
This primarily affected changing an IOs base property, but might also affect cluster synchronization such that a synchronized IO might have needed a restart on the secondary node before it's translation behaved correctly.
This only affected translation at the source or destination level not the router level.
Fixed the message that was being sent for IN_SELECT External from EXTERNAL to EXT.
Added NONE as an option for IN_SELECT properties.
Warning: This version contains major updates of the underlying operating system, framework, and web packages. Please report any issues you may encounter.
Changed the floating IPs to use a unicast mode of communication between the nodes instead of multicast.
Some switches which are configured to to use VRRP have been reported to pick up on the multicast VRRP traffic and then choose the Pathfinder IP as the network router. We have not had this happen in Cisco switches but in at least one other brand. As a result we have changed floating IPs to use a unicast method of VRRP instead.
There is an option to switch this back to the multicast method used by previous versions by changing a parameter using the API:
SET System#0.FloatingIps#0 UseUnicast=False
Changing this parameter requires a restart.
Update Floating Ips so that they do not log VRRP traffic that is unrelated to their Ids.
Previously this could cause large amounts of log traffic and fill up the system messages log if there was other VRRP traffic on the network.
Remove syslog-ng in favor of the syslog daemon built into the core OS.
Previously in rare cases the two may have been conflicting and making it difficult for the system to roll the messages log properly.
Update the Operating System to the latest version of all packages for security, feature, and performance reasons.
Update webpage packages to the latest versions for security, feature, and performance reasons.
Update the Pathfinder code framework to the latest version for security, feature, and performance reasons.
Warning: Changes had to be made to the build container used to compile the beta branch of PathfinderCore PRO. While these changes should have no effect, there is always a chance something will compile and behave slightly differently. Please report any issues you may encounter.
(From 1.8.6.00): Fixed a bug with the internal GPIO node where clearing a route on a GPIO would not reset the pins back to high.
(From 1.8.6.00): Fixed a bug where the internal GPIO node was responding with a change message in Lwrp even if no pin state changed.
(From 1.8.6.00): Fixed bug when changing properties in the user panel properties list by clicking on the name column.
Clicking on the name column rather than the value property would sometimes not cause the metadata in the translation properties to update properly. This would mean clicking on the active translation afterwards would present the previous item's drop down items.
(From 1.8.7.00): Fixed issues with cluster synchronization of the Internal GPIO node's pin states.
In some situations double pin entries would be expressed in some of the nodes. While this should be benign, in some external use cases, it was causing unexpected behavior. Work was done in this version to try and address that issue.
(From 1.8.7.00): Updated the build container used to build the product.
Fixed a bug introduced in 1.9.5.28 that was not allowing UDP listener type generic emulators to get created.
Added support for SCTE35 descriptor filtering and ingest to SCTE35 reader devices.
Fix an issue in the user interface for property groups where a change to the case sensitivity field would not activate the apply button.
Add the interval field back to the synchronization type property group as it is relevant to that property group as well.
Fix Synchronization Property group as it was not functioning properly after its introduction in 1.9.0.01.
This now behaves the same as the redundancy group as far as the state is concerned. However, any change to any item will cause the same change to be applied to all items in the group.
It is important to note that during a startup of PathfinderCore PRO, if the items are not already in sync the last one queried will be used.
Also if you restart a device and it comes back with a different state than the rest of the group, its state will generally be chosen as it has the last relevant state.
Added SynchronizationMaster group type.
For this group, instead of the state of any item initiating a change, the group has a MasterValue property which defines the state of the items in the group. Review the Beta Documentation for more details.
Warning: This is very much a beta feature as is Property Groups in general. Please report any issues you may encounter.
Updated the udp client used in generic device emulators to force the use of the axia nic if trying to send a udp message to 239.192.x.x.
Please note that full support of multicast does not exist in generic emulators at this point in time as group joining is not implemented. However in some situations one can still send a udp message to the multicast group. By default, the message will respect gateway assignments and therefore multicast messages will be sent out whichever nic has the gateway assigned to it. This patch forces just the axia 239.192.x.x addresses to use the Aoip nic.
Fix a bug in the user panel designer that sometimes populates the translation drop down lists with data from the previous property.
This primarily occurs when clicking the name of the property in the property grid instead of value column.
Added some code to the Scte35 reader device type to handle variations on the json messages.
Newer versions of the SCTE35 Reader (0.7.0 and later) wrap pid, pcs, pts, and program data in an additional packet_data structure.
This version parses that while still working properly with the older data structure.
Fixed a bug with restoring the LDAP settings and whether to use them.
This version has all of the changes from 1.9.5.25 as well.
Please review the Beta Documentation for details on 1.9.5.25.
Warning: The changes in this version are very much beta changes. Please report any problems you encounter.
Added options to the restore dialog when restoring backup files.
These options allow you to exclude certain settings from the restore operation such as IP addresses, security settings, email settings, etc.
Please review the Beta Documentation for details on this change.
Warning: The changes in this version are very much beta changes. Please report any problems you encounter.
Fixed a bug in SapProperty Routers with the destination translation added in version 1.9.1.08.
There is a validation function that validates the final value as allowed for the type of destination property being used. This function was analyzing the value prior to the final destination translation. Therefore in situations where the value was specific in the destination (for example a gpio pin state) and the translation was taking place at the destination rather than the source or router level, the change might be denied when it should be accepted.
To fix we are now validating after the final destination translation stage.
Fixed an issue where a route change was re-triggering all of the destination translations which the new source was routed to rather than just the destination whose route was changed.
Fixed a bug in SapProperty Router Destinations which in rare circumstances could create an endless loop.
The destination's map point changes were being fed back into the current value change in addition to what was coming from the source property in the router which was incorrect.
Added Infinity MP-16b and DS-16b device types as well as the support in the UI for these devices' front panel remote control protocol.
Moved the timer initialization of combiner inputs to start after a full load of the flows is done and the initial external get requests are sent
This is to fix a race condition in large systems where a cascaded combinerinput (especially on NAND) might initialize and try to set state before the source or target was ready.
The result of this race condition was translators after the combiner which would not have an initial state after a start of the system until the inputs changed.
This was generally only seen on combiners whose "Raise Output" setting was set to "Raise Output on Change".
Added support for the HP202 FaderControlEnable property (FAD_CON_EN:0/1).
Note: This is untested as we do not have an HP202 to test against.
Fixed a bug with the Infinity Front Panel work where key zero was sending the wrong identifier to trigger the reply button.
Added additional log items for SCTE35-Reader devices in the logging tree for more intuitive, targeted, and less verbose logging options.
Fixed a bug introduced in 1.9.5.18 which was preventing proper device login.
This would prevent route changes and most other device based changes to work properly.
1.5.8.18 and 19 were pulled from the site because of this bug, but this version still has the feature changes and bug fixes documented in 1.9.5.18, and1.9.5.19 so review the corresponding release notes and beta documentation.
Warning: Temporarily removed from site due to a possible bug
Fixed a bug with the constructor response which was preventing new infinity device from clustering properly.
Bug introduced in 1.9.5.18
This version also has all of the changes from 1.9.5.18, so please review the release notes and beta documentation for 1.9.5.18.
Warning: Temporarily removed from site due to possible bug
Adds support for the Infinity front panel remote control protocol.
Please review the Beta Documentation to understand the new features in this build.
This protocol only exists in Version 2.0 and later software versions for Infinity panels and Infinity VIP.
This change adds web sockets as device connection ports and therefore makes changes to a number of places in the code that handle device connections.
Please report any bugs you may encounter and/or be prepared to roll back to 1.9.5.17 if issues arise.
(From 1.8.5.00): Fixed a bug with subscriptions in logic flows where the need to subscribe/unsubscribe was being counted per object flow and property, but the actual sub and unsub was only using the object.
When multiple flows used different properties on the same object, the removal of one of them could cause the whole object to get unsubscribed and the remaining flows using start points on that object to stop functioning until a reboot occurred.
This occurs during flow editing and not spontaneously on a running system.
This bug has probably existed almost since the beginning of PathfinderCore PRO and may explain a number of anomalies systems integrators have reported when first setting up flows at a site.
(From 1.8.5.00): Added code to handle input and select box change events when the change is the same as the last requested change but might not actually be the current value.
Previously this condition would not issue a change command.
(From 1.8.5.00): Fixed a bug with the gpio node where if multiple ports had the same multicast channel number only one would be returned for processing.
This could lead to only one port firing or none if the one returned was in the wrong mode (Node/Console) to fire.
(From 1.8.5.00): Removed a logging message regarding udp buffers that was an unnecessary holdover from debug testing and was displaying in the supervisor log.
(From 1.8.5.00): Fixed an issue where when a SapProperty router source or destination was tied to a different route point, a lock recursion error could occur in the logs during loading.
This was because the sub object also was trying to be mounted.
This fix addresses that problem and prevents the write lock recursion log messages.
We do not think this additional mounting attempt was causing any other issues other than the additional log messages.
(From 1.8.5.00): Fixed an issue where SapProperty sources and destinations were trying to be added to a lookup table where they were not needed.
This was causing log messages about trying to add duplicate sources and destinations
We do not think this was causing any issues other than the erroneous log messages
(From 1.8.5.00): Fixed a spot in the code where logic flow folder creation messages might get created in the file system with a message that was missing the trailing LogicFlowFolder in the object path
This appeared to be benign as the folders still loaded.
(From 1.8.5.00): Added code to correct for init messages in logic flow folder init files if they were missing the trailing LogicFlowFolder in the object path.
In cases where it was a first level folder, this was causing a constructor parameter list error in the logs trying to create root level logic flows.
The error appears to be benign but this should fix it.
(From 1.8.5.00): Added an exception for the device emulator log message about redirecting the initial id message as it is expected message.
(From 1.8.5.00): Downgraded the "Setup and Startup from connection function complete" log message to debug state as it is not informative in normal logs.
(From 1.8.5.00): Cleaned up the "deviceid branch not found" log messages as they are expected and not informative.
Fixed an issue where the advertisement service could start advertising before the floating ip was available and advertise the wrong ip address for the gpio node.
The advertising daemon now starts and stops with the floating ip address when it is enabled.
Warning: Please review the changes below in 1.9.4.15 as those apply to this version as well.
Fixed a bug from 1.9.4.15 where the two checkbox options in the Virtual Routers Advanced button dialog were not cluster synchronizing.
Warning: The changes in this version affect how source to destination assignment calculations work in virtual routers. While these changes should not affect normal virtual router utilization, this version is a beta version so please report any issues you may encounter. Please also carefully review the Beta Documentation for details on these changes.
This version changes the logic behind how base points in a virtual router are treated when transitioning to enabled or disabled.
This version adds an additional option to the Advanced option in Virtual Routers called "Send route changes to disabled destination base ios".
This option defines whether disabled base ios will receive route change commands when the virtual router requests a new source for the destination.
Please review the Beta Documentation for details on the changes in this version.
Fixed an issue introduced in 1.9.3.13 which broke SapProperty value passthrus in certain cases where each source value change was the same.
As an example, if the destination was a latching memory slot and the translation repeatedly sent a true value to the trigger property, the result when get stuck in a single state.
Fixed an issue where deleting and recreating a source in a sap property router could show the route as taken but not work until you clear and re-take it.
Changed io editing in SapProperty routers so that if the select button is pushed but the name, description, or property definition is not changed, a change is not issued.
Previously it would delete and recreate the source or destination event though nothing had changed that warrented the re-creation.
Changed io editing in SapProperty router so that if a destination change requires a delete and recreate, the web page will now re-establish the original route instead of rendering the route blank.
(From 1.8.4.00): Fixed a bug which was introduced in 1.8.3.00 with the internal GPIO node where pulse messages (DURATION) would cause additional pins on the port to flip state.
(From 1.8.3.00): Fixed an issue where SapProperty memory slots might not subscribe to changes and get their initial state from their underlying properties after a reboot.
The subscription message was being sent before the internal connection to the SapMessage engine was being set up. This is now fixed.
(From 1.8.3.00): Fixed an issue with the internal gpio node where it would accept pin state letters other than l, h, and x.
(From 1.8.3.00): Fixed an issue with the CMD option in the internal gpio node when used in a cluster.
Using the CMD command on a gpio pin would cause a message to bounce back and forth between the Pathfinder internal gpio nodes in the cluster. This is now fixed.
Added a delay option to SapProperty router sources and destinations. See Beta Documentation for details.
Updated Linux open file limits which includes socket connection limits for the main Pathfinder applications and webserver application.
Updated the max connection limit for the web server to handle more connections now that web sockets are being proxied through the web server for security and port simplicity reasons.
The previous limit was causing systems with many simultaneous user panels and/or user panels with other embedded panels to max out the number of connections the web server was allowing. This should be fixed in this version.
Fixed a bug with the new user panel clock changes in 1.9.2.10 where the time zone setting and clock source setting could not be changed via a logic flow or panel binding.
Changed the section header in the user panel analog clock properties from style.default to style.classic in order to match the clock style naming.
Added code to auto detect the number of vmixers and vmodes an engine provides.
IPort HD has 16 vmixers and 16 vmodes but presents itself in the Lwrp VER command as a standard ZiPort. As a result, PathfinderCore PRO was only showing 8 vmixers. This version uses the Lwrp DST objects to sense that additional vmixers and vmodes exist and adds them to the system.
The changes to enable this detection required modifying a fair amount of code surrounding the discovery, population, and obtaining of the initial state of lwcp objects. It should be considered beta. Please report any issues you may encounter so we may address them promptly.
Updated javascript packages to newer versions for security and performance reasons.
This is a major change which required modifying the web page code in a number of places.
Please report any issues you may encounter.
Added the ability to select a time source and/or time zone for clocks in user panels.
Added the ability to change the display format of the information presented by digital clocks.
Added additional styling options for the analog clock when in the default/classic style.
For details on these additional properties, please review the Beta Documentation.
(From 1.8.2.00): Updated the build process to work better with the Telos Alliance continuous integration pipeline.
(From 1.8.2.00): Added code to prevent a double entry which sometimes occurred after dropping a new event onto a calendar and then switching views.
(From 1.8.2.00): Fixed an issue where recurring events set to Saturday were not displaying on Saturday in the calendar.
(From 1.8.2.00): Fixed a bug with the timer list display where it was not always showing the correct state of timers without a browser refresh.
Added the transform-origin css property to user panels.
Added code to the simple tree to provide easy access to SCTE-35 reader device entries.
Fixed hh:mm:ss in received message's break duration from SCTE-35 reader to use rounding rather than floor.
Fixed a bug with DeviceEmulators that was not clearing subscriptions requested by a single client after that client disconnected.
Fixed a bug with log writers where the writer's subscriptions were not being cleared when the entire log writer was removed from the system.
Added LastSent and LastReceived as properties of device emulators.
Note that these properties require explicit subscriptions and will not report back by just subscribing to the object. This is to improve performance when they are not needed. Additionally LastSent will not raise anything if there are no clients connected to send to.
eg: sub DeviceEmulators#0.GenericEmulator#MyEmulator LastSent
eg: sub DeviceEmulators#0 LastSent $MAX_DEPTH=-1
The LastSent or LastReceived property must be explicitly requested in the subscription request to activate the subscription.
Added log options for the SCTE-35 reader device so that issues with the device may be logged in Pathfinder if the device is added to Pathfinder's device database:
Error Received: logs video stream processing errors.
LastLicenseHeartbeat: Logs successful/failure states of licensing heartbeats within the readers.
Licensed: Logs the license state of readers.
Packetrate: logs changes in the video stream packet rate reported by the reader device.
ProcessRunning: logs changes in the reader processes within the device.
SpliceMessagePropertyChanged: Logs received properties from a splice message.
SpliceMessageReceived: Logs that a splice message was received.
SpliceMessageTriggered: Logs that a splice message was triggered at the appropriate time.
SpliceReceived: Logs json data received from a splice message.
Added Device Emulators to the logging options.
Warning: Enabling logging of highly active polling based device emulators may increase traffic and have an impact on performance.
Connected: Logs the whether any clients are connected to the device emulator.
ConnectedCount: Logs the number of clients connected to the device emulator.
LastReceived: Logs the last chunk of data received on the device emulator.
LastSent: Logs the last data sent on the device emulator.
Watchertriggered: Logs whenever a watcher is triggered.
WatcherTriggeredValue: Logs the value that caused the watcher to be triggered which is particularly useful for regex situations.
Added the system item $REQUIRED_IN_OBJECT_PATH which allows subscriptions and get commands to specify common properties but limit the response or subscription to object paths with specific data.
Added SapProperty Router destination sends to logging options.
DestinationMessageBeingSent: This allows logging of the final translated SapMessage value generated by a SapProperty router destination after all stages of translation.
Added RestApi logging options:
LastSent: Logs the last sent Rest API message.
ResponseCode: Logs the html response code for the last Rest API message that was sent.
ResponseData: Logs the html response data for the last Rest API message that was sent.
ResponseSuccess: Logs whether the last Rest API message was successful.
Fine tuned the logging parameters to reduce log messages caused by clear states on certain momentary properties.
(From 1.8.1.00): Fixed an issue with timers where the new end date/time in date time and day of week timers was not being updated to the new offset after a daylight savings time shift.
(From 1.8.1.00): Fixed an issue where when time jumps from before a dayofweek timer event to a new day, that could cause the event to raise last raised repeatedly when it executes.
(From 1.8.1.00): Fixed issues with generic emulators that use UDP client and UDP listener.
In some cases the UDP client would stop sending data after a failed attempt.
Additionally this version adds a local port to UDP client for bi-directional communication.
This change is cherry-picked from 1.9.0.03.
This was already in the 1.9.x.xx branch from 1.9.0.03 but represented here as part of the patch version and merge.
(From 1.8.1.00): Reworked syslog log writers to use the new UDP client changes from generic emulators
This fixes an issue where the UDP log writer might stop sending data to the syslog server after it fails to send a few messages.
There is a possibility once that stoppage happened that the UDP client might also leak a small amount ram.
These issues with UDP syslogs should be fixed in this version, but the fixes did require overhauling the UDP client technology so report any issues you may encounter.
(From 1.8.1.00): Fixed an issue where None sources as base points pointed at a virtual router base point might not clear properly due to an incorrect ordering of the destination base point return.
(From 1.8.1.00): Fixed an issue where some LWCP messages were bypassing logging options when Lwcp message logging was enabled.
(From 1.8.1.00): Added code to skip source list polling on Qor versions earlier than 2.4.0.2 in order to prevent triggering the source list query memory leak in Qor software earlier than that version.
Updating Qor to 2.4.0.3 or later is recommended to regain the best functionality with PathfinderCore PRO.
(From 1.8.1.00): Modified the compilation and build procedure to be more inline with the continuous integration process of other Telos Alliance projects.
(From 1.8.1.00): Added some code to streamline event data changes in a calendar in the scheduling system.
Added the ability to do translations at the source and destination level of a SapProperty Router in addition to the router level.
This allows customizing the value output according to the specific source or destination as opposed to only allowing a router wide translation.
Review the Beta Documentation for this feature to fully understand its use and implications.
Fixed a bug with LDAP login where after clicking the logout button, subsequent logins would just redirect back to the login page.
This was because the logout button would set the queried page to login.php. Therefore the successful login would try to open that page. Now it will open the system status page. If other pages are requested which require passing through the login page for access, the successful login will still redirect to those pages.
Fixed a bug with white list range editing where you could not edit and change the security user associated with a white list range without removing and re-creating the range.
Fixed a bug with white list range editing where the editor dialog would not show the current user in the security users drop down.
Added an option to query multiple Base DN groups when using LDAP Authentication.
Please review the Beta Documentation for details regarding this feature.
Please note this this a beta feature so please report any anomalies this change may produce with the LDAP functionality.
Also note that the syntax of adding multiple entries will not be recognized by previous versions of the software. Therefore if you use this option, downgrading may lock you out of the system due to the inability to authenticate against LDAP. Use the reset security options from the front panel if this occurs.
Fixed a bug with the new white list feature introduced in 1.9.0.05 where new whitelist range entries were not being synchronized across a cluster.
Note: This version also contains all of the features of 1.9.0.04 which was removed from the site due to a bug. Please review the Release Notes and Beta Documentation for that version as well.
Fixed a bug introduced in 1.9.0.04 which broke routing on Axia Audio routers as a side effect of the gain in dB work.
Added support for white listing ranges of IP addresses which would not require a login.
These white list ranges will use a user security profile assigned to the white list entry for permissions.
All entries in the whitelist must use CIDR formatting.
Please review the Beta Documentation for details regarding this feature.
Warning: This version has been removed due to a bug in audio routing. Please use 1.9.0.03 until we get a patch generated. Release notes left as the feature changes will also be in the next version.
Warning: The additional dB properties described below required touching quite a number of classes and their requisite change methods. Please report any issues you encounter.
Added additional properties to parallel gain based properties to expose values as decimal based dB in addition to the protocol native integer based tenths.
Changed the backing variables for numeric memory slots to use decimal rather than integer so that decimal values are possible.
Please review the Beta Documentation for details regarding these changes.
Warning: The UDP code for Generic Emulators was largely recrafted to make the changes in this version. In some cases minor changes were also made to shared code that handles IP communications including with TCP. Please report any issues you encounter.
Fixed issues with generic emulators that use UDP client and UDP listener.
In some cases the UDP client would stop sending data after a failed attempt.
Additionally this version adds a local port to UDP client for bi-directional communication.
Please review the Beta Documentation for clarifications regarding these changes.
This version adds Livewire advertisement as an option to the Virtual Gpio node in PathfinderCore PRO.
Using this feature requires a Floating IP address.
Please review the Beta Documentation for this feature before attempting to enable the feature.
Note: This version has major changes relative to the 1.7 and 1.8 versions. Please review the release notes and extensive Beta Documentation carefully.
Major updates to the operating system including Linux kernel, system logging, Linux OS, web server packages, and underlying frameworks.
Please report any problems you might experience as this is a major update.
Moved web socket ports to share the http/https port rather than require additional open ports.
Added a new security section for managing open ports, encryption, and authentication options.
Added an optional external authorization license to handle LDAP user authentication.
Added Floating Ips to allow additional IP addresses that float between nodes of a cluster.
Added Property Groups to manage redundant properties and properties that need to be synchronized.
Changed the internal GPIO node to listen on all nics to make better use of floating ips.
Added support for SCTE-35 reader device.
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.
See Version Numbering for details.
Updated the manual link to version 1.6 of the manual.
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.
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.
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.
Note: This version is the last in the 1.7 beta branch before 1.8 release. Please use the selector in the upper left corner of this documentation to switch to the desired software version to see additional release notes and features.
Warning: This version introduces a change which applies only to newly factory built Pathfinder Core PRO units on the AE-2000 (2021) platform which ship from the factory with 1.8 software on them. In an effort to bring all products that use this platform into alignment, the left and right nic will be switched as to which is the AoIP/Livewire port and which is the Office port. This will not affect any units in the field or previously shipped units and updating units to this version of the software will not change your ports. Newly built units will have a flag generated during the production process that indicates this change. Systems integrators who are used to having the nics the way they previously have been should take note when new units start arriving.
Added code to the NIC analysis script on startup that looks for the presence of a file generated during production that indicates that the Right NIC looking at the back of the unit should be the AoIP/Livewire NIC and the left one should be the Office NIC.
This only affects newly built units on the AES2000 (2021) platform shipping with the 1.8 software pre installed.
Fixed an issue with an incorrect factory default DNS addresses.
By default PathfinderCore PRO ships with Google DNS addresses
It is recommended to change that as your IT department recommends
Added a ReconnectLwcpVx write only property to the VXEngine device type for triggering a reconnect of the LwcpVx connections and used that in the device recycle icon in the devices list.
Fixed an issue that was causing some LwcpVx connections not to recycle after a loss of connection.
Fixed a bug with the console monitor object when pointed at Qor, iQx, and iQs consoles that would cause the studio selection option to only display PGM1 as an option.
Fixed a bug where the time clock was not advancing on the full console widget.
Fixed a bug with the countdown clock on the full console widget not working.
See Important note below to enable this functionality.
Fixed a bug with the countdown clock not displaying the run button if the automatic mode was enabled on a Qor, iQs, or iQx console.
Fixed a bug with the console fader component where if you are dragging the touchbar and release the mouse while over a disabled button, the touchbar would remain captured.
Important note: This note only applies to the full console component as opposed to the individual section components. The fixes for the countdown clock on the full console component required the changing of object types and the addition of clock parameters which must be enabled for it to work. New console widgets dragged onto a panel will work by default, but in order to get an existing console's countdown parameters to work, remove the console component from the panel, save the panel, and then drag a new one on and save again. You have to save without the original console component before adding the new console component and saving again.
Added heartbeat and fader source list polling to lwcpss connection to detect a failed connection sooner.
Changed property decoration on the lwcpss source object's id, nextid, and name properties to display a list of source profiles in the logic flow property value helpers.
Added lwcpss into the connections that get recycled through the device list recycle icon.
This build represents a merge of the beta branch into the master branch in preparation for a new release.
Fixed some device handling around iQs.
Completed task 15330.
Fixed an issue with numeric memory slots where negative values cannot be used in the range (i.e. -1-10 or -10--1)
Fixed an issue where fusion and quasar engine did not have console_type, console_ip, and audio_mix_mode properties available.
Fixed an issue where fader lwcp sanity polling was not always working properly
Added src_list to the fader poll in order to pick up changes in the source profile list
Fader polls go through each fader in approximate 30 second intervals, so it might take a while before new profiles appear
If they need to appear quicker, recycling the device connection can force a re-query.
Added a timer for consoles which 60 seconds after reconnect will requery the fader src profile list for each fader at 500ms intervals.
This handles the situation where the console allows lwcp to connect and be queried before the source profile lists are loaded.
Update saconsolefader when used with iQs to match iQx.
Fix a bug with instantiating numeric memory slots when including both a value and a range.
This was causing the creation not to take place without creating it without the range and then editing to add the range.
Fix an issue with various console components which use metering not being able to derive the correct metering point when the control device and engine device are separate such as with quasar.
Use the control point (as opposed to the io point) for these situations.
Fixed places in the web user interface where ShowProfID case sensitivity was incorrect which could potentially cause additional items to show up in the logic flows tree.
Added code to force any instances of ShowProfId to ShowProfID.
Fixed an issue in virtual routers that was preventing the source packages with more than one None from presenting properly in the web UI.
Added the iQs device type to devices.
Exposed the livewire channel and a few other properties in Axia Audio Sources to the API view.
The changes below have had minimal testing at this point in time.
This version makes some modifications to aes67 source routing when applied to mix engine vmix fader inputs.
Proper AES67 Lwrp syntax in the Mix Engine and Power Station is only applicable to VMODE. However if the stream in question matches the normal livewire UDP settings of 24 bit, 2 channel, 48Khz and is within the livewire multicast ip range on UDP port 5004, it may be used on vmixers. This version alters the Lwrp messages to support this:
===Sending===
If route attempt requests an AES67 source.
If the AES67source is fmt type (instead of sip) and the destination is of type VMIXFaderIn and the fmt type is ";fmt=L24/48000/2":
If the multicast range starts with 239.192. or 239.193. and the port is 5004, then send multicast address only to the ADDR field.
If the multicast range does not start with 239.192. or 239.193. or the port is not 5004 then use mcastaddress:port.
This may not be accepted by the engine at this point in time.
If the AES67source is not the ";fmt=L24/48000/2" type or the destination is not of type VMIXFaderIn then send the full AES67 format style message.
This will be accepted by the engine for VMODE but likely not for VMIX at this point in time.
===Receiving===
Attempt a normal lookup in the source address hash table based on what is in the ADDR field first.
If that fails:
If ADDR has fmt and/or sip, then do nothing else as the correct lookup has already occurred.
If we receive address:port in the ADDR field with no fmt and no sip, then upconvert the message format to AES67 full format by appending the ";fmt=L24/48000/2" and try the lookup again.
If we receive address with no port and we have not found anything, then upconvert to the full path by appending the ":5004;fmt=L24/48000/2" and try the lookup again.
Note that this introduce additional lookup attempts if the address field contents are not known in the first lookup which could theoretically have some minimal performance impact.
This version fixes an important bug introduced in 1.7.13.15 which prevented the editing of virtual routers.
Fixed issue created by the none source routing work in 1.7.13.15 that was breaking the ability to add virtual Ios into a virtual router.
Fixed an issue where adding None source base points into a virtual source package would not actually clear the route since the None source path has no IO type.
This fix moves none sources into the correct IO type package in the correct order when getting the ordered source list.
It accomplishes this by looking at the iotype of equivalent orderindex in the destination package.
This means using None sources in a virtual source package requires matching the orderindex between source and destination.
Added active_layer property to the Quasar Appcontrol object which accepts values of 1 to 4.
This allows monitoring and changing the active layer in Quasar.
Panels that have been edited using 1.7.13.15 should be edited again and resaved due to the bug described below.
Fixed a bug introduced in 1.7.13.15 that was causing the link to the theme css file for user panels to be incorrectly stored in the panel as an absolute address with the ip address of the saving host.
This would break panel displays in a cluster if the machine that stores the panel was not active.
This may also break panel displays if DNS or NAT was used.
To fix this edit any panel you edited under 1.7.13.15 and click save again to reset the link to a relative link.
Fixed a bug introduced in 1.7.13.15 that was causing the panel title in the browser tab to show a fixed panel name of iQs rather than the correct panel title.
Fixed a bug introduced in 1.7.13.15 that was causing the None source selection for virtual routers in the route table take list to report no source selected.
Fixed an issue where scheduling system templates were not synchronizing across the cluster correctly if the Assigned By Resource checkboxes were enabled.
Warning: This version represents a feature freeze of the beta branch in advance of a 1.8 release.
Bugs will continue to be addressed during the final beta period in the 1.7 branch until we release as 1.8. New features will be created in a new 1.9 beta branch.
From 1.6.13.00: 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.
From 1.6.13.00: 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.
From 1.6.13.00: Removed an error message from the logs regarding the failure to remove meters from a lookup collection that is not actually an error.
From 1.6.13.00: 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.
From 1.6.13.00: Fixed an issue with the userpanels xy grid and locks with virtual routers.
From 1.6.13.00: Added code to decode ampersands properly in userspanel properties that use url as their property type in the property grid.
From 1.6.13.00: 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.
Added a dark theme to user panels.
Modified the user panel's monitor section control to dynamically adjust its control layout when used with Fusion or Quasar in addition to its current ability to be used with Qor/iQx.
For Fusion this requires Fusion software version 3.2.1.28.
Added a Quasar style to user panel analog clocks and countdown timers.
This style is the default when the dark theme is chosen.
Added an advanced option to specify the theme to use for new panel creations.
SET UserPanels#0 DefaultTheme=default
Requires a restart to become active.
Added a full console control to user panels.
Made console fader controls dynamically use the Lwcpss metering when an iQs control point is chosen.
Added a fader dock control to user panels.
Added a program buss metering module control to user panels.
Added a Qor/iQx fader processing module to user panels.
Added swap to mon talk_stud and mon cr_pvw properties.
Added Lwcpss meters as an option in the metering service.
sm LwcpSs 172.16.1.89/ch#1
sm LwcpSs 172.16.1.89/pgm#1
Added some code to set meters to -1000 if we get a DST ADDR:255.255.255.255 or ADDR: message in order to clear a meter when an engine resource gets unrouted and then disappears from the engine.
Added a pollingpaused property to the meter data which stops sending messages to the mix engine on a DST that has an ADDR of 255.255.255.255 since the engine removes such a DST from the DST list and will start responding with error1000 messages.
Fixed an issue where engine meters were getting hung when the destination changed to a none source.
Added consistency to how virtual routers and sap property routers report CurrentSource and CurrentSourcePath when a none source is routed.
CurrentSource now reports 0 rather than no entry and CurrentSourcePath always reports :// and uses those as the entries for that IO in logic flows for correct matching.
Warning: This could be a breaking change if your flow is specifically looking for empty string for CurrentSource for virtual routers.
Fixed an issue where sap property routers were not presenting none and previous in the api source options.
Fixed other places related to the virtual router where source path for none was being replaced with a full path.
Fixed a bug where SapProperty sources and destinations which have another IO as their target might generate recursion mount error messages in the logs
Changed MountComplete to be true only if the underlying mapping either does not require mounting to be mount complete or has achieved mount completion.
Update javascript packages.
Added a logout link to all web pages.
Fixed a bug with calendar viewer not being able to display recurring events.
This was broken as of 1.7.6.08.
Fixed a bug where it was not possible to change a template type from one time to recurring.
Fixed an issue with bank updating that prevented bank updating from working over NAT or DNS.
Enforced route tables showing blank source io if the source io is 0.
Cleaned up presentation code for sap property routers for none routing.
Added code to allow None to show up in the available options for base io imports to virtual routers.
This is useful when you want to create a virtual source that only clears part of the underlying multiple base points.
From 1.6.12.00: 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.
From 1.6.12.00: 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.
From 1.6.12.00: Added code for user panel countdown timers in countdown mode to display 0 if countdownlength minus elapsed milliseconds is less than zero.
From 1.6.12.00: 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.
Improved the Delay combiner performance when it is tripped multiple times within the delay time.
The multiple instances of the delayed task were being created in a limited pool which could cause laggy behavior in rare situations.
This has now been changed to use a more optimized task delay mechanism.
Similar changes were also made to timers in the UserPanel property, panel, and Countdown Clock as well as in a memory slot write function.
From 1.6.11.00: 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.
From 1.6.10.00: 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 prior to this version the \%XX pattern for escaping hex binary bytes in the generic emulator client was limited to the ascii range (bytes 0 to 127).
While this version now supports \%00 to \%FF, a true binary client is planned for the future.
From 1.6.9.00: Fixed an issue where generic emulators set to TcpClient mode were not raising connected change events.
From 1.6.9.00: Fixed Connected property for Device Emulator listeners so that it will be true if at least one client is still connected and False otherwise.
From 1.6.9.00: 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.
From 1.6.9.00: Fixed Generic Emulator ConnectedCount not displaying the correct count and not changing when tcpclient is selected as the connection type.
In Html5 User Panels, made the box-sizing css style available in all elements.
In Html5 User Panels, made the text-align and line-height css styles available in labels.
Note that centering text vertically in a label can be a bit finicky in html labels.
Using the line-height style can help with this by setting the line height to the same height as the label or half that height if two lines will be displayed.
Added a PingMessage and PingInterval field to Generic Emulators.
When using a tcp client connection, connection drops are detected automatically if the remote device properly closes the connection.
However in the case where the device loses power or closes the socket unexpectedly, we may not know that until the next time we try to send a message.
These properties allow you to define a message and interval to send that will make sense to the remote device and will allow you to be sure the connection is still good.
Added an hp202 object with a ConsoleIp property to the hp202 device and hooked up the initial sync command as well.
Note that because we do not have an hp202 for testing, we cannot be certain this feature will work and need hp202 users to test it and provide feedback.
From 1.6.8.00: 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.
From 1.6.8.00: Fixed a bug where the disabled property on Html5 user panel buttons was not being respected by touch actions on touch screens.
From 1.6.8.00: 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.
Made mon object's hp_vol, cr_vol, pv_vol, and st_vol read/write instead of write only now that the fusion/quasar code supports it.
Added the button-panel-background-color property to the Html5 user panel saroutingmatrix control.
This can be used to change the color behind the clear/take/etc buttons.
In order to make this background transparent, shift click to manually enter a value in the field and type the word transparent.
Added --option-background-color and --option-color properties to the Html5 user panel saselector control.
These can be used to configure the background color and font color of option items in the drop down box.
Note that the selected item background and font color will still be defined by the OS as this is an OS setting.
Offering control over the selected item colors would require using a custom rather than standard drop down component which will be considered for the future.
Made the Other source greyed out and unselectable in the routing source take list as it cannot actually be sent as a change value.
Added the hiddenvalues and disabledvalues property to the html5 saselector control.
These properties can be filled with a comma delineated list of values which if they appear in the option list will be disabled or hidden.
Note that values and not the displayed names should be used in these fields.
For example, if the source list is filled with virtual sources, you could hide or make unselectable the previous and other source by using the value:
-1,-3
in this field.
Added a sortby property to the html5 saselector control which accepts values of None, Value, or Name.
This will cause the options displayed in the list to be sorted by the order in which they were received, the order of the options value, or the order of the text used to display the item.
From 1.6.7.00: 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.
From 1.6.7.00: 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.
Added a subscription message for the mon object during connection to Pwerstation, Fusion, and Quasar as some new properties require a scubscription.
Added the Read/Write hp_lnk (Headphone Link) property to the mon object in PowerStation, Fusion, and Quasar.
Added the Write Only hp_vol (Headphone Volume) property to the mon object in PowerStation, Fusion, and Quasar.
Added the Write Only cr_vol (Control Room Volume) property to the mon object in PowerStation, Fusion, and Quasar.
Added the Write Only pv_vol (Preview Volume) property to the mon object in PowerStation, Fusion, and Quasar.
Added the Write Only st_vol (Studio Volume) property to the mon object in PowerStation, Fusion, and Quasar.
Added the Read/Write cr_sel (Control Room Select) property to the mon object in PowerStation, Fusion, and Quasar.
Added the Read/Write hp_sel (Headphone Select) property to the mon object in PowerStation, Fusion, and Quasar.
Added the Read/Write st_sel (Studio Select) property to the mon object in Quasar only.
Added the Read/Write cr_pvw (Control Room Preview) property to the mon object in Quasar only.
Added the Read/Write cr_pvw (Headphone Preview) property to the mon object in PowerStation, Fusion, and Quasar.
Added the Read/Write talk_stud (Talk to Studio Switch) property to the mon object in PowerStation, Fusion, and Quasar.
Does not support initial state get but does support events so changes should be reported but not initial startup state.
Added the Read/Write Asg_AUX(1-8) (Aux buss assignment) properties to the FaCH and LwCH objects in Quasar only.
Added an aux object to Quasar FaCH and LwCH objects.
Added a Write Only pre_post_on property to the new Aux buss object of LwCH and FaCH in Quasar.
Added a Write Only pre_post_faser property to the new Aux buss object of LwCH and FaCH in Quasar.
Added a Write Only gain property to the new Aux buss object of LwCH and FaCH in Quasar.
This version includes minor fixes over 1.7.6.08.
Changed the slot label interval on calendars to be hourly only to clean up the look of the calendar grid times.
Enabled an event limit in the month view of calendars to clean up that view when large numbers of events are present.
Fixed a bug where the new QSCONN object support added in 1.7.6.08 was not present on a newly discovered fader panel without a restart.
Fixed an issue with the description data for FPSTAT Master property which should have more values than just 0 or 1 and added the descriptive definitions of those values to the drop downs.
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.
Patch version is bumped to 6 as these build changes also exist in the release branch for any future release builds.
Fixed bugs introduced by the new scheduling system that would not allow newly created scene items or timer events to work properly when being created with virtual, SapProperty, or virtual mixing destinations as the start or end property.
Fixed an issue where the enabled property on new timers would default to blank rather than to True.
Fixed performance issues with loading the timers list in the web ui with large numbers of timers.
Fixed performance issues with displaying calendars with large numbers of events on a single calendar.
Added a drop down list when editing scenes or timer start and end properties and selecting a virtual mixing destination.
The drop down allows you define whether the change will be directed at the AddSource or RemoveSource property.
Switch scheduling calendars to display 15 minute time blocks instead of 30.
Optimized the loading of time based events and memory slots during system startup.
Added a Range and LoopAction property to Numeric Memory Slots.
Modified the API code for Virtual Mixing destination's AddSource and RemoveSource properties to accept PathIos of sources in the virtual mixing routers in addition to the IO number.
Added the QSCONN Lwrp object to Quasar fader panel devices.
This object allows for the ability to change the master module to which a fader module is attached.
Added the FPSTAT lwrp object to Xnode devices.
This object allows for the ability to poll and monitor states such as power supply status, NIC up down, main board temperature, etc.
From 1.6.5.00: Fixed an issue where an image assigned to an SaConsole button would not display and would disappear after saving the panel.
From 1.6.5.00: 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.
Decorated the Path property of virtual base io objects so that it appears in the api tree of logic flows.
Decorated the Ordinal position property of virtual base io objects so that it appears in the api tree of logic flows.
This version adds an optional calendar based scheduling module which requires an additional license.
If you would like to help with beta testing this feature please contact us for a 90 day demo license.
This version adds Vx Control Protocol support.
Note: This feature should be considered beta.
From 1.6.4.00: 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.
From 1.6.4.00: Fixed issues with image properties in the user panel designer not displaying a list of panel images as choices in the translation dialog.
From 1.6.4.00: Added the overflow property to label controls which when used in conjunction with text-overflow can prevent the text from overflowing the label.
From 1.6.4.00: 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.
From 1.6.4.00: 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.
From 1.6.4.00: Fixed an issue with image fields in the user panel designer property list where the shift-click option for manual editing would not work.
From 1.6.4.00: Fixed issues with images switching from relative url to full url when saving a user panel design.
Fixed a bug with the property selection UI with the new start and end properties in TimeEvents which was not switching the io selection list back to destinations after selecting a source value.
Fixed some other UI property and value selection bugs with the new TimeEvents options.
From 1.6.3.00: 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 via the API.
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: From 1.6.3.00: 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.
From 1.6.2.00: 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.
From 1.6.2.00: 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.
From 1.6.2.00: Fixed issues with the cluster synchronization of newly discovered backfeeds which was not working correctly in all situations.
From 1.6.2.00: 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.
From 1.6.2.00: 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.
Warnings: From 1.6.2.00: Because of the discovery issues above it is possible that clusters might have backfeed Ios on only one server or the other. Therefore, 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.
This version adds end times to DateTime and DayOfWeek timers so that a time range may be expressed.
This version adds start and end properties to DateTime and DayOfWeek timers that may directly be executed at the start and end time of the range without the need for a logic flow.
This version adds a cleanup option that can be used to define when or if datetime timers should be deleted after they execute.
Note: The feature changes listed above should be considered beta.
Added a ClearElapsed write only property to DateTime and DayOfWeek Timers to be used in certain testing procedures.
Modified DateTime and DayOfWeek timer editing to display with the programmed time rather than a conversion to the browser's time in the case where the browser is in a different timezone.
Modified DateTime and DayOfWeek timer editing to default to the PathfinderCore PRO's utc offset for clock based times rather than the browser's offset.
Added comments to clock and fixed time radio button options in the time editor to show more specifically that clock time will adjust with DST.
Added UTC field for clock based timers which is disabled for changing but shows the UTC offset for the event from PathfinderCore PRO.
Fixes a bug with restApi devices where the post command would carry the operator and url in the content field in addition to the content instead of just the content.
Adds escape character possibilities to email message bodies for things like carriage returns and linefeeds.
See the documentation for generic emulator ToSend escape sequences for details as both use the same sequences.
Adds code to allow the swap value on Html5 Panel disabled properties.
Fixes the disabled property for Html5 panel knobs and gauges.
Adds a --display-channels property to Html5 meters under the led section with values of stereo, left, or right in order to allow support for mono meters.
From 1.6.1.00: 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.
From 1.6.1.00: Updated copyright footer on web pages.
Added a name field to the rest api device from 1.7.0.01 for a better user experience.
Added an enabled property to virtual router source and destination base points.
Added a PushRouteOnBaseEnable property to virtual routers that works alongside the enable property of base points.
Added a Virtual Mixing router for dynamically adding and removing sources from a set of mixable destinations.
This is the first beta version with new beta features since the 1.6 release.
Added a rest api device.
Added a CalculateTime property to timestamp memory slots to allow conversion from other time formats to the pattern specified.
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.
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.
Added Regular Expression capabilities to Generic Emulation watchers and translator from-conversion list items.
Also added a TriggeredValue property.
Added a NoChange option to logic flow translation to-conversion list items.
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.
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.
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.
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.
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.
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.
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.
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.
Added support for Iport specific Lwrp commands.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
See for details.
Warnings: Please review the release notes and for 1.7.13.15 and 1.7.13.18 as this version has all of those new features.
Warnings: Please review the release notes and for 1.7.13.15 as this version has all of those new features.
Warning: Please review the release notes and for 1.7.13.15 as this version has all of those new features.
Warnings: Please review the release notes and for 1.7.13.15 as this version has all of those new features. This version is primarily a bug fix version to fix a few things found with the new features in 1.7.13.15.
Warning: This version has major additions to user panels as outlined below and in the beta documentation. Please review the on these changes. Please report any bugs or feedback you encounter with the new features to support. Styles and colors may still change in this theme during the beta period before release.
Please review the documentation on this feature:
1.7.6.08 involved major changes, please review the release notes and for 1.7.6.08 and report any bugs you encounter.
Please review the documentation on this feature:
Please review the documentation on this feature:
Please review the documentation on this feature:
Please review the documentation on this feature:
Please review all documentation on this feature in the beta manual before updating:
Please review all documentation on this feature in the beta manual before updating:
From 1.7.1.04: This build also contains the timer changes documented in 1.7.1.04. Please review the release notes below and for 1.7.1.04 as these timer changes are beta changes.
Please review all documentation on these features in the beta manual before updating:
Please review the for details.
Please review the for details.
Please review the for details.
Please review the for details.
Please review the for details.
Please review the for details.
Please review the for details.
Please review the for details.
Please review the for details.
Please review the for details on these new features.
Important Note: The changes above and detailed in the 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.
Please review the for details on all of the features listed below.
Please review the for details on these changes.
Please review the for details on this feature.
Please review the for details on these features.
Please review the for details on this feature.
Please review the for details on this feature.
Please review the for details on the nuances related to synchronization of this feature.
Important Note: This is a preview build of this feature and cluster synchronization of this feature is not complete yet. Please review the for details on this feature.
Please review the for details on this feature.
Please review the for details on this feature.
Please review the for details on this feature.
Please review the for details how how to add an Imagine router to your Pathfinder Core PRO system.
Please review the for details on properties and functionality exposed via the STAT command.
Please review the for details on this new Html5 panel control.
For details on using the feature please review the .
Please review the for details on this new Html5 panel control.
The repair update package can be obtained at or
Important Notes: First public beta of html5 panels. Please review the beta documentation for version 1.3.13.20 in detail:
For details see the section on 1.3.10.09 in the .
Clear Value: The value to reset the output to after passing the delayed value through.
More detailed documentation of the changes may be found at: