Pegar o peso de uma balança?

Salve galera

Seguinte, estou precisando de encontrar uma solução para um problema, na verdade q ainda está um dilema.
Estou fazendo um sistema q preciso ter o peso de uma balança, por exemplo: "Cliente chega, compra um produto, pesa na balança que gera uma etiqueta com um codigo de barras e na hora de pagar o produto no caixa meu sistema le esse código de barras e ja sabe o Produto/Peso/Valor.

Conversei com várias pessoas e cada um me diz uma coisa ai ja viu, isso me deixa mais perdido q cego em tiroteio.

1 - Uma pessoa me disse: " Seu sistema tem q comunicar com a balança e retirar essas informações "
2 - Outra pessoa me disse: " Balança so comunica com o computador através de um programa da própria balança, q envia seus produtos/valores pra ela, as etiquetas q a balança gerar no codigo de barra vai ta embutido coisas como CodProduto/Qtd/ValorPagar, seu sistema soh precisa ler isso, ler o codigo de barras da etiqueta separando codproduto, qtd e valorpagar.

Agora q ta, nao sei quem ouvir, como realmente trabalha-se com balança de pesagem.

Alguem ja fez isso e pode me dar uma dica ?

obrigado.

Camarada, seguinte.
Geralmente este tipo de equipamento irá transitar informações pela porta serial do computador.
Alguns pontos que você deve se ater é, primeiro, entre em contato com o fabricante, para verificar qual o tipo de aplicativo pdoe ser feito, como obter os dados e como enviar dados para a mesma.
A partir daí, tendo as informações do fabricante, fica mais fácil.

Já trabalhei com balança a muito tempo em delphi e a comunicação com a mesma é via cabo serial, com comandos específicos para se pegar a informação desejada.
Isto posto, vamos a sua dúvida, analisando o seu texto “Cliente chega, compra um produto, pesa na balança que gera uma etiqueta com um codigo de barras e na hora de pagar o produto no caixa meu sistema le esse código de barras e ja sabe o Produto/Peso/Valor” vejo que vc esta fazendo um sistema tipo POS/Frente de Loja, neste caso a duas possibilidades de funcionamento:
1 - Balança fixada no próprio caixa (Ex. Extra, Bretas): Neste caso o seu sistema deverá se comunicar com a balança via serial para obter as informações necessárias.
2 - Balança fixada perto dos produtos onde o mesmo é pesado e afixado a etiqueta com o preço obtido: Neste caso o seu sistema deverá somente ler o código de barras separando os dados produto/quantidade/preço.

Espero ter ajudado a esclarecer suas dúvidas.

[quote=drsmachado]Camarada, seguinte.
Geralmente este tipo de equipamento irá transitar informações pela porta serial do computador.
Alguns pontos que você deve se ater é, primeiro, entre em contato com o fabricante, para verificar qual o tipo de aplicativo pdoe ser feito, como obter os dados e como enviar dados para a mesma.
A partir daí, tendo as informações do fabricante, fica mais fácil.[/quote]

Entrei em contato com a Filizola, eles me informaram sobre o produto deles.
Pelo visto eh um aplicativo chamado SmartEditor que comunica com a balança, esse software Smart vc cadastra as balanças e manda os produtos pra ela, pelo menos é o q entendi.
mas o caso eh q naum sei como fazer meu sistema ler o peso/qtd e valor da etiqueta q a balanca emite.

Quero saber isso, se realmente meu sistema precisa comunicar com a balança ou ele apenas le a etiqueta do codigo de barras q ja possui todas as informacoes.

obrigado.

Se o sistema será independente da balança ( o POS é isolado da mesma) o código de barras terá a informação de produto, peso/quantidade e valor.
Se a balança for integrada, você precisará capturar as informações a partir da balança, utilizando a porta serial.

[quote=drsmachado]Se o sistema será independente da balança ( o POS é isolado da mesma) o código de barras terá a informação de produto, peso/quantidade e valor.
Se a balança for integrada, você precisará capturar as informações a partir da balança, utilizando a porta serial.[/quote]

Humm…entaum acho q vou fazer independente assim da pra ler do codigo de barras todas informacoes q preciso como produto/peso/quantidade/valor. Eh soh separa-los para leitura.

meu raciocinio esta correto ?

obrigado.

Na verdade, o sistema interno da balança é que deverá prover uma forma de concatenar tudo isso.
Afinal, o código de barras será lido pelo sistema, mas o sistema não sabe adivinhar o que ele contém.

Ou o fabricante disponibiliza uma interface de comunicação com o seu sistema e o hardware da balança. Ou se a balança não tiver nada disso e seu cliente não queria comprar uma assim, o jeito será vc fazer uma balança que tenha. Não é tão complexo, para o trabalho de TCC uns colegas meus fizeram, vc pode usar um PIC se comunicando com uma porta serial…

