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