Como os bytes recebidos são armazenados?
Do ponto de vista do espaço do usuário, eles não são armazenados.
Como lê-los?
Se você quiser apenas lê-los, basta cat /dev/ttyS...
. Mais informações sobre como lidar com interfaces seriais podem ser vistas em várias respostas e comentários nesta página e na Internet, em geral, em segundos de pesquisa. Algumas ideias: serial
, screen
, minicom
, cutecom
e ferramentas semelhantes. Esta questão aqui é bastante interessante.
Qual é o procedimento?
Um pouco direto:
- Abra o dispositivo
- Aguarde dados
- Fechar quando terminar
/dev/ttyS*
são dispositivos de caractere, eles não se comportam como arquivos regulares em seu sistema de arquivos e, portanto, você não precisa liberá-los ou fechá-los e reabri-los para obter novas informações "gravadas" para eles. O ponto de ter dev-files é ter uma maneira de se comunicar entre o espaço do usuário e o espaço do kernel.
Um pouco mais detalhado, o processo é:
Os dados chegarão ao hardware, a interface serial, como pulsos elétricos. O hardware transformará os pulsos elétricos em sinais digitais e os transferirá para o driver HAL (Hardware Abstraction Layer) / Kernel ou controlador encarregado de controlar o hardware. Isso será traduzido para bytes de acordo com a taxa de transmissão e o protocolo usado e armazenado em buffer para continuar o processo. O kernel então esvazia o buffer no dispositivo de caracteres, visível do espaço do usuário como um nó na pasta /dev
.