Skip to content

Conversation

vnktshr21
Copy link
Contributor

@vnktshr21 vnktshr21 commented Jul 8, 2025

  • This contribution adheres to CONTRIBUTING.md.
  • I've updated CHANGELOG.md if applicable.
  • I've added tests applicable for this pull request

What does this Pull Request accomplish?

  • Enables write arb waveform API
    • Adds a fancy function which supports multiple complex datatypes and calls into the appropriate interpreter method based on incoming waveform datatype
    • Implementation follows nifgen write_waveform fancy function pattern (nifgen has the exact same use case)
    • This fancy function would also allow adding more complex datatypes support in future if required, with one single public write_arb_waveform function supporting all of it
    • Doc tip and function description for fancy function is tweaked to call out the supported datatypes
  • Adds system tests for all the important supported API
    • Some tests can run only on real hardware and are skipped based on a single flag
  • Adds arb and script mode examples
  • Examples and system tests are now put through flake checks
  • For set, get burst start, burst stop and marker event location APIs
    • Fixes the size parameter behavior
    • Fixes the datatype of locations
    • Marks channel name parameter as repeated capability with appropriate repeated capability type field value set
  • Changes reset function case to match the header case
  • Adds correct enum for parameter of configure power level type and digital trigger edge functions
  • Self cal last date time function gets a module parameter matching the C API
  • Removed unnecessary tabs and line breaks in some of the documentation
  • Fixed the option string parameter handling for initialize
    • Metadata was missing template specification in rfsg

List issues fixed by this Pull Request below, if any.

None

What testing has been done?

  • New write arb waveform API(all datatypes) are tested to be functional with real hardware
    • Correct signal generation verified with Analyzer
  • All system tests pass on both real and simulated hardware
    • Fixes for function parameters across multiple functions are all tested as part of system tests
  • All examples run fine on both real and simulated hardware
  • Documentation improvements are visually inspected

@codecov-commenter
Copy link

codecov-commenter commented Jul 8, 2025

Codecov Report

Attention: Patch coverage is 89.94709% with 19 lines in your changes missing coverage. Please review.

Project coverage is 88.99%. Comparing base (a488e07) to head (de951da).

Files with missing lines Patch % Lines
generated/nirfsg/nirfsg/session.py 77.02% 17 Missing ⚠️
generated/nirfsg/nirfsg/_library_interpreter.py 97.29% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2115      +/-   ##
==========================================
- Coverage   91.24%   88.99%   -2.26%     
==========================================
  Files          67       71       +4     
  Lines       16386    18934    +2548     
==========================================
+ Hits        14952    16850    +1898     
- Misses       1434     2084     +650     
Flag Coverage Δ
codegenunittests 84.44% <ø> (ø)
nidcpowersystemtests 94.65% <ø> (+0.04%) ⬆️
nidcpowerunittests 89.53% <ø> (ø)
nidigitalsystemtests 92.26% <ø> (ø)
nidigitalunittests 68.44% <ø> (ø)
nidmmsystemtests 92.72% <ø> (ø)
nifakeunittests 86.72% <ø> (ø)
nifgensystemtests 94.86% <ø> (ø)
nimodinstsystemtests 73.85% <ø> (ø)
nimodinstunittests 94.20% <ø> (ø)
nirfsgsystemtests 74.45% <89.94%> (?)
niscopesystemtests 92.94% <ø> (ø)
niscopeunittests 43.20% <ø> (ø)
nisesystemtests 91.50% <ø> (ø)
niswitchsystemtests 82.03% <ø> (ø)
nitclksystemtests 94.87% <ø> (ø)
nitclkunittests 98.26% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
generated/nirfsg/nirfsg/_complextype.py 100.00% <100.00%> (ø)
generated/nirfsg/nirfsg/_library.py 67.78% <100.00%> (ø)
generated/nirfsg/nirfsg/_library_interpreter.py 62.73% <97.29%> (ø)
generated/nirfsg/nirfsg/session.py 89.95% <77.02%> (ø)

... and 1 file with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a488e07...de951da. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ni-jfitzger
Copy link
Collaborator

Can you include a justification for the fancy function in your PR description?
I think you're probably right to create it, but it would be nice to have the thought process written down for posterity, if it's not too much trouble.

@ni-jfitzger ni-jfitzger merged commit fd32da7 into ni:master Jul 11, 2025
39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants