Здравствуйте.
На гитхабе есть проект arduino-canhacker.
Хочу на основе этого проекта написать терминальную программу CAN Bomber наподобие вот этой. Так как писать готовые программы для компьютера я не умею, а для МК был опыт написания скетчей, поэтому и хочу реализовать общение через терминал.
Помогите пожалуйста разобраться в годе скетча arduino-canhacker. В каком месте данные принимаются из сом-порта и отсылаются в кан-сеть?
Пока занялся интерфейсом программы
На гитхабе есть проект arduino-canhacker.
Хочу на основе этого проекта написать терминальную программу CAN Bomber наподобие вот этой. Так как писать готовые программы для компьютера я не умею, а для МК был опыт написания скетчей, поэтому и хочу реализовать общение через терминал.
Помогите пожалуйста разобраться в годе скетча arduino-canhacker. В каком месте данные принимаются из сом-порта и отсылаются в кан-сеть?
Пока занялся интерфейсом программы
интерфейс:
char key = 9;
int8_t i = 7, x = 7;
void setup() {
Serial.begin(115200);
Serial.setTimeout(30);
}
void loop() {
if ((Serial.available()) & (key == 9) ) {
Serial.println(Serial.read());
//Serial.read();
Serial.flush();
key = 0;
Serial.println(" ");Serial.println("");
Serial.println("******************************************************");
Serial.println("* CAN Bomber *");
Serial.println("******************************************************");
Serial.println("Выберите метод бомбардиовки");
Serial.println("1.Перебор ID пакета");
Serial.println("2.Перебор выбранных байт данных");
Serial.println("3.Последовательный перебор выбранных байт данных");
}
if ((Serial.available()) & (x == 7) ) {
i = Serial.parseInt();
Serial.println(i);
x = 0;
}
switch (i) {
case 1:
if (key == 0) {
Serial.println("******************************************************");
Serial.println("* Перебор ID пакета *");
Serial.println("******************************************************");
Serial.println("Ввведите начальное значение ID");
key = 1;
}
if ((Serial.available()) & (x == 0) ) {
int ID_Start = Serial.parseInt();
Serial.println(ID_Start);
Serial.println("Ввведите конечое значение ID");
x = 1;
} else if ((Serial.available()) & (x == 1) ) {
int ID_End = Serial.parseInt();
Serial.println(ID_End);
Serial.println("Введите время задержки между отправкой пакетов");
x = 2;
} else if ((Serial.available()) & (x == 2) ) {
int Period = Serial.parseInt();
Serial.println(Period);
Serial.println("Введите колличество одинаковых пакетов");
x = 3;
} else if ((Serial.available()) & (x == 3) ) {
int Msg_per_Step = Serial.parseInt();
Serial.println(Msg_per_Step);
x = 4;
i = 0;
}
break;
case 2:
// код
break;
case 3:
// код
break;
}
}
Изменено: