Tyco Electronics 1525l Car Video System User Manual


 
MagTek Device Drivers for Windows
122
/** 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(