05-25-2021 08:43 AM
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!!!
05-25-2021 11:04 AM
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)
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,
05-31-2021 12:25 AM
Hi, I am glad that your issue got resolved and my troubleshooting steps were helpful.
04-13-2022 04:38 PM - edited 04-13-2022 05:16 PM
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.