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
|
#!/usr/bin/env node
|
||||||
'use strict';
|
let util = require('./util');
|
||||||
|
|
||||||
var usb = require('usb');
|
let LED_PWM_COMMAND_ID = 10;
|
||||||
var util = require('./util');
|
let [endpointIn, endpointOut] = util.getUsbEndpoints();
|
||||||
|
let brightnessPercent = 0;
|
||||||
|
|
||||||
var vid = 0x16d3;
|
setInterval(() => {
|
||||||
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() {
|
|
||||||
brightnessPercent = brightnessPercent ? 0 : 100
|
brightnessPercent = brightnessPercent ? 0 : 100
|
||||||
console.log('Sending ', brightnessPercent);
|
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) {
|
if (err) {
|
||||||
console.error("USB error: %s", err);
|
console.error("USB error: %s", err);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
endpointIn.transfer(64, function(err2, receivedBuffer) {
|
endpointIn.transfer(64, (err2, receivedBuffer) => {
|
||||||
if (err2) {
|
if (err2) {
|
||||||
console.error("USB error: %s", err2);
|
console.error("USB error: %s", err2);
|
||||||
process.exit(2);
|
process.exit(2);
|
||||||
@@ -41,4 +21,4 @@ setInterval(function() {
|
|||||||
console.log('Received', util.bufferToString(receivedBuffer));
|
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 = {
|
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) {
|
bufferToString: function(buffer) {
|
||||||
var str = '';
|
var str = '';
|
||||||
for (var i = 0; i < buffer.length; i++) {
|
for (var i = 0; i < buffer.length; i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user