2020-05-15 – Testes com KeyPresses no Terminal de Linux em C++

Uma pequena explicação que dei em 15 de Maio, sobre o que fazia na altura, de como cada caractere ou tecla premida pode ocupar vários bytes e não apenas um, e como estava a criar o terminal à pata, desde o zero, tinha de pensar nisso tudo.

Explicado na descrição da altura, abaixo:

«Hoje peguei um pouco nisto, tinha deixado parado uns dias.

O que podem ver à esquerda, é o pressionar de teclas. Hoje em dia qualquer linguagem de programação tem logo a papinha toda feita, é só colocarem “if tecla=CTRL+X” etc, mas aqui é tudo à pata. O que vêem são os vários bytes que compõem cada caractere ou pressionar de tecla especial, dado que os 127 códigos mais usados de ASCII não dão para tudo, por isso combinações de teclas são detectadas com combinações de bytes, e os maiores ali com uns 5 ou 6 bytes são combinações do género CTRL+LEFT ARROW KEY, etc.

Há até no C++ forma de facilitar as coisas com librarias que já têm estas teclas, mas ia ficar mais pesado e gosto de fazer do zero, por isso aqui detecto todo o input que vem do terminal, byte a byte, para detectar combinações de teclas, analisando todos os bytes de cada tecla premida, etc, é muito mais complexo do que o que as pessoas normalmente fazem do tipo “se tecla premida é a”, aqui é mais à pata, mas é brutal.

E afinal vou criar uma consola de Cisco IOS e depois uma do Linux embebidas neste software, tenho de fazer à pata do zero, não pode ser com librarias à mistura.

Aqui a detecção de teclas é feita byte a byte em tempo real.

Já criei buffers para os pressionares de teclas, etc.

No fim de semana se tiver horas vagas, começo a desenvolver o IOS simulator.

2020-05-15.»

Leave a Reply

Your email address will not be published. Required fields are marked *

RSS
Follow by Email
LinkedIn
LinkedIn
Share