mirror of
https://github.com/skogaby/OpeNITHM.git
synced 2026-10-05 21:38:16 +03:00
Fixes (again)
It didn't build but now it does Fixed the USB def for switching between 32U4/328P Fixes indents on all files
This commit is contained in:
+26
-26
@@ -4,9 +4,9 @@
|
||||
#define _AIRSENSOR_h
|
||||
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
#include "arduino.h"
|
||||
#include "arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
|
||||
#include "PinConfig.h"
|
||||
@@ -16,34 +16,34 @@
|
||||
|
||||
class AirSensor
|
||||
{
|
||||
private:
|
||||
void changeLight(int light);
|
||||
void turnOffLight();
|
||||
private:
|
||||
void changeLight(int light);
|
||||
void turnOffLight();
|
||||
|
||||
int thresholds[6];
|
||||
int calibrationSamples[6];
|
||||
int skippedSamples[6];
|
||||
float sensorValues[6];
|
||||
int samplesToAcquire;
|
||||
int samplesToSkip;
|
||||
int thresholds[6];
|
||||
int calibrationSamples[6];
|
||||
int skippedSamples[6];
|
||||
float sensorValues[6];
|
||||
int samplesToAcquire;
|
||||
int samplesToSkip;
|
||||
|
||||
bool calibrated[6];
|
||||
bool allCalibrated;
|
||||
bool calibrated[6];
|
||||
bool allCalibrated;
|
||||
|
||||
uint16_t deadzone;
|
||||
float alpha;
|
||||
public:
|
||||
AirSensor(int requiredSamples, int skippedSamples);
|
||||
bool isCalibrated();
|
||||
bool getSensorState(int sensor);
|
||||
int getValue(int sensor, bool light);
|
||||
float getHandPosition();
|
||||
uint16_t deadzone;
|
||||
float alpha;
|
||||
public:
|
||||
AirSensor(int requiredSamples, int skippedSamples);
|
||||
bool isCalibrated();
|
||||
bool getSensorState(int sensor);
|
||||
int getValue(int sensor, bool light);
|
||||
float getHandPosition();
|
||||
|
||||
void setDeadzone(int deadzone);
|
||||
void setAlpha(float alpha);
|
||||
int getDeadzone();
|
||||
float getAlpha();
|
||||
void recalibrate();
|
||||
void setDeadzone(int deadzone);
|
||||
void setAlpha(float alpha);
|
||||
int getDeadzone();
|
||||
float getAlpha();
|
||||
void recalibrate();
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
/*
|
||||
CapacitiveSense.h - Capacitive Sensing Library for 'duino / Wiring
|
||||
https://github.com/PaulStoffregen/CapacitiveSensor
|
||||
http://www.pjrc.com/teensy/td_libs_CapacitiveSensor.html
|
||||
http://playground.arduino.cc/Main/CapacitiveSensor
|
||||
Copyright (c) 2009 Paul Bagder
|
||||
Updates for other hardare by Paul Stoffregen, 2010-2016
|
||||
Several modifications to better suit OpeNITHM by Jonathan Montineri, 2019
|
||||
vim: set ts=4:
|
||||
CapacitiveSense.h - Capacitive Sensing Library for 'duino / Wiring
|
||||
https://github.com/PaulStoffregen/CapacitiveSensor
|
||||
http://www.pjrc.com/teensy/td_libs_CapacitiveSensor.html
|
||||
http://playground.arduino.cc/Main/CapacitiveSensor
|
||||
Copyright (c) 2009 Paul Bagder
|
||||
Updates for other hardare by Paul Stoffregen, 2010-2016
|
||||
Several modifications to better suit OpeNITHM by Jonathan Montineri, 2019
|
||||
vim: set ts=4:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#if ARDUINO >= 100
|
||||
@@ -63,7 +63,7 @@ CapacitiveSensor::CapacitiveSensor(uint8_t sendPin, uint8_t receivePin1, uint8_t
|
||||
|
||||
// Get pin bitmask and registers
|
||||
|
||||
sBit = PIN_TO_BITMASK(sendPin);
|
||||
sBit = PIN_TO_BITMASK(sendPin);
|
||||
sReg = PIN_TO_BASEREG(sendPin);
|
||||
|
||||
r1Bit = PIN_TO_BITMASK(receivePin1);
|
||||
@@ -124,7 +124,7 @@ int CapacitiveSensor::SenseOneCycle(void)
|
||||
total2 += !pin2State;
|
||||
|
||||
// Break once both pins are high
|
||||
if(pin1State && pin2State) break;
|
||||
if (pin1State && pin2State) break;
|
||||
}
|
||||
|
||||
if (total1 > CS_Timeout_Millis) {
|
||||
@@ -142,18 +142,18 @@ int CapacitiveSensor::SenseOneCycle(void)
|
||||
DIRECT_WRITE_LOW(sReg, sBit); // sendPin LOW
|
||||
|
||||
// Same loop as above, but measuring capacitor discharge time instead
|
||||
while ( (total1 < CS_Timeout_Millis) ) {
|
||||
while ( (total1 < CS_Timeout_Millis) ) {
|
||||
pin1State = DIRECT_READ(r1Reg, r1Bit);
|
||||
pin2State = DIRECT_READ(r2Reg, r2Bit);
|
||||
|
||||
total1 += pin1State;
|
||||
total2 += pin2State;
|
||||
|
||||
if(!(pin1State || pin2State)) break;
|
||||
if (!(pin1State || pin2State)) break;
|
||||
}
|
||||
|
||||
if (total1 >= CS_Timeout_Millis) {
|
||||
return -2;
|
||||
return -2;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
|
||||
+52
-52
@@ -132,55 +132,55 @@
|
||||
static inline __attribute__((always_inline))
|
||||
IO_REG_TYPE directRead(volatile IO_REG_TYPE *base, IO_REG_TYPE pin)
|
||||
{
|
||||
IO_REG_TYPE ret;
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
ret = READ_ARC_REG(((IO_REG_TYPE)base + EXT_PORT_OFFSET_SS));
|
||||
} else {
|
||||
ret = MMIO_REG_VAL_FROM_BASE((IO_REG_TYPE)base, EXT_PORT_OFFSET_SOC);
|
||||
}
|
||||
return ((ret >> GPIO_ID(pin)) & 0x01);
|
||||
IO_REG_TYPE ret;
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
ret = READ_ARC_REG(((IO_REG_TYPE)base + EXT_PORT_OFFSET_SS));
|
||||
} else {
|
||||
ret = MMIO_REG_VAL_FROM_BASE((IO_REG_TYPE)base, EXT_PORT_OFFSET_SOC);
|
||||
}
|
||||
return ((ret >> GPIO_ID(pin)) & 0x01);
|
||||
}
|
||||
|
||||
static inline __attribute__((always_inline))
|
||||
void directModeInput(volatile IO_REG_TYPE *base, IO_REG_TYPE pin)
|
||||
{
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
WRITE_ARC_REG(READ_ARC_REG((((IO_REG_TYPE)base) + DIR_OFFSET_SS)) & ~(0x01 << GPIO_ID(pin)),
|
||||
((IO_REG_TYPE)(base) + DIR_OFFSET_SS));
|
||||
} else {
|
||||
MMIO_REG_VAL_FROM_BASE((IO_REG_TYPE)base, DIR_OFFSET_SOC) &= ~(0x01 << GPIO_ID(pin));
|
||||
}
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
WRITE_ARC_REG(READ_ARC_REG((((IO_REG_TYPE)base) + DIR_OFFSET_SS)) & ~(0x01 << GPIO_ID(pin)),
|
||||
((IO_REG_TYPE)(base) + DIR_OFFSET_SS));
|
||||
} else {
|
||||
MMIO_REG_VAL_FROM_BASE((IO_REG_TYPE)base, DIR_OFFSET_SOC) &= ~(0x01 << GPIO_ID(pin));
|
||||
}
|
||||
}
|
||||
|
||||
static inline __attribute__((always_inline))
|
||||
void directModeOutput(volatile IO_REG_TYPE *base, IO_REG_TYPE pin)
|
||||
{
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
WRITE_ARC_REG(READ_ARC_REG(((IO_REG_TYPE)(base) + DIR_OFFSET_SS)) | (0x01 << GPIO_ID(pin)),
|
||||
((IO_REG_TYPE)(base) + DIR_OFFSET_SS));
|
||||
} else {
|
||||
MMIO_REG_VAL_FROM_BASE((IO_REG_TYPE)base, DIR_OFFSET_SOC) |= (0x01 << GPIO_ID(pin));
|
||||
}
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
WRITE_ARC_REG(READ_ARC_REG(((IO_REG_TYPE)(base) + DIR_OFFSET_SS)) | (0x01 << GPIO_ID(pin)),
|
||||
((IO_REG_TYPE)(base) + DIR_OFFSET_SS));
|
||||
} else {
|
||||
MMIO_REG_VAL_FROM_BASE((IO_REG_TYPE)base, DIR_OFFSET_SOC) |= (0x01 << GPIO_ID(pin));
|
||||
}
|
||||
}
|
||||
|
||||
static inline __attribute__((always_inline))
|
||||
void directWriteLow(volatile IO_REG_TYPE *base, IO_REG_TYPE pin)
|
||||
{
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
WRITE_ARC_REG(READ_ARC_REG(base) & ~(0x01 << GPIO_ID(pin)), base);
|
||||
} else {
|
||||
MMIO_REG_VAL(base) &= ~(0x01 << GPIO_ID(pin));
|
||||
}
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
WRITE_ARC_REG(READ_ARC_REG(base) & ~(0x01 << GPIO_ID(pin)), base);
|
||||
} else {
|
||||
MMIO_REG_VAL(base) &= ~(0x01 << GPIO_ID(pin));
|
||||
}
|
||||
}
|
||||
|
||||
static inline __attribute__((always_inline))
|
||||
void directWriteHigh(volatile IO_REG_TYPE *base, IO_REG_TYPE pin)
|
||||
{
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
WRITE_ARC_REG(READ_ARC_REG(base) | (0x01 << GPIO_ID(pin)), base);
|
||||
} else {
|
||||
MMIO_REG_VAL(base) |= (0x01 << GPIO_ID(pin));
|
||||
}
|
||||
if (SS_GPIO == GPIO_TYPE(pin)) {
|
||||
WRITE_ARC_REG(READ_ARC_REG(base) | (0x01 << GPIO_ID(pin)), base);
|
||||
} else {
|
||||
MMIO_REG_VAL(base) |= (0x01 << GPIO_ID(pin));
|
||||
}
|
||||
}
|
||||
|
||||
#define DIRECT_READ(base, pin) directRead(base, pin)
|
||||
@@ -201,32 +201,32 @@ void directWriteHigh(volatile IO_REG_TYPE *base, IO_REG_TYPE pin)
|
||||
// library interface description
|
||||
class CapacitiveSensor
|
||||
{
|
||||
// user-accessible "public" interface
|
||||
// user-accessible "public" interface
|
||||
public:
|
||||
// methods
|
||||
CapacitiveSensor(uint8_t sendPin, uint8_t receivePin1, uint8_t receivePin2);
|
||||
unsigned int* sense(uint8_t samples);
|
||||
// library-accessible "private" interface
|
||||
// methods
|
||||
CapacitiveSensor(uint8_t sendPin, uint8_t receivePin1, uint8_t receivePin2);
|
||||
unsigned int* sense(uint8_t samples);
|
||||
// library-accessible "private" interface
|
||||
private:
|
||||
// variables
|
||||
int error;
|
||||
unsigned long leastTotal;
|
||||
unsigned int loopTimingFactor;
|
||||
unsigned long CS_Timeout_Millis;
|
||||
unsigned int total1;
|
||||
unsigned int total2;
|
||||
unsigned int *retVal;
|
||||
bool pin1State;
|
||||
bool pin2State;
|
||||
// variables
|
||||
int error;
|
||||
unsigned long leastTotal;
|
||||
unsigned int loopTimingFactor;
|
||||
unsigned long CS_Timeout_Millis;
|
||||
unsigned int total1;
|
||||
unsigned int total2;
|
||||
unsigned int *retVal;
|
||||
bool pin1State;
|
||||
bool pin2State;
|
||||
|
||||
IO_REG_TYPE sBit; // send pin's ports and bitmask
|
||||
volatile IO_REG_TYPE *sReg;
|
||||
IO_REG_TYPE r1Bit; // receive 1 pin's ports and bitmask
|
||||
volatile IO_REG_TYPE *r1Reg;
|
||||
IO_REG_TYPE r2Bit; // receive 2 pin's ports and bitmask
|
||||
volatile IO_REG_TYPE *r2Reg;
|
||||
// methods
|
||||
int SenseOneCycle(void);
|
||||
IO_REG_TYPE sBit; // send pin's ports and bitmask
|
||||
volatile IO_REG_TYPE *sReg;
|
||||
IO_REG_TYPE r1Bit; // receive 1 pin's ports and bitmask
|
||||
volatile IO_REG_TYPE *r1Reg;
|
||||
IO_REG_TYPE r2Bit; // receive 2 pin's ports and bitmask
|
||||
volatile IO_REG_TYPE *r2Reg;
|
||||
// methods
|
||||
int SenseOneCycle(void);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega32u4__)
|
||||
#define USB
|
||||
#endif
|
||||
#include "PinConfig.h"
|
||||
|
||||
#ifdef USB
|
||||
#include "USBOutput.h"
|
||||
@@ -11,7 +9,6 @@
|
||||
#include "AirSensor.h"
|
||||
#include "Touchboard.h"
|
||||
#include <FastLED.h>
|
||||
#include "PinConfig.h"
|
||||
|
||||
CRGB leds[16];
|
||||
|
||||
@@ -47,7 +44,7 @@ void parseCommand()
|
||||
{
|
||||
case 't': // touchboard
|
||||
while (!Serial.available());
|
||||
char input2 = Serial.read();
|
||||
input2 = Serial.read();
|
||||
switch (input2)
|
||||
{
|
||||
case 't': // threshold
|
||||
@@ -65,7 +62,7 @@ void parseCommand()
|
||||
break;
|
||||
case 'i': // ir sensors
|
||||
while (!Serial.available());
|
||||
char input2 = Serial.read();
|
||||
input2 = Serial.read();
|
||||
switch (input2)
|
||||
{
|
||||
case 'd': // dead zone
|
||||
@@ -115,7 +112,7 @@ void parseCommand()
|
||||
break;
|
||||
case 'l': // change led color
|
||||
while (!Serial.available());
|
||||
char input2 = Serial.read();
|
||||
input2 = Serial.read();
|
||||
switch (input2)
|
||||
{
|
||||
case 'o': // on
|
||||
|
||||
+3
-3
@@ -5,9 +5,9 @@
|
||||
|
||||
class Output
|
||||
{
|
||||
public:
|
||||
virtual void sendKeyEvent(int key, bool pressed, bool doublePressed);
|
||||
virtual void sendSensorEvent(float position);
|
||||
public:
|
||||
virtual void sendKeyEvent(int key, bool pressed, bool doublePressed);
|
||||
virtual void sendSensorEvent(float position);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+11
-7
@@ -1,6 +1,10 @@
|
||||
#ifndef _PINCONFIG_h
|
||||
#define _PINCONFIG_h
|
||||
|
||||
#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega32u4__)
|
||||
#define USB
|
||||
#endif
|
||||
|
||||
//#define IR_SENSOR_MULTIPLEXED
|
||||
//#define IR_SENSOR_ANALOG // Uncomment if IR sensors are hooked up to analog pins
|
||||
#define CALIBRATION_SAMPLES 500
|
||||
@@ -16,14 +20,14 @@
|
||||
#define LED_2 3
|
||||
|
||||
#ifdef IR_SENSOR_MULTIPLEXED
|
||||
#define SENSOR_IN A0
|
||||
#define SENSOR_IN A0
|
||||
#else
|
||||
#define AIR_SENSOR_0_PIN 4
|
||||
#define AIR_SENSOR_1_PIN 5
|
||||
#define AIR_SENSOR_2_PIN 6
|
||||
#define AIR_SENSOR_3_PIN 7
|
||||
#define AIR_SENSOR_4_PIN 8
|
||||
#define AIR_SENSOR_5_PIN 9
|
||||
#define AIR_SENSOR_0_PIN 4
|
||||
#define AIR_SENSOR_1_PIN 5
|
||||
#define AIR_SENSOR_2_PIN 6
|
||||
#define AIR_SENSOR_3_PIN 7
|
||||
#define AIR_SENSOR_4_PIN 8
|
||||
#define AIR_SENSOR_5_PIN 9
|
||||
#endif
|
||||
|
||||
// Capsense pin settings
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
#include "SerialOutput.h"
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
#define _SERIALOUTPUT_h
|
||||
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
#include "arduino.h"
|
||||
#include "arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
#include "Output.h"
|
||||
|
||||
@@ -31,11 +31,11 @@ union Packet
|
||||
|
||||
class SerialOutput : public Output
|
||||
{
|
||||
private:
|
||||
Packet builtPacket = Packet();
|
||||
public:
|
||||
void sendKeyEvent(int key, bool pressed, bool doublePressed) override;
|
||||
void sendSensorEvent(float position) override;
|
||||
private:
|
||||
Packet builtPacket = Packet();
|
||||
public:
|
||||
void sendKeyEvent(int key, bool pressed, bool doublePressed) override;
|
||||
void sendSensorEvent(float position) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+22
-22
@@ -10,32 +10,32 @@
|
||||
|
||||
class Touchboard
|
||||
{
|
||||
private:
|
||||
CapacitiveSensor sensor;
|
||||
private:
|
||||
CapacitiveSensor sensor;
|
||||
|
||||
uint16_t threshold;
|
||||
uint16_t deadzone;
|
||||
float alpha;
|
||||
uint16_t threshold;
|
||||
uint16_t deadzone;
|
||||
float alpha;
|
||||
|
||||
float em_averages[16];
|
||||
unsigned int keys[16];
|
||||
int neutral_values[16];
|
||||
void (*onKeyPress)(int, bool);
|
||||
float em_averages[16];
|
||||
unsigned int keys[16];
|
||||
int neutral_values[16];
|
||||
void (*onKeyPress)(int, bool);
|
||||
|
||||
public:
|
||||
boolean key_states[16];
|
||||
public:
|
||||
boolean key_states[16];
|
||||
|
||||
Touchboard(void(*keyPressCallback)(int, bool));
|
||||
void scan();
|
||||
bool update(int key);
|
||||
void setThreshold(uint16_t threshold);
|
||||
void setDeadzone(uint16_t deadzone);
|
||||
void setAlpha(float alpha);
|
||||
int getThreshold();
|
||||
int getDeadzone();
|
||||
float getAlpha();
|
||||
float getEmAverages(int key);
|
||||
void calibrateKeys();
|
||||
Touchboard(void(*keyPressCallback)(int, bool));
|
||||
void scan();
|
||||
bool update(int key);
|
||||
void setThreshold(uint16_t threshold);
|
||||
void setDeadzone(uint16_t deadzone);
|
||||
void setAlpha(float alpha);
|
||||
int getThreshold();
|
||||
int getDeadzone();
|
||||
float getAlpha();
|
||||
float getEmAverages(int key);
|
||||
void calibrateKeys();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+13
-12
@@ -1,5 +1,6 @@
|
||||
#ifdef USB
|
||||
#include "PinConfig.h"
|
||||
|
||||
#ifdef USB
|
||||
#include "USBOutput.h"
|
||||
|
||||
char bottomRow[] = {'a', 'z', 's', 'x', 'd', 'c', 'f', 'v', 'g', 'b', 'h', 'n', 'j', 'm', 'k', ','};
|
||||
@@ -7,15 +8,15 @@ char topRow[] = {'1', 'q', '2', 'w', '3', 'e', '4', 'r', '5', 't', '6', 'y', '7'
|
||||
|
||||
void USBOutput::sendKeyEvent(int key, bool pressed, bool doublePressed)
|
||||
{
|
||||
if(pressed){
|
||||
if(doublePressed){
|
||||
if (pressed) {
|
||||
if (doublePressed) {
|
||||
NKROKeyboard.write(topRow[key]);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
NKROKeyboard.press(bottomRow[key]);
|
||||
}
|
||||
}
|
||||
else{
|
||||
else {
|
||||
NKROKeyboard.release(bottomRow[key]);
|
||||
}
|
||||
}
|
||||
@@ -23,29 +24,29 @@ void USBOutput::sendKeyEvent(int key, bool pressed, bool doublePressed)
|
||||
void USBOutput::sendSensorEvent(float position)
|
||||
{
|
||||
// Send hand up / hand down key
|
||||
if(position > lastPosition){
|
||||
if (position > lastPosition) {
|
||||
NKROKeyboard.write(KEY_PAGE_UP);
|
||||
}
|
||||
if(position < lastPosition){
|
||||
if (position < lastPosition) {
|
||||
NKROKeyboard.write(KEY_PAGE_DOWN);
|
||||
}
|
||||
|
||||
// Send hand seen / unseen key
|
||||
if(position > 0.05f){
|
||||
if (position > 0.05f) {
|
||||
NKROKeyboard.press(KEY_HOME);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
NKROKeyboard.release(KEY_HOME);
|
||||
}
|
||||
|
||||
// Send hand moved key
|
||||
NKROKeyboard.write(KEY_END);
|
||||
|
||||
|
||||
}
|
||||
|
||||
USBOutput::USBOutput(){
|
||||
USBOutput::USBOutput() {
|
||||
NKROKeyboard.begin();
|
||||
lastPosition = 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -6,21 +6,21 @@
|
||||
#include "Output.h"
|
||||
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
#include "arduino.h"
|
||||
#include "arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
|
||||
#include <HID-Project.h>
|
||||
|
||||
class USBOutput : public Output
|
||||
{
|
||||
private:
|
||||
float lastPosition;
|
||||
public:
|
||||
void sendKeyEvent(int key, bool pressed, bool doublePressed) override;
|
||||
void sendSensorEvent(float position) override;
|
||||
USBOutput();
|
||||
private:
|
||||
float lastPosition;
|
||||
public:
|
||||
void sendKeyEvent(int key, bool pressed, bool doublePressed) override;
|
||||
void sendSensorEvent(float position) override;
|
||||
USBOutput();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user