From 275a3b7b5dda7c04d66995dd4660141b2a405795 Mon Sep 17 00:00:00 2001 From: Charles Mangin Date: Wed, 18 Sep 2013 15:02:05 -0400 Subject: [PATCH] New feature: F-Key support When caps lock is active, the numbers 1 through 0 act as F1 through F10. --- .DS_Store | Bin 15364 -> 6148 bytes IIe-USB/arduino/IIe_keyboard/IIe_keyboard.ino | 52 ++++++++++++++++-- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/.DS_Store b/.DS_Store index 56649ed3b3ed8b2fdb1f33866d225deed053bd95..28cb09796b43969b31d37779303a610552189b09 100644 GIT binary patch delta 315 zcmZpvXfcprU|?W$DortDU=RQ@Ie-{Mvv5sJ6q~50$SAxqU^g?P@MInVDT_BhK{5<_ z4CxG+3?;ewE-ophCCLm7=fqMCfHEj@DM)gY;{>FcY#&TMC?-5PTF`d#1Tij_vzbN; zlMjfA@a5*iltP7cCv%G%F&&MVoG32B1G54s=QX)e98Eb$NQp6Fvb2Qsb_Mx=W8!z_$^0swpwM7of`kkxuoyPS^UPre0HnG~lK=n! literal 15364 zcmeHMUu+ab82`Rf=nmJymQrW|;S?-Y+S+2IEf%~USA+n8a4jtbt$VjiyRf(0-0oe8 zSUoY~3xY8|Y5WuQ2@{PmzNj%isgcBJLQstI;+sz<;)8E~Gqcy+pPp|7LuM{J-^}-C z{`~g0GnqL6z`0PWd4X%Q(^t`JZNCx< zjQ~Hp*Fz6XgAGC1`F-%k&#Y;iohi8!82X9_Ho$)R zrJ)` zD{otKQ+jjSaMC$)vW6WeX+LfG<7v;yWn6zEu+9ctGwFNTV2@Bv*c8ikQ~D|%e|R>q zJ=Z^GWqp!_%$24!>o;wApy%QKp=&Ev>dmZ$wT|a)-%dH!*c?apxZ$TQ*Rz$#}t-GTV$iAo#6UCS&MS1X7@%mGu_Ze zeHxo=qJwoZ-Djg`h!iq(8|&6|lZ`n>%5tQtmu=Vd18h7mCm@wAY=_1s=z=Ok!}FzX zF!HFTf2%#oJ3eUm!QolUrM`FVeyo{>6t6W!O*_sbhE3BlH^(~p+XmPi>y-uCgEVM| zF4zr6VUn2c!W>+Lm*EmzhS%Xe_y9hJ&*5wM2EK!<@B`d{U*K2x4gP??;1>Lih|4j8 zO}GMEa0A|hn=p#^V-G%reYhP5a2Vs5z!5xz$8a1c(7@Ap1~cg5JYK*{_!_>2Z{s_7 z1wX+rt+QYBOUeE3Dy9bJ@%Bdhnu?hFraG;#K=YFXX7M$mC!*YLs{ zt$2y0WD@+51QEn35<^h4oQ-SS+Sf%ku#L4|{TT7iI;(MF>kZe0H<6T+NY`YwBhsl6 z$@Mx>W!oa%oWlANX%*BonZ8t7A7TBR&U(GH?qoxpxcV|_-N0gu=^!f|kp$CptmfN) zuo z)}$^7zY0c{>@YPv%J!M9;zO)xBcIH=j^|EO`}|vwR;#!RRWIBNrm}^*@#dE5;Iau^ zESbPU8)Xw%)T3+yO$FXaL~f8UB{ocpy)5Kssx1QY@a W0fm4 10) { Keyboard.set_key6(KEY_CAPS_UNLOCK); resetCapsLock = false; - } + } + +FKEYS = CAPSState; + /*char CAPSState = digitalRead(CAPSPin); if (CAPSState == LOW) { Keyboard.set_key6(KEY_CAPS_LOCK); } else { - Keyboard.set_key6(0); + Keyboard.set_key6(0);89 } */ @@ -254,6 +264,10 @@ void loop() KPD.getKeys(); // Scan for all pressed keys. 6 Max, + 4 modifiers. Should be plenty, but can be extended to 10+ + + + + // Set keyboard keys to default values. Keyboard.set_key1(0); Keyboard.set_key2(0); @@ -262,9 +276,37 @@ void loop() Keyboard.set_key5(0); //Keyboard.set_key6(0); + + + /* based on suggestion from Craig Brooks + uses CAPS LOCK to turn number keys into F-Key equivalent. + */ + + + + // Update keyboard keys to active values. - if( KPD.key[0].kchar && ( KPD.key[0].kstate==PRESSED || KPD.key[0].kstate==HOLD )) - Keyboard.set_key1( KPD.key[0].kchar ); + if( KPD.key[0].kchar && ( KPD.key[0].kstate==PRESSED || KPD.key[0].kstate==HOLD )) { + + Serial.println(FKEYS); + + + if (FKEYS) { + if((KPD.key[0].kchar >= 0x1E) && (KPD.key[0].kchar <= 0x27)){ + KPD.key[0].kchar += 0x1C; + + Serial.println( KPD.key[0].kchar, HEX ); + + } + + + + } + + Keyboard.set_key1( KPD.key[0].kchar ); + + + } if( KPD.key[1].kchar && ( KPD.key[1].kstate==PRESSED || KPD.key[1].kstate==HOLD )) Keyboard.set_key2( KPD.key[1].kchar );