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형입니다.