Você está offline; aguardando reconexão

Não há suporte para seu navegador

Você precisa atualizar seu navegador para usar o site.

Atualize para a versão mais recente do Internet Explorer

Como receber da porta serial usando MScomm32.ocx no Visual FoxPro

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 140525
Sumário
Este artigo fornece duas técnicas que você pode usar para receber dados da porta serial usando o controle Mscomm32.ocx. A primeira usa um método orientado a eventos e não exige que você pesquisar a porta serial para verificar a presença de caracteres recebidos. Essa técnica permite maior flexibilidade e não requer codificação abrangentes para evitar saturações de buffer. A segunda técnica requer que você pesquisar o buffer de entrada periodicamente para verificar a presença de caracteres recebidos. Este artigo descreve essas duas técnicas e fornece exemplos para cada um.
Mais Informações
Defina as propriedades seguintes independentemente de qual técnica você usar:
  • Propriedade CommPort: Defina esta propriedade numérica para a porta de comunicações desejado. Valores válidos são 1, 2, 3 ou 4 dependendo das portas seriais disponíveis e a configuração do computador individual. Esses valores correspondem a COM1, COM2, COM3 e COM4 respectivamente.
  • Propriedade de configurações: definir esta propriedade de caractere para a taxa de transmissão, paridade, bits de dados e bits de parada solicitada pelo dispositivo conectada à porta serial. Esta propriedade é um caractere, a lista delimitada por vírgulas. Por exemplo, para definir a porta serial a 14.400 bauds, paridade par, 7 bits de dados e 1 bit de parada, defina a seqüência de caracteres:
       14400,E,7,1
  • Propriedade PortOpen: definir esta propriedade lógica como true para comunicações abertas para a porta serial. Você também pode verificar essa propriedade para determinar se a porta aberta corretamente.

Técnica um: controlado por evento receber

O evento Driven técnica gera um evento OnComm quando houver caracteres aguardando no buffer de entrada. Além disso, a propriedade CommEvent conterá um numérico 2. Para o evento OnComm ser disparado, você deve definir a propriedade Rthreshold como um valor diferente de zero (padrão). A configuração mais comum para a propriedade Rthreshold é 1, significando que OnComm evento é acionado se um mínimo de um caractere está aguardando no buffer de entrada.

Por exemplo, você pode colocar o código a seguir no evento OnComm para acrescentar dados recebidos a uma propriedade de um formulário denominado mybuffer:
   Procedure MyCom.OnComm     IF This.CommEvent = 2       ThisForm.mybuffer = ThisForm.mybuffer + This.Input     ENDIF   ENDPROC				

Técnica duas: pesquisa o buffer de entrada

Pesquisa que o buffer de entrada requer que o programa parar periodicamente o que está fazendo e verificar se há caracteres aguardando no buffer de entrada. Ao usar essa técnica, deixe a propriedade Rthreshold em 0 (o valor padrão) e verifique a propriedade InBufferCount para ver se ele é maior que zero, que indica que há caracteres aguardando no buffer.

Observação Usando uma técnica como verificar o comprimento dos resultados de propriedade de entrada em caracteres perdidos porque, assim que a propriedade de entrada for acessada, o buffer de entrada é esvaziado. Use a propriedade InBufferCount.

Supondo que o controle Mscomm esteja no formulário e tem o nome MyCom e que há uma propriedade de formulário chamada mybuffer, o código a seguir ilustra como pesquisar de caracteres de espera:
   Procedure myform.myproc     IF Thisform.MyCom.InBufferCount > 0       Thisform.mybuffer = Thisform.mybuffer + Thisform.MyCom.Input     ENDIF   ENDPROC				
o código de procedimento pode ser chamado em um método timer para facilitar a verificação de caracteres em intervalos semi-regular. No entanto, se grandes quantidades de dados devem ser recebida da porta serial, uma técnica reduzirá a chance de over-running o buffer de entrada.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 140525 - Última Revisão: 01/27/2005 06:05:31 - Revisão: 3.4

  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 6.0 Professional Edition
  • Microsoft Visual FoxPro 7.0 Professional Edition
  • Microsoft Visual FoxPro 8.0 Professional Edition
  • Microsoft Visual FoxPro 9.0 Professional Edition
  • kbmt kbcode kbhowto KB140525 KbMtpt
Comentários
id=1&t=">?DI=4050&did=1&t=">agName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> >>w.location.protocol) + "//c.microsoft.com/ms.js'><\/script>"); >