<?xml version="1.0"?>
<ArrayOfFBEvent xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-05-24T20:50:12Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Loc Pham</User>
    <Comment>I'm sorry if we missed that protocol version for TMATS/TDP interval.  These attributes were added from the beginning when working on ch10.  All previous FW version should have supported this feature. We can start from G0M2 with protocol 33.</Comment>
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-28T16:29:19Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Justin Richardson</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-27T20:20:18Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Loc Pham</User>
    <Comment>SQA: We need to also verify that firmware won't send out TMATS or Time Packet if its interval is set to 0. </Comment>
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-27T17:40:02Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Jaime Lopez</User>
    <Comment>Verified w/ DataPRO version 4.0.893, 4.1.237
 
Tested
 
 
Adding a stream out sensor with the following TMATS interval (ms)
 
 
Parameters for so1
 
 
Running the test and arming. I see the following in the logs
 
 
Checking FWTU in System Attributes #145
 
 
Running this 93 client on a 91 db becomes disabled
 
 
Exporting and deleting test setup and importing again. My value remains the same</Comment>
    <StatusString>Closed</StatusString>
    <TimeStamp>2023-03-15T22:21:00Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>Closed</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>ReleaseNoted</StatusString>
    <TimeStamp>2023-03-15T17:52:05Z</TimeStamp>
    <ReleaseNote>Adds TMATS interval to stream out parameters</ReleaseNote>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-15T17:51:31Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-15T17:51:05Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Jaime Lopez</User>
    <Comment />
    <StatusString>Assigned</StatusString>
    <TimeStamp>2023-03-15T17:40:11Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-15T01:51:28Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment>related case 30388 handles migration issues</Comment>
    <StatusString>Resolved</StatusString>
    <TimeStamp>2023-03-14T21:18:15Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>Resolved</Status>
  </FBEvent>
  <FBEvent>
    <User>Jerry Lawrence</User>
    <Comment>48399 is 4.0; 48400 is 4.1</Comment>
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-14T17:31:47Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Reactivated</StatusString>
    <TimeStamp>2023-03-14T17:27:02Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>Reactivated</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment>4.0/4.1@48395</Comment>
    <StatusString>Resolved</StatusString>
    <TimeStamp>2023-03-13T21:38:39Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>Resolved</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-13T21:38:25Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-08T00:17:40Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment>29987
 Add CG DP (TMATS) interval UI support
 
 
There was a requested ability on firmware to disable or configure the frequency of sending TMATs information while streaming.  This patch addresses the situation by using a similar approach to all the other stream output settings, which allows for each output stream to have this as a configurable setting, but a much easier approach on development workload would be to have it a global setting, then no database changes would be needed, no migrations, but potentially some training.
 
this implementation adds a column in edit test setup-&gt;Parameters-&gt;stream output
 
I show it here
 
 
with a client db support of 93 and a database v 93 or greater the column here is editable with a minimum of 0 and a maximum of 65535 (ushort min and ushort max). With a client support of 93 and an older database the control is still shown but is disabled.
 
a column is added to the sensor list which is shown in the sensor database and edit test setup-&gt;channels.  This column is not editable.  When DataPRO with db support of 93 is used with an older database the column is still shown but the database doesn't have the field and the interval will always be 1000ms.
 
shown here before I added the string resource:
 
 
A numeric drop down is added to Sensors-&gt;Add/Edit Stream output (TMATS Interval ms).  When using DataPRO with db 93 support with an older database the control is disabled.
 
 
to add this support a new column had to be added to the sensorsstreamoutput table, "TMATS_IntervalMS".
 
Here is the command that adds that column:
 
ALTER TABLE [dbo].[SensorsStreamOutput] ADD TMATS_IntervalMS INT NULL;
 
this is part of the migration instructions in Add_sp_SensorsStreamOutputGet_93.sql
 
The new version of the database is increase from 92 to 93.  Here is the statement that was used to update the version in the database;
 
UPDATE [DataPRODbVersion] SET [Version]=93, [Date]='2023-03-06 12:00:00';
 
 
there is a constant in code that is used to indicate what max database version is supported by the code, this was updated to 93;
 
public const int CURRENT_DB_VERSION = 93;
 
because of this new field now sp_SensorsStreamOutputGet, sp_SensorsStreamOutputInsert, sp_StreamOutputUpdate, and sp_SensorsStreamOutputUpdateInsert all needed to be updated.
 
there are migration scripts for every one of these stored procedures.  Additionally sp_SensorsStreamOutputGet already had two versions present, and both of these had to be updated as well as the original stored procedure.  The original stored procedure, which is used by db version 91 avoids ACCoupling column and the TMATSInterval column, the 92 version only avoids the tmats column, and the 93 version returns all 3.
 
The software knows which version of the stored procedure to call by looking it up in a table, so with every new stored procedure a new entry is made, example:
 
  INSERT INTO [StoredProcedureVersions] ([StoredProcedure], [Version]) VALUES ('sp_SensorsStreamOutputUpdateInsert', 93);
 
To modify the parameter in Edit test setup-&gt;Parameters, a new channel setting property had to be added to the database.
 
 
 
INSERT INTO [dbo].[ChannelSettings]
 
           ([SettingName]
 
           ,[DefaultValue])
 
     VALUES
 
           ('StreamOutTMATSIntervalMs'
 
           ,'1000')
 
the default is 1000ms for any new channels.  Additionally in code the default is 1000 as well if attached to an old database or the column is null.
 
this can be seen in StreamOutputRecord.DEFAULT_TMATS_INTERVAL_MS;
 
public const ushort DEFAULT_TMATS_INTERVAL_MS = 1000;
 
I noticed that GetStoredProcedure was not cached and could get called repeatedly making database calls, so I added a cached versions that once it knows the client db version and the connected db version and which stored procedure to call it doesn't need to calculate it again.  These are those functions:
 
 
 
public static string GetStoredProcedureVersionCached(IConnectionDetails connection, string storedProcedure, int clientDbVersion)
 
 
 
public static ulong GetStoredProcedureToUseCached(IConnectionDetails connection, string storedProcedure, int clientDbVersion, out int storedProcedureVersionToUse)
 
 
 
The IConfigurationActions.Configure function had to be updated to include the new information, which means the SDK will need to be updated if it's going to set the attribute.
 
To test you'll need to either do an Aero install or set the "Allow streaming modes" checkbox in System settings-&gt;Test setup settings
 
 
 
 
Tests
 
1) Adding a new StreamOutput setting in newest install lets you create a stream output setting with a TMATS interval other than 999ms
 
2) You can create a second stream output setting in the newest install with a TMATS interval of 998, and switching between each stream output as the selected output updates the value of TMATS interval displayed in the edit window
 
3) editing a stream output and changing the interval marks the page as modified
 
3) the sensor database table displays the right value for TMATS interval
 
4) you can create a streaming test setup with a stream output channel and assign a stream output
 
5) the parameters step for stream output shows the right value for TMATS interval
 
6) the value can be updated, and when saved and editing again the test has the right value for tmats interval
 
7) editing the test and changing the tmats interval in parameters marks the page as modified
 
8) running the test when arming the test attribute 145 will get set with the value of the TMATS interval
 
it will look like this in the logs:
 
 
 
2023-03-07 07:44:49.820 -&gt;  Attribute - SetSystemAttribute [00000628], S6A0047, local: 192.168.1.169:56058, Remote: 192.168.4.47:8301 Key: S6A_IrigCGDPSendIntervalMsec, DataType: UInt16, Length: 2, Overwrite: True, Value: 999
 
2023-03-07 07:44:49.824 &lt;-  Attribute - SetSystemAttribute [00000628]\[00000628] - (3.989ms), S6A0047
 
9) with S6A with protocol version &lt; 41 you will see
 
"TMATS interval not supported by {SerialNumber} attribute will not be set"
 
10) the TMATS interval should be settable to a value of 0
 
11) export the test setup and stream outputs and then delete the test and any stream outputs.  Importing them should restore the test and stream outputs and the time interval should be set properly to 999, 998
 
12) You can import streamoutputs and test setups from older application versions.  importing an older stream output or using an older database with the most recent code will use a value of 1000 for the interval
 
13) migration between pre 93 database versions (this version) and previous versions
 
I'll create a separate issue to create n-unit tests.  Notably GetStoredProcedureToUseCached can have a n-unit test, as well as the stream output get, set, update, insert tests can be updated for DB v91, 92, 93.
 
I've attached a zip for the new database as well as a the migration scripts.
 
per loc this feature should be enabled for both TMNS and CH10;</Comment>
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-08T00:16:41Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment>per loc this feature should be enabled for both TMNS and CH10;
 
 
 
Currently, firmware hard code the “no” option in this table. The “Yes” is configurable with Interval value.
     
Packet/Stream Type
   
Chapter 10 stream
   
TmNS
   
IENA
     
Time Data Packet and Internal
   
Yes
   
No
   
No
     
TMATS Packet and Interval
   
Yes
   
Yes
   
No</Comment>
    <StatusString>Edited</StatusString>
    <TimeStamp>2023-03-07T23:48:23Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Assigned</StatusString>
    <TimeStamp>2023-03-02T00:03:20Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2022-12-06T17:50:48Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Edited</StatusString>
    <TimeStamp>2022-12-06T17:50:38Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment />
    <StatusString>Assigned</StatusString>
    <TimeStamp>2022-12-06T17:50:19Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>UNKNOWN</Status>
  </FBEvent>
  <FBEvent>
    <User>Dan McFadden</User>
    <Comment>add  - CGDP (TMATS) interval (u16)  = SystemAttribute#145. default 1000. 0 = disable. to UI
 
see case 29844</Comment>
    <StatusString>Opened</StatusString>
    <TimeStamp>2022-12-06T17:50:18Z</TimeStamp>
    <ZendeskNumber>0</ZendeskNumber>
    <Status>Opened</Status>
  </FBEvent>
</ArrayOfFBEvent>