Bina IDC 2 Linhas comunicação Serial DB9
Enviado: 13 Ago 2014 12:23
Adquiri um aparelho Bina da IDC Fones para 2 Linhas, ele aparentemente tem o funcionamento simples 2 entradas para 2 linhas respectivamente e uma saida serial DB9 para integração com computador.
No programa que acompanha já verifique que esta tudo funcionando normalmente, ele esta instalado na COM2 velocidade 19200, N, 8, 1, o programa é de simples operação, basta setar a COM, definir o nr de linhas e mandar monitorar, ao receber uma ligação mostra qual linha recebeu se 1 ou 2 e o nr identificado e se a chamada foi atendida ou não.
Recebi o manual/protocolo para integrar minha aplicação com o aparelho, mas confesso que não entendi direito.
Apesar de já saber trabalhar com portas seriais em balanças e ECFs utilizando a HBCOMM ou a HBWin (winport), não consigo saber qual comando enviar para fazer a leitura do número identificado.
Somente consigo abrir a porta, já mandei várias possibilidades de comandos que subentendi, mas não vem algo legível no retorno.
Sei q é algo a nível do qual comando enviar e como tratar o retorno, porém não entendi muito bem.
Aparentemente o manual, se até ai eu entendi os comandos estão em notação Hexadecimal exemplo &h80 subentendo q é Hexadecimal 80, se for eu utilizo HexToNum e depois pra transformar em caracter legível uso o CHR, mas não funciona.
Em anexo segue o protocolo que recebi da IDC (RoldSoft).
Abaixo trecho do mesmo.
[]´s
No programa que acompanha já verifique que esta tudo funcionando normalmente, ele esta instalado na COM2 velocidade 19200, N, 8, 1, o programa é de simples operação, basta setar a COM, definir o nr de linhas e mandar monitorar, ao receber uma ligação mostra qual linha recebeu se 1 ou 2 e o nr identificado e se a chamada foi atendida ou não.
Recebi o manual/protocolo para integrar minha aplicação com o aparelho, mas confesso que não entendi direito.
Apesar de já saber trabalhar com portas seriais em balanças e ECFs utilizando a HBCOMM ou a HBWin (winport), não consigo saber qual comando enviar para fazer a leitura do número identificado.
Somente consigo abrir a porta, já mandei várias possibilidades de comandos que subentendi, mas não vem algo legível no retorno.
Sei q é algo a nível do qual comando enviar e como tratar o retorno, porém não entendi muito bem.
Aparentemente o manual, se até ai eu entendi os comandos estão em notação Hexadecimal exemplo &h80 subentendo q é Hexadecimal 80, se for eu utilizo HexToNum e depois pra transformar em caracter legível uso o CHR, mas não funciona.
Em anexo segue o protocolo que recebi da IDC (RoldSoft).
Abaixo trecho do mesmo.
Se alguém souber como auxiliar, pq em contato com o pessoal da IDC eles não tem como auxiliar segundo eles somente o manual q mandam mesmo.A comunicação é feita pela porta serial, com velocidade 19200 bps, 8 bits, sem paridade, 1 stop bit. Os sinais RTS e DTR são utilizados para fornecer a alimentação para o circuito do adaptador serial (isolado eletricamente), da seguinte forma, DTR deverá estar ativado (+V ou /DTR=0) e RTS deverá estar desativado (-V ou /RTS=1).
Os sinais utilizados para a comunicação são TX e RX apenas. O sinal TX (PC->Multiline) é apenas utilizado para “pedir” ao Multiline o status das linhas conectadas. Isso é feito ao se colocar o TX no estado de “break”. O Multiline então devolverá um byte 0FAH e aguardará a retirada do ‘break’, e imediatamente iniciará o envio dos bytes de status. Obs. Se apenas o byte 0FAH for enviado, indicará que apenas o adaptador está conectado à serial (isto é, nenhum IDC PC está conectado).
Exemplo em Vbasic para inicialização:
Mscomm1.settings = “19200,N,8,1”
Mscomm1.handshaking = comNone
Mscomm1.commport = 1 ‘COM1 neste exemplo
Mscomm1.portopen = true
Mscomm1.dtrenable = true
Mscomm1.rtsenable = false
O firmware atual permite a existência de 64 linhas (16 aparelhos IDCPC) numeradas para efeito dos dados de 0 até 63. O primeiro byte de todos os comandos é o indicador do número da linha a que se refere o comando. Por exemplo:
Indicador de linha => &h80 + linha
O segundo byte do comando é o evento propriamente dito, que pode ter mais bytes de dados dependendo do comando. Veja a tabela a seguir:
Comando 1° Byte 2° Byte 3° Byte 4° Byte Demais
Chamada sem identificação (1) &h80 + linha &hC1
Chamada Identificada &h80 + linha &hC2 N° de dígitos incluindo a classe Classe (ASCII) Dígitos (ASCII)
Número não identificado &h80 + linha &hC4
Início de discagem &h80 + linha &hD8
Dígito discado &h80 + linha &hDA Dígito (2)
Fim da ligação &h80 + linha &hC8 Horas (3) Minutos Segundos
Atendeu chamada &h80 + linha &hD2
Chamada não atendida &h80 + linha &hD3
Não houve RING &h80 + linha &hD4
Identificador presente &h80 + linha &hEA
[]´s