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:
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:
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.
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.
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.
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. |