Página 1 de 1

Simulador de Balança Toledo.

Enviado: 28 Fev 2013 22:51
por rochinha
Amiguinhos,

Este pequeno projetinho tem o intuito de simular uma balança.

Devem pensar: Mas isto eu já sei que existe.

Tudo bem, mas eu não tenho uma balança e nem um simulador gratis. O único que conheço é da TKS ou Igara e ele não envia a string para o leitor.

Então fui a caça e criei o meu e de quebra apresento como comunicar por portas.

O teste foi feito usando Fivewin e Harbour, portanto as funções poderão fazer parte delas.

Código: Selecionar todos

#include "FiveWin.ch" 

// Protocolo Prt1 STXPPPPPETX
// Protocolo Prt2 STXPPPPPPCR
// Protocolo Prt3 STXP/I/N/SETX

#DEFINE ENQ chr(05)
#DEFINE STX chr(02)
#DEFINE ETX chr(03)
#DEFINE CR  chr(13)

static hLib, hDib, oSpoolTimer,  nCom

Function Main(_tempo_,cComm) 
   Default _tempo_ := "05", cComm := "COM4"
   nCom := APRICOM( cComm )
   cConteudo := STX + strZero( Random( 999999 ), 6 ) + ETX
   for i = 1 to len( cConteudo )
       SENDSTR( nCom, Substr( cConteudo, i, 1 ) )
   next
   cConteudo := ""
   Return NIL                   

STATIC FUNCTION TASTI( nCom, nKey ) 
    SENDSTR( nCom, CHR( nKey ) ) 
    RETURN NIL 

STATIC FUNCTION APRICOM( cComm ) 
    LOCAL nCom, cDcb 
    BEGIN SEQUENCE 
        nCom = OPENCOMM( cComm, 16384, 16384 ) 
        IF nCom < 0 
            ? "Errore di apertura della porta di comunicazione." 
            BREAK 
        ENDIF 
        BUILDCOMMDCB( cComm+":115200,N,8,1", @cDcb ) 
        IF !SETCOMMSTATE( nCom, cDcb ) 
            ? "Errore di impostazione della porta di comunicazione." 
            BREAK 
        ENDIF 
        Connect( nCom )
    RECOVER 
        nCom = -1 
    END SEQUENCE 
    RETURN nCom 

STATIC FUNCTION CONNECT( nCom ) 
    LOCAL cStr 
    ENABLECOMMNOTIFICATION( nCom, 0, 1, -1 ) 
    cStr = RECEIVESTR( nCom ) 
    cStr = STRTRAN( cStr, CHR( 13 ), "" ) 
    cStr = STRTRAN( cStr, CHR( 10 ), CRLF ) 
    RETURN NIL 

STATIC FUNCTION SENDSTR( nCom, cString ) 
    LOCAL nBytes := WRITECOMM( nCom, cString ) 
    RETURN nBytes = LEN( cString ) 

STATIC FUNCTION RECEIVESTR( nCom ) 
    LOCAL cBuf := SPACE( 1000 ) 
    RETURN LEFT( cBuf, READCOMM( nCom, @cBuf ) )

STATIC FUNCTION Random( nMaximo )
    static nRandom
    local nTemporal
    nMaximo = if( nMaximo == NIL, 65535, nMaximo )
    if nRandom == NIL
       nRandom = seconds()
    endif
    nTemporal = ( nRandom * seconds() ) % ( nMaximo + 1 )
    nRandom = nTemporal + seconds()
    RETURN int( nTemporal )
Download das Ferramentas

Material usado:
BALANCA.EXE - É o visor que irá mostrar os pesos recebidos pela porta.
PoePeso - É o simulador de balança, o qual irá enviar o peso randomico para o visor. Uso: PoePeso 05 COM1
VirtualSerialPorts - Deverá ser instalado para permitir que portas seriais virtuais sejam criadas. Como os aplicativos usam somente as portas COM1, COM2, COM3 e COM4, esta portas deverão estar livres nas configurações do Windows(Pelo menos 2 delas deverão estar livres).

Exemplo:

- Coloque o balanca.exe posicionado na porta COM3 e ative-o.
- Acione o PoePeso.exe com os parametros 05 COM4. A cada execução gera um peso diferente.

Na simulação acima, tenho pra mim que foi configurada pelo Virtual Serial Ports as portas COM3 se comunicando com a COM4.

Me baseio pelo protocolo Prt1 da balança modelo 9094. Manual.

Desta forma o programador poderá testar melhor seus PDVs com leitura.

Simulador de Balança Toledo.

Enviado: 02 Mar 2013 12:32
por fladimir
Realmente muito útil, tanto para desenvolver qto para testar e dirimir dúvidas...

Parabéns amigo Rochinha mais uma vez pela tua disposição e colaboração como de muitos outros colegas aki do fórum.

[]´s

Simulador de Balança Toledo.

Enviado: 02 Mar 2013 13:18
por alxsts
Olá!

Muito boa iniciativa. Obrigado por compartilhar.

Simulador de Balança Toledo.

Enviado: 28 Abr 2013 00:49
por rochinha
Amiguinhos,

Link de download revitalizado!

Simulador de Balança Toledo.

Enviado: 13 Fev 2017 18:45
por rochinha
Amiguinhos,

Encontrei o TestaBalanca.rar