Parceria ECF / TEF / Balanças...

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, mandei por email tudo que vc vai prescissar....de uma olhada...tem bastante material referente a balanças....
Bão, acabei de pegar no cliente uma que eu chamo de versão B: marca Triunfo, modelo DST 15, sem impressora "on board" e com uma saída serial.
Tche, não conheço essa balança...mas não deve ter mistério....
Agora, se eu estiver certo, é conectar ela na PC, fazer o Clipper monitorar a porta COM e descobrir o que balança está informando... Dentre essas informações, pegar só o peso e o código (saladas, pratos quentes ou sobremesa), já que os preços por Kg vão estar guardados em DBF e a conta quem vai fazer é o Clipper.
é isso mesmo....
Ah, uma coisa eu já descobri: meu celular pesa 85 gramas! eh eh eh
Isso jah é um grande sinal...é sinal que sabe pesar.....hehehe

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Dércio,

É isso mesmo. Tinha acabado de achar a solução em http://www.davep.org/clipper/FAQ/clipper-5.html, baixado o __wait_b.obj do Oasis e resolvido o problema, quando recebi a notificação da sua resposta.

Valeu!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Eolo,
Para o caso de mais alguém querer, subi pro meu site. Clique aqui para baixar.

Não tem README. Então, é o seguinte: toda a configuração pode ser utilizada a default (está descrito no fonte) ou pode ser configurada (parcial ou totalmente) pela linha de comando (digite S2T -HELP). A configuração utilizada é gravada no arquivo texto S2T.CFG (mesmo diretório da execução), para evitar que se tenha que digitar a linha de novo ou usar um batch. Facilita o trabalho.
O programa foi montado no modo protegido. As instruções de compilação e linkedição estão no próprio fonte, mas há também um batch de compilação. Uso a CATools, mas não incluí o objeto __wait.obj que o Dércio sugeriu. Depois que atualizei a CATools, nunca mais precisei dele.

Qualquer dúvida, é só dizer.

