|
답변 감사합니다.
vi로 시작하는 함수는 Agilent에서 제공하는 Library 함수입니다. (계측기와 통신할 때 사용합니다.)
viPrintf
viReadSTB
viScanf 등
MMEM으로 시작하는 함수는 해당 계측기의 그림에 관한 명령어 입니다.
Chr$(10) 는 C++로 바꾸면 '\n' (Line Feed) 에 해당합니다. (인터넷 찾아봤습니다.)
바꾸면
status = viVQueryf(vi, "MMEM:DATA? 'C:PICTURE.GIF'\n", "%c%%#y", ArrayPtr(0) );
이렇게 되는데 실행하면 Error가 납니다.
(SICL32.dll : Library 관련된 dll 같습니다.)
말씀하신대로
AnsiString an_Temp;
an_Temp.sprintf(":MMEM:DATA? 'C:PICTURE.GIF%c%%#y'",10);
하면 계측기에서 불러올 수가 없습니다.
계측기에서 파일을 불러올때 아래 함수를 사용해야만 합니다.
viVQueryf : 송신과 수신에 해당
viPrintf : 송신에 해당
viScanf : 수신에 해당
제가 알고싶은것은
"%#y" 이것을 C++로 어떻게 바꾸어야 하는지?
그리고
파일변환에 관해서는
'Store the results in a text file
fnum = FreeFile() 'Get the next free file number
Open "picture.gif" For Binary As #fnum
isOpen = True
headerlength = 2 + (Chr$(ResultsArray(1)))
For x = headerlength To length - 2
Put #fnum, , ResultsArray(x)
Next x
위 문장에서
FreeFile() -> C++ 에 해당하는 함수는?
Open "picture.gif" For Binary As #fnum -> C++로 어떻게 바꾸어야 하는지?
Put #fnum, , ResultsArray(x) -> 이 문장도 잘 모르겠습니다.
억지로 하면 파일을 불러오는데 그림은 볼수 없고.
(메모장으로 열면 이상한 글자들이 표시되는것으로 봐서는 불러올때 TYPE만 맞춰주면 될것 같습니다.)
제가 변환한 파일 같이 첨부파일에 올립니다.
몇 주일째 진전이 없습니다.
예전에 VB 한 친구도 "%#y" 이런 Type은 처음 본다고 하는데.
다시 한번 부탁드리겠습니다.
김동현 님이 쓰신 글 :
: 안녕 하세요.
: 도움이 될지는 모르겠습니다만, 제가 아는 지식안에서 설명을 드리도록 하겠습니다.
: 일단 질문에서 어떤것을 물어 보시는지는 잘 모르겠습니다만, 제 생각으로는 command을
: 만드는 부분을 모르시는 것 같아 몇자 적어 봅니다.
:
: status = viVQueryf(vi, ":MMEM:DATA? 'C:PICTURE.GIF'" + Chr$(10), _
: : "%#y", ArrayPtr(0))
:
: Chr$(10) + "%#y" => 이놈은 계측기와 통신하실때 사용 하는 종결자라고 생각이 듭니다. (문장의 끝을 표현 하는 것).
: viQueryf : 계측기에서 제공 하는 함수 일 것 같구요. (제 개인적인 생각임.)
: vi : 장비에 핸들이 이닐까 생각이 듭니다.
: ArrayPtr(0) => 포인트 주소를 넘기고 있는것 같구요.
:
: AnsiString an_Temp;
: an_Temp.sprintf(":MMEM:DATA? 'C:PICTURE.GIF%c%%#y'",10);
: 이런식으로 만들면 되지 않을까요?
|