Page 1 of 1

Porque no aparece la Lectura del Codigo

Posted: Sun Dec 18, 2011 5:35 am
by Andres Barillas
Robert y Mike les envio un saludo al igual que al Foro necesito su apoyo.

Robert el ejmplo funciona pero al leer el codigo de barras no aparece en la pantalla el codigo leido?

Ejemplo:
**************************
#Include "FiveWin.Ch"

Static Function MAIN_WINDOW()
Local hCOMM
DEFINE WINDOW oWnd ;
TITLE "COM RECEIVE: "+DToC(Date());
MDI;
MENU BuildMenu()
SET MESSAGE OF oWND TO 'TEST COMM'

hCOMM:=COM_OPEN(1)
oWND:bCommNotify := {|nComm,nStatus| ODBIERZ(hCOMM,nSTATUS) } // THIS IS MOST IMPORTANT LINE !!!!
ACTIVATE DIALOG oWnd ON Init (EnableCommNotification(hCOMM,oWNd:hWNd,1,-1)) VALID(COM_CLOSE(hCOMM))
Return (NIL)

Static Function BuildMenu()
Local oMENU
MENU oMenu // 2007
MENUITEM "&End" ACTION oWND:End()
ENDMENU
Return oMenu

Static Function ODBIERZ(hCOMM,nSTATUS)
Local cZNAK:=Space(30)
Local nBYTES
nBYTES:=ReadComm(hCOMM,@cZNAK)
MsgInfo(cZNAK) // just one char , change to cZNAK:=Space(nLENGHTBARCODE)
Return .T.

Function COM_OPEN(xPORT)
Local pNAME:=IIF(xPORT=1,"COM1","COM2")
Local hPORT
Local nError,cDCB
Local xRESZTA:=.T.
Local cSPEED:=":9600,e,8,1" // there are settings of my equipment, check your scanner for correct parameters
hPORT:= OpenComm( pNAME, 1024, 128 )
If ! BuildCommDcb( pNAME+cSPEED, @cDcb )
nError = GetCommError( hPORT )
MsgInfo( "BuildCommDcb Error: " + Str( nError ) )
xRESZTA:=.F.
EndIf
If ! SetCommState( hPORT, cDcb )
nError = GetCommError( hPORT )
MsgInfo( "SetCommState Error: " + Str( nError ) )
xRESZTA:=.F.
EndIf
If xRESZTA
oWND:oMSGBAR:cMSGDEF:=PNAME+" : OTWARTY"
oWND:oMSGBAR:Refresh(.T.)
Else
oWND:oMSGBAR:cMSGDEF:=PNAME+" : NIE UDANE OTWARCIE"
oWND:oMSGBAR:Refresh(.T.)
EndIf
Return hPORT

Static Function COM_CLOSE(hPORT)
If ! CloseComm( hPORT )
nError = GetCommError( hPORT )
MsgInfo( "CloseComm Error: " + Str( nError ) )
EndIf
Return .T.
*************************
Sera problema del lector (ls 5800 symbol) porque ya le di reset con su respectivo codigo y lo estoy usando por via rs-232 opcion puerto serial; en esta linea:
oWND:bCommNotify := {|nComm,nStatus| ODBIERZ(hCOMM,nSTATUS) }
cuando se lee el codigo de barra debe de notificar o detectar cuando se hace al lectura del codigo de barras y la ponerlo en la pantalla pero no pasa nada.

Podrian orientarme.
Salud2