From 0d913ac7706be7dc40d14ee6df177e2a09fac92e Mon Sep 17 00:00:00 2001 From: Marcel Ernst Date: Sat, 6 Feb 2016 15:19:16 +0100 Subject: [PATCH 1/4] add definitions for onoff --- onoff/onoff.d.ts | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 onoff/onoff.d.ts diff --git a/onoff/onoff.d.ts b/onoff/onoff.d.ts new file mode 100644 index 000000000..7e92ebc21 --- /dev/null +++ b/onoff/onoff.d.ts @@ -0,0 +1,55 @@ +// Type definitions for onoff +// Project: https://github.com/fivdi/onoff +// Definitions by: Marcel Ernst +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace __ONOFF { + + var version:string; + + interface GpioOptions { + debounceTimeout:number; + } + + class Gpio { + constructor(gpio:number, direction:string); + constructor(gpio:number, direction:string, edge:string); + constructor(gpio:number, direction:string, edge:string, options:GpioOptions); + constructor(gpio:number, direction:string, options:GpioOptions); + + gpio:number + gpioPath:string; + opts:GpioOptions; + readBuffer:Buffer; + listeners:Array<(error:Error, value:number) => void>; + valueFd:number; + + read(cb:(err:Error, value:number) => void):void; + readSync():boolean; // maybe number? + + write(value:number, cb:(err:Error, value:number) => void):void; + writeSync(value:number):void; // maybe number? + + watch(cb:(error:Error, value:number) => void):void; + unwatch():void; + unwatch(cb:(error:Error, value:number) => void):void; + unwatchAll():void; + + direction():string; + setDirection(value:string); + + edge():string; + setEdge(value:string):void; + + options():GpioOptions; + + unexport():void; + } + +} + +declare module "onoff" { + export = __ONOFF; +} \ No newline at end of file From 7ff381086da38ab1105daa8cc2b59e5049e9350b Mon Sep 17 00:00:00 2001 From: Marcel Ernst Date: Sat, 6 Feb 2016 15:31:26 +0100 Subject: [PATCH 2/4] onoff: fix return-type for readSync method --- onoff/onoff.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/onoff/onoff.d.ts b/onoff/onoff.d.ts index 7e92ebc21..f58de06af 100644 --- a/onoff/onoff.d.ts +++ b/onoff/onoff.d.ts @@ -27,10 +27,10 @@ declare namespace __ONOFF { valueFd:number; read(cb:(err:Error, value:number) => void):void; - readSync():boolean; // maybe number? + readSync():number; write(value:number, cb:(err:Error, value:number) => void):void; - writeSync(value:number):void; // maybe number? + writeSync(value:number):void; watch(cb:(error:Error, value:number) => void):void; unwatch():void; From 9d6c46761f563b6295720be7ca9c4f802fb2ab03 Mon Sep 17 00:00:00 2001 From: Marcel Ernst Date: Sat, 6 Feb 2016 15:31:40 +0100 Subject: [PATCH 3/4] add tests for onoff --- onoff/onoff-tests.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 onoff/onoff-tests.ts diff --git a/onoff/onoff-tests.ts b/onoff/onoff-tests.ts new file mode 100644 index 000000000..853d35c00 --- /dev/null +++ b/onoff/onoff-tests.ts @@ -0,0 +1,16 @@ +import * as onoff from 'onoff'; + +var led:onoff.Gpio = new onoff.Gpio(17, 'out'); + +var toggleLed = function():void { + var lastState:number = led.readSync(); + led.writeSync(lastState ^ 1); +}; + +var intervalId:number = setInterval(toggleLed, 100); + +setTimeout(function() { + clearInterval(intervalId); + led.writeSync(0); + led.unexport(); +}, 2000); From 2b35157c3dbc4948185d8328ccb9a39ae131c38c Mon Sep 17 00:00:00 2001 From: Marcel Ernst Date: Sat, 6 Feb 2016 15:45:06 +0100 Subject: [PATCH 4/4] fix onoff type errors --- onoff/onoff-tests.ts | 4 +++- onoff/onoff.d.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/onoff/onoff-tests.ts b/onoff/onoff-tests.ts index 853d35c00..d838360bd 100644 --- a/onoff/onoff-tests.ts +++ b/onoff/onoff-tests.ts @@ -1,3 +1,5 @@ +/// +/// import * as onoff from 'onoff'; var led:onoff.Gpio = new onoff.Gpio(17, 'out'); @@ -7,7 +9,7 @@ var toggleLed = function():void { led.writeSync(lastState ^ 1); }; -var intervalId:number = setInterval(toggleLed, 100); +var intervalId:NodeJS.Timer = setInterval(toggleLed, 100); setTimeout(function() { clearInterval(intervalId); diff --git a/onoff/onoff.d.ts b/onoff/onoff.d.ts index f58de06af..9a4ade593 100644 --- a/onoff/onoff.d.ts +++ b/onoff/onoff.d.ts @@ -38,7 +38,7 @@ declare namespace __ONOFF { unwatchAll():void; direction():string; - setDirection(value:string); + setDirection(value:string):void; edge():string; setEdge(value:string):void;