Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Keyboard.h>
- #define BAUD_RATE 57200
- #define ExternSerial Serial1
- String bufferStr = "";
- String last = "";
- int defaultDelay = 0;
- void Line(String _line)
- {
- int firstSpace = _line.indexOf(" ");
- if(firstSpace == -1) Press(_line);
- else if(_line.substring(0,firstSpace) == "STRING"){
- for(int i=firstSpace+1;i<_line.length();i++) Keyboard.write(_line[i]);
- }
- else if(_line.substring(0,firstSpace) == "DELAY"){
- int delaytime = _line.substring(firstSpace + 1).toInt();
- delay(delaytime);
- }
- else if(_line.substring(0,firstSpace) == "DEFAULTDELAY") defaultDelay = _line.substring(firstSpace + 1).toInt();
- else if(_line.substring(0,firstSpace) == "REM"){} //nothing :/
- else if(_line.substring(0,firstSpace) == "REPLAY") {
- int replaynum = _line.substring(firstSpace + 1).toInt();
- while(replaynum)
- {
- Line(last);
- --replaynum;
- }
- } else{
- String remain = _line;
- while(remain.length() > 0){
- int latest_space = remain.indexOf(" ");
- if (latest_space == -1){
- Press(remain);
- remain = "";
- }
- else{
- Press(remain.substring(0, latest_space));
- remain = remain.substring(latest_space + 1);
- }
- delay(5);
- }
- }
- Keyboard.releaseAll();
- delay(defaultDelay);
- }
- void Press(String b){
- if(b.length() == 1) Keyboard.press(char(b[0]));
- else if (b.equals("ENTER")) Keyboard.press(KEY_RETURN);
- else if (b.equals("CTRL")) Keyboard.press(KEY_LEFT_CTRL);
- else if (b.equals("SHIFT")) Keyboard.press(KEY_LEFT_SHIFT);
- else if (b.equals("ALT")) Keyboard.press(KEY_LEFT_ALT);
- else if (b.equals("GUI")) Keyboard.press(KEY_LEFT_GUI);
- else if (b.equals("UP") || b.equals("UPARROW")) Keyboard.press(KEY_UP_ARROW);
- else if (b.equals("DOWN") || b.equals("DOWNARROW")) Keyboard.press(KEY_DOWN_ARROW);
- else if (b.equals("LEFT") || b.equals("LEFTARROW")) Keyboard.press(KEY_LEFT_ARROW);
- else if (b.equals("RIGHT") || b.equals("RIGHTARROW")) Keyboard.press(KEY_RIGHT_ARROW);
- else if (b.equals("DELETE")) Keyboard.press(KEY_DELETE);
- else if (b.equals("PAGEUP")) Keyboard.press(KEY_PAGE_UP);
- else if (b.equals("PAGEDOWN")) Keyboard.press(KEY_PAGE_DOWN);
- else if (b.equals("HOME")) Keyboard.press(KEY_HOME);
- else if (b.equals("ESC")) Keyboard.press(KEY_ESC);
- else if (b.equals("BACKSPACE")) Keyboard.press(KEY_BACKSPACE);
- else if (b.equals("INSERT")) Keyboard.press(KEY_INSERT);
- else if (b.equals("TAB")) Keyboard.press(KEY_TAB);
- else if (b.equals("END")) Keyboard.press(KEY_END);
- else if (b.equals("CAPSLOCK")) Keyboard.press(KEY_CAPS_LOCK);
- else if (b.equals("F1")) Keyboard.press(KEY_F1);
- else if (b.equals("F2")) Keyboard.press(KEY_F2);
- else if (b.equals("F3")) Keyboard.press(KEY_F3);
- else if (b.equals("F4")) Keyboard.press(KEY_F4);
- else if (b.equals("F5")) Keyboard.press(KEY_F5);
- else if (b.equals("F6")) Keyboard.press(KEY_F6);
- else if (b.equals("F7")) Keyboard.press(KEY_F7);
- else if (b.equals("F8")) Keyboard.press(KEY_F8);
- else if (b.equals("F9")) Keyboard.press(KEY_F9);
- else if (b.equals("F10")) Keyboard.press(KEY_F10);
- else if (b.equals("F11")) Keyboard.press(KEY_F11);
- else if (b.equals("F12")) Keyboard.press(KEY_F12);
- else if (b.equals("SPACE")) Keyboard.press(' ');
- //else Serial.println("not found :'"+b+"'("+String(b.length())+")");
- }
- void setup() {
- Serial.begin(BAUD_RATE);
- ExternSerial.begin(BAUD_RATE);
- pinMode(13,OUTPUT);
- digitalWrite(13,HIGH);
- Keyboard.begin();
- }
- void loop() {
- if(ExternSerial.available()) {
- bufferStr = ExternSerial.readStringUntil("END");
- Serial.println(bufferStr);
- }
- if(bufferStr.length() > 0){
- bufferStr.replace("\r","\n");
- bufferStr.replace("\n\n","\n");
- while(bufferStr.length() > 0){
- int latest_return = bufferStr.indexOf("\n");
- if(latest_return == -1){
- Serial.println("run: "+bufferStr);
- Line(bufferStr);
- bufferStr = "";
- } else{
- Serial.println("run: '"+bufferStr.substring(0, latest_return)+"'");
- Line(bufferStr.substring(0, latest_return));
- last=bufferStr.substring(0, latest_return);
- bufferStr = bufferStr.substring(latest_return + 1);
- }
- }
- bufferStr = "";
- ExternSerial.write(0x99);
- Serial.println("done");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement