- // cw3konsola.cpp : Defines the entry point for the console application.
- //Kusy Mateusz, Wągrodzki Marek
- //
- #include "stdafx.h"
- #include <windows.h>
- #include <math.h>
- /*Dołączenie pliku nagłówkowego driver'a NI-488.2*/
- #include "ni4882.h"
- extern char ErrorCodes[29][5]; //Kody błędów NI 488.2
- void IEC625_prog(void *par);//prototyp procedury obsługi IEC-625.2
- //////////////////////////////////////////
- // parametry programu
- float a=50;
- float b=7000;
- int i=8; //ile probek na dekade
- float A=0.5;
- float O=0;
- float P6=0;
- float z;
- short ma=21;//multi
- short ga=10;//adres gene
- float freq[18];
- Addr4882_t result[2];
- char buffer[101];
- double count;
- short SRQasserteed;
- //////////////////////////////////////////
- // punkt wejścia programu konsolowego
- int _tmain(int argc, _TCHAR* argv[])
- {
- //wypisanie tekstu na ekranie
- WriteTxt("Cw3. program NASZ IEC-625.2\r\n");
- _Wait(); //zatrzymanie programu
- //wywołanie funkcji obsługi IEC-625.2
- for(int j=0;j<18;j++)
- {
- freq[j]=(float)50*(float)pow(10,(float)j/8);
- }
- IEC625_prog(0);
- _Wait();
- return 0;
- }
- char komunikat[100];
- /*
- Procedura systemu pomiarowego IEC-625.2
- */
- void IEC625_prog(void *par){
- SendIFC(0);
- EnableRemote(0, &ma);
- EnableRemote(0, &ga);
- result[0]=(Addr4882_t)ma;
- result[1]=(Addr4882_t)ga;
- DevClearList(0,result);
- Send(0,ma,"*RST;*CLS",9L, NLend);
- Send(0,ma,"*SRE 16;*OPC?", 14L, NLend);
- Receive(0, ma, buffer, 2L, STOPend);
- Send(0,ma,"CONF:VOLT:AC",12L,NLend);
- Send(0,ma,"*OPC?",5L,NLend);
- Receive(0, ma, buffer, 2L, STOPend);
- Send(0,ma,"TRIG:SOURCE IMM",15L,NLend);
- Send(0,ma,"*OPC?",5L,NLend);
- Receive(0, ma, buffer, 2L, STOPend);
- Send(0,ma,"DET:BAND 20",11L,NLend);
- Send(0,ma,"*OPC?",5L,NLend);
- Receive(0, ma, buffer, 2L, STOPend);
- Send(0,ma,"DET:BAND 20",11L,NLend);
- Send(0,ma,"*OPC?",5L,NLend);
- Receive(0, ma, buffer, 2L, STOPend);
- Send(0,ma,"SAMP:COUN 1",11L,NLend);
- Send(0,ma,"*OPC?",5L,NLend);
- Receive(0, ma, buffer, 2L, STOPend);
- Send(0,ga,"*RST;*CLS",9L, NLend);
- Send(0,ga,"*OPC?",5L,NLend);
- Receive(0, ga, buffer, 2L, STOPend);
- for(int j=0;j<18;j++)
- {
- DevClear(0,ma);
- int len;
- short buf = 0;
- strcpy_s(komunikat,"\0");
- sprintf_s(komunikat,"APPL:SIN %f, %f, %f", freq[j],A,O);
- len=strlen(komunikat);
- Send(0,ga,komunikat,len,NLend);
- Send(0,ga,"*OPC?",5L,NLend);
- Receive(0, ga, buffer, 2L, STOPend);
- Send(0,ma, "INIT",4L,NLend);
- Send(0,ma,"FETC?",5L,NLend);
- WaitSRQ(0,&buf);
- Receive(0,ma,buffer,16L,STOPend);
- printf("%s",buffer);
- }
- }