4D v16.3

RECEIVE BUFFER

Página Inicial

 
4D v16.3
RECEIVE BUFFER

RECEIVE BUFFER 


 

RECEIVE BUFFER ( receiveVar ) 
Parâmetro Tipo   Descrição
receiveVar  Variável texto in Variável a receber o dado

RECEIVE BUFFER lê a porta serial que foi aberta anteriormente com SET CHANNEL. A porta serial tem um buffer que preenche com caracteres até que um comando lê a partir do buffer. RECEIVE BUFFER recebe os caracteres do buffer serial, colocá-os em receiveVar e limpa o buffer. Se não houver caracteres no buffer, então receiveVar não conterá nada.

Em Windows
A porta serial de buffer do Windows é limitada a 10 Kbytes. Isso significa que o buffer pode realizar um overflow. Quando ela estiver cheia e novos caracteres forem recebidos, os novos caracteres substituem os antigos caracteres. Os caracteres antigos estão perdidos e, portanto, é essencial que o buffer seja lido rapidamente quando novos caracteres são recebidos.

Em Mac OS
A porta serial buffer no Mac OS X é capacidade ilimitada (dependendo da memória disponível). Se o buffer estiver cheio e novos caracteres são recebidos, os novos caracteres substituem os antigos caracteres. Os caracteres antigos estão perdidos e, portanto, é essencial que o buffer seja lido rapidamente quando novos caracteres são recebidos.


RECEIVE BUFFER é diferente de RECEIVE PACKET, ele leva o que está no buffer e, em seguida, retorna imediatamente. RECEIVE PACKET aguarda até encontrar um caractere específico ou até que um determinado número de caracteres estejam no buffer

Durante a execução do RECEIVE BUFFER, o usuário pode interromper a recepção pressionando Ctrl-Alt-Shift (Windows) ou Command + Option + Shift (Macintosh). Esta interrupção gera um erro -9994, que você pode pegar com um método de tratamento de erros instalado usando ON ERR CALL.

Exemplo  

O método de projeto LISTEN TO SERIAL PORT usa RECEIVE BUFFER para obter o texto da porta serial e acumulá-lo em uma variável interprocesso:

  ` ESCUTAR PORTA SERIAL
  ` Abrir a porta serial
 SET CHANNEL(201;Speed 9600+Data bits 8+Stop bits one+Parity none)
 <>IP_Escutar_Porta_Serial:=True
 While(<>IP_Escutar_Porta_Serial)
    RECEIVE BUFFER($vtBuffer)
    If((Length($vtBuffer)+Length(<>vtBuffer))>MAXTEXTLEN)
       <>vtBuffer:=""
    End if
    <>vtBuffer:=<>vtBuffer+$Buffer
 End while

Neste ponto, qualquer outro processo pode ler a interprocesso vtBuffer para trabalhar com os dados provenientes da porta serial.

Para parar de ouvir a porta serial, basta executar:

  ` Deixar de escutar a porta serial
 ◊IP_Escutar_Porta_Serial:=False

Note que o acesso à variável interprocesso vtBuffer deve ser protegida por um semáforo, de modo que os processos não causarão conflito. Veja o comando Semaphore para obter mais informações.



Ver também 

ON ERR CALL
RECEIVE PACKET
Semaphore
SET CHANNEL
USE CHARACTER SET
Variáveis

 
PROPRIEDADES 

Produto: 4D
Tema: Comunicações
Número 172

Este comando modifica a variável sistema Error

 
HISTÓRIA 

Modificado: 4D v6.8.3

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)