ni / semi-test-library-dotnet

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

[REQUEST] Add Support For Multiplexed Instruments in Pinmap #114

Open noffz-nvidakovic opened 2 months ago

noffz-nvidakovic commented 2 months ago

Describe the Problem I am having an issue with SetupNIDCPowerInstrumentation function when using multiplexed channels in pinmap.

I am investigating if I can use this library in my new project, where I am planning to use semiconductor module. I am using a pinmap where I have different pins that are sharing same SMU channel by using simulated multiplexer. pinamp In this case I get an error in Setup NI DCPower Instrumentation step saying: An item with the same key has already been added at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) error

When I try it with pinmap that doesn't have multiplexed smu channels there is no error. It seems to me that this scenario is not supported by the library

To Reproduce Create a simple empty project. Modify Pinmap to have a multiplexed SMU channels. Try to run it. It will throw an error in process setup on Setup NI DCPower Instrumentation step.

Expected behavior I would expect this kind of pinmap to work with the library.

Mattjet27 commented 2 months ago

@noffz-nvidakovic, thank you for reporting this. While I am able to reproduce this, note that multiplexers are not yet supported by the library. This applies to both simulated and physical multiplexers. Therefore, this would be better handled as a Feature Request, rather than a Bug, to be addressed in a future release.

To allow for better tracking, I suggest updating the title and the content/tags such that it reflects a Feature Request instead of a bug. If I have your permission, I will take care of this for you, please just confirm.

noffz-nvidakovic commented 2 months ago

Hello, Thank you for your response. Feel free to modify ticket. BR, Nikola

On Tue, Sep 3, 2024 at 11:50 AM Matthew Roberts @.***> wrote:

@noffz-nvidakovic https://github.com/noffz-nvidakovic, thank you for reporting this. While I am able to reproduce this, note that multiplexers are not yet supported by the library https://ni.github.io/semi-test-library-dotnet/UserGuide/SupportedInstrumentTypes.html. This applies to both simulated and physical multiplexers. Therefore, this would be better addressed as a Feature Request, rather than a Bug, to be addressed in a future release.

To allow for better tracking, I suggest updating the title and the content/tags such that it reflects a Feature Request instead of a bug. If I have your permission, I will take care of this for you, please just confirm.

— Reply to this email directly, view it on GitHub https://github.com/ni/semi-test-library-dotnet/issues/114#issuecomment-2326088277, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQVKP4HYBRKBASUY6CQOFSDZUWA5DAVCNFSM6AAAAABNMGTTW6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRWGA4DQMRXG4 . You are receiving this because you were mentioned.Message ID: @.***>

Mattjet27 commented 2 months ago

For the record, here is a simplified example pin map, which does not currently work with the library, but would once multiplexer support is added in a future release:

<?xml version="1.0" encoding="utf-8"?>
<PinMap schemaVersion="1.6" xmlns="http://www.ni.com/TestStand/SemiconductorModule/PinMap.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Instruments>
        <NIDCPowerInstrument name="SMU_4147_C1_S04" numberOfChannels="4">
            <ChannelGroup name="CommonDCPowerChannelGroup" />
        </NIDCPowerInstrument>
        <Multiplexer name="Multiplexer1" multiplexerTypeId="" />
    </Instruments>
    <Pins>
        <DUTPin name="DUTPin1" />
        <DUTPin name="DUTPin2" />
    </Pins>
    <PinGroups></PinGroups>
    <Sites>
        <Site siteNumber="0" />
        <Site siteNumber="1" />
        <Site siteNumber="2" />
        <Site siteNumber="3" />
    </Sites>
    <Connections>
        <MultiplexedConnection instrument="SMU_4147_C1_S04" channel="0">
            <MultiplexedDUTPinRoute pin="DUTPin1" siteNumber="0" multiplexer="Multiplexer1" routeName="Site0_DUTPin1" />
            <MultiplexedDUTPinRoute pin="DUTPin2" siteNumber="0" multiplexer="Multiplexer1" routeName="Site0_DUTPin2" />
        </MultiplexedConnection>
        <MultiplexedConnection instrument="SMU_4147_C1_S04" channel="1">
            <MultiplexedDUTPinRoute pin="DUTPin1" siteNumber="1" multiplexer="Multiplexer1" routeName="Site1_DUTPin1" />
            <MultiplexedDUTPinRoute pin="DUTPin2" siteNumber="1" multiplexer="Multiplexer1" routeName="Site1_DUTPin2" />
        </MultiplexedConnection>
        <MultiplexedConnection instrument="SMU_4147_C1_S04" channel="2">
            <MultiplexedDUTPinRoute pin="DUTPin1" siteNumber="2" multiplexer="Multiplexer1" routeName="Site2_DUTPin1" />
            <MultiplexedDUTPinRoute pin="DUTPin2" siteNumber="2" multiplexer="Multiplexer1" routeName="Site2_DUTPin2" />
        </MultiplexedConnection>
        <MultiplexedConnection instrument="SMU_4147_C1_S04" channel="3">
            <MultiplexedDUTPinRoute pin="DUTPin1" siteNumber="3" multiplexer="Multiplexer1" routeName="Site3_DUTPin1" />
            <MultiplexedDUTPinRoute pin="DUTPin2" siteNumber="3" multiplexer="Multiplexer1" routeName="Site3_DUTPin2" />
        </MultiplexedConnection>
    </Connections>
</PinMap>