02-08-2013 08:04 PM
LabWindows/CVI 8.5
Trying to teach myself some "thread stuff"
When I compile I get the error: Undeclared identifier 'DEFAULT_THREAD_POOL_HANDLE'.
I figure there's a library I need to include, but I don't see it in the docs. Help, plz?
Here is the whole program:
#include <cvirte.h>
#include <userint.h>
#include <windows.h>
#include "thread.h"
#include "globals.h"
static int panelHandle;
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{
if (InitCVIRTE (hInstance, 0, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "thread.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
CmtWaitForThreadPoolFunctionCompletion (DEFAULT_THREAD_POOL_HANDLE, functionID, THREAD_PRIORITY_NORMAL);
return 0;
}
int CVICALLBACK Run (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
static int Thread_ID = 0;
switch (event)
{
case EVENT_COMMIT:
GetCtrlVal( PANEL, PANEL_BINARYSWITCH, &running );
if( Thread_ID == 0 )
{
CmtScheduleThreadPoolFunction (DEFAULT_THREAD_POOL_HANDLE, DataAcqThreadFunction, NULL, &functionID);
}
break;
}
return 0;
}
int CVICALLBACK Quit (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
QuitUserInterface (0);
break;
}
return 0;
}
int CVICALLBACK DataAcqThreadFunction (void *functionData)
{
int clock_div = 0;
int count = 0;
while (!running)
{
for( clock_div=0 ; clock_div<10000000 ; clock_div++){}
count++;
if (count > 10000)
count = 0;
functiondata = count;
}
return 0;
}
int CVICALLBACK UpdateGauge (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
SetCtrlVal( PANEL, PANEL_NUMERICGAUGE, functiondata );
break;
}
return 0;
}
Solved! Go to Solution.
02-09-2013 09:02 AM
Never mind, all. Did a global search on the CVI directories.
it's in "util.h"