opa, acabei de ir até uma loja de frios de um amigo meu…Peguei varias etiquetas e ja sei como fazer.

obrigado a todos :wink:

[quote=fernandopaiva]
opa, acabei de ir até uma loja de frios de um amigo meu…Peguei varias etiquetas e ja sei como fazer.
obrigado a todos ;-)[/quote]

Fernando vc poderia entaum postar o q vc pretende fazer, axo q muitos aki q leram o tópico ficaram interessados…

[quote=luxu][quote=fernandopaiva]
opa, acabei de ir até uma loja de frios de um amigo meu…Peguei varias etiquetas e ja sei como fazer.
obrigado a todos ;-)[/quote]

Fernando vc poderia entaum postar o q vc pretende fazer, axo q muitos aki q leram o tópico ficaram interessados…[/quote]

Entaum, eu retirei 9 etiquetas da balanca, modelo Filizola e tbm ja vi modelo Toledo.
No codigo de barras ela gera 13 numeros, q eh o padrao.

Por exemplo. "Mussarela Fatiada - 2 000030 001808(cod barra) " isso equivale a: codProduto: 00003 e seu peso 0,180 kg…

O numero 2 eh o codigo EAN, o numero 00003 codigo do produto, o 0 logo apos eh sempre 0 mesmo…o peso 00180 qtd/kg e o 8 logo apos eh mutavel mas nao entra no calculo, ainda naum descobri pra que serve, mas conversando com um amigo q trabalha na manutencao de balancas ele me mostrou o que eh cada coisa e tbm nao soube me explicar sobre o 8 q eh mutavel, nos acreditamos ser um controle proprio da balanca. Fizemos testes com 9 etiquetas esse 8 mudou pra 0, depois 5, depois 3 e por ai vai…nao entra nos calculos.

entaum sendo assim, basta vc pegar o codigo do produto no caso 00003, depois sua quantidade 0,180kg mais o valor do kg q foi cadastrado no codigo do produto e pronto, basta calcular que tera o valor do produto no caso R$ 2,50…entendeu ? Dessa maneira nao preciso pegar peso da balanca e muito menos comunicar com ela.

Agora meu sistema precisa mandar meus produtos pra balanca, pra isso no caso de balança Filizola vc pega seu cadastro de produtos, exporta para um arquivo .txt no padrao Filizola e importa tudo em um programa chamado SmartEditor, esse programa pega seus produtos e manda pra balanca.
Caso vc nao tenha comunicacao serial, ethernet ou qquer coisa do tipo, vc exporta seu arquivo pra um .txt ai seu cliente vai e cadastra os produtos diretamente na balanca com seus respectivos codigos e valor, pronto…

eh isso.

t+

Na verdade o que vc tem que dá uma estudada nos códigos de barras… principalmente nos códigos de produtos gerados na própria empresa… que tem seus padrões… a partir disso vc poderá pegar o código do produto, a quantidade , o peso ou valor do produto tudo dentro do código de barras

Pronto galera…implementado e batendo com a quantidade/valor emitida pela etiqueta.

vejam como fiz.

public Boolean verificaProdutoKg(Long cb){
         /** Verifica se o produto vendido esta cadastrado com unidade de KG
          * @param cb codigo de barra
          */
         boolean kg = false;
         List<Produtos> lista = new ProdutosDAO().consultaProdutosPorCodigoBarra(cb);
         if(!lista.isEmpty()){  
             for(Produtos p : lista){
                 if(p.getUnidade().getUnidade().equals("KG")){
                     kg = true;
                     break;
                 }
             }
             
         }
         return kg;         
     }


//aqui onde faco o calculo e pego o codigo do produto e seu valor de venda 
private void codbarraFocusLost(java.awt.event.FocusEvent evt) {                                   
// TODO add your handling code here:
    if(verificaProdutoKg(Long.parseLong(codbarra.getText()))){
        String idP = codbarra.getText().substring(1,6);
        String qtd = codbarra.getText().substring(7,12);        
        quantidade.setText(qtd);
        List<Produtos> lista = new ProdutosDAO().consultaProdutosPorCodigo(Long.parseLong(idP));
        if(!lista.isEmpty()){
            for(Produtos p : lista){
                valorUn.setText(new FormataMonetarios().retornaValorFormatado(p.getValorVenda()));
            }
            BigDecimal st = new BigDecimal(0);
            BigDecimal q = new BigDecimal(quantidade.getText().replaceAll("\\.", "").replace(",", "."));//quantidade
            BigDecimal v = new BigDecimal(valorUn.getText().replaceAll("\\.", "").replace(",", "."));
            st = q.multiply(v);
            
            subTotal.setText(new FormataMonetarios().retornaValorFormatado(st));
        }        
    }
}                        

eh isso, ta funcionando blzinha.

vejam.