LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

DLL에서 message 받기

EEG 데이터를 PC에서 읽어들이려고 합니다.

DLL 파일과 관련 header파일은 가지고 있습니다.

MFC로는 구현에 성공했는데, labview로 어떻게 바꾸어야 할지 잘 모르겠습니다.

DLL 내부 구조는 간단합니다.

 

처음에 void Init_Device(HWND msgtarget_wnd, int port_number)란 함수로 초기화 가능하고,

void Start_Stream() 함수가 실행되면 A/D변환 및 데이터 전송 명령이 전달되어 연속적으로 데이터가 PC로 전송되게 됩니다.

labview 구현이 어려운 부분은:

 

DLL에서 stream 처리용 thread를 생성하는데요, 이건 입력되는 stream data를 stream 메모리에 저장하고 전부 채워지면

메시지를 전송하는 기능을 합니다.

 

다시말해 DLL 내부적으로

 

SendMessage(MSGTARGET_WINDOW,(LPARAM)AcqUnitData);

이렇게 처리를 합니다.
여기서 MSGTARGET_WINDOW 는 Init_Device함수의 인자로 전달된 메시지 타겟 윈도우의 핸들이며,

(LPARAM)AcqUnitData 는 스트림 데이터를 저장하고 있는 스트림 메모리인 AcqUnitData 의 포인터를 나타냅니다.

 

 

DLL 내부 구조는 이렇구요, 사용자가 labview에서 사용가능한 함수는 자체 리턴값이 없는

void Start_Stream() 뿐입니다.

이걸 써서 위에서 보낸 (LPARAM)AcqUnitData를 어떻게 읽어들여야 하는지 알고 싶습니다.

 

 

 

참고: DLL에서 스트림 데이터를 임시 저장하는 스트림 메모리는 float형입니다.

 

 

 

 

 

 

 

 

0 Kudos
Message 1 of 1
(3,792 Views)