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.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.