Zápisník experimentátora
Posun znakov o určený počet písmen je nenáročnou úlohou, ktorá je vhodná aj pre začiatočníka. Pôvodná myšlienka pochádza z Cézarovej šifry, kde sa posúva o 3 znaky. Inou modifikáciou je algoritmus ROT13, kde sa posúva o 13 znakov. V našom príklade budeme posúvať o jeden znak. Do Arduina znaky odošleme pomocou Monitora sériového portu.
Algoritmus je jednoduchý. Musíme si dať pozor iba na znaky konca riadku, ktoré nesmieme posunúť. Tie odošleme naspäť do počítača tak, ako sme ich prijali. Ostatné znaky môžeme posunúť.
Algoritmus sa dá napísať aj jednoduchšie, pretože vieme, že zobraziteľné znaky sa začínajú medzerou. Preto by nám stačilo porovnať všetký prijaté znaky so znakom medzery a posunúť iba tie znaky. Pre názornosť som ale zvolil algoritmus, kde sú znaky konca riadku jednoznačne vymenované, aby bolo na prvý pohľad jasné, o čo sa snažíme.
int received;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
received = Serial.read();
switch (received) {
case '\r':
case '\n':
Serial.write(received); // new line is not rotated, we want to see new line in Serial Monitor
break;
default:
Serial.write(received + 1); // char rotate
break;
}
}
}
Zdrojový kód sa nachádza na serveri GitHub.
06.03.2018