예제 #1
0
파일: tty.cpp 프로젝트: RD3BAX/BrainBay
int stop_opi_pollthread (void)
{
	unsigned char buf[8] = {0x33,0x33,0x00,0x02,0x20,0x22,0x00,0x42};   // request stop module 

	fOpiThreadDone=TRUE;
	Sleep(150);
	write_to_comport (buf,8); 
	return(0);
}
예제 #2
0
void COM_WRITEROBJ::work(void)
{

	if ((TTY.COMDEV!=INVALID_HANDLE_VALUE) && (en_trigger) && (input!=INVALID_VALUE) && (trigger==INVALID_VALUE))
	{
		write_to_comport (command );
		write_to_comport (data1 );
		write_to_comport (data2 );
		cnt++;
		if (hDlg==ghWndToolbox)
		{
			char szdata[50];
			sprintf(szdata,"%d frames written",cnt);
 			SetDlgItemText(hDlg,IDC_STATUS,szdata);
		}
	}
	trigger=input;


	if ((TTY.COMDEV!=INVALID_HANDLE_VALUE) && (en_trigger) && (input2!=trigger2) && (input2!=INVALID_VALUE))
	{
		write_to_comport (command );
		write_to_comport (data1 );
		write_to_comport ((unsigned char) input2);
		cnt++;
		if (hDlg==ghWndToolbox)
		{
			char szdata[50];
			sprintf(szdata,"%d frames written",cnt);
 			SetDlgItemText(hDlg,IDC_STATUS,szdata);
		}
	}
	trigger2=input2;
	
}
예제 #3
0
파일: tty.cpp 프로젝트: RD3BAX/BrainBay
int start_opi_pollthread (void)
{
	DWORD dwOpiThreadStatId;

	unsigned char buf[8] = {0x33,0x33,0x00,0x02,0x20,0x23,0x00,0x43};   // request start module 
	write_to_comport (buf,8); 

	fOpiThreadDone=FALSE;
	TTY.OPITHREAD =
		CreateThread( NULL, 1000, (LPTHREAD_START_ROUTINE) OpiProc, 0, 0, &dwOpiThreadStatId);

	return(0);
}
예제 #4
0
파일: tty.cpp 프로젝트: RD3BAX/BrainBay
DWORD WINAPI OpiProc(LPVOID lpv)
{
    DWORD dwWritten;

	unsigned char buf[8];
	buf[0]=0x33; buf[1]=0x33; buf[2]=0x00;
	buf[3]=0x02; buf[4]=0x10; buf[5]=0x00;
	buf[6]=0x00; buf[7]=0x10;

    while (!fThreadDone) 
	{
		if (TTY.CONNECTED)
		{
			write_to_comport (buf,8); 
			Sleep (50);  // send a request packet every 50 milliseconds
		}
	}
	return(0);
}
예제 #5
0
파일: tty.cpp 프로젝트: dadymax/BrainBay
void write_string_to_comport ( char * s)
{
	for (unsigned int i=0; i< strlen(s); i++) 
		write_to_comport(s[i]);
}
예제 #6
0
LRESULT CALLBACK ComWriterDlgHandler(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	char szdata[50];
	COM_WRITEROBJ * st;
	
	st = (COM_WRITEROBJ *) actobject;
	if ((st==NULL)||(st->type!=OB_COM_WRITER)) return(FALSE);
    
	switch( message )
	{
		case WM_INITDIALOG:
	        CheckDlgButton(hDlg, IDC_TRIGGER, st->en_trigger);
			SetDlgItemInt(hDlg,IDC_COMMAND,st->command,0);
			SetDlgItemInt(hDlg,IDC_DATA1,st->data1,0);
			SetDlgItemInt(hDlg,IDC_DATA2,st->data2,0);
			if (TTY.COMDEV==INVALID_HANDLE_VALUE)
				SetDlgItemText(hDlg,IDC_STATUS,"COM-Port for EEG not available");
			else if (st->cnt==0) SetDlgItemText(hDlg,IDC_STATUS,"ready to send");
			else {	  sprintf(szdata,"%d frames written",st->cnt);
					  SetDlgItemText(hDlg,IDC_STATUS,szdata);		}

	        break;

		case WM_CLOSE:
			    EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			break;
		case WM_COMMAND:
			switch (LOWORD(wParam)) 
			{
				case IDC_SENDCOMMAND:
					st->command=(unsigned char) GetDlgItemInt(hDlg,IDC_COMMAND,NULL,0);
					st->data1=(unsigned char) GetDlgItemInt(hDlg,IDC_DATA1,NULL,0);
					st->data2=(unsigned char) GetDlgItemInt(hDlg,IDC_DATA2,NULL,0);
					if (TTY.COMDEV!=INVALID_HANDLE_VALUE)
					{
                       write_to_comport (st->command );
					   write_to_comport (st->data1 );
					   write_to_comport (st->data2 );

					   //if (!SetEvent(TTY.WriterEvent))
//					   if (WriterProc(NULL)) st->cnt++;
					   sprintf(szdata,"%d frames written",st->cnt);
 					   SetDlgItemText(hDlg,IDC_STATUS,szdata);				
					}
                    break;
				case IDC_TRIGGER:
					st->en_trigger=IsDlgButtonChecked(hDlg, IDC_TRIGGER);
					break;
				case IDC_RESET:
					st->cnt=0;
					if (TTY.COMDEV!=INVALID_HANDLE_VALUE) 
						SetDlgItemText(hDlg,IDC_STATUS,"0 frames written");				
					break;
            }
			return TRUE;
			break;
		case WM_SIZE:
		case WM_MOVE:  update_toolbox_position(hDlg);
		break;
	}
	return FALSE;
}