Elo TouchSystems 1525L User Manual
Page 135
MagTek Device Drivers for Windows
132
/** clear overlapped structure */
memset ( &ov_r, 0, sizeof (ov_r) );
memset ( &ov_w, 0, sizeof (ov_w) );
if (argc < 2)
drv_h = OPEN_DEVICE ("COM5");
/* Must Specify proper COM# as default */
else
drv_h = OPEN_DEVICE (argv[1]);
if (drv_h == INVALID_HANDLE_VALUE)
{
ws = GetLastError();
printf("Can NOT open device : %s. Error : 0x%lx", "", ws);
return ( stage);
}
{ DCB dcb;
GetCommState(drv_h, &dcb);
dcb.BaudRate = CBR_9600;
dcb.Parity
= NOPARITY;
dcb.ByteSize = 8;
dcb.StopBits = ONESTOPBIT;
dcb.fParity
= 0;
dcb.fBinary
= 1;
dcb.fOutxCtsFlow = 0;
dcb.fOutxDsrFlow = 0;
dcb.fDtrControl = DTR_CONTROL_ENABLE;
SetCommState(drv_h, &dcb);
}
#define STAGE(idx, op, msg)
\
ret_h = op;
\
if (ret_h==NULL)
\
{
\
printf("%s\n", (msg));
\
break;
\
}
\
stage = idx;
do {
STAGE ( 6, CreateEvent (NULL, TRUE, FALSE, NULL),
"Can't Create Overlapped Event(read)" );
ov_r.hEvent = ret_h;
STAGE ( 7, CreateEvent (NULL, TRUE, FALSE, NULL),
"Can't Create Overlapped Event(write)" );
ov_w.hEvent = ret_h;
STAGE ( 8,
CreateThread(
NULL,
// address of thread security attributes
0L,
// initial thread stack size, in bytes
(LPTHREAD_START_ROUTINE)output_thread,// adr of thread function
NULL,
// argument for new thread
0L,
// creation flags 0-run immediately
&retdw
// address of returned thread identifier
),
"Can't Create output thread" );
out_threadh = ret_h;
STAGE ( 9,
CreateThread(