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

Traduções deste artigo Traduções deste artigo
ID do artigo: 140525 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

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.

Propriedades

ID do artigo: 140525 - Última revisão: quinta-feira, 27 de janeiro de 2005 - Revisão: 3.4
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbmt kbcode kbhowto KB140525 KbMtpt
Tradução automática
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

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com