From 65068b7f5e15453f0b82fb7bd1cd2fe33b3e89ce Mon Sep 17 00:00:00 2001 From: wolfv6 Date: Thu, 19 May 2016 11:51:57 -0600 Subject: [PATCH] document --- doc/keybrd_library_user_guide.md | 7 +++---- src/Code_LEDLock.cpp | 28 ++++++++++++++-------------- src/StateLayers.cpp | 2 +- src/StateLayers.h | 7 +++---- 4 files changed, 21 insertions(+), 23 deletions(-) diff --git a/doc/keybrd_library_user_guide.md b/doc/keybrd_library_user_guide.md index cb29984..30c66b9 100644 --- a/doc/keybrd_library_user_guide.md +++ b/doc/keybrd_library_user_guide.md @@ -47,10 +47,9 @@ The following install steps are modified from the [Teensyduino download page](ht For Linux: -1. Download and extract the Arduino software. - Move the extracted directory to /opt: +1. Download and extract the Arduino software to the /opt directory: - $ sudo mv ~/Downloads/arduino-1.6.7 /opt/arduino-1.6.7 + /opt/arduino-1.x.x 2. The "Linux udev rules" link is at top right of page. Save the teensy.rules file in /etc/udev/rules.d/ @@ -63,7 +62,7 @@ For Linux: Run the teensyduino installer and fill the form fields: - Arduino location to install Teensyduino: /usr/local/bin/arduino-1.x.x + Arduino location to install Teensyduino: /opt/arduino-1.x.x Libraries to Install: None 4. Launch Arduino IDE from /opt/arduino-1.x.x/arduino diff --git a/src/Code_LEDLock.cpp b/src/Code_LEDLock.cpp index 682dba4..a8217ce 100644 --- a/src/Code_LEDLock.cpp +++ b/src/Code_LEDLock.cpp @@ -38,28 +38,28 @@ void Code_LEDLock::release() Keyboard.release(scancode); } -/* updateLED() is a separate function from press() because Arduino boards may need a different implementation. -updateLED() has been tested on teensy 2.0. - The variable "keyboard_leds" is in /opt/arduino-1.6.7/hardware/teensy/avr/cores/usb_hid/usb.c +/* This comment is for Arduino board, because Arduino boards may need a different implementation. +updateLED() has NOT been tested on an Arduino board. +updateLED() has been tested on teensy 2.0 (not an Arduino board). +The variable "keyboard_leds" is in /opt/arduino-1.6.7/hardware/teensy/avr/cores/usb_hid/usb.c // 1=num lock, 2=caps lock, 4=scroll lock, 8=compose, 16=kana https://forum.pjrc.com/threads/25368-How-do-I-receive-a-numlock-capslock-LED-signal-from-the-PC -updateLED() has NOT been tested on an Arduino board. - The word "keyboard_leds does not appear in "Arduino\hardware\arduino\cores\ - This shows how to hack KeyReport in Arduino: https://www.sparkfun.com/tutorials/337 -TMK firmware uses variable "usb_led" instead of "keyboard_leds" +The word "keyboard_leds does not appear in "Arduino\hardware\arduino\cores\ +This shows how to hack KeyReport in Arduino: https://www.sparkfun.com/tutorials/337 +TMK firmware, which is not Arduino, uses variable "usb_led" instead of "keyboard_leds" http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html >usb_led */ void Code_LEDLock::updateLED() const { -/* KEY_SCROLL_LOCK is not working on Teensy2.0, it prints keyboard_leds=0, maybe Linux doesn't have it. -Here is the debug code: -Keyboard.print(F(" keyboard_leds=")); -Keyboard.print(keyboard_leds);//KEY_NUM_LOCK:1, KEY_CAPS_LOCK:2, KEY_SCROLL_LOCK:0 -Keyboard.print(" "); +/* KEY_SCROLL_LOCK is not working on Linux with Teensy2.0. +This debug code prints "keyboard_leds=0" when scrollLock is pressed: + Keyboard.print(F(" keyboard_leds=")); + Keyboard.print(keyboard_leds); //KEY_NUM_LOCK:1, KEY_CAPS_LOCK:2, KEY_SCROLL_LOCK:0 + Keyboard.print(" "); */ - if (keyboard_leds & USB_LED_bit) //if LED status bit is set + if (keyboard_leds & USB_LED_bit) //if USB_LED_bit is set { - refLED.off(); //LED on/off seem inverted, but it works + refLED.off(); //LED on/off seem inverted, but it works for active high } else { diff --git a/src/StateLayers.cpp b/src/StateLayers.cpp index 8a34314..cc83f9e 100644 --- a/src/StateLayers.cpp +++ b/src/StateLayers.cpp @@ -19,7 +19,7 @@ void StateLayers::lock(const uint8_t layer) lockedLayer = layer; } -//could set LED indicator lights in setActiveLayer() +//Derived classes override setActiveLayer() to also set LED indicator lights. void StateLayers::setActiveLayer(const uint8_t layer) { activeLayer = layer; diff --git a/src/StateLayers.h b/src/StateLayers.h index 0405a5d..004b292 100644 --- a/src/StateLayers.h +++ b/src/StateLayers.h @@ -3,7 +3,6 @@ #include #include -//#include /* basic StateLayers for keyboard. When pressed, Code_Layer objects call StateLayers functions lock() or hold(). @@ -17,9 +16,9 @@ class StateLayers : public StateLayersInterface virtual void setActiveLayer(const uint8_t layer); public: StateLayers() : activeLayer(0), lockedLayer(0) {} - virtual void hold(uint8_t layer); //set activeLayer - virtual void unhold(const uint8_t layer); //restore activeLayer to lockedLayer - virtual void lock(uint8_t layer); //set activeLayer and lock it + virtual void hold(uint8_t layer); //set activeLayer + virtual void unhold(const uint8_t layer); //restore activeLayer to lockedLayer + virtual void lock(uint8_t layer); //set activeLayer and lock it virtual uint8_t getActiveLayer(); }; #endif