// cw3konsola.cpp : Defines the entry point for the console application. //Kusy Mateusz, Wągrodzki Marek // #include "stdafx.h" #include #include /*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); } }