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

3. Выберите Close. Нет параметров для функциональной панели Close. Функция Close удаляет прибор из таблицы конфигурации программного обеспечения. Прибор должен быть вновь инициализирован перед повторным использованием.

4. Введите err в элементе управления ошибки.

5. Выберите Run Function Panel из меню Code,  чтобы закрыть драйвер прибора.

6. Выберите Insert Function Call из меню Code, чтобы скопировать сгенерированный код в исходное окно.

7. Нажмите на исходное окно на заднем плане, чтобы сделать его активным.

Выполнение программы.

Ваш исходный текст программы должен соответствовать следующему тексту:

static double x_zero;

static double delta_t;

static double datapoints[100];

static int err;

#include <cvirte.h>

#include <analysis.h>

#include <ansi_c.h>

#include <userint.h>

#include "sample6.h"

#include "scope.h"

int panelHandle;

int i;

int main(int argc, char *argv[])

{

if (InitCVIRTE (0, argv, 0) == 0)

return (-1); /* out of memory */

if ((panelHandle = LoadPanel (0, "sample6.uir", PANEL)) < 0)

return -1;

err = scope_init (1);

err = scope_config (1, 1.0, 1, 1.0e-3);

DisplayPanel (panelHandle);

RunUserInterface ();

return 0;

}

int CVICALLBACK AcquireData (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

{

switch (event) {

case EVENT_COMMIT:

err = scope_read_waveform (1, datapoints, &delta_t,

&x_zero);

PlotY (panelHandle, PANEL_WAVEFORM, datapoints, 100,

VAL_DOUBLE, VAL_THIN_LINE, VAL_EMPTY_SQUARE,

VAL_SOLID, 1, VAL_RED);

break;

case EVENT_RIGHT_CLICK:

break;

}

return 0;

}

int CVICALLBACK FindMaxMin (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

{

double max, min;

int max_index, min_index;

switch (event) {

case EVENT_COMMIT:

MaxMin1D (datapoints, 100, &max, &max_index, &min,

&min_index);

SetCtrlVal (panelHandle, PANEL_MAX, max);

SetCtrlVal (panelHandle, PANEL_MIN, min);

break;

case EVENT_RIGHT_CLICK:

break;

}

return 0;

}

int CVICALLBACK Shutdown (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

{

switch (event) {

case EVENT_COMMIT:

err = scope_close ();

QuitUserInterface (0);

break;

case EVENT_RIGHT_CLICK:

break;

}

return 0;

}

Внимание: ваши обращения к scope_config и scope_read_waveform могут отличаться от показанных в предшествующем примере.

Последний шаг перед выполнением программы должен включать файл заголовка осциллографа. Чтобы вызывать функции из драйвера прибора осциллографа, вы должны добавить следующую строку наверху исходного файла.

#include "scope.h"

Теперь все готово для выполнения программы. Выберите Run Project из меню Run.

Добавление прибора к вашему проекту.

Когда вы загрузили драйвер осциллографа через меню Instrument, вы вручную добавили функциональные панели к драйверу прибора в LabWindows/CVI. Добавляя драйвер осциллографа в список файлов вашего проекта, функциональные панели драйвера осциллографа будут добавлены в меню Instrument автоматически, когда вы загружаете проект в будущем. Следуйте этим шагам, чтобы добавить драйвер к вашему проекту.

1. Закройте все окна кроме окна проекта.

2. Выберите Add File to Project  из меню Edit и тип файла instrument (*.fp).

3. Выберите scope.fp из диалогового меню.

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

Глава 9. Дополнительные упражнения

Это - последняя глава занятий обучающей программы. Выполняя упражнения этой главы, Вы приобретёте больше навыков по использованию материала, изложенного ранее. В каждом упражнении Вы пользуетесь кодом, созданным на предыдущем занятии. Упражнение 1 запускается заключительной типовой программой, которую Вы закончили на занятии обучающей программы Главы 8.