[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Leonardo,
Ainda não recebi o seu email. Vc mandou pro Gmail. certo?


Maligno,

Primeiro, sem querer abusar mas abusando, vc pode colocar no seu site as tais CT/CTP.lib e CUTS/CTUSP.obj atualizadas? Aí tb abandono o __wait...

Segundo, baixei o S2T (obrigado!), dei uma olhada rápida e surgiu uma dúvida "idiota", que eu gostaria de eliminar (sempre gosto de, na medida do possível, tentar entender o por quê).

No caso do teclado ou mouse, o PC fica monitorando e, quando há uma interrupção, se toma a ação desejada, certo? Fácil de entender. Já no caso da balança serial, eu imagino que, enquanto vc não colocar nenhum peso no prato, não há nenhuma interrupção (ou há indefinidas interrupções dizendo que não há interrupção?). Aí, quando vc coloca um peso de 150g, a balança vai gerar a interrupção, mas primeiro tem que esperar o peso estabilizar nos 150g, certo? Então existe um "delay" entre os pontos 0 e 150g. Se isto está certo, como o Clipper (que tá monitorando a COM) sabe que o peso estabilizou? Aliás, antes do peso ser colocado na balança, é preciso iniciar um "get", ou seja, iniciar um com_read() em loop até que o valor lido se estabilize, é isso? Ainda: depois que o peso estabilizou, a balança fica enviando os 150g indefinidamente até que se tire o peso do seu prato, ou não? Em outras palavras, sem nenhum peso, a balança fica continuamente enviando ZERO pra porta serial?

Confuso? Imagina a cabeça aqui... eh eh eh
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Leonardo,
Ainda não recebi o seu email. Vc mandou pro Gmail. certo?
Sim
Primeiro, sem querer abusar mas abusando, vc pode colocar no seu site as tais CT/CTP.lib e CUTS/CTUSP.obj atualizadas? Aí tb abandono o __wait...
Mandei junto no Pacote...tem BLINKER..tem tudo na mesma pasta...olha que vc acha.......mas se o colega Maligno quiser colcoar no Site dele....blz..
Já no caso da balança serial, eu imagino que, enquanto vc não colocar nenhum peso no prato, não há nenhuma interrupção (ou há indefinidas interrupções dizendo que não há interrupção?)
No meu caso a minha leitura fica em um LOOP e se não tiver na no prato ela envia zero...como mostra no proprio LED da balança...ou seja de uma olhada em todos os exemplos que mandei.....conforme ocila na balança.ocila na tela do micro tb..e quando estabilizar a balança..o cara da um ESC ou ENTER e segue adiante...isso tudo pelo CLIPPER.....se por acaso for ZERO seria algo como por ex:
vPESO=LEITURA()
IF vPESO=0
ALERT("PESO ZERADO FAVOR VERIFICAR")
ENDIF
Se isto está certo, como o Clipper (que tá monitorando a COM) sabe que o peso estabilizou?
Como eu disse acima...eu no meu caso eu não faço isso pelo CLIPPER mas eu tenho em tempo real o que esta ocilando na balança...direto no meu sistema...
Aliás, antes do peso ser colocado na balança, é preciso iniciar um "get", ou seja, iniciar um com_read() em loop até que o valor lido se estabilize, é isso?
Eu por exemplo faço assim...

Código: Selecionar todos

SET CONFIRM OFF
vPESO=0
DO WHILE .T.
      **********
      CHAMABAL()
      **********
       @ 09,26  SAY vPESO pict      "@E 999,999.9"
        IF INKEY() = 27
            EXIT
      ENDIF
ENDDO
Ainda: depois que o peso estabilizou, a balança fica enviando os 150g indefinidamente até que se tire o peso do seu prato, ou não?
No meu caso sim....ela esta dentro do LOOP....entaum volto a dizer...fica ocilando conforme ocila no LED da balança.....
Em outras palavras, sem nenhum peso, a balança fica continuamente enviando ZERO pra porta serial?
Exatamente isso....
Confuso? Imagina a cabeça aqui
Tche, com todo o respeito....e pra descontrair um pouco......vc perguntou...imagina a cabeça aqui ? fiquei imaginando...vc com a cabeça cheia de cabelo branco....(Vô Eolo).hehehe...

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, seu email esta voltando do GMAIL....tens outro ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Leonardo,

Bah! Num tenho cabelo branco, tchê! Antes de ficar branco, cai!! (cara, se vc ver uma montagem de fotos que fiz dos Ventura - do meu bisavô até meu filho, no Orkut -, parece uma mesa de snooker...)

É estranho, o meu Gmail anda refugando email "pesado". Os outros que eu tenho:
contato@eolo-ventura.com
eolo-sc@uol.com.br
eolo_ventura@yahoo.com.br
eolo_ventura@estadao.com.br
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Chega em no maximo 10 min....envie para dois :
contato@eolo-ventura.com
eolo-sc@uol.com.br

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

vc pode colocar no seu site as tais CT/CTP.lib e CUTS/CTUSP.obj
Se o que o Leonardo te mandou não resolver, é só pedir de novo que subo pro meu site, sem problema.
, baixei o S2T (obrigado!), dei uma olhada rápida e surgiu uma dúvida "idiota"
Melhor perguntar do que ficar na dúvida. :)
No caso do teclado ou mouse, o PC fica monitorando e, quando há uma interrupção, se toma a ação desejada, certo?
Sim. É gerada uma interrupção de hardware. O software (SO), que a tem interceptada, toma a ação apropriada.
Já no caso da balança serial, eu imagino que, enquanto vc não colocar nenhum peso no prato, não há nenhuma interrupção (ou há indefinidas interrupções dizendo que não há interrupção?).
É o que se poderia imaginar a princípio, mas isso, claro, vai depender unicamente de como a balança foi projetada, já que o procedimento parte dela. Não conheço nada de balança. Nunca trabalhei com nenhuma. Mas o comportamento "canônico", até pelos comentários que já ouvi a respeito, é que a balança fique em "silêncio" até que algum peso seja colocado no sensor e este estabilize.
Aí, quando vc coloca um peso de 150g, a balança vai gerar a interrupção, mas primeiro tem que esperar o peso estabilizar nos 150g, certo?
Como eu disse: a princípio sim.
Então existe um "delay" entre os pontos 0 e 150g. Se isto está certo, como o Clipper (que tá monitorando a COM) sabe que o peso estabilizou?
Se tudo for feito do jeito "canônico", ao estabilizar, a balança deverá enviar os dados para a serial. O PC recebe isso num buffer. O programa Clipper simplesmente lê o que está neste buffer.
Aliás, antes do peso ser colocado na balança, é preciso iniciar um "get", ou seja, iniciar um com_read() em loop até que o valor lido se estabilize, é isso?
Você não precisa necessariamente iniciar esse "get" antes que a leitura seja feita. O dado enviado ficará no buffer até que ele seja esvaziado.
Ainda: depois que o peso estabilizou, a balança fica enviando os 150g indefinidamente até que se tire o peso do seu prato, ou não?
Ah, não. Eu não acredito que seja assim, pois senão se poderia entender que se tratam de dois ou mais pesos de 150g. Acho que o que se deve esperar é um valor no buffer para cada "pesada".
Em outras palavras, sem nenhum peso, a balança fica continuamente enviando ZERO pra porta serial?
Até poderia ser isso. Não posso dizer com certeza. Só mesmo testando com um programa que faça esse monitoramento. Se funcionar corretamente, o que programa que fiz poderá ajudá-lo a fazer esse teste, já que a função básica dele é o monitoramento. Basta colocar -REP:0 para que ele fique continuamente lendo o buffer da serial.
Mas, como eu disse, não acho que esse seria o comportamento normal. Se fosse eu a projetar uma máquina dessas, não havendo pesagem, não enviaria nada para a balança. Falo como leigo no assunto, mas acho que assim ficaria mais correto.

