Bina IDC 2 Linhas comunicação Serial DB9

Discussão sobre Hardware em geral.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por fladimir »

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.
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
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.

[]´s
Anexos
Protocolo IDC PC (1).doc
(25 KiB) Baixado 236 vezes
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por Jairo Maia »

Olá Fladimir,

Fladimir, não trabalho com bina, mas li e reli o protocolo que foi enviado, e na minha opinião, ou eles não entenderam o que você precisa ou não sabem mesmo responder, porque tenho certeza que este protocolo é somente para você efetuar ligação, e não identificar o número que está ligando. Acho que você poderia pedir o protocolo de leitura do número que está chamando, e não o de discagem.

Caso eles não tenham isso, você poderia postar a função que você está usando? Creio que o caminho será fazer na unha usando os recursos de recepção de dados pela HBCOMM (se o bina dá esse recurso). Se quiser acho que fica melhor tentar alguma dica vendo sua função.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por fladimir »

Vlw Jairo pela força, mandei um e-mail pros caras vamos ver se eles retornam.

Meu código ta uma bagunça de tanto teste q fiz, mas segue abaixo se vc entender, eu aproveitei uma função q tenho chamada LerBalanca e modifiquei, ai como não deu certo mais abaixo vc vai ver outra função q usa a HBWinCom mas tb não deu certo. Resumindo ta parado sem sucesso.

Algumas funções são do Xailer como por exemplo a LogDebug q mostra numa janela do Debug.

Código: Selecionar todos

//------------------------------------------------------------------------------
*****************************************************************
* Funçã Ler peso balança....
*****************************************************************
Function LerBalanca()
   LOCAL cPesoLido := 0
   LOCAL cPort, nBaudrate, nDatabits, nParity, nStopbits,  nBuffersize
   LOCAL cBalPorta, nBalVelocidade, nBalBits, nBalParidade, nBalStopBits
   LOCAL nHandle, cBytesToWrite, nCount
   LOCAL cBuff, nChar, nLidos
   LOCAL mQuant, cod, cIniFile

   *-- Compatibilização dos Campos
   cPort          := 'COM2'
   nBaudrate      := 19200
   nDatabits      := 8
   nParity        := 0
   nStopbits      := 1
   nBuffersize    := 1000

   nHandle:= Init_Port( cPort, nBaudrate, nDatabits, nParity, nStopbits, nBuffersize )

   If nHandle <= 0
      msgalert("Erro ao iniciar a porta de comunicacao !")
      Return 0
   Endif

   If IsWorking( nHandle )== .F.
      MsgAlert("Favor configurar a porta serial !")
      Return 0
   Endif
   OutBufClr( nHandle )

   //-- Enviar comando
   cBytesToWrite := '&h80, &hD8'
   nCount        := 1
   OutChr( nHandle, cBytesToWrite, nCount )

   AltD()

   //-- Aguarda um tempinho
   Inkey(0.3)
   cBuff := Space(100)
   nChar := InBufSize( nHandle )
   nLidos:= InChr( nHandle, nChar, @cBuff )

   LogDebug(cBuff)

   cPesoLido := ''
   If nLidos > 0
      cPesoLido := Substr(cBuff,RAt("+p", cBuff)+3,8) //-- Toledo Cabeça 9091 do corpo 2124
      Inkey(0.3)
      UnInt_Port( nHandle )
      Return cPesoLido
   Endif
   UnInt_Port( nHandle )
Return cPesoLido

METHOD IniciaPorta( oSender ) CLASS TForm1
   *-- Compatibilização dos Campos
   cPort          := 'COM2'
   nBaudrate      := 19200
   nDatabits      := 8
   nParity        := 0
   nStopbits      := 1
   nBuffersize    := 1000

   nHandle := Init_Port( cPort, nBaudrate, nDatabits, nParity, nStopbits, nBuffersize )
   If nHandle <= 0
      msgalert("Erro ao iniciar a porta de comunicacao !")
      Return 0
   Endif

   If IsWorking( nHandle )== .F.
      MsgAlert("Favor configurar a porta serial !")
      Return 0
   Endif
   OutBufClr( nHandle )

