Jump to content
Fivewin Brasil

LENDO PESO BALANCA URANO EM C FOR XHARBOUR


gss200610

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...