ni / semi-test-library-dotnet

Semiconductor Test Library
https://ni.github.io/semi-test-library-dotnet/
MIT License
3 stars 3 forks source link

[BUG] Continuity Test Method Returns Exception When Passing Negative Current Levels #153

Closed Mattjet27 closed 4 weeks ago

Mattjet27 commented 4 weeks ago

Description The Continuity Test does not handle negative current level input values (currentLevelPerContinuityPinOrPinGroup) correctly and can throw an exception due to an invalid current limit value being passed to the niDCPower driver: IviCDriverException: Modularlnstruments.NIDCPower: IVI: (Hex 0x8FFA00I0) Invalid value for parameter or property. Error code: -1074135024.

The implementation uses the negative value to configure the current limit when forcing voltage, which can only be done with a positive value. Passing the driver a negative value to configure a current limit will cause the niDCPower driver to raise an exception. This will be encountered any time the user tries to force a negative current level with the Continuity Test. Refer to screenshots below.

Screenshots 8e4689c5-d37e-4618-b741-604ff8dadfc2

30c25c91-b1dc-4d27-a3f0-fe503dc933c3

Expected behavior The Continuity Test should be capable of being used with both possible and negative current level values. Note that this is very common since, in order to test both the upper and lower diodes of a DUT the Continuity Test must be invoked method twice: once with a positive current level (sourcing) and a second time with a negative current level (sinking).

System Setup

Resolution As of the Semiconductor Test Library 24.5.1 release (#116), the Continuity Test method has been updated to correctly accept negative current level values. Upgrading to STS Software 24.5.1 provides users with the updated Continuity Test method implementation out-of-the-box. In lieu of being able to upgrade, please refer to the workaround below.

Workaround Leverage the source code for the latest Continuity Test implementation from the main branch on GitHub, pulling it into your application's project, by following the simple procedure documented in the user guide: Customizing TestStandSteps.