Обучающая программа — Создание прикладной программы в LabWindows/CVI, страница 3

Теперь, когда Вы создали GUI, CodeBuilder будет автоматически выполнять начало вашего исходного кода.

1. Во-первых, Вы должны определить случаи, когда Ваша программа будет отвечать. Выберите Default


Control Events из подменю Preferences меню Code. Окно должно выглядеть так, как показано на рнисунке 5-10.

Рис.5-10. Окно управления Callback

2. Позже в этой обучающей программе Вы создадите код для вывода на экран помощи при нажатии правой кнопки мыши на GUI. Для этого Вы должны выбрать EVENT_RIGHT_CLICK из окна так, чтобы рядом с надписью появился флажок. Ваша программа ответит на два случая: щелчок левой кнопкой или нажатие <Enter>, что позволяет вводить данные, и щелчок правой кнопкой, который  выводит помощь. Нажмите OK.


3. Выберите Generate»All Code из меню Code для вывода окна, показанного на рисунке 5-11.

Рис.5-11. Окно Generate All Code

4. Вы должны определить некоторые опции из диалога CodeBuilder. Сначала Вы должны решить, какие панели Вы хотите показать при запуске программы. Для этой программы у Вас имеется только одна панель в вашем .uir файле.

 Для этого удостоверитесь, что переменной Panel Variable Name присвоено имя panelHandle.

5. В нижней половине окна представлен список функций callback в вашем .uir файле. Вы можете выбрать из этого списка функцию, которая будет прерывать выполнение программы. Выберите функцию Shutdown в окне так, чтобы рядом с ней появился флажок.

6. Нажмите кнопку OK. Это вызовет CodeBuilder, чтобы создать исходный код для Вашей программы. Новое окно источника должно появиться со следующим кодом.

#include <cvirte.h>

#include <userint.h>

#include "sample4.h"

static int panelHandle;

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;

}

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;

}

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;

}

7. Выберите Save из меню File в окне Source Window или щелкните на ярлыке Save

и сохраните файл-источник под именем sample4. c.

Вы закончили занятие обучающей программы Главы 5.

На следующем занятии Вы сформируете C исходный код для вывода формы волны на граф.

Глава 6. Использование функциональных панелей и библиотек.

В этом сеансе, вы используете функциональные панели LabWindows/CVI, чтобы сгенерировать код. Затем вы используете этот код, чтобы вычерчивать массив управления графом с помощью, как это делалось в последнем сеансе (Глава 5). Если вы не завершили Главу 5, возвратитесь и делайте так здесь.

Установка

Если вы непосредственно не идете из Главы 5, следуйте этим шагам, чтобы установить LabWindows/CVI так, чтобы Вы могли завершить этот сеанс учебника.

1. Закройте все окна, кроме окна Проекта выбрав Close из меню File.

2. Выберите Open из меню File и выберите тип файла Source (*.c).

3. Введите sample4 в FileName, или выберите из диалогового меню.

4. Если прерывание в первой опции Statement в меню Run включено, выключите эту опцию,  выбрав сначала прерывание в первой опции Statement в меню Run.

5. Выберите Open в меню File, и выберите тип файла User Interface (*.uir).

6. Напечатайте sample4.uir в FileName, или выберите имя в диалоговом окне. Минимизируйте окно sample4.uir для последующего использования.

Анализ исходного текста программы.

Исходный текст для программы sample4 незавершен. В этом сеансе, вы добавите строку кода к программе, чтобы завершить её. Программа состоит из трех функций. Важно, чтобы вы поняли какие задачи выполняет каждая функция в коде sample4.c, для того, что в будущем применять аналогичные функции для ваших собственных LabWindows/CVI программ.