Понял, жди, гдето ошибка, щяс обдумаю.
Теперь такой скетч, также смотри монитор порта:
#include "Keyboard.h"
#include "Mouse.h"
String instring = "";
unsigned long val = 536902177; // создаем переменную в 4 байта
void setup() {
Serial.begin(9600);
Mouse.begin();
Keyboard.begin();
}
void loop() {
////////////////////////////////////////////////////////////////////////
//ожидание команды от кликермана в виде строоки
while (Serial.available() > 0) {
int inchar = Serial.read(); // принимаем по одному символу ASCI (по другому пока я незнаю как передавать)
if (isDigit(inchar)) { //если это цифра,
instring += (char)inchar; //то соединяем ее с предыдущей цифрой
}
if (inchar == '\n') { //как только закончили прием. '\n' значит перенос строки, значит конец передачи.
val = instring.toInt(); //строку instring переделываем в число val
instring = ""; //обнуляем строку
}
Serial.println(val, DEC);
} //все, с приемом окончили, получили число val
////////////////////////////////////////////////////////////////////////
//ожидаем, пока переменная val станет больше нуля
if (val > 0) {
//далее разбиваем наше число на биты, и судя по ним, делаем нужные действия
int kmfunct = val/268435456 ; //номер функции
Serial.println(kmfunct, DEC); //смотрим номер функции
switch (kmfunct) {
case 1: // Mouse.click
int click_par = val - kmfunct*268435456; // возможны 3 варианта - левая, правая, средняя
switch (click_par) {
case 1:
Mouse.click(MOUSE_LEFT);
break;
case 2:
Mouse.click(MOUSE_RIGHT);
break;
case 3:
Mouse.click(MOUSE_MIDDLE);
break;
}
break;
case 2: // Mouse.move()
Serial.println("Mouse_move");
char x_cor = (val - kmfunct*268435456)/256;
char y_cor = val - x_cor*256 - kmfunct*268435456;
Serial.println(x_cor, DEC); //смортим параметры сдвигов
Serial.println(y_cor, DEC);
Mouse.move(x_cor, y_cor, 0);
break;
}
delay(5000);
// val = 0; //в конце обнуляем нашу переменную
}
}