Ок, для начала убери вот это из кликера,
WHILE(($x_temp = $_xmouse)&($y_temp = $_ymouse))
waitms(100) //ждем перемещения курсора
END_CYC
оставим статическую задержку в 5сек.
Далее посмотрим что там мы принимаем в ардуине. IDE -меню - инструменты - монитор порта. Там можно смотреть лог работы платы. Открой его, и скажешь что там будет. Скрипт выполнишь один раз в активном окне.
Теперь нужно добавить то самое логирование. Готовый скетч будет выглядеть так:
#include "Keyboard.h"
#include "Mouse.h"
String instring = "";
unsigned long val = 0; // создаем переменную в 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 = ""; //обнуляем строку
}
} //все, с приемом окончили, получили число val
Serial.println(val, DEC);
////////////////////////////////////////////////////////////////////////
//ожидаем, пока переменная 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()
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;
}
val = 0; //в конце обнуляем нашу переменную
}
}
Не забывай компилировать и загружать скетч в микруху.
Подправил немного, повтори заново !!!!!!!!!!