Como enviar para a porta série através da utilização de Mscomm32.ocx


Sumário


Este artigo descreve as definições necessárias para enviar dados para a porta série, utilizando Mscomm32.ocx. Mscomm32.ocx é fornecido com o Microsoft Visual FoxPro Professional Edition. Pode ser utilizado em computadores que executem o Microsoft Windows 95 e versões posteriores do Windows.

Mais informações


Mais frequentemente utilizados propriedades para enviar dados para a porta série utilizando o controlo mscomm são os seguintes:

CommPort

A propriedade CommPort Especifica o número da porta de comunicações. Uma propriedade numérica que corresponde à porta de comunicações. Por predefinição, esta propriedade é definida como 1 correspondente para a com1. Valores válidos são 1, 2, 3 ou 4 consoante as portas série instaladas no computador e a respectiva configuração.

Definições

A propriedade de Definições configura a transmissão em baud, paridade, bits de dados e os bits de paragem para a porta série. A propriedade de Definições é uma cadeia de caracteres que contém valores individuais separados por vírgulas. Por predefinição, a propriedade de Definições é:
9600, N. O, 8, 1
Esta propriedade corresponde ao valor de 9600 baud, sem paridade, 8 bits de dados e 1 bit de paragem.



Os valores de taxa de transmissão em baud seguintes são válidos: 110, 300, 600, 1200, 2400, 4800, 9600 (predefinição), 14400, 19200, 28800, 38400, 56000, 57600, 115200, 128000, 256000.

PortOpen

A propriedade PortOpen Especifica um valor lógico que controla se é ou não a porta série é aberto e activo. Depois de definir as propriedades anteriores para começar a utilizar a porta série, pode definir esta propriedade como true.

Saída

A propriedade de saída é atribuída a cadeia de caracteres a ser enviado para a porta série. Para exportar a cadeia "Olá mundo" para a porta série depois das propriedades anteriores estiverem definidas, utilize o seguinte comando:

   myform.mycomm.output = "Hello World"
Outras propriedades que podem também ser necessárias dependendo da aplicação são os seguintes:

CommEvent

A propriedade CommEvent contém um valor que representa o evento de comunicações mais recente ou erros.

Sthreshold

A propriedade Sthreshold Especifica o número mínimo de caracteres na memória intermédia de saída que são enviados.

OutBufferCount

O controlo OutBufferCount devolve o número de caracteres que aguardam na memória intermédia de transmissão. Isto deve ser sempre zero se a propriedade Sthreshold é igual a zero. Definir a propriedade OutBufferCount para zero irá limpar a memória intermédia de transmissão.

OutBufferSize

A propriedade OutBufferSize Especifica o tamanho da memória intermédia para transmissão. Por predefinição, esta memória intermédia é de 512 bytes. Quanto maior for a transmissão memória intermédia, a menos memória disponível para outras aplicações. Cadeias de texto grande escritas para a porta série e de velocidades de transmissão lenta poderão significar que necessita para aumentar este valor.


Segue-se um exemplo que mostra como configurar o controlo de comunicações e marcar o número de telefone 555-1234, utilizando os comandos de Hayes Modem padrão.

   PUBLIC ComForm
ComForm = CREATEOBJECT('Form')
ComForm.AddObject("Testcom","Olecontrol","MSCOMMLib.MSComm")
ComForm.Testcom.CommPort = 2 && Use Comm2, The second Serial Port.
ComForm.Testcom.Settings = "14400,N,8,1" && 14.4 Kbaud, No Parity,
&& 8 data Bits, 1 Stop Bit
ComForm.Testcom.PortOpen = .T.
ComForm.Testcom.Output = "ATDT555-1234" + chr(13) && Dialing the number
* The chr(13) is needed to complete the modem command sequence
ComForm.Testcom.PortOpen = .F.
***** End Code *****
Nota Se utilizar este numa aplicação e, em seguida, distribuir a aplicação utilizando o Assistente de configuração do Visual FoxPro, poderá ver o seguinte erro ao executar a aplicação:

O programa OLE do erro código de erro 0x80040112: licença adequada para esta classe não foi encontrado.
Se este erro ocorre, consulte o seguinte artigo na Microsoft Knowledge Base:

Erro de licença de 192693 com controlo de ActiveX adicionado em tempo de execução