Testou o programa? Funcionou?

[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

(Leonardo) Chega em no maximo 10 min....envie para dois :
Agora chegou!

(Maligno) Testou o programa? Funcionou?
Cara, a noite hoje vai ser longa... Amanhã também! Haja cerva.


Obrigado pros dois. Vão botando na conta, uma hora eu pago em "tainha na brasa" aqui em Bombinhas-SC.
Annefnd
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 24 Abr 2024 11:01
Localização: Rio de Janeiro

Parceria ECF / TEF / Balanças...

Mensagem por Annefnd »

O programa S2T que você baixou é uma ferramenta útil para monitorar a porta serial do seu computador. Ele funciona interceptando as interrupções de hardware geradas pelo teclado, mouse ou outros dispositivos conectados à porta serial. Quando ocorre uma interrupção, o software (sistema operacional) captura essa interrupção e toma a ação apropriada.

No caso de uma balança serial, o comportamento pode variar dependendo de como a balança foi projetada. Em geral, enquanto não houver nenhum peso no prato da balança, não são geradas interrupções e o programa Clipper não receberá nenhum dado pela porta serial. Assim que um peso é colocado no prato e se estabiliza, a balança enviará os dados pela porta serial e o programa Clipper poderá lê-los do buffer. Ver mais.

É possível que haja um pequeno atraso entre o momento em que o peso é colocado na balança e o momento em que os dados são estabilizados e enviados pela porta serial. O programa Clipper pode aguardar a leitura do buffer até que os dados estejam disponíveis e estáveis.

Quanto ao comportamento da balança após a estabilização do peso, é provável que a balança envie os dados uma vez e pare de enviar até que um novo peso seja colocado no prato. Não é comum que a balança continue enviando os mesmos dados indefinidamente.

Se você quiser testar o programa S2T para monitorar a porta serial e verificar o comportamento da balança, você pode configurá-lo para ler continuamente o buffer da serial com o comando -REP:0. Isso permitirá que você monitore a comunicação entre a balança e o computador e verifique como os dados são transmitidos. ;)
Responder