diff --git a/code.c.ino b/code.c.ino index e9a21cf..e8e3dae 100644 --- a/code.c.ino +++ b/code.c.ino @@ -10,12 +10,12 @@ PS2KeyAdvanced keyboard; // в её алфавитный индекс; // // возвращает индекс буквы -size_t toKeyIndex(const String& value) +size_t toKeyIndex(const String& input_hex) { size_t index = -1; for (size_t i = 0; i < ALPHABET_SIZE; ++i) { - if (key_values[i] == value) + if (key_values[i].hex == input_hex) { index = i; break; @@ -62,7 +62,6 @@ void loop() if (index == -1) return; - const String encoded_value = key_values[shift(index)]; - // encoded_value вот тут надо как-то превратить в букву - // и вывести на экран, хз как пока, надо курить + const String encoded_letter = key_values[shift(index)].view; + // отправить encoded_letter на экран } diff --git a/enigma_types.h b/enigma_types.h index 9dd4857..c6f7b33 100644 --- a/enigma_types.h +++ b/enigma_types.h @@ -1,35 +1,41 @@ #define ALPHABET_SIZE 26 #define WHEELS_AMOUNT 3 +struct Key +{ + String hex; // HEX представление символа + String view; // его удобочитаемая форма +}; + // Латинский алфавит в HEX представлении -const String key_values[ALPHABET_SIZE] = +const Key key_values[ALPHABET_SIZE] = { - "51", // Code51 - q - "57", // Code57 - w - "45", // Code45 - e - "52", // Code52 - r - "54", // Code54 - t - "59", // Code59 - y - "55", // Code55 - u - "49", // Code49 - i - "4F", // Code4F - o - "50", // Code50 - p - "41", // Code41 - a - "53", // Code53 - s - "44", // Code44 - d - "46", // Code46 - f - "47", // Code47 - g - "48", // Code48 - h - "4A", // Code4A - j - "4B", // Code4B - k - "4C", // Code4C - l - "5A", // Code5A - z - "58", // Code58 - x - "43", // Code43 - c - "56", // Code56 - v - "42", // Code42 - b - "4E", // Code4E - n - "4D" // Code4D - m + {"51", "q"}, // Code51 - q + {"57", "w"}, // Code57 - w + {"45", "e"}, // Code45 - e + {"52", "r"}, // Code52 - r + {"54", "t"}, // Code54 - t + {"59", "y"}, // Code59 - y + {"55", "u"}, // Code55 - u + {"49", "i"}, // Code49 - i + {"4F", "o"}, // Code4F - o + {"50", "p"}, // Code50 - p + {"41", "a"}, // Code41 - a + {"53", "s"}, // Code53 - s + {"44", "d"}, // Code44 - d + {"46", "f"}, // Code46 - f + {"47", "g"}, // Code47 - g + {"48", "h"}, // Code48 - h + {"4A", "j"}, // Code4A - j + {"4B", "k"}, // Code4B - k + {"4C", "l"}, // Code4C - l + {"5A", "z"}, // Code5A - z + {"58", "x"}, // Code58 - x + {"43", "c"}, // Code43 - c + {"56", "v"}, // Code56 - v + {"42", "b"}, // Code42 - b + {"4E", "n"}, // Code4E - n + {"4D", "m"} // Code4D - m }; // Сдвиг в алфавите для каждого из "дисков".