RETURN Nil

//------------------------------------------------------------------------------

METHOD IniciaBina( oSender ) CLASS TForm1
   *-- Compatibilização dos Campos
   cPort          := 'COM2'
   nBaudrate      := 19200
   nDatabits      := 8
   nParity        := 0
   nStopbits      := 1
   nBuffersize    := 1000

   nHandle := Init_Port( cPort, nBaudrate, nDatabits, nParity, nStopbits, nBuffersize )
   If nHandle <= 0
      msgalert("Erro ao iniciar a porta de comunicacao !")
      Return 0
   Endif

   If IsWorking( nHandle )== .F.
      MsgAlert("Favor configurar a porta serial !")
      Return 0
   Endif
   OutBufClr( nHandle )

   /////////////



   LogDebug('Iniciando modem...')

   //-- Enviar comando
   cBytesToWrite := Chr(HexToNum('85')) +'1' + Chr(HEXTONUM('D2'))
   nCount        := 1
   OutChr( nHandle, cBytesToWrite, nCount )

   //-- Aguarda um tempinho
   Inkey(0.3)
   cBuff := Space(1000)
   nChar := InBufSize( nHandle )
   nLidos:= InChr( nHandle, nChar, @cBuff )

RETURN Nil

METHOD OpenClick( oSender ) CLASS TForm1
   FConnect()
RETURN Nil

//------------------------------------------------------------------------------

METHOD CloseClick( oSender ) CLASS TForm1
   FDisconnect()
RETURN Nil

//------------------------------------------------------------------------------

METHOD SendClick( oSender ) CLASS TForm1
   FSend()
RETURN Nil

//------------------------------------------------------------------------------

METHOD ReceiveClick( oSender ) CLASS TForm1
   FReceive()
RETURN Nil


STATIC PROCEDURE FConnect()
   LOCAL cCom       := "COM2"
   LOCAL nBaudeRate := 19200
   LOCAL nDatabits  := 8
   LOCAL nParity    := 0 /* none */
   LOCAL nStopbit   := 1
   LOCAL nBuff      := 8000

   s_nHandle := INIT_PORT( cCom, nBaudeRate, nDatabits, nParity, nStopbit, nBuff )
   IF s_nHandle > 0
      LOGDEBUG("Connecting...")
      s_lConnected := .T.
      OUTBUFCLR( s_nHandle )
   ELSE
      LOGDEBUG("Could not open connection")
      s_lConnected := .F.
   ENDIF

   RETURN

STATIC PROCEDURE FDisconnect()
   s_lConnected := .F.
   LogDebug('fechando', UNINT_PORT( s_nHandle ))


RETURN

STATIC PROCEDURE FSend()
   LOCAL cToSend := Space(50)

   //MsgEdit('Enter string to send:','Comando',@cToSend)  ;  LogDebug(cToSend)
   //cToSend := AllTrim(cToSend)                          ;  LogDebug(cToSend)
   c1Byte := '81' //&h80 + 0 //(1linha)
   c2Byte := 'C2' // ou D2
   //cToSend := Chr(HexToNum(c1Byte)) //+',' +Chr(HexToNum(c2Byte))
   cToSend := Chr(129)
   LogDebug(cToSend)


   IF s_lConnected .AND. ! Empty( cToSend ) .AND. ISWORKING( s_nHandle )
      OUTCHR( s_nHandle, cToSend )
   ELSE
      LOGDEBUG("Cannot send data")
   ENDIF

RETURN

STATIC PROCEDURE FReceive()
   LOCAL cReceive
   LOCAL nSize

   nSize := INBUFSIZE( s_nHandle )

   IF nSize > 0
      cReceive := Space( nSize )
      INCHR( s_nHandle, nSize, @cReceive )
      Application:oMainForm:oListView1:AddItem(">>", Left( cReceive, nSize ))
      LOGDEBUG(">>", Left( cReceive, nSize ))
   ENDIF

