Click here for release notes on versions newer than 1.12.82
Warning: The 1.9.19xxxx 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.
Version 1.9.12.82 12/03/2023
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.
Version 1.9.12.81 12/02/2023
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.
Version 1.9.12.80 11/02/2023
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.
Version 1.9.12.79 10/29/2023
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.
Version 1.9.12.78 10/22/2023
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.
Version 1.9.12.77 09/18/2023
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:
MySearch=ON
--NONE--=<NoChange>
*=OFF
Version 1.9.12.76 08/18/2023
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.
Version 1.9.12.75 08/16/2023
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.
Version 1.9.12.74 07/31/2023
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.
Version 1.9.12.73 07/12/2023
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.
Version 1.9.12.72 07/05/2023
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.
Version 1.9.12.71 06/28/2023
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.
Version 1.9.12.69 06/02/2023
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.)
Version 1.9.12.68 05/22/2023
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.
Version 1.9.12.67 05/04/2023
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
Version 1.9.12.66 04/06/2023
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
Version 1.9.12.65 03/31/2023
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.
Version 1.9.12.64 03/30/2023
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
Version 1.9.12.63 03/20/2023
Fixed a bug with the optional scheduling calendar licensing probably introduced in 1.9.12.57.
Clean build from new master.
Version 1.9.12.62 03/19/2023
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.
Version 1.9.12.61 03/07/2023
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.
Version 1.9.12.60 02/04/2023
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.
Version 1.9.12.59 02/03/2023
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.
Version 1.9.12.58 01/20/2023
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.
Version 1.9.12.57 01/03/2023
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.
Version 1.9.12.56 12/12/2022
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.
Version 1.9.12.55 11/29/2022
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.
Version 1.9.12.54 11/22/2022
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.
Version 1.9.12.53 11/16/2022
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.
Version 1.9.12.52 10/26/2022
(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.
Version 1.9.11.52 10/21/2022
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
Version 1.9.11.51 08/16/2022
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.
Version 1.9.11.50 07/28/2022
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.
Version 1.9.11.49 07/28/2022
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.
Version 1.9.11.48 07/25/2022
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.
Version 1.9.11.47 07/25/2022
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.
Version 1.9.11.46 06/01/2022
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
Version 1.9.11.45 04/15/2022
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.
Version 1.9.11.44 04/12/2022
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.
Version 1.9.11.43 04/12/2022
Not released due to an incorrectly placed repository tag. See 1.9.11.44 instead.
Version 1.9.11.42 04/06/2022
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.
Version 1.9.11.41 04/05/2022
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.
Version 1.9.11.40 03/18/2022
Add support for task 18764
Add additional testing tools for internal testing
Version 1.9.11.39 02/21/2022
(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.
Version 1.9.10.39 02/09/2022
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.
Version 1.9.10.38 02/09/2022
(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.
Version 1.9.9.37 01/25/2022
(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.
Version 1.9.8.37 01/03/2022
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.
Version 1.9.8.36 12/14/2021
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.
Version 1.9.8.35 12/07/2021
(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.
Version 1.9.7.34 11/04/2021
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.
Version 1.9.7.32 10/18/2021
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.
Version 1.9.7.31 10/14/2021
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.
Version 1.9.5.30 10/06/2021
Added support for SCTE35 descriptor filtering and ingest to SCTE35 reader devices.
Version 1.9.5.29 10/01/2021
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.
Version 1.9.5.28 09/29/2021
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.
Version 1.9.5.27 09/14/2021
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.
Version 1.9.5.26 09/13/2021
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.
Version 1.9.5.25 09/13/2021
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.
Version 1.9.5.24 09/08/2021
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.
Version 1.9.5.23 09/07/2021
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".
Version 1.9.5.22 08/03/2021
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.
Version 1.9.5.21 08/02/2021
Added additional log items for SCTE35-Reader devices in the logging tree for more intuitive, targeted, and less verbose logging options.
Version 1.9.5.20 07/27/2021
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.
Version 1.9.5.19 07/26/2021
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.
Version 1.9.5.18 07/25/2021
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.
Version 1.9.5.17 07/23/2021
(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.
Version 1.9.4.16 06/24/2021
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.
Version 1.9.4.15 06/24/2021
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.
Version 1.9.4.14 06/22/2021
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.
Version 1.9.4.13 06/18/2021
(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.
Version 1.9.3.13 06/04/2021
(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.
Version 1.9.2.12 05/06/2021
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.
Version 1.9.2.11 05/05/2021
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.
Version 1.9.2.10 05/03/2021
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.
Version 1.9.2.09 04/28/2021
(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.
Version 1.9.1.08 04/14/2021
(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.
Version 1.9.0.07 03/27/2021
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.
Version 1.9.0.06 03/27/2021
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.
Version 1.9.0.05 03/26/2021
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.
Version 1.9.0.04 03/18/2021
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.
Version 1.9.0.03 03/15/2021
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.
Version 1.9.0.02 03/11/2021
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.
Version 1.9.0.01 02/21/2021
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.