From 4e973f5028542ca5ed6488ecdfd7fb38c3627479 Mon Sep 17 00:00:00 2001 From: William Toohey Date: Thu, 31 Dec 2015 01:18:23 +1000 Subject: [PATCH] Add configuration app - temporary icon --- Software/Tataconfig/calculator-128.png | Bin 0 -> 14738 bytes Software/Tataconfig/calculator-16.png | Bin 0 -> 886 bytes Software/Tataconfig/main.js | 8 + Software/Tataconfig/manifest.json | 25 ++ Software/Tataconfig/style.css | 57 +++ Software/Tataconfig/tatacon.png | Bin 0 -> 54819 bytes Software/Tataconfig/tataconfig.js | 459 +++++++++++++++++++++++++ Software/Tataconfig/window.html | 11 + 8 files changed, 560 insertions(+) create mode 100644 Software/Tataconfig/calculator-128.png create mode 100644 Software/Tataconfig/calculator-16.png create mode 100644 Software/Tataconfig/main.js create mode 100644 Software/Tataconfig/manifest.json create mode 100644 Software/Tataconfig/style.css create mode 100644 Software/Tataconfig/tatacon.png create mode 100644 Software/Tataconfig/tataconfig.js create mode 100644 Software/Tataconfig/window.html diff --git a/Software/Tataconfig/calculator-128.png b/Software/Tataconfig/calculator-128.png new file mode 100644 index 0000000000000000000000000000000000000000..5ecfd1ce52365c9d4e148fb61453b858ba880e9a GIT binary patch literal 14738 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 literal 0 HcmV?d00001 diff --git a/Software/Tataconfig/calculator-16.png b/Software/Tataconfig/calculator-16.png new file mode 100644 index 0000000000000000000000000000000000000000..aed52335997dc1963310a90fb64cee9ee2712846 GIT binary patch literal 886 zcmV-+1Bv{JP)VHscxLYE&47TAVji;|jZEt19` zHqjnx(pVEu-aL6W{vqBy)OeyvW1@|Rs!=K=(p3r-2rW=p*zK~r^J8~rc4pRhXV1RL z%wdw}^L?J@`;I7;$~aEFx2sG4L{*iGLQw=j7z8w%O#p-tD5{D8!Z2(GLHLhpn%^gr zon`I2J9kdq{`B_OF-`l@G%B(D!M+qIq(?Gz={f+mWs=|DYl%5CJVJL*s*y;W1Q9;*AupF zlYhR41ks-!re<4M#tH{}yC{l+S*;R3mqk@I?473^9X!XfEnL?XnkT3ELCE0f7(0)1 zEdTld&vCIVn{;M8a`1Th4{}Qn5d!RbovFFYk;au;t$eJSkhNkv!sXnUQF+}{$Qa#AWWFm(pc585Tl%OJPrHb$o}QY{tPSl<8yy+auW z$ET!&fa1X(g+d-dlSFSnBj+yQN{wL{uJ+f;pS!8keXD%~gXvcmKEOCBMp?W2UP94g zK#cQmy+fsVEVmfa(?7_mL7_Ma%9=m-&Q zgZB5ZW?4I%Pu9P=fB(lNLHj7ZU3yB_^;87-{}TZ$%dC`5**Jv%0ifrt4VC{|)&Kwi M07*qoM6N<$f65Im>mmtC6{j9Y& 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 Isuscj0h3ie^8f$< literal 0 HcmV?d00001 diff --git a/Software/Tataconfig/tataconfig.js b/Software/Tataconfig/tataconfig.js new file mode 100644 index 0000000..6f1e4a7 --- /dev/null +++ b/Software/Tataconfig/tataconfig.js @@ -0,0 +1,459 @@ +(function() { + var devices = []; + var waitingMessage = "Waiting for a device, plug one in!"; + var debounceOptions = [["Off", 0], ["Low", 15], ["Medium", 30], ["High", 50]]; + var configBytes = { + donL : 0, + katL : 1, + donR : 2, + katR : 3, + leds : 4, + debounce : 5, + version : 6, + reset : 7 + }; + + var newDevice = function(device) { + if(device.vendorId == 0x16D0) { // Config mode + console.log("Added new device with ID " + device.deviceId); + chrome.hid.connect(device.deviceId, function(connection) { + var dev = {devId: device.deviceId, connId : connection.connectionId}; + devices.push(dev); + chrome.hid.receive(connection.connectionId, function(id, data) { + var view = new Uint8ClampedArray(data); + dev.config = view; + console.log("Got config: " + view); + dev.newConfig = view.slice(0); + createConfigUI(dev); + }) + }); + } else if(device.vendorId == 0x03EB) { // Programming mode + console.log("Device seen in programming mode."); + } + } + + var createConfigUI = function(device) { + document.getElementById("waiting").textContent = ""; + + var ui = document.createElement("div"); + device.ui = ui; + document.getElementById("content").appendChild(ui); + + var title = document.createElement("div"); + title.className = "title"; + title.textContent = "Tatacon to USB v" + device.config[configBytes.version]; + ui.appendChild(title); + + var tatacon = document.createElement("div"); + tatacon.className = "tatacon"; + ui.appendChild(tatacon); + ["donL","katL","donR","katR"].forEach(function(swtch) { + var select = document.createElement("select"); + select.className = swtch; + device[swtch] = select; + tatacon.appendChild(select); + + scancodes.forEach(function(code) { + var option = document.createElement("option"); + option.value = code.value; + option.textContent = code.name; + select.appendChild(option); + }); + select.onchange = function() { + device.newConfig[configBytes[swtch]] = select.value; + updateUI(device); + } + }); + + var config = document.createElement("div"); + // LEDs + var ledsDiv = document.createElement("div"); + ledsDiv.className = "configOption"; + var ledsLabel = document.createElement("label"); + ledsLabel.textContent = "Enable LEDs"; + var leds = document.createElement("input"); + device.leds = leds; + leds.type = "checkbox"; + leds.onclick = function() { + device.newConfig[configBytes.leds] = leds.checked; + updateUI(device); + } + + ledsLabel.appendChild(leds); + ledsDiv.appendChild(ledsLabel); + config.appendChild(ledsDiv); + // debounce + var debounceDiv = document.createElement("div"); + debounceDiv.className = "configOption"; + var debounceLabel = document.createElement("label"); + debounceLabel.textContent = "Switch debouncing: "; + var debounce = document.createElement("select"); + device.debounce = debounce; + debounceOptions.forEach(function(option) { + var select = document.createElement("option"); + select.value = option[1]; + select.textContent = option[0] + " (" + option[1] + "ms)"; + debounce.appendChild(select); + }); + debounce.onchange = function() { + device.newConfig[configBytes.debounce] = debounce.value; + updateUI(device); + } + + debounceLabel.appendChild(debounce); + debounceDiv.appendChild(debounceLabel); + config.appendChild(debounceDiv); + + var buttons = document.createElement("div"); + var apply = document.createElement("button"); + device.apply = apply; + apply.type = "button"; + apply.textContent = "Apply"; + // Becomes enabled once config has changed + apply.disabled = true; + apply.onclick = function() { + device.config = device.newConfig.slice(0); + chrome.hid.send(device.connId, 0, device.config.buffer, function(){ + updateUI(device); + console.log("Wrote config: " + device.config); + }); + } + + var resetConfig = document.createElement("button"); + device.resetConfig = resetConfig; + resetConfig.type = "button"; + resetConfig.textContent = "Reset"; + // Becomes enabled once config has changed + resetConfig.disabled = true; + resetConfig.onclick = function() { + device.newConfig = device.config.slice(0); + updateUI(device); + } + + var resetDefaults = document.createElement("button"); + device.resetDefaults = resetDefaults; + resetDefaults.type = "button"; + resetDefaults.textContent = "Defaults"; + resetDefaults.onclick = function() { + // SWITCH ORDER: CenterLeft, RimLeft, CenterRight, RimRight + device.newConfig[configBytes.donL] = 0x1B; // X + device.newConfig[configBytes.katL] = 0x1D; // Z + device.newConfig[configBytes.donR] = 0x06; // C + device.newConfig[configBytes.katR] = 0x19; // V + device.newConfig[configBytes.leds] = 1; // LEDs on + device.newConfig[configBytes.debounce] = debounceOptions[2][1]; // medium debounce + updateUI(device); + } + + buttons.appendChild(apply); + buttons.appendChild(resetConfig); + buttons.appendChild(resetDefaults); + config.appendChild(buttons); + + ui.appendChild(config); + + updateUI(device); + } + + var updateUI = function(device) { + ["donL", "katL", "donR", "katR"].forEach(function(swtch) { + device[swtch].value = device.newConfig[configBytes[swtch]]; + }); + + device.leds.checked = device.newConfig[configBytes.leds]; + var debounceValid = false; + debounceOptions.forEach(function(debounce) { + if(debounce[1] == device.newConfig[configBytes.debounce]) { + device.debounce.value = debounce[1]; + debounceValid = true; + } + }); + if(!debounceValid) { + // Set to medium if we get something funky + device.debounce.value = debounceOptions[2][1]; + device.newConfig[configBytes.debounce] = debounceOptions[2][1]; + } + + var changed = false; + for(var i = 0; i < device.config.length; i++) { + if(device.config[i] != device.newConfig[i]) { + changed = true; + } + } + if(changed) { + device.apply.disabled = false; + device.resetConfig.disabled = false; + } else { + device.apply.disabled = true; + device.resetConfig.disabled = true; + } + } + + var deviceRemoved = function(id) { + console.log("Removing device with ID " + id); + var removed = null; + for(var i = 0; i < devices.length; i++) { + if(devices[i].devId == id) { + removed = devices[i]; + devices.splice(i--, 1); + break; + } + } + if(devices.length == 0) { + document.getElementById("waiting").textContent = waitingMessage; + } + if(removed) { + document.getElementById("content").removeChild(removed.ui); + } + } + + window.addEventListener('load', function() { + document.getElementById("waiting").textContent = waitingMessage; + chrome.hid.getDevices({}, function(devices) { + if (chrome.runtime.lastError) { + console.error("Unable to enumerate devices: " + + chrome.runtime.lastError.message); + return; + } + devices.forEach(newDevice); + }) + chrome.hid.onDeviceAdded.addListener(newDevice); + chrome.hid.onDeviceRemoved.addListener(deviceRemoved); + }); + +var scancodes = [ + {name: "A", value: 0x04}, + {name: "B", value: 0x05}, + {name: "C", value: 0x06}, + {name: "D", value: 0x07}, + {name: "E", value: 0x08}, + {name: "F", value: 0x09}, + {name: "G", value: 0x0A}, + {name: "H", value: 0x0B}, + {name: "I", value: 0x0C}, + {name: "J", value: 0x0D}, + {name: "K", value: 0x0E}, + {name: "L", value: 0x0F}, + {name: "M", value: 0x10}, + {name: "N", value: 0x11}, + {name: "O", value: 0x12}, + {name: "P", value: 0x13}, + {name: "Q", value: 0x14}, + {name: "R", value: 0x15}, + {name: "S", value: 0x16}, + {name: "T", value: 0x17}, + {name: "U", value: 0x18}, + {name: "V", value: 0x19}, + {name: "W", value: 0x1A}, + {name: "X", value: 0x1B}, + {name: "Y", value: 0x1C}, + {name: "Z", value: 0x1D}, + {name: "1", value: 0x1E}, + {name: "2", value: 0x1F}, + {name: "3", value: 0x20}, + {name: "4", value: 0x21}, + {name: "5", value: 0x22}, + {name: "6", value: 0x23}, + {name: "7", value: 0x24}, + {name: "8", value: 0x25}, + {name: "9", value: 0x26}, + {name: "0", value: 0x27}, + {name: "-_", value: 0x2D}, + {name: "=+", value: 0x2E}, + {name: "[{", value: 0x2F}, + {name: "]}", value: 0x30}, + {name: "\\|", value: 0x31}, + {name: ";:", value: 0x33}, + {name: "'\"", value: 0x34}, + {name: "`~", value: 0x35}, + {name: ",<", value: 0x36}, + {name: ".>", value: 0x37}, + {name: "/?", value: 0x38}, + {name: "F1", value: 0x3A}, + {name: "F2", value: 0x3B}, + {name: "F3", value: 0x3C}, + {name: "F4", value: 0x3D}, + {name: "F5", value: 0x3E}, + {name: "F6", value: 0x3F}, + {name: "F7", value: 0x40}, + {name: "F8", value: 0x41}, + {name: "F9", value: 0x42}, + {name: "F10", value: 0x43}, + {name: "F11", value: 0x44}, + {name: "F12", value: 0x45}, + {name: "ESC", value: 0x29}, + {name: "BACKSPC", value: 0x2A}, + {name: "TAB", value: 0x2B}, + {name: "SPACE", value: 0x2C}, + {name: "ENTER", value: 0x28}, + {name: "CAPSLOCK", value: 0x39}, + {name: "PRTSCRN", value: 0x46}, + {name: "SCRL LCK", value: 0x47}, + {name: "PAUSE", value: 0x48}, + {name: "INSERT", value: 0x49}, + {name: "HOME", value: 0x4A}, + {name: "PG UP", value: 0x4B}, + {name: "DEL", value: 0x4C}, + {name: "END", value: 0x4D}, + {name: "PG DN", value: 0x4E}, + {name: "RIGHT", value: 0x4F}, + {name: "LEFT", value: 0x50}, + {name: "DOWN", value: 0x51}, + {name: "UP", value: 0x52}, + {name: "NUM LOCK", value: 0x53}, + {name: "NUM /", value: 0x54}, + {name: "NUM *", value: 0x55}, + {name: "NUM -", value: 0x56}, + {name: "NUM +", value: 0x57}, + {name: "NUM ENTER", value: 0x58}, + {name: "NUM 1", value: 0x59}, + {name: "NUM 2", value: 0x5A}, + {name: "NUM 3", value: 0x5B}, + {name: "NUM 4", value: 0x5C}, + {name: "NUM 5", value: 0x5D}, + {name: "NUM 6", value: 0x5E}, + {name: "NUM 7", value: 0x5F}, + {name: "NUM 8", value: 0x60}, + {name: "NUM 9", value: 0x61}, + {name: "NUM 0", value: 0x62}, + {name: "NUM .", value: 0x63} +] +}()); + +//{name: "NON US BACKSLASH AND PIPE", value: 0x64}, +//{name: "APPLICATION", value: 0x65}, +//{name: "POWER", value: 0x66}, +//{name: "KEYPAD EQUAL SIGN", value: 0x67}, +//{name: "F13", value: 0x68}, +//{name: "F14", value: 0x69}, +//{name: "F15", value: 0x6A}, +//{name: "F16", value: 0x6B}, +//{name: "F17", value: 0x6C}, +//{name: "F18", value: 0x6D}, +//{name: "F19", value: 0x6E}, +//{name: "F20", value: 0x6F}, +//{name: "F21", value: 0x70}, +//{name: "F22", value: 0x71}, +//{name: "F23", value: 0x72}, +//{name: "F24", value: 0x73}, +//{name: "EXECUTE", value: 0x74}, +//{name: "HELP", value: 0x75}, +//{name: "MENU", value: 0x76}, +//{name: "SELECT", value: 0x77}, +//{name: "STOP", value: 0x78}, +//{name: "AGAIN", value: 0x79}, +//{name: "UNDO", value: 0x7A}, +//{name: "CUT", value: 0x7B}, +//{name: "COPY", value: 0x7C}, +//{name: "PASTE", value: 0x7D}, +//{name: "FIND", value: 0x7E}, +//{name: "MUTE", value: 0x7F}, +//{name: "VOLUME UP", value: 0x80}, +//{name: "VOLUME DOWN", value: 0x81}, +//{name: "LOCKING CAPS LOCK", value: 0x82}, +//{name: "LOCKING NUM LOCK", value: 0x83}, +//{name: "LOCKING SCROLL LOCK", value: 0x84}, +//{name: "KEYPAD COMMA", value: 0x85}, +//{name: "KEYPAD EQUAL SIGN AS400", value: 0x86}, +//{name: "INTERNATIONAL1", value: 0x87}, +//{name: "INTERNATIONAL2", value: 0x88}, +//{name: "INTERNATIONAL3", value: 0x89}, +//{name: "INTERNATIONAL4", value: 0x8A}, +//{name: "INTERNATIONAL5", value: 0x8B}, +//{name: "INTERNATIONAL6", value: 0x8C}, +//{name: "INTERNATIONAL7", value: 0x8D}, +//{name: "INTERNATIONAL8", value: 0x8E}, +//{name: "INTERNATIONAL9", value: 0x8F}, +//{name: "LANG1", value: 0x90}, +//{name: "LANG2", value: 0x91}, +//{name: "LANG3", value: 0x92}, +//{name: "LANG4", value: 0x93}, +//{name: "LANG5", value: 0x94}, +//{name: "LANG6", value: 0x95}, +//{name: "LANG7", value: 0x96}, +//{name: "LANG8", value: 0x97}, +//{name: "LANG9", value: 0x98}, +//{name: "ALTERNATE ERASE", value: 0x99}, +//{name: "SYSREQ", value: 0x9A}, +//{name: "CANCEL", value: 0x9B}, +//{name: "CLEAR", value: 0x9C}, +//{name: "PRIOR", value: 0x9D}, +//{name: "RETURN", value: 0x9E}, +//{name: "SEPARATOR", value: 0x9F}, +//{name: "OUT", value: 0xA0}, +//{name: "OPER", value: 0xA1}, +//{name: "CLEAR AND AGAIN", value: 0xA2}, +//{name: "CRSEL AND PROPS", value: 0xA3}, +//{name: "EXSEL", value: 0xA4}, +//{name: "KEYPAD 00", value: 0xB0}, +//{name: "KEYPAD 000", value: 0xB1}, +//{name: "THOUSANDS SEPARATOR", value: 0xB2}, +//{name: "DECIMAL SEPARATOR", value: 0xB3}, +//{name: "CURRENCY UNIT", value: 0xB4}, +//{name: "CURRENCY SUB UNIT", value: 0xB5}, +//{name: "KEYPAD OPENING PARENTHESIS", value: 0xB6}, +//{name: "KEYPAD CLOSING PARENTHESIS", value: 0xB7}, +//{name: "KEYPAD OPENING BRACE", value: 0xB8}, +//{name: "KEYPAD CLOSING BRACE", value: 0xB9}, +//{name: "KEYPAD TAB", value: 0xBA}, +//{name: "KEYPAD BACKSPACE", value: 0xBB}, +//{name: "KEYPAD A", value: 0xBC}, +//{name: "KEYPAD B", value: 0xBD}, +//{name: "KEYPAD C", value: 0xBE}, +//{name: "KEYPAD D", value: 0xBF}, +//{name: "KEYPAD E", value: 0xC0}, +//{name: "KEYPAD F", value: 0xC1}, +//{name: "KEYPAD XOR", value: 0xC2}, +//{name: "KEYPAD CARET", value: 0xC3}, +//{name: "KEYPAD PERCENTAGE", value: 0xC4}, +//{name: "KEYPAD LESS THAN SIGN", value: 0xC5}, +//{name: "KEYPAD GREATER THAN SIGN", value: 0xC6}, +//{name: "KEYPAD AMP", value: 0xC7}, +//{name: "KEYPAD AMP AMP", value: 0xC8}, +//{name: "KEYPAD PIPE", value: 0xC9}, +//{name: "KEYPAD PIPE PIPE", value: 0xCA}, +//{name: "KEYPAD COLON", value: 0xCB}, +//{name: "KEYPAD HASHMARK", value: 0xCC}, +//{name: "KEYPAD SPACE", value: 0xCD}, +//{name: "KEYPAD AT", value: 0xCE}, +//{name: "KEYPAD EXCLAMATION SIGN", value: 0xCF}, +//{name: "KEYPAD MEMORY STORE", value: 0xD0}, +//{name: "KEYPAD MEMORY RECALL", value: 0xD1}, +//{name: "KEYPAD MEMORY CLEAR", value: 0xD2}, +//{name: "KEYPAD MEMORY ADD", value: 0xD3}, +//{name: "KEYPAD MEMORY SUBTRACT", value: 0xD4}, +//{name: "KEYPAD MEMORY MULTIPLY", value: 0xD5}, +//{name: "KEYPAD MEMORY DIVIDE", value: 0xD6}, +//{name: "KEYPAD PLUS AND MINUS", value: 0xD7}, +//{name: "KEYPAD CLEAR", value: 0xD8}, +//{name: "KEYPAD CLEAR ENTRY", value: 0xD9}, +//{name: "KEYPAD BINARY", value: 0xDA}, +//{name: "KEYPAD OCTAL", value: 0xDB}, +//{name: "KEYPAD DECIMAL", value: 0xDC}, +//{name: "KEYPAD HEXADECIMAL", value: 0xDD}, +//{name: "LEFT CONTROL", value: 0xE0}, +//{name: "LEFT SHIFT", value: 0xE1}, +//{name: "LEFT ALT", value: 0xE2}, +//{name: "LEFT GUI", value: 0xE3}, +//{name: "RIGHT CONTROL", value: 0xE4}, +//{name: "RIGHT SHIFT", value: 0xE5}, +//{name: "RIGHT ALT", value: 0xE6}, +//{name: "RIGHT GUI", value: 0xE7}, +//{name: "MEDIA PLAY", value: 0xE8}, +//{name: "MEDIA STOP", value: 0xE9}, +//{name: "MEDIA PREVIOUS TRACK", value: 0xEA}, +//{name: "MEDIA NEXT TRACK", value: 0xEB}, +//{name: "MEDIA EJECT", value: 0xEC}, +//{name: "MEDIA VOLUME UP", value: 0xED}, +//{name: "MEDIA VOLUME DOWN", value: 0xEE}, +//{name: "MEDIA MUTE", value: 0xEF}, +//{name: "MEDIA WWW", value: 0xF0}, +//{name: "MEDIA BACKWARD", value: 0xF1}, +//{name: "MEDIA FORWARD", value: 0xF2}, +//{name: "MEDIA CANCEL", value: 0xF3}, +//{name: "MEDIA SEARCH", value: 0xF4}, +//{name: "MEDIA SLEEP", value: 0xF8}, +//{name: "MEDIA LOCK", value: 0xF9}, +//{name: "MEDIA RELOAD", value: 0xFA}, +//{name: "MEDIA CALCULATOR", value: 0xFB} +//{name: "NON_US_HASHMARK_AND_TILDE", value: 0x32}, \ No newline at end of file diff --git a/Software/Tataconfig/window.html b/Software/Tataconfig/window.html new file mode 100644 index 0000000..9d36e7e --- /dev/null +++ b/Software/Tataconfig/window.html @@ -0,0 +1,11 @@ + + + + + + + +
+
+ + \ No newline at end of file