RETURN



//------------------------------------------------------------------------------
#INCLUDE 'HBWIN.CH'
METHOD TestHBWinCom( oSender ) CLASS TForm1
   LOCAL oWinPort
   LOCAL cString := '81h' //Chr(129) //"ATE0" + Chr( 13 ) + "ATI3" + Chr( 13 )
   LOCAL nResult
   LOCAL lCTS, lDSR, lRing, lDCD
   LOCAL lCTSHold, lDSRHold, lDCDHold, lXoffHold, lXoffSent, nInQueue, nOutQueue


   //AltD()
   oWinPort := win_Com():Init( 'COM2', WIN_CBR_9600, WIN_NOPARITY, 8, WIN_ONESTOPBIT )



   IF oWinPort:RTSFlow( WIN_RTS_CONTROL_DISABLE )
      LOGDEBUG("RTSFlow( WIN_RTS_CONTROL_DISABLE ) succeeded")
   ELSE
      LOGDEBUG("RTSFlow( WIN_RTS_CONTROL_DISABLE ) failed :", oWinPort:ErrorText())
   ENDIF

/*
   IF oWinPort:RTSFlow( WIN_RTS_CONTROL_HANDSHAKE )
      LOGDEBUG("RTSFlow( WIN_RTS_CONTROL_HANDSHAKE ) succeeded")
   ELSE
      LOGDEBUG("RTSFlow( WIN_RTS_CONTROL_HANDSHAKE ) failed :", oWinPort:ErrorText())
   ENDIF

   LOGDEBUG(oWinPort:DebugDCB( HB_WIN_COM_DBGFLOW ))
*/


   IF ! oWinPort:Open()
      LOGDEBUG("Open() failed")
   ELSE
      LOGDEBUG("Open() succeeded")

      IF oWinPort:Status( @lCTS, @lDSR, @lRing, @lDCD )
         LogDebug( "Status() succeeded : CTS ", lCTS, ", DSR ", lDSR, ", Ring ", lRing, ", DCD ", lDCD)
      ELSE
         LogDebug( "Status() failed :", oWinPort:ErrorText() )
      ENDIF


      IF oWinPort:SetDTR( .T. )
          LOGDEBUG("SetDTR( .T. ) succeeded")
      ELSE
          LOGDEBUG("SetDTR( .T. ) failed :", oWinPort:ErrorText())
      ENDIF

      IF oWinPort:SetRTS( .F. )
         LOGDEBUG("SetRTS( .F. ) succeeded (it shouldn't according to docs!)")
      ELSE
         LOGDEBUG("SetRTS( .F. ) failed (it should) :", oWinPort:ErrorText())
      ENDIF

      IF ( nResult := oWinPort:Write( cString ) ) == Len( cString )
          LOGDEBUG("Write() succeeded")
      ELSE
          LOGDEBUG("Write() failed, returned ", nResult, " expected ", Len(cString))
      ENDIF

      LOGDEBUG("Scan something... we'll not read it but purge it, press enter"   )

      Inkey( 1 )

      LOGDEBUG("Read() ", oWinPort:Read( @cString, 32 ), Len( cString ), cString)

      LOGDEBUG(oWinPort:ErrorText()      )

      LOGDEBUG("Close", oWinPort:Close())
   ENDIF

RETURN Nil
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por Jairo Maia »

Olá Fladimir,

Nenhum avanço? O que notei na sua função IniciaBina(), é que você não está setando as configurações para DTR E STR como diz no protocolo. Acho que depois de abrir a porta, você precisa setar esses comandos:

Código: Selecionar todos

SetRts( nHandle, 0x00 )  // desligado
SetDtr( nHandle, 0x01 )  // ligado
Mas ainda é especulação.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por fladimir »

Vlw Jairo pela força...

