gss200610 Posted April 2, 2012 Report Share Posted April 2, 2012 segue abaixo codigo lepeso.dll, testando em balancas urano usando C para xharbour, funciona muito rapido por sinal. UTILIZA DLL LEPESO.DLL DO PROPRIO FABRICANTE. #include "FiveWin.ch" FUNCTION MAIN() LOCAL cPesoUrano:=SPACE(200) LOCAL nPeso:=0, nConta:=0 WHILE nPeso == 0 nConta++ URANO(@cPesoUrano) IF !EMPTY(cPesoUrano) nPeso := VAL( SUBSTR(cPesoUrano, 8,7) ) ENDIF ENDDO ? "Peso retornado ", ROUND( (nPeso / 1000) , 3 ) RETURN( .T. ) #pragma BEGINDUMP #include "windows.h" //#include "iostream.h" #include "conio.h" #include "hbapi.h" typedef char *( *LEPESO)(); typedef int ( *ABREPORTASERIAL)(char *); typedef int ( *FECHAPORTASERIAL)(void); typedef void ( *ALTERAMODELOBALANCA)(int); typedef void ( *ALTERAMODOOPERACAO)(int); LEPESO ProcLePeso; ABREPORTASERIAL ProcAbrePortaSerial; FECHAPORTASERIAL ProcFechaPortaSerial; ALTERAMODELOBALANCA ProcAlteraModeloBalanca; ALTERAMODOOPERACAO ProcAlteraModoOperacao; static HINSTANCE hinstLib = NULL; HB_FUNC( URANO ) { char* peso = (char*)hb_parc(1) ; hinstLib = LoadLibrary("LePeso.dll"); if(hinstLib != NULL) { ProcLePeso = (LEPESO)GetProcAddress(hinstLib, "_LePeso"); ProcAbrePortaSerial = (ABREPORTASERIAL)GetProcAddress(hinstLib, "_AbrePortaSerial"); ProcFechaPortaSerial = (FECHAPORTASERIAL)GetProcAddress(hinstLib, "_FechaPortaSerial"); ProcAlteraModeloBalanca = (ALTERAMODELOBALANCA)GetProcAddress(hinstLib,"_AlteraModeloBalanca"); ProcAlteraModoOperacao = (ALTERAMODOOPERACAO)GetProcAddress(hinstLib, "_AlteraModoOperacao"); (*ProcAlteraModeloBalanca)(2); (*ProcAlteraModoOperacao)(0); (*ProcAbrePortaSerial)("COM1"); (char*)peso = (*ProcLePeso )(); } hb_retc( (char*) peso ); hb_storc((char*)peso, 1); FreeLibrary(hinstLib); } #pragma ENDDUMP Gilmar Silva Santos Programador - Goiânia Go Não Recuarei, Nada Temerei, Comigo Está o Senhor. Email : gilmarss2010@gmail.com FWH 10.8, DBF, MED EDITOR, UESTUDIO, XHB 1.2, BCC 5.82 Editado por - gss200610 on 02/04/2012 18:24:43 Quote Link to comment Share on other sites More sharing options...
gss200610 Posted April 2, 2012 Author Report Share Posted April 2, 2012 segue abaixo codigo lepeso.dll, testando em balancas urano usando C para xharbour, funciona muito rapido por sinal. UTILIZA DLL LEPESO.DLL DO PROPRIO FABRICANTE. #include "FiveWin.ch" FUNCTION MAIN() LOCAL cPesoUrano:=SPACE(200) LOCAL nPeso:=0, nConta:=0 WHILE nPeso == 0 nConta++ URANO(@cPesoUrano) IF !EMPTY(cPesoUrano) nPeso := VAL( SUBSTR(cPesoUrano, 8,7) ) ENDIF ENDDO ? "Peso retornado ", ROUND( (nPeso / 1000) , 3 ) RETURN( .T. ) #pragma BEGINDUMP #include "windows.h" //#include "iostream.h" #include "conio.h" #include "hbapi.h" typedef char *( *LEPESO)(); typedef int ( *ABREPORTASERIAL)(char *); typedef int ( *FECHAPORTASERIAL)(void); typedef void ( *ALTERAMODELOBALANCA)(int); typedef void ( *ALTERAMODOOPERACAO)(int); LEPESO ProcLePeso; ABREPORTASERIAL ProcAbrePortaSerial; FECHAPORTASERIAL ProcFechaPortaSerial; ALTERAMODELOBALANCA ProcAlteraModeloBalanca; ALTERAMODOOPERACAO ProcAlteraModoOperacao; static HINSTANCE hinstLib = NULL; HB_FUNC( URANO ) { char* peso = (char*)hb_parc(1) ; hinstLib = LoadLibrary("LePeso.dll"); if(hinstLib != NULL) { ProcLePeso = (LEPESO)GetProcAddress(hinstLib, "_LePeso"); ProcAbrePortaSerial = (ABREPORTASERIAL)GetProcAddress(hinstLib, "_AbrePortaSerial"); ProcFechaPortaSerial = (FECHAPORTASERIAL)GetProcAddress(hinstLib, "_FechaPortaSerial"); ProcAlteraModeloBalanca = (ALTERAMODELOBALANCA)GetProcAddress(hinstLib,"_AlteraModeloBalanca"); ProcAlteraModoOperacao = (ALTERAMODOOPERACAO)GetProcAddress(hinstLib, "_AlteraModoOperacao"); (*ProcAlteraModeloBalanca)(2); (*ProcAlteraModoOperacao)(0); (*ProcAbrePortaSerial)("COM1"); (char*)peso = (*ProcLePeso )(); } hb_retc( (char*) peso ); hb_storc((char*)peso, 1); FreeLibrary(hinstLib); } #pragma ENDDUMP Gilmar Silva Santos Programador - Goiânia Go Não Recuarei, Nada Temerei, Comigo Está o Senhor. Email : gilmarss2010@gmail.com FWH 10.8, DBF, MED EDITOR, UESTUDIO, XHB 1.2, BCC 5.82 Editado por - gss200610 on 02/04/2012 18:24:43 Quote Link to comment Share on other sites More sharing options...
HASA Posted April 3, 2012 Report Share Posted April 3, 2012 , Bom dia, Gilmar, por um acaso você tem um codigo parecido para abertura de gaveta Gerbo-3260 na serial (com1) ?, pode ser via DLL ou direto na porta ok, desde já agradeço, Hasa Quote Link to comment Share on other sites More sharing options...
gss200610 Posted April 3, 2012 Author Report Share Posted April 3, 2012 tens a dll e algum arquivo de como declara-la, ou manual que seja? Gilmar Silva Santos Programador - Goiânia Go Não Recuarei, Nada Temerei, Comigo Está o Senhor. Email : gilmarss2010@gmail.com FWH 10.8, DBF, MED EDITOR, UESTUDIO, XHB 1.2, BCC 5.82 Quote Link to comment Share on other sites More sharing options...
HASA Posted April 4, 2012 Report Share Posted April 4, 2012 Bom dia, o link para baixar a DLL é http://www.gerbo.com.br/Gaveta_RS232_GERB.ZIP e nesse link existe os comentários da Gerbo http://www.gerbo.com.br/interna_produtos_detalhes_tec.asp?id=1 a respeito. Desde já agradeço, HASA Quote Link to comment Share on other sites More sharing options...
gss200610 Posted April 4, 2012 Author Report Share Posted April 4, 2012 add no skype ai: gilmar.gsoft Gilmar Silva Santos Programador - Goiânia Go Não Recuarei, Nada Temerei, Comigo Está o Senhor. Email : gilmarss2010@gmail.com FWH 10.8, DBF, MED EDITOR, UESTUDIO, XHB 1.2, BCC 5.82 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.