NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Teststand 2017 32-Bit - UUT Information Dialog in Windows 10 not displaying properly

Solved!
Go to solution

Dharani, Thanks for the assistance on this.  I have my dialog modified and improved.  I needed to make several changes in paralleluutdlg.c in order to reposition the stop, terminate, abort, and exit buttons.  (The entire window now resizes when I change the number of sockets.)  After that a bit of cleanup and some coloring at the request of the factory.

Thanks again for pointing me in the correct direction.  BTW, I did this in CVI 2017 (because  we are still using TS 2017).  I will look into updating to 2020, but it is not a priority at this time.

 

(And you were correct with your initial impression that this was indeed a modified dialog!)

Thanks again!!! 

OmnitracsTestStand_0-1621949814724.png

 

0 Kudos
Message 11 of 14
(957 Views)

I thought I would document the changes that I had to make to my dialog in the chance it would help someone else. (these are all in paralleluutdlg.c)

 

1) Change the number of sockets to the number desired.  This causes the container to resize (no scroll bar if number selected is equal to, or less than this number)

OmnitracsTestStand_0-1621956817580.png

 

2) Now my socket windows are the correct sizes, however, they cover the stop, abort, terminate, and exit buttons. - need to adjust those along with the main panel size.

At line #233 in my project in MakeNewTestSocketCtrls() function:

//resize main panel and position buttons
int panelWidth = 0;
int socketPanelHeight = 0;
int socketPanelTop = 0;
int doneButtonHeight = 0;

int blankSpace = 5;

//get starting position to reset the done button top and resize main panel   
//get height of panel holding sockets
GetPanelAttribute (childPanel, ATTR_HEIGHT, &socketPanelHeight);     
//get top of panel holding sockets
GetPanelAttribute (childPanel, ATTR_TOP, &socketPanelTop);    
//get height of done button
GetCtrlAttribute (panelId, PUUTPANEL_DONE_BTN, ATTR_HEIGHT, &doneButtonHeight); 

//pad blankSpace to make it look a bit better
int new_done_control_top = socketPanelTop + socketPanelHeight + (blankSpace *2); 

//get the main panel width because we need it when we resize
GetPanelAttribute (panelId, ATTR_WIDTH, &panelWidth);
int newMainPanelHeight = new_done_control_top + doneButtonHeight + blankSpace;

//set new size of main panel
SetPanelSize(panelId, newMainPanelHeight, panelWidth);

//set buttons so they are positioned correctly below socket panel and above bottom of main gui
SetCtrlAttribute (panelId, PUUTPANEL_DONE_BTN, ATTR_TOP, new_done_control_top);   
SetCtrlAttribute (panelId, PUUTPANEL_ABORT_ALL_BTN, ATTR_TOP, new_done_control_top);
SetCtrlAttribute (panelId, PUUTPANEL_TERM_ALL_BTN, ATTR_TOP, new_done_control_top);
SetCtrlAttribute (panelId, PUUTPANEL_STOP_ALL_BTN, ATTR_TOP, new_done_control_top);

 

3) Ok, now the panel looks ok, factory wants the sockets to start with "1" instead of "0" (Note that this is display ONLY, does not affect actual sockets)

simply add 1 to testSocketIndex - again, this is display only and will not affect the actual sockets.

This is done on line # 452 in my project (note that my line numbers may be slightly different than yours because I have been working on this file and added/deleted lines.  This is near the end of the function MakeNewTestSocketCtrls()

	}

	// initialize ctrls
	//set tmpNumBuf to testSocketIndex +1 so that 1 through 8 are displayed.  This is less confusing to test operators.
	sprintf(tmpNumBuf, "%d", testSocketIndex +1);
	errChk( SetCtrlVal (childPanel, newTestSocket->ctrls[kTSCtrl_TestSocketIndex], tmpNumBuf));
	errChk( RecessFrame(childPanel, newTestSocket->ctrls[kTSCtrl_SerialNum]));
																	  

 

4) Add the color coding to the sockets so they match the wiring harness cable colors the operators plug into the units.

