1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.7 KiB
C

// Латинский алфавит в HEX представлении
const String key_values[26] =
{
"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
};
// Сдвиг в алфавите для каждого из трёх "дисков".
// Обязан быть в отрезке [0; 25], так как полный круг
// возвращает значение обратно в 0.
// Таким образом, при конфигурации { 1, 2, 5 } и
// нажатой ' d ' сначала произойдёт сдвиг на 1, ' d '
// станет ' f ', потом на 2, ' f ' станет ' h ',
// в конце ещё сдвиг на 5 и ' h ' станет ' x '.
const size_t key_shifts[3] =
{
1,
2,
5
};
// Соединение на коммутационной панели
struct Plug
{
size_t left_index = 0;
size_t right_index = 0;
};
// Все соединения коммутационной панели.
// Для примера всего 2, но может быть до 13
const Plug plugboard[2] =
{
{0, 1}, // ' q ' <- -> ' w '
{4, 10} // ' t ' <- -> ' a '
};