Componente QComPort
QComPort fornece uma interface fácil de usar para se comunicar com a
Comport. Este componente foi tornado possível por Dejan Crnila. Este
componente está atualmente sendo testado para melhor estabilidade.
Baixe as bibliotecas comport opcionais.
Demais componentes -
Click Barra lateral esquerda
Informações adicionais -
Click propriedades em azul
Propriedades de QComPort
Campo |
Tipo |
R/W+ |
Padrão |
BaudRate
|
INTEGER |
RW |
br110 |
Connected
|
INTEGER |
R |
|
DataBits
|
INTEGER |
RW |
8 |
Handle
|
INTEGER |
R |
|
InQue
|
INTEGER |
R |
|
OutQue
|
INTEGER |
R |
|
Parity
|
INTEGER |
RW |
prNone |
PendingIO
|
INTEGER |
R |
|
Port
|
INTEGER |
RW |
1 B |
ReadBufSize
|
INTEGER |
RW |
1024 |
StopBits
|
INTEGER |
RW |
sbOneStopBit |
WriteBufSize
|
INTEGER |
RW |
1024 |
+ R = Propriedade de leitura
W = Propriedade de escrita
Métodos de QComport
Método |
Tipo |
Descrição |
Parâmetros |
AbortAllIO
|
SUB |
Aborta toda operação de leitura/escrita assíncrona. |
0 |
Close
|
SUB |
Fecha a porta de comunicação. |
0 |
Open
|
SUB |
Abre a porta de comunicação. |
0 |
PurgeIn
|
SUB |
Limpa buffer de entrada e pára todas as funções de entrada. |
0 |
PurgeOut
|
SUB |
Limpa buffer de saida e pára todas as funções de saida. |
0 |
Read
|
SUB Read(QFile/QMemoryStream, Count%, Wait%) |
Lê dados do stream da comport, Count% < 3200. |
3 |
ReadString
|
FUNCTION ReadString$(Count%, Wait%) |
Retorna uma string de bytes lidos da comport. |
2 |
WaitForLastIO
|
SUB |
Bloqueia até a última IO ser completada. |
0 |
Write
|
SUB Write(QFile/QMemoryStream, Count%, Wait%) |
Escreve stream na com port, Count% < 32000. |
3 |
WriteString
|
SUB WriteString (Str$, Wait%) |
Escreve string na porta de comunicação. |
2 |
Eventos de QComport
Evento |
Tipo |
Ocorre quando... |
Parâmetros |
OnBreak
|
VOID |
Uma quebra de linha foi detectada, entrada e saída é suspensa até break se limpo. |
0 |
OnClose
|
VOID |
A Comport foi fechada. |
0 |
OnError
|
VOID |
Ocorreu um erro de linha. |
0 |
OnOpen
|
VOID |
Comport foi aberta com sucesso. |
0 |
OnRing
|
VOID |
Um sinal de ring foi detectado, uso apenas com modems. |
0 |
OnRxChar
|
SUB (InQue AS INTEGER) |
Um(s) caractere(s) chegou(aram) no buffer de entrada. |
1 |
OnTxEmpty
|
VOID |
Buffer de saída foi esvasiado. |
0 |
QComPort exemplo:
$TYPECHECK ON
CONST sbOneStopBit = 0
CONST prNone = 0
DECLARE SUB CommRxChar (InQue AS INTEGER)
DECLARE SUB OpenClick
DECLARE SUB SendClick
DECLARE SUB FormClose
DIM Comm AS QComPort
Comm.OnRxChar = CommRxChar
Comm.DataBits = 8
Comm.StopBits = sbOneStopBit
Comm.Parity = prNone
CREATE Form AS QFORM
Caption = "Form1"
Width = 302
Height = 240
Center
CREATE Label1 AS QLABEL
Caption = "ComPort:"
Left = 5
Top = 9
Width = 51
END CREATE
CREATE ComboBox1 AS QCOMBOBOX
AddItems "COM1", _
"COM2", _
"COM3",_
"COM4"
Left = 55
Width = 65
Top = 5
ItemIndex = 0
END CREATE
CREATE ComboBox2 AS QCOMBOBOX
AddItems "110", "300", "600", "1200", "2400", "4800", "9600", _
"14400", "19200", "38400", "56000", "57600", "115200"
Left = 130
Width = 70
Top = 5
ItemIndex = 0
END CREATE
CREATE OpenButton AS QBUTTON
Caption = "&Open"
Left = 210
Top = 4
OnClick = OpenClick
END CREATE
CREATE Edit1 AS QEDIT
Text = ""
Left = 12
Top = 40
Width = 186
END CREATE
CREATE SendButton AS QBUTTON
Caption = "&Send"
Left = 210
Top = 38
Enabled = 0
OnClick = SendClick
END CREATE
CREATE RichEdit1 AS QRICHEDIT
Left = 11
Top = 73
Width = 274
Height = 132
PlainText = 1
ReadOnly = 1
ScrollBars = 3
WordWrap = 0
END CREATE
OnClose = FormClose
END CREATE
SUB OpenClick
IF Comm.Connected THEN
PRINT Comm.InQue
EXIT SUB
END IF
Comm.Port = ComboBox1.ItemIndex + 1
Comm.BaudRate = ComboBox2.ItemIndex
Comm.Open
IF Comm.Connected THEN
SendButton.Enabled = 1
ELSE
ShowMessage("Não pode abrir a porta, tente outra.")
END IF
END SUB
SUB SendClick
Comm.WriteString(Edit1.Text+CHR$(13)+CHR$(10), 1)
Comm.WaitForLastIO
END SUB
SUB CommRxChar(InQue AS INTEGER)
RichEdit1.AddStrings(Comm.ReadString(InQue, 1))
END SUB
SUB FormClose
IF Comm.Connected THEN
Comm.Close
END IF
END SUB
Form.ShowModal
Sinta-se à vontade
para dar sugestões e fazer críticas construtivas.
|