Tyco Electronics 1525l Car Video System User Manual


 
MagTek Device Drivers for Windows
124
}
#else
gets(str);
strcat(str, "\n");
ch = str[0];
#endif
switch (ch)
{
case 0x1a: // <Ctrl-Z> - emergency exit
printf("\n---Exit---\n");//@@
quit = TRUE;
break;
default:
if (ch < 0x100)
{
BOOL rs;
DWORD ret_len;
#ifdef SINGLE_CHARS
rs = WriteFile(drv_h, &ch, 1, &ret_len, &ov_w);
#else
rs = WriteFile(drv_h, str, strlen(str), &ret_len, &ov_w);
#endif
if (!rs)
{
ws = GetLastError ();
if ( ws != ERROR_IO_PENDING)
printf("DeviceIOControl (Write) Error : %i (0x%x)\n", ws, ws );
}
rs = GetOverlappedResult (
drv_h, // handle
&ov_w, // address of overlapped structure
&ret_len, // address of actual bytes count
TRUE // wait flag
);
if (!rs)
{
ws = GetLastError ();
printf("Write Error : %i (0x%x)\n", ws, ws );
}
}
else
{
}
break;
} /* switch (ch) */
// give output thread chance to catch 'quit' character from driver
// @@ there should be a better way to do this
if (ch == 0x1b)
Sleep(200);
}
}
#define BUFSZ 128
void output_thread (void *vp)
{
BOOL rs;