Как расшифровать сообщения на прошивке Repetier?
Мне нужно отправить сложный пароль на мой компьютер. Машина должна расшифровать его и запустить. Я не нашел достаточно ресурсов для такой операции.
Более подробное описание:
Я разрабатываю новую функцию для своего 3D-принтера, который работает на Repetier. (Возможно, я могу выполнить эту работу на другой прошивке). Я хочу изменить свой 3D-принтер, чтобы он мог понимать специальные зашифрованные G-коды наряду с обычными g-кодами. Давайте опишем это на примере:
Обычно 3D-принтеры могут считывать и применять стандартные файлы g-кода, такие как:
G28
G0 X10 Y20 E30
.
.
.
etc.
Но я разрабатываю метод шифрования g-кода, который шифрует любой g-код и превращает его в текст, подобный:
M999 !4#^
M999 ^s+.&&/..* ….
.
.
etc.
Я хочу изменить прошивку для 3D принтера, чтобы он понимал, зашифрован ли соответствующий g-код, проверяя каждую строку, если она начинается с M999 (или начинается с какого-то другого символа шаблона, который я решу позже).
Для этого мне нужно понять, как работает Repetier, особенно как работает command debug и как я могу разобрать свой зашифрованный код из зашифрованного файла g-кода.
Я не мог понять, как repetier.h / command.cpp работает и как он анализирует строку и перенаправляет на функциональные случаи.
@NeverGiveUp, 👍3
1 ответ
Просматривая источник, я нашел Commands.cpp у этого есть петля.
void Commands::commandLoop() {
while(true) {
...
Commands::executeGCode(code);
}
}
Если мы найдем метод executeGCode, то увидим, что он вызывает:
processMCode(com);
И найдя метод processMCode, у нас есть случай коммутатора, к которому вы можете добавить свою собственную логику.
void Commands::processMCode(GCode *com) {
switch( com->M ) {
case 3: // Шпиндель/лазер вкл.
...
case 999: // Ваша пользовательская логика
После декодирования зашифрованной строки я думаю, что было бы лучше вернуться к первому упомянутому методу и позволить процессу начать сверху с незашифрованной команды.
case 999:
// Пользовательская логика
executeGCode(unencrypted);
break;
- Prusa XI3 неправильно печатает с помощью Repetitier Host
- Repetier Host перестает отправлять команды на принтер при переключении пользователя Windows
- Экспорт прошивки в виде .hex
- Смещение по оси X или Y
- Как надо печатать легко съемные плоты?
- Метод выравнивания стола не работает с прошивкой Repetier 0.92.9?
- Альтернативный срез CubePro
- Калибровка искажений на плоскости XY в Repetier
Спасибо за ответ, извините за ожидание ответа, я попробовал ваше предложение, но когда я отправляю код на хост Repetier, я получаю неправильную контрольную сумму и предупреждения неизвестных команд в качестве возврата, я думаю, что когда мы отправляем код на машину, мы делаем проверку, прежде чем делать работу мы хотим, как мы можем отключить его?, @NeverGiveUp