ni / niveristand-embedded-data-logger-custom-device

VeriStand embedded data logger custom device
MIT License
3 stars 9 forks source link

Address Span Issues #21

Closed Sarci1 closed 4 years ago

Sarci1 commented 4 years ago

TODO: Check the above box with an 'x' indicating you've read and followed CONTRIBUTING.md.

What does this Pull Request accomplish?

Why should this Pull Request be merged?

What testing has been done?

Validated locally on Windows PC for performance across multiple file sizes with varying number of groups. Ensured Missed Packets did not grow.

niveristand-diff-bot commented 4 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

Embedded Data Logger Engine.lvlib--Add to Flushed Data Size.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Add%20to%20Flushed%20Data%20Size.vi.png)
Embedded Data Logger Engine.lvlib--Asynchronous Logging Loop.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Asynchronous%20Logging%20Loop.vi.png)
Embedded Data Logger Engine.lvlib--Compute if Should Span.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Compute%20if%20Should%20Span.vi.png)
Embedded Data Logger Engine.lvlib--Convert Span Size to Time.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Convert%20Span%20Size%20to%20Time.vi.png)
Embedded Data Logger Engine.lvlib--Flush Close Archive File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Flush%20Close%20Archive%20File.vi.png)
Embedded Data Logger Engine.lvlib--Flush Group Buffer.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Flush%20Group%20Buffer.vi.png)
Embedded Data Logger Engine.lvlib--Get Data Log File Settings.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Get%20Data%20Log%20File%20Settings.vi.png)
Embedded Data Logger Engine.lvlib--Initialize Logging Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Initialize%20Logging%20Data.vi.png)
Embedded Data Logger Engine.lvlib--Open Data Log File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Open%20Data%20Log%20File.vi.png)
Embedded Data Logger Engine.lvlib--Sample File Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Sample%20File%20Data.vi.png)
Embedded Data Logger Engine.lvlib--Set Data in Group Buffer.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Set%20Data%20in%20Group%20Buffer.vi.png)
Embedded Data Logger Engine.lvlib--Update Log Start Time if New Trigger.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Update%20Log%20Start%20Time%20if%20New%20Trigger.vi.png)
Embedded Data Logger Engine.lvlib--Zero Flushed Data Totals.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-24/09%3A45%3A19/Embedded%20Data%20Logger%20Engine.lvlib--Zero%20Flushed%20Data%20Totals.vi.png)

The following VIs could not be diffed:

niveristand-diff-bot commented 4 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

Embedded Data Logger Engine.lvlib--Add to Flushed Data Size.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Add%20to%20Flushed%20Data%20Size.vi.png)
Embedded Data Logger Engine.lvlib--Asynchronous Logging Loop.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Asynchronous%20Logging%20Loop.vi.png)
Embedded Data Logger Engine.lvlib--Compute if Should Span.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Compute%20if%20Should%20Span.vi.png)
Embedded Data Logger Engine.lvlib--Flush Close Archive File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Flush%20Close%20Archive%20File.vi.png)
Embedded Data Logger Engine.lvlib--Flush Group Buffer.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Flush%20Group%20Buffer.vi.png)
Embedded Data Logger Engine.lvlib--Get Data Log File Settings.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Get%20Data%20Log%20File%20Settings.vi.png)
Embedded Data Logger Engine.lvlib--Initialize Logging Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Initialize%20Logging%20Data.vi.png)
Embedded Data Logger Engine.lvlib--Open Data Log File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Open%20Data%20Log%20File.vi.png)
Embedded Data Logger Engine.lvlib--Sample File Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Sample%20File%20Data.vi.png)
Embedded Data Logger Engine.lvlib--Set Data in Group Buffer.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Set%20Data%20in%20Group%20Buffer.vi.png)
Embedded Data Logger Engine.lvlib--Update Log Start Time if New Trigger.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Update%20Log%20Start%20Time%20if%20New%20Trigger.vi.png)
Embedded Data Logger Engine.lvlib--Zero Flushed Data Totals.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/10%3A47%3A52/Embedded%20Data%20Logger%20Engine.lvlib--Zero%20Flushed%20Data%20Totals.vi.png)

The following VIs could not be diffed:

Sarci1 commented 4 years ago
  • [X] Delete Convert Span Size to Time.vi. It is not used anywhere. Remove the corresponding diagram disable structure and related code for getting the engine rate in Initialize Logging Data.vi.
  • [X] Revert Sample File Data.vi and Set Data in Group Buffer.vi. There are no actual changes to these VIs.
  • [X] Asynchronous Logging Loop.vi and Update Log Start Time in New Trigger.vi need to have source separated.
  • [X] test Log Span Size.vi fails. The TDMS file has more in it than just the raw data that is written, so the file size will not be exactly 1000000 bytes. Revert the test VI to test the original file size that was there. This value accounts for the size of the metadata.
  • [X] test Log Span Size.vi has a 6 minute wait. With the performance improvements, it only takes about 30 seconds for the file to span. Instead of waiting for some period of time, put in a check for the number of TDMS files in the directory and when there are multiple files, check the size of the oldest. Also make sure to have something like a 1 minute timeout in case spanning actually does fail. This will greatly speed up this test.