These are near the top of  RefreshTestSocketCtrls function near line #782

	int						VAL_BROWN = 0xA52A2AL;
	int						VAL_ORANGE = 0xFF5522L;

	//set the socket colors for easy operator identification
	if(testSocketIndex == 0)
	{
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, VAL_BLACK));
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_COLOR, VAL_WHITE)); 
	}
	if(testSocketIndex == 1)
	{
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, VAL_WHITE));
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_COLOR, VAL_BLACK));
	}
	if(testSocketIndex == 2)
	{
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, VAL_BLUE));
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_COLOR, VAL_WHITE)); 
	}
	if(testSocketIndex == 3)
	{
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, VAL_YELLOW));
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_COLOR, VAL_BLACK)); 
	}
	if(testSocketIndex == 4)
	{
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, VAL_BROWN));
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_COLOR, VAL_WHITE)); 
	}
	if(testSocketIndex == 5)
	{
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, VAL_ORANGE));
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_COLOR, VAL_BLACK)); 
	}
	if(testSocketIndex == 6)
	{
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, VAL_CYAN));
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_COLOR, VAL_BLACK)); 
	}
	if(testSocketIndex == 7)
	{
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, VAL_DK_MAGENTA));
		errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_COLOR, VAL_WHITE)); 
	}

Also have to comment out this line because it resets these sockets to default colors.

near line #1006

	//TODO: I commented this out because it resets the socket colors to default.  I put this note in case it causes issues.
	//errChk( SetCtrlAttribute (childPanel,testSocketData->ctrls[kTSCtrl_TestSocketIndex],ATTR_TEXT_BGCOLOR, bgColor));

 

5) Next up, factory wants the failures displayed in the status box and want the Main Sequence name displayed somewhere on the UUT Information Dialog.  I will have to see if/how to do this and may revisit this when I find a way.

 

Thanks,

 

0 Kudos
Message 12 of 14
(949 Views)

Hi, I am glad that your issue got resolved and my troubleshooting steps were helpful.

Regards,
Dharani | CLA | CTD
0 Kudos
Message 13 of 14
(923 Views)

Hello,

 

Did you ever figure out what caused all of the missing DLLs.

 

I am currently seeing this. I originally had this running in Win 7 now the same sequences and dll generate all kinds of errors when analysis is run on a Win 10 pc. All pointing to missing dlls (dependencies). I know why 3 of the dlls are missing, but why are the windows dlls missing. 

 

Message : Module for Step 'Taking Continuity Readings' not Loadable. Could not load DLL or external library 'C:\Users\...\exe\3F1223.dll'.

