Elo TouchSystems 1525L manual MagTek Device Drivers for Windows, Ctrl-Z - emergency exit, if ch

Models: 1525L

1 181
Download 181 pages 49.02 Kb
Page 137
Image 137
// <Ctrl-Z> - emergency exit

MagTek Device Drivers for Windows

}

 

#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)

{

BOOLrs;

134

Page 137
Image 137
Elo TouchSystems 1525L MagTek Device Drivers for Windows, Ctrl-Z - emergency exit, if ch, address of overlapped structure