Extract getUsbEndpoints() to util.js. Use ES6 features in led_pwm.js
This commit is contained in:
@@ -1,39 +1,19 @@
|
||||
#!/usr/bin/env node
|
||||
'use strict';
|
||||
let util = require('./util');
|
||||
|
||||
var usb = require('usb');
|
||||
var util = require('./util');
|
||||
let LED_PWM_COMMAND_ID = 10;
|
||||
let [endpointIn, endpointOut] = util.getUsbEndpoints();
|
||||
let brightnessPercent = 0;
|
||||
|
||||
var vid = 0x16d3;
|
||||
var pid = 0x05ea;
|
||||
var LED_PWM_COMMAND_ID = 10;
|
||||
|
||||
var device = usb.findByIds(vid, pid);
|
||||
device.open();
|
||||
|
||||
var usbInterface = device.interface(0);
|
||||
|
||||
// https://github.com/tessel/node-usb/issues/147
|
||||
// The function 'isKernelDriverActive' is not available on Windows and not even needed.
|
||||
if (process.platform !== 'win32' && usbInterface.isKernelDriverActive()) {
|
||||
usbInterface.detachKernelDriver();
|
||||
}
|
||||
usbInterface.claim();
|
||||
|
||||
var endpointIn = usbInterface.endpoints[0];
|
||||
var endpointOut = usbInterface.endpoints[1];
|
||||
|
||||
var brightnessPercent = 0;
|
||||
|
||||
setInterval(function() {
|
||||
setInterval(() => {
|
||||
brightnessPercent = brightnessPercent ? 0 : 100
|
||||
console.log('Sending ', brightnessPercent);
|
||||
endpointOut.transfer(new Buffer([LED_PWM_COMMAND_ID, brightnessPercent]), function(err) {
|
||||
endpointOut.transfer(new Buffer([LED_PWM_COMMAND_ID, brightnessPercent]), err => {
|
||||
if (err) {
|
||||
console.error("USB error: %s", err);
|
||||
process.exit(1);
|
||||
}
|
||||
endpointIn.transfer(64, function(err2, receivedBuffer) {
|
||||
endpointIn.transfer(64, (err2, receivedBuffer) => {
|
||||
if (err2) {
|
||||
console.error("USB error: %s", err2);
|
||||
process.exit(2);
|
||||
@@ -41,4 +21,4 @@ setInterval(function() {
|
||||
console.log('Received', util.bufferToString(receivedBuffer));
|
||||
})
|
||||
});
|
||||
}, 500)
|
||||
}, 500);
|
||||
|
||||
23
usb/util.js
23
usb/util.js
@@ -1,4 +1,27 @@
|
||||
var usb = require('usb');
|
||||
|
||||
exports = module.exports = {
|
||||
getUsbEndpoints: function() {
|
||||
var vid = 0x16d3;
|
||||
var pid = 0x05ea;
|
||||
|
||||
var device = usb.findByIds(vid, pid);
|
||||
device.open();
|
||||
|
||||
var usbInterface = device.interface(0);
|
||||
|
||||
// https://github.com/tessel/node-usb/issues/147
|
||||
// The function 'isKernelDriverActive' is not available on Windows and not even needed.
|
||||
if (process.platform !== 'win32' && usbInterface.isKernelDriverActive()) {
|
||||
usbInterface.detachKernelDriver();
|
||||
}
|
||||
usbInterface.claim();
|
||||
|
||||
var endpointIn = usbInterface.endpoints[0];
|
||||
var endpointOut = usbInterface.endpoints[1];
|
||||
return [endpointIn, endpointOut];
|
||||
},
|
||||
|
||||
bufferToString: function(buffer) {
|
||||
var str = '';
|
||||
for (var i = 0; i < buffer.length; i++) {
|
||||
|
||||
Reference in New Issue
Block a user