Se vc ver mais abaixo no outro exemplo independente chamado TestHBWinCom eu seto o DTR e o RTS como vc mencionou e não dá certo...

Depois vou trocar no inicia bina como vc sugeriu e ver se funciona.

Enquanto isto estou aguardando auxilio do fabricante, q após e-mail q enviei reclamando disse q vai entrar em contato, vou aguardar uns dias e ver no q dá.

obrigado.... qualquer coisa posto aki alguma novidade.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por Clipper »

Estou reativando esse tópico para mostrar como uso identificação de chamadas em um sistema feito em Clipper, todo a captura é feita por uma placa de fax-modem e um software externo que grava o ID do telefone numa pasta por mim especificada, então o sistema captura esse arquivo e trata no sistema.



Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
webesistemas
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 16 Jun 2015 16:04
Localização: Uberaba

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por webesistemas »

Tambem estou lutando com esta bina e na minha opniao os vendedores da mesma
nao sabem de nada
apenas duplicam o circuito eletrico e vendem
suporte ruim
só possuem este manual tosco e pronto azar o nosso

ja consegui ler algumas coisas mais tem hora que corta o telefone
estou usando delphi 7

meu skype webesistemas

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

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por sygecom »

webesistemas, bem vindo ao fórum.
De fato tem muita gente ruim nesse mercado de telefonia, você tentou acesso direto com o fabricante, as vez insistindo é o melhor caminho.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por fladimir »

Um colega indicado pela empresa q vendeu o aparelho tem algo desenvolvido em Delphi ele até mandou pra mim um exemplo de comunicação em Delphi (um mini projeto) mas eu não manjo de Delphi se alguém se habilitar a migrar as funções e comandos pra Harbour eu disponibilizo.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Teo
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 23 Set 2015 18:31
Localização: Cuiabá / MT

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por Teo »

Amigos, tenho tido essa mesma dor de cabeça com esse fabricante (roldsoft) o qual vocês tem discutido no fórum e gostaria de me unir a vocês nessa empreitada. Embora eu já tenha programado em clipper no início da minha carreira, hoje utilizo C# e java nos meus sistemas, porém, também não consigo decodificar o numero que é enviado pelo IDC (bina).
Já consegui criar a comunicação, e ativar a escuta e monitoramento da porta, porém os dados que eu recebo são bytes e com eles.. não consigo traduzir para o número telefonico identificado. Alguém aqui no fórum conseguiu? será que poderia dar uma maozinha?
recebo algo parecido com isso: F8-80-80-80-00-80-80-F8-80-78-F8-80-78-80-80-80-80-F8-F8-80-F8-F8-80-80-80-80-78-80-78-80-F8-F8-80-F8-00-F8

já tem tempo que venho entrando em contato com o fabricante mas, realmente eles dizem que não sabem, que o que podem repassar é esse manual que o colega passou acima...mais nada. Ninguem la conversa ou sabe de alguma coisa. Gostaria de um auxilio. meu email ta ae..podem retornar pra gente discutir. abraços.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por fladimir »

Eu perdi o cliente pq não consegui integrar com o aparelho q tive q comprar pra desenvolvimento.

Tb passei pelo mesmo problema, mas no meu caso eu fiquei tanto no pé do fabricante q ele passou o contato de um programador Delphi q tem o sistema dele integrado.

Ai esse cara me ajudou da seguinte forma, mandou um documento explicando o q o manual já fala mas o legal foi q ele mandou um exemplo completo com os fontes tudo mas em Delphi, ai como não manjo de Delphi não consegui migrar o exemplo para Harbour.

Resumindo se alguém manja de Delphi mando o manterial q o rapaz me passou pra tentarmos resolver isto.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
webesistemas
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 16 Jun 2015 16:04
Localização: Uberaba

Bina IDC 2 Linhas comunicação Serial DB9

Mensagem por webesistemas »

nossa tem como me enviar estes exemplos ?? ja tem 3 anos que to tentando?
Responder