Not a huge deal, but just wanted to verify: Using the millisecond timer limits us to about 50 days of logging for a single file (whereas the timestamp has no limitation). This is probably ok, but I just wanted to make sure we don't have a use case that might require longer time before spanning. Is this limitation acceptable?

All the requests should have been addressed in my latest commits. As for the limitation. I have no problem with this. I don't expect anyone to want to log to a single file for 50 days. For our use case, 1 day max would be expected.

niveristand-diff-bot commented 4 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

Embedded Data Logger Engine.lvlib--Add to Flushed Data Size.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Add%20to%20Flushed%20Data%20Size.vi.png)
Embedded Data Logger Engine.lvlib--Asynchronous Logging Loop.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Asynchronous%20Logging%20Loop.vi.png)
Embedded Data Logger Engine.lvlib--Compute if Should Span.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Compute%20if%20Should%20Span.vi.png)
Embedded Data Logger Engine.lvlib--Flush Close Archive File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Flush%20Close%20Archive%20File.vi.png)
Embedded Data Logger Engine.lvlib--Flush Group Buffer.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Flush%20Group%20Buffer.vi.png)
Embedded Data Logger Engine.lvlib--Get Data Log File Settings.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Get%20Data%20Log%20File%20Settings.vi.png)
Embedded Data Logger Engine.lvlib--Initialize Logging Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Initialize%20Logging%20Data.vi.png)
Embedded Data Logger Engine.lvlib--Open Data Log File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Open%20Data%20Log%20File.vi.png)
Embedded Data Logger Engine.lvlib--Update Log Start Time if New Trigger.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Update%20Log%20Start%20Time%20if%20New%20Trigger.vi.png)
Embedded Data Logger Engine.lvlib--Zero Flushed Data Totals.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-26/13%3A53%3A56/Embedded%20Data%20Logger%20Engine.lvlib--Zero%20Flushed%20Data%20Totals.vi.png)

The following VIs could not be diffed:

Sarci1 commented 4 years ago
  • [X] @niphilj would like to have the time span implementation using the Timestamp instead of millisecond timer so we don't have any artificial restrictions on duration. I like the changes you have for encapsulating the time span, so this is just replacing the U32 in your implementation with the Timestamp.
  • [X] In Embedded Data Logger Windows System Tests.lvclass:Wait for Files.vi, remove the last case structure and just use the JKI failIf.vi. This gives you the same behavior, but makes the diagram more readable.

After these changes, this should be ready to go.

This should be addressed in the latest commit.

niveristand-diff-bot commented 4 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

Embedded Data Logger Engine.lvlib--Add to Flushed Data Size.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Add%20to%20Flushed%20Data%20Size.vi.png)
Embedded Data Logger Engine.lvlib--Asynchronous Logging Loop.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Asynchronous%20Logging%20Loop.vi.png)
Embedded Data Logger Engine.lvlib--Compute if Should Span.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Compute%20if%20Should%20Span.vi.png)
Embedded Data Logger Engine.lvlib--Flush Close Archive File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Flush%20Close%20Archive%20File.vi.png)
Embedded Data Logger Engine.lvlib--Flush Group Buffer.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Flush%20Group%20Buffer.vi.png)
Embedded Data Logger Engine.lvlib--Get Data Log File Settings.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Get%20Data%20Log%20File%20Settings.vi.png)
Embedded Data Logger Engine.lvlib--Initialize Logging Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Initialize%20Logging%20Data.vi.png)
Embedded Data Logger Engine.lvlib--Open Data Log File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Open%20Data%20Log%20File.vi.png)
Embedded Data Logger Engine.lvlib--Update Log Start Time if New Trigger.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Update%20Log%20Start%20Time%20if%20New%20Trigger.vi.png)
Embedded Data Logger Engine.lvlib--Zero Flushed Data Totals.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/VeriStand/ni/niveristand-embedded-data-logger-custom-device/PR-21/2020-03-27/14%3A43%3A48/Embedded%20Data%20Logger%20Engine.lvlib--Zero%20Flushed%20Data%20Totals.vi.png)

The following VIs could not be diffed:

Sarci1 commented 4 years ago
  • [X] test Log Span Time.vi is failing because it is logging for 30 seconds instead of 20.

I had forgotten to remove the conversion from ms to s.