igendel icon

QRing Receiver Code

igendel | PRO | 04/08/21 09:10:52 PM UTC | 0 ⭐ | 955 👁️ | Never ⏰ | []
Arduino |

830 B

|

None

|

0 👍

/

0 👎

// by Ido Gendel, 2021
// For the Arduino Micro
 
#include <Keyboard.h>
 
#define MAX_WAIT 25U
#define BUFFER_SIZE 1000U
 
char data[BUFFER_SIZE];
uint16_t bufIndex = 0;
uint32_t stamp = 0;
 
void setup() {
  
  Serial1.begin(57600);
  Serial.begin(115200); // For debugging
  Keyboard.begin();
  stamp = millis();
  
}
 
void loop() {
 
  char c;
  
  while (0 == Serial1.available()) {
 
    if (bufIndex && (millis() - stamp >= MAX_WAIT)) {
      
      data[bufIndex] = 13;
      data[bufIndex+1] = 10;
      data[bufIndex+2] = 0;
      Keyboard.print(data);
      bufIndex = 0;
      
    }
    
  }
 
  while (Serial1.available()) {
    
    c = Serial1.read();
    // Serial.println((byte)c); // For debugging
    if (c > 31) {
      data[bufIndex++] = c;
    }
    stamp = millis();       
    
  }
 
}

Comments