Bem Vindo Visitante


Porta Serial
 

 

Para Utilizar a porta serial no C++ precisamos abrir a porta de comunicação, ou seja, pedir permisão ao sistema operacional para utilizarmos sua interface, além de configurar a porta.

 

No sistema operacional a porta recebe o nome de acordo com sua instalação, COM1 , COM2 e assim por diante, os PC atualmente possuem apenas uma porta serial (COM1) mas há possibilidade de expansão atravez de placas PCI adcionadas ao hardware do PC.

 

Seu Primeiro Programa

 

Nosso primeiro program utilizando a interface serial será um pequeno chat, para isso abra o programa C++, insira dois objetos Memo e altere a propriedade “name” de cada um deles para memo_rx, memo_tx reseptivamnete um sera utilizado para receber as mensagens e outro para enviar.

 

Para abrir a porta serial

 

Iniciamente iremos declarar as variaveis globais utilizadas:

 

 

Para abrir a porta serial adicionaremos o seguinte código no evento

FormCreate do formulario

 

 

Dessa maneira estaremos abrindo a porta de comunicação COM1 do PC com as respectivas propriedades:


Porta: COM1

Baud Rate: 19200

Paridade: NONE

Bits: 8

Stop bit: 1

 

O Baud Rate, ou seja, a velocidade de trasnmissão pode assumir os seguintes valores mais comuns:

 

9600, 14400, 19200, 56000, 115200

 

A paridade pode ser par (EVEN), impar (ODD), nenhuma (NONE)

 

Para transmitir um determinado caractere é necessário incluir o seguinte código:

 

transmissão

 

O código foi inserido no evento KeyPress do memo_tx assim ao digitar no memo o caractere será transmitido pela porta serial. A função TransmitCommChar possui dois parâmetros o primeiro é a “porta de comunicação”e o segundo é o caractere a ser transmitido, no nosso caso utilizamos a variável Key pois ela recebe todos os caracteres enviado pelo teclado, assim toda vez que uma tecla for pressionada será transmitido o caractere correspondente.

 

A recepção será feita através de um timer que esta localizado na aba System, sua propriedade Enabled devera ser True,

Interval igual a 1 e Name: t_rx.

 

Desta maneira o timer terá intervalo de atualização de um milissegundo, ou seja, a cada milissegundo haverá a leitura da porta serial, que será efetuada através do seguinte código.

 

timer

 

A função ReadFile tem como parâmetros a porta de comunicação, a variável que ira receber o caractere pela serial, a quantidade de caracteres a serem lidos, uma variável que receberá uma resposta e um parâmetro que determinara funções modem.
Se a variável dwBytesRead1 tiver um valor diferente de zero, significa que a porta serial recebeu um dado, se isso ocorrer o memo_rx recebera o conteúdo já existente nele próprio mais o que foi recebido na serial, formando assim a mensagem.

 

Agora basta rodar o programa, e para testar a comunicação basta digitar sua mensagem no memo_tx, se estiver utilizando um sistema de loop você mesmo recebera a mensagem, ou se estiver ligado a outro PC poderá conversar com um amigo.

 

serial

 

Além do layout outras modificações podem ser feitas, como por exemplo verificar se seu amigo esta ou não ligado ao PC, mandar outros comandos com chamar a atenção, para isto basta imaginação e um pouco de conhecimento de algoritimos.