This DLL requires the following DLLs which could not be found or loaded:
api-ms-win-core-fibers-l1-1-0.dll (Not Found)
api-ms-win-core-libraryloader-l1-2-0.dll (Not Found)
api-ms-win-eventing-provider-l1-1-0.dll (Not Found)
api-ms-win-mm-time-l1-1-0.dll (Not Found)
api-ms-win-core-registry-l1-1-0.dll (Not Found)
api-ms-win-core-heap-l2-1-0.dll (Not Found)
api-ms-win-core-stringansi-l1-1-0.dll (Not Found)
api-ms-win-core-kernel32-legacy-l1-1-0.dll (Not Found)
api-ms-win-core-string-obsolete-l1-1-0.dll (Not Found)
api-ms-win-core-libraryloader-l1-2-1.dll (Not Found)
api-ms-win-core-privateprofile-l1-1-0.dll (Not Found)
api-ms-win-core-path-l1-1-0.dll (Not Found)
api-ms-win-core-kernel32-private-l1-1-2.dll (Not Found)
api-ms-win-core-kernel32-private-l1-1-0.dll (Not Found)
api-ms-win-core-delayload-l1-1-1.dll (Not Found)
api-ms-win-core-delayload-l1-1-0.dll (Not Found)
api-ms-win-core-apiquery-l1-1-0.dll (Not Found)
api-ms-win-security-base-l1-1-0.dll (Not Found)
api-ms-win-core-synch-l1-2-1.dll (Not Found)
api-ms-win-gdi-internal-uap-l1-1-0.dll (Not Found)
api-ms-win-core-crt-l1-1-0.dll (Not Found)
api-ms-win-core-crt-l2-1-0.dll (Not Found)
api-ms-win-core-threadpool-l1-2-0.dll (Not Found)
api-ms-win-core-wow64-l1-1-0.dll (Not Found)
api-ms-win-core-io-l1-1-0.dll (Not Found)
api-ms-win-core-errorhandling-l1-1-2.dll (Not Found)
api-ms-win-core-heap-obsolete-l1-1-0.dll (Not Found)
api-ms-win-core-threadpool-legacy-l1-1-0.dll (Not Found)
api-ms-win-core-rtlsupport-l1-2-0.dll (Not Found)
api-ms-win-core-processthreads-l1-1-3.dll (Not Found)
api-ms-win-core-processthreads-l1-1-2.dll (Not Found)
api-ms-win-core-memory-l1-1-1.dll (Not Found)
api-ms-win-core-memory-l1-1-2.dll (Not Found)
api-ms-win-core-file-l1-2-2.dll (Not Found)
api-ms-win-core-file-l1-2-1.dll (Not Found)
api-ms-win-core-io-l1-1-1.dll (Not Found)
api-ms-win-core-job-l1-1-0.dll (Not Found)
api-ms-win-core-threadpool-private-l1-1-0.dll (Not Found)
api-ms-win-core-libraryloader-l1-2-2.dll (Not Found)
api-ms-win-core-libraryloader-l2-1-0.dll (Not Found)
api-ms-win-core-namedpipe-l1-2-2.dll (Not Found)
api-ms-win-core-namedpipe-l1-2-1.dll (Not Found)
api-ms-win-core-datetime-l1-1-1.dll (Not Found)
api-ms-win-core-datetime-l1-1-2.dll (Not Found)
api-ms-win-core-sysinfo-l1-2-0.dll (Not Found)
api-ms-win-core-sysinfo-l1-2-3.dll (Not Found)
api-ms-win-core-sysinfo-l1-2-1.dll (Not Found)
api-ms-win-core-localization-private-l1-1-0.dll (Not Found)
api-ms-win-core-processsnapshot-l1-1-0.dll (Not Found)
api-ms-win-core-processenvironment-l1-2-0.dll (Not Found)
api-ms-win-core-debug-l1-1-1.dll (Not Found)
api-ms-win-core-errorhandling-l1-1-3.dll (Not Found)
api-ms-win-security-base-l1-2-0.dll (Not Found)
api-ms-win-core-comm-l1-1-0.dll (Not Found)
api-ms-win-core-wow64-l1-1-1.dll (Not Found)
api-ms-win-core-wow64-l1-1-3.dll (Not Found)
api-ms-win-core-realtime-l1-1-0.dll (Not Found)
api-ms-win-core-systemtopology-l1-1-1.dll (Not Found)
api-ms-win-core-systemtopology-l1-1-0.dll (Not Found)
api-ms-win-core-processtopology-l1-1-0.dll (Not Found)
api-ms-win-core-namespace-l1-1-0.dll (Not Found)
api-ms-win-core-file-l2-1-2.dll (Not Found)
api-ms-win-core-file-l2-1-3.dll (Not Found)
api-ms-win-core-file-l2-1-1.dll (Not Found)
api-ms-win-core-xstate-l2-1-0.dll (Not Found)
api-ms-win-core-xstate-l2-1-1.dll (Not Found)
api-ms-win-core-localization-l2-1-0.dll (Not Found)
api-ms-win-core-normalization-l1-1-0.dll (Not Found)
api-ms-win-core-fibers-l2-1-0.dll (Not Found)
api-ms-win-core-fibers-l2-1-1.dll (Not Found)
api-ms-win-core-sidebyside-l1-1-0.dll (Not Found)
api-ms-win-core-appcompat-l1-1-0.dll (Not Found)
api-ms-win-core-appcompat-l1-1-1.dll (Not Found)
api-ms-win-core-windowserrorreporting-l1-1-0.dll (Not Found)
api-ms-win-core-windowserrorreporting-l1-1-3.dll (Not Found)
api-ms-win-core-windowserrorreporting-l1-1-1.dll (Not Found)
api-ms-win-core-windowserrorreporting-l1-1-2.dll (Not Found)
api-ms-win-core-console-l1-2-1.dll (Not Found)
api-ms-win-core-console-l2-1-0.dll (Not Found)
api-ms-win-core-console-l2-2-0.dll (Not Found)
api-ms-win-core-console-l3-2-0.dll (Not Found)
api-ms-win-core-psapi-l1-1-0.dll (Not Found)
api-ms-win-core-psapi-ansi-l1-1-0.dll (Not Found)
api-ms-win-security-appcontainer-l1-1-0.dll (Not Found)
api-ms-win-core-string-l2-1-0.dll (Not Found)
api-ms-win-core-memory-l1-1-3.dll (Not Found)
api-ms-win-core-atoms-l1-1-0.dll (Not Found)
api-ms-win-core-localization-obsolete-l1-2-0.dll (Not Found)
api-ms-win-core-kernel32-legacy-l1-1-1.dll (Not Found)
api-ms-win-core-appinit-l1-1-0.dll (Not Found)
api-ms-win-core-apiquery-l2-1-0.dll (Not Found)
api-ms-win-core-registry-l1-1-1.dll (Not Found)
api-ms-win-security-activedirectoryclient-l1-1-0.dll (Not Found)
api-ms-win-eventing-controller-l1-1-0.dll (Not Found)
api-ms-win-eventing-consumer-l1-1-0.dll (Not Found)
api-ms-win-eventing-consumer-l1-1-1.dll (Not Found)
api-ms-win-service-core-l1-1-0.dll (Not Found)
api-ms-win-service-core-l1-1-1.dll (Not Found)
api-ms-win-service-core-l1-1-2.dll (Not Found)
api-ms-win-service-management-l1-1-0.dll (Not Found)
api-ms-win-service-management-l2-1-0.dll (Not Found)
api-ms-win-service-private-l1-1-4.dll (Not Found)
api-ms-win-service-private-l1-1-2.dll (Not Found)
api-ms-win-service-private-l1-1-3.dll (Not Found)
api-ms-win-service-private-l1-1-0.dll (Not Found)
api-ms-win-service-winsvc-l1-1-0.dll (Not Found)
api-ms-win-security-base-private-l1-1-0.dll (Not Found)
api-ms-win-core-registry-l1-1-2.dll (Not Found)
api-ms-win-security-audit-l1-1-1.dll (Not Found)
api-ms-win-security-audit-l1-1-0.dll (Not Found)
api-ms-win-core-pcw-l1-1-0.dll (Not Found)
api-ms-win-core-string-l2-1-1.dll (Not Found)
api-ms-win-core-localization-l1-2-2.dll (Not Found)
api-ms-win-core-version-l1-1-0.dll (Not Found)
api-ms-win-eventing-classicprovider-l1-1-0.dll (Not Found)
api-ms-win-core-shlwapi-obsolete-l1-1-0.dll (Not Found)
api-ms-win-core-shlwapi-legacy-l1-1-0.dll (Not Found)
api-ms-win-core-kernel32-legacy-l1-1-2.dll (Not Found)
api-ms-win-core-url-l1-1-0.dll (Not Found)
api-ms-win-core-registryuserspecific-l1-1-0.dll (Not Found)
api-ms-win-shell-shellcom-l1-1-0.dll (Not Found)
api-ms-win-stateseparation-helpers-l1-1-0.dll (Not Found)
api-ms-win-core-job-l2-1-0.dll (Not Found)
api-ms-win-core-marshal-l1-1-0.dll (Not Found)
api-ms-win-core-fibers-l1-1-1.dll (Not Found)
api-ms-win-core-quirks-l1-1-0.dll (Not Found)
api-ms-win-core-psm-key-l1-1-0.dll (Not Found)
api-ms-win-core-versionansi-l1-1-0.dll (Not Found)
BTI429.dll (Not Found)
BTICard.dll (Not Found)
PCI76CS3Dll.dll (Not Found)
api-ms-win-core-version-l1-1-1.dll (Not Found)
api-ms-win-core-versionansi-l1-1-1.dll (Not Found)
api-ms-win-core-version-private-l1-1-0.dll (Not Found)

File : C:\Users\...\exe\3F1223_120TOGASwTesting.seq
Location : Seq["MainSequence"].Main["Taking Continuity Readings"].TS.SData
Rule : Code modules must be able to load
Description : TestStand must be able to load all code modules without error. TestStand reports errors at run time when it
cannot load a code module. Correct this problem by editing the step in the sequence editor.

John O'C
Staff Test Systems Engineer
Woodward, Inc.
Skokie, Illinois, USA

"Life is not a journey to the grave with the intention of arriving safely
in a pretty and well preserved body, but rather to skid in broadside,
thoroughly used up, totally worn out, and loudly proclaiming...
Wow...What a Ride!"
0 Kudos
Message 14 of 14
(793 Views)