MagTek 99875125 User Manual

Page 65

Advertising
background image

Section 5. Example Applications


HANDLE oev_write = CreateEvent(NULL,TRUE,FALSE,NULL);

OVERLAPPED

ov_write;

DWORD

dwWriteStatus=0;

ZeroMemory(&ov_write,

sizeof

(OVERLAPPED));

ov_write.hEvent = oev_write;

DWORD dwLen = strlen(lpParam);

BOOL

bDone=FALSE;


while

(!bDone)

{

if

(!WriteFile(*phMTD, lpParam,dwLen,lpdwWritten,&ov_write))

{

dwWriteStatus

=

WaitForSingleObject

(ov_write.hEvent,COMM_TIMEOUT);

switch

(dwWriteStatus)

{

case

WAIT_OBJECT_0:

{

GetOverlappedResult(phMTD,&ov_write, lpdwWritten, TRUE);

bDone=TRUE;

}

break

;

default

:

{

//No data was writted to the serial port

return

FALSE;

}

};

}

bDone=TRUE;
}

return

TRUE;


}

//----------------------------------------------------------------------------------

BOOL ReadMTD(PHANDLE phMTD, LPTSTR lpParam,DWORD pdwReadSize,DWORD *lpdwRead)
{

if

(phMTD==INVALID_HANDLE_VALUE)

{

return

FALSE;

}
BOOL

bDone=FALSE;

HANDLE oev_read = CreateEvent(NULL,TRUE,FALSE,NULL);

OVERLAPPED

ov_read;

DWORD

dwReadStatus=0;

ZeroMemory(&ov_read,

sizeof

(OVERLAPPED));

ov_read.hEvent = oev_read;


while

(!bDone)

{

if

(!ReadFile(*phMTD, lpParam, pdwReadSize,lpdwRead, &ov_read))

{

dwReadStatus = WaitForSingleObject (ov_read.hEvent, COMM_TIMEOUT);

switch

(dwReadStatus)

{

case

WAIT_OBJECT_0:

{

GetOverlappedResult(phMTD,&ov_read,

lpdwRead,

FALSE);

bDone=TRUE;

}

break

;

default

:

{

//No data was read from the serial port

return

FALSE;

}

};

}

bDone=TRUE;
}

return

TRUE;

}

57

Advertising