Harbour HBWin e a balança Toledo 9094

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour HBWin e a balança Toledo 9094

Mensagem por Itamar M. Lins Jr. »

Ola!
Veja como resolvi usando o Harbour + HbWin.
Sabemos que os códigos de um supermercado iniciados com o número "2" geralmente é um produto que deve ser pesado, então:

Código: Selecionar todos


   If substr(vPdv02,1,1) = "2" //Verificar se o código digitado/scaneado começa com "2"
      If eq->( dbseek(substr(vPdv02,1,5)) )
         If len(alltrim(vPdv02)) = 13 //Caso comece com 2 e tenha 13 caracteres não precisa de pegar o peso, já vem na etiqueta!
           bValor := val(substr(vPdv02,7,6))/100
           vPdv02 := alltrim(str(val(substr(vPdv02,1,5)),5)) //Codigo
           oPdv02 : Refresh() //Usando Hwgui atualiza na tela com o peso
         Else
           bValor := PegaPeso()
           vPdv02 := alltrim(str(val(substr(vPdv02,1,5)),5))
           oPdv02 : Refresh() //Usando Hwgui atualiza na tela com o peso
           lPegouPeso := .t.
         EndIf
         If Empty(bValor)
            MsgStop('Sem Peso.')
            return .f.
         EndIf
      Else
        If MsgYesNo('Produto não cadastrado. Deseja procurar ?')
           PesquisaPDV(20,10,520,400,'eq',{||vPdv02},"vPdv02","oPdv02",,,"Mercadoria","Cod_Mercad","Avista",,03)
        EndIf
        return .f.
      EndIf
   Else
....

*****************
Function PegaPeso
*****************
*
*
Local oDlg, cTitle := 'Lendo o peso da balança...'
LOCAL cString := Chr( 5 )
LOCAL nResult, nPeso

Do While .t.

   oWinPort := win_Com():Init( "com1:", WIN_CBR_2400, WIN_NOPARITY, 8, WIN_ONESTOPBIT )

   IF ! oWinPort:Open()
      MsgStop("Erro lendo peso: " + oWinPort:ErrorText() )
      return 0
   Else
      IF !oWinPort:SetDTR( .T. )
          MsgInfo ( "SetDTR( .T. ) Falha:"+ oWinPort:ErrorText() )
      ENDIF

      IF ( nResult := oWinPort:Write( cString ) ) <> Len( cString ) //Mando o chr(5)
          msginfo( "Falha na escrita: "+ str(nResult) + " expected " + str(Len(cString)) )
      ENDIF
   EndIf

      oWinPort:Read( @xString,7)
      nPeso := val(substr(xString,2,5))/1000

      IF !oWinPort:Purge( .T., .T. )
         msginfo( "Falha no comando Purge()  :" + oWinPort:ErrorText())
      ENDIF
      oWinPort:Close()

   If empty(nPeso)
      MsgStop('Coloque um peso na balança !')
   Else
      exit
   EndIf

EndDo
Return nPeso

Veja como é simples de enteder, e o código é bem enxuto.
Já testado no XP e no Win7.
Não esquecer do #include "hbwin.ch"

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: Harbour HBWin e a balança Toledo 9094

Mensagem por marcos.gurupi »

Parabens! O codigo estah bem enxuto mesmo. Eu precisava de um exemplo desde em xhb 1.0.0 Vc teria?

Marcos Roberto.
Marcos Roberto
NetService Software
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Harbour HBWin e a balança Toledo 9094

Mensagem por Itamar M. Lins Jr. »

Infelizmente, o xHarbour não possue uma lib de comunicação serial no seu contrib. Para tal é preciso comprar o xHarbour do xHarbour.com.
Existe uma lib que roda por ai uma tal hbcomm.lib mas não é tão boa quanto a do Harbour e nem é mantida pelo grupo.
Se não usa o SQLRDD pode migrar para o Harbour sem traumas, essas e muitas outras funções te esperam no Harbour e sem precisar pagar.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: Harbour HBWin e a balança Toledo 9094

Mensagem por marcos.gurupi »

Com harbour eh possivel usar a hwgui 2.17 por exemplo?

Marcos Roberto.
Marcos Roberto
NetService Software
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Harbour HBWin e a balança Toledo 9094

Mensagem por Itamar M. Lins Jr. »

Ola!
Ue? mas a Hwgui é feita para rodar no Harbour.
Qualquer versão da Hwgui roda inicialmente com o Harbour, repare que as modificações do Pai da Hwgui Alexander Kresin, é para Harbour pois ele usa Harbour e não xHarbour. O Przmek faz as correções e ajustes na Hwgui para Unicode->Harbour, para ela poder ser usada em dispositivos móveis.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: Harbour HBWin e a balança Toledo 9094

Mensagem por marcos.gurupi »

Itamar, quer dizer q com harbour + hwgui jah se pode usar em dispositivo movel? Ou ainda eh apenas um projeto ?

Marcos Roberto
Marcos Roberto
NetService Software
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Harbour HBWin e a balança Toledo 9094

Mensagem por Itamar M. Lins Jr. »

Acredito que rode.
Veja:
2010-02-08 10:56 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* hwgui/include/hwingui.h
+ added HBTEXT() definition for xHarbour and older Harbour builds

* hwgui/source/grid.c
! aplied patch from Francesco Perillo

* hwgui/source/hcombo.prg
* hwgui/source/hmonthc.prg
* updated #pragma dump C code to compile in UNICODE mode

* hwgui/source/nice.c
* hwgui/source/shellapi.c
* updated to compile for WinCE

* hwgui/source/window.c
* hwgui/source/winreg.c
* hwgui/source/wprint.c
* hwgui/source/qhtm/hwg_qhtm.c
* updated to compile in UNICODE mode

As usual please test it and thank you very much for your help.
É uma atualização bem velha.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Harbour HBWin e a balança Toledo 9094

Mensagem por sygecom »

Marcos,
Pode usar a Fivewin Free para fazer comunicação serial, depois da HBWIN a da Fivewin é a melhor para comunicação serial, mas tem também a HBCOMM para xHarbour, ambas funcionam, mas umas com algumas particularidades a mais.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder