АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Аналоговый вывод

Читайте также:
  1. Анализ результатов и выводы
  2. В отличие от почек, которые выводят с мочой из организма преимущественно нейтральные соли, кожа способна выводить сами кислоты.
  3. Ввод, вывод вектора и матрицы
  4. Ввод/вывод аналоговых сигналов
  5. Вопрос 5. Какие выводы позволяет сделать сбалансированный бизнес-анализ на стадии имитации строительства предприятия?
  6. Вывод информации из базы данных
  7. Вывод общей формулы обратной матрицы
  8. Вывод текста
  9. Вывод этого знания категоричен и строг
  10. Вывод: график зависимости совместного изменения двух изучаемых параметров показывает наличие взаимосвязи, которая приближенно оценивается как линейная.
  11. Вывод: средняя частота пульса пациентов изучаемой группы составляет 121,9 ударов в минуту, вариабельность пульса малая.

 

#include <utility.h>

#include <NIDAQmx.h>

#include <ansi_c.h>

#include <cvirte.h>

#include <userint.h>

#include "ContGen.h"

 

static int panelHandle;

char chan[256];

TaskHandle taskHandle=0;

int waveformType;

double min,max,frequency,rate,amp;

uInt32 sampsPerCycle;

float64 cyclesPerBuffer;

uInt32 bufferSize;

bool32 done=0;

int32 written;

int i,rr;

double data[20000];

 

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

{

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

return -1; /* out of memory */

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

return -1;

DisplayPanel (panelHandle);

RunUserInterface ();

DiscardPanel (panelHandle);

return 0;

}

 

int CVICALLBACK StartCallback (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

{

switch (event)

{

case EVENT_COMMIT:

GetCtrlVal(panel,PANEL_CHANNEL,chan);

GetCtrlVal(panel,PANEL_MINVAL,&min);

GetCtrlVal(panel,PANEL_MAXVAL,&max);

GetCtrlVal(panel,PANEL_AMP,&amp);

SetCtrlAttribute(panel,PANEL_GRAPH,ATTR_XAXIS_GAIN,1.0/rate);

for (i=0;i<100;i++) { data[i]=0;}

DAQmxCreateTask("",&taskHandle); DAQmxCreateAOVoltageChan(taskHandle,chan,"",min,max,DAQmx_Val_Volts,NULL);

DAQmxStartTask(taskHandle);

 

for (i=0;i<100;i++){ data[i]=i/20.0;

DAQmxWriteAnalogScalarF64 (taskHandle, 1, 1.0, data[i], 0);

DeleteGraphPlot(panel,PANEL_GRAPH,-1,VAL_DELAYED_DRAW);

PlotY(panel,PANEL_GRAPH,data,100,VAL_DOUBLE,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED);

Delay(0.05);

}

SetCtrlAttribute(panel,PANEL_START,ATTR_DIMMED,1);

ProcessDrawEvents();

DAQmxStopTask(taskHandle);

DAQmxClearTask(taskHandle);

break;

}

return 0;

}

int CVICALLBACK StopCallback (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

{

switch (event)

{

case EVENT_COMMIT:

QuitUserInterface (0);

break;

}

return 0;

}

 

Пример панели интерфейса пользователя приведен на рис. 66.

Рис. 66


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 |


Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)