Основная функция очень проста и представляет первый шаг который вам понадобится для построения собственного приложения. Основная функция показывается в следующей иллюстрации:
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return –1; /* out of memory */
if ((panelHandle = LoadPanel (0, "sample4.uir", PANEL)) < 0)
return –1;
DisplayPanel (panelHandle);
RunUserInterface ();
return 0;
}
Прежде, чем вы сможете отобразить или обслуживать интерфейс с пользователем, эксплуатировать интерфейс пользователя, который вы создали в последнем сеансе, вы должны сначала загрузить панели из файла .uir на вашем жестком диске в память.
• функция LoadPanel выполняет эту операцию в основной функции.
• функция DisplayPanel отображает панель на экране.
• функция RunUserInterface активизирует LabWindows/CVI, чтобы начать посылать события от интерфейса пользователя в разрабатываемой программе C.
Функция AcquireData автоматически выполняется всякий раз, когда Вы нажимаете на кнопку Acquire из интерфейса пользователя. Пока функция AcquireData просто генерирует массив произвольных данных. Теперь вы добавите к этой функции, так что вы можете вычерчивать график массив на управлении графа, который вы создали на интерфейсе пользователя. Функция AcquireData показывается в следующем коде:
int CVICALLBACK AcquireData (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event) {
case EVENT_COMMIT:
break;
case EVENT_RIGHT_CLICK:
break;
}
return 0;
}
ФункцияShutdown (выключения).
Функция Shutdown автоматически выполняется всякий раз, когда Вы нажимаете на кнопку Quit из интерфейса пользователя. Эта функция отключает интерфейс пользователя из посылки информации случае возвращающей функции, и выполненяет остановов программы. Функция Shutdown показывается в следующем коде.
int CVICALLBACK Shutdown (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event) {
case EVENT_COMMIT:
QuitUserInterface (0);
break;
case EVENT_RIGHT_CLICK:
break;
}
return 0;
}
Ваша задача состоит в том, чтобы завершить исходный текст для sample4.c так, чтобы программа генерировала массив случайных чисел и вычерчивать массив на управлении графа. Большинство действий произойдет в функции AcquireData. Когда пользователь нажимает на кнопку Acquire, программа генерирует произвольный массив внутри для цикла.
1. Объявите переменную типа массив datapoints и индексируйте переменную i вверху исходного окна вводя следующие строки текста программы.
int i;
double datapoints[100];
2. Поставте курсор в исходном окне в пустой строке следующей за EVENT_COMMIT в функции AcquireData.
3. LabWindows/CVI имеет утилиты, помогающие генерировать код для общего C, создания циклов, циклов с условием продолжения, и утверждением переключателя. Выберите Insert Construct из меню Edit и выбирает For Loop, чтобы отобразить диалоговое окно, показанное на Рисунке 6-1.
Рисунок 6-1. Диалговое окно для цикла.
4. Введите следующие значения в диалоговом окне для цикла:
Initialization: i=0
Condition: i<100
Update: i++
Нажмите ОК.
5. Введите следующую строку программы внутри конструкции для цикла, чтобы генерировать случайные числа:
datapoints[i] = rand()/32767.0;
Определение PlotY функции
Следуйте этим шагам, чтобы генерировать строку текста программы, которая выдаст произвольный массив данных в графе управления на интерфейсе пользователя.
1. Поместите курсор в исходное окно на пустой строке следующей за заключительной скобкой только после обращания к функции datapoints[i] = rand()/32767.0 внутри функции AcquireData.
2. Войдите в меню Library, и выберите User Interface, чтобы отобразить показанное на рисунке 6-2 диалоговое окно:
Рисунок 6-2. Диалоговое окно выбора функциональной панели.
3. Используйте клавишу <Down> для перемещения курсора, чтобы выделить Controls/Graphs/Strip Charts и нажмите <Enter>.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.