Socket
Socket
Sign inDemoInstall

desktop-controller

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

desktop-controller - npm Package Compare versions

Comparing version 0.0.1-3 to 0.0.1-4

66

controller.js

@@ -1,28 +0,64 @@

const { AUTO_RELEASE, POWER_MODES } = require('./constant.js');
const args = process.argv.slice(2);
const isMock = args.indexOf('-m') !== -1;
// const args = process.argv.slice(2);
// const isMock = args.indexOf('-m') !== -1;
let pressPower;
let releasePower;
if (isMock) {
pressPower = () => {
console.log('pressing power!');
};
releasePower = () => {
console.log('releasing power!');
};
} else {
// Optional dependency, won't be available on any machine other than rpi
// eslint-disable-next-line
const gpio = require('node-gpio');
const { GPIO } = gpio;
const led = new GPIO('17');
led.open();
led.setMode(gpio.OUT);
process.on('SIGINT', () => {
led.close();
process.exit();
});
pressPower = () => {
console.log('pressing power!');
led.write(gpio.HIGH);
};
releasePower = () => {
console.log('releasing power!');
led.write(gpio.LOW);
};
}
module.exports = {
_powerMode: POWER_MODES.NOT_PRESSED,
_releasePower() {
if (this._powerMode === POWER_MODES.NOT_PRESSED) {
throw new Error(`Power is already released, can't call \`releasePower\` again, might been called after program auto released the button (after ${AUTO_RELEASE}ms).`);
}
this._powerMode = POWER_MODES.NOT_PRESSED;
console.log('releasing power!');
AUTO_RELEASE: 5000,
POWER_MODES: {
PRESSED: 0,
NOT_PRESSED: 1
},
pressPower() {
if (this._powerMode === POWER_MODES.PRESSED) {
if (this._powerMode === this.POWER_MODES.PRESSED) {
throw new Error('Power is already pressed, can\'t call `pressPower` again.');
}
this._powerMode = POWER_MODES.PRESSED;
console.log('pressing power!');
this._powerMode = this.POWER_MODES.PRESSED;
pressPower();
setTimeout(() => {
if (this._powerMode === POWER_MODES.PRESSED) {
if (this._powerMode === this.POWER_MODES.PRESSED) {
this._releasePower();
}
}, AUTO_RELEASE);
}, this.AUTO_RELEASE);
return this._releasePower.bind(this);
},
_releasePower() {
if (this._powerMode === this.POWER_MODES.NOT_PRESSED) {
throw new Error(`Power is already released, can't call \`releasePower\` again, might been called after program auto released the button (after ${this.AUTO_RELEASE}ms).`);
}
this._powerMode = this.POWER_MODES.NOT_PRESSED;
releasePower();
}
};
{
"name": "desktop-controller",
"version": "0.0.1-3",
"version": "0.0.1-4",
"description": "Desktop controller",

@@ -35,2 +35,5 @@ "main": "index.js",

},
"optionalDependencies": {
"node-gpio": "^0.1.1"
},
"devDependencies": {

@@ -37,0 +40,0 @@ "babel-core": "^6.17.0",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc