Sharing Data between Code Modules (TSM)
- Updated2025-07-31
- 2 minute(s) read
Data can be stored in the SemiconductorModuleContext in one code module and retrieved later in another code module using an ID string. The data can be stored as a single data value available globally to all sites or as a data value per site. Use the Set Global Data VI or SetGlobalData .NET method and the Get Global Data VI or GetGlobalData .NET method to store and retrieve data shared by all sites. Or use the Set Site Data VI or SetSiteData .NET method and the Get Site Data VI or GetSiteData .NET method to store and retrieve site specific data.
The following example shows how to store a per-site measurement data for comparison in a later test step:
| LabVIEW |
|
| .NET (C#) |
public static void FirstCodeModule(ISemiconductorModuleContext semiconductorModuleContext, string pin)
{
NIDCPower[] dcPowerSessions;
string[] channelStrings;
var pinQuery = semiconductorModuleContext.GetNIDCPowerSessions(pin, out dcPowerSessions, out channelStrings);
var results = PerformComparisonMeasurement(dcPowerSessions, channelStrings);
var perSiteData = pinQuery.ExtractPinData(results);
semiconductorModuleContext.SetSiteData("ComparisonData", perSiteData);
}
public static void SecondCodeModule(ISemiconductorModuleContext semiconductorModuleContext, string pin)
{
var siteDataObjects = semiconductorModuleContext.GetSiteData("ComparisonData");
var perSiteComparisonData = siteDataObjects.Cast<double>().ToArray();
NIDCPower[] dcPowerSessions;
string[] channelStrings;
var pinQuery = semiconductorModuleContext.GetNIDCPowerSessions(pin, out dcPowerSessions, out channelStrings);
var results = PerformComparisonMeasurement(dcPowerSessions, channelStrings);
var perSiteData = pinQuery.ExtractPinData(results);
double[] comparisonResult = new double[perSiteData.Length];
for (int dataIndex = 0; dataIndex < perSiteData.Length; dataIndex++)
{
comparisonResult[dataIndex] = perSiteData[dataIndex] - perSiteComparisonData[dataIndex];
}
semiconductorModuleContext.PublishPerSite(comparisonResult);
}
|