├── .DS_Store ├── .eslintrc.json ├── .gitignore ├── README.md ├── access-control ├── .rapignore ├── README.md ├── app.json ├── package.json ├── ruff_modules │ ├── button-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ ├── hc-sr501 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ ├── lcd1602-pcf8574a-hd44780 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── layout.json │ │ ├── package.json │ │ └── ruff_modules │ │ │ ├── hd44780 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ └── pcf8574 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ └── index.js │ ├── relay-1c │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ └── ruff-mbd-v1 │ │ ├── .registry │ │ ├── README.md │ │ ├── board.json │ │ ├── package.json │ │ └── ruff_modules │ │ ├── button-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── led-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── ltc2309 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── mcp23017 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── pca9685 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ └── ruff-v1-sys-usb │ │ ├── .rapignore │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ ├── 10-ruff-usb │ │ ├── index.js │ │ └── message.js ├── src │ └── index.js └── test │ └── test.js ├── fire-extinguisher ├── .rapignore ├── README.md ├── app.json ├── package.json ├── ruff_modules │ ├── flame-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ ├── src │ │ │ └── index.js │ │ └── test │ │ │ └── flame-gpio_test.js │ ├── lcd1602-pcf8574a-hd44780 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── layout.json │ │ ├── package.json │ │ └── ruff_modules │ │ │ ├── hd44780 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ └── pcf8574 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ └── index.js │ ├── relay-1c │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ └── ruff-mbd-v1 │ │ ├── .registry │ │ ├── README.md │ │ ├── board.json │ │ ├── package.json │ │ └── ruff_modules │ │ ├── button-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── led-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── ltc2309 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── mcp23017 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── pca9685 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ └── ruff-v1-sys-usb │ │ ├── .rapignore │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ ├── 10-ruff-usb │ │ ├── index.js │ │ └── message.js ├── src │ └── index.js └── test │ └── test.js ├── light-sensor ├── .rapignore ├── README.md ├── app.json ├── package.json ├── ruff_modules │ ├── gy-30 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ ├── lcd1602-pcf8574a-hd44780 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── layout.json │ │ ├── package.json │ │ └── ruff_modules │ │ │ ├── hd44780 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ └── pcf8574 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ └── index.js │ └── ruff-mbd-v1 │ │ ├── .registry │ │ ├── README.md │ │ ├── board.json │ │ ├── package.json │ │ └── ruff_modules │ │ ├── button-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── led-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── ltc2309 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── mcp23017 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── pca9685 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ └── ruff-v1-sys-usb │ │ ├── .rapignore │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ ├── 10-ruff-usb │ │ ├── index.js │ │ └── message.js ├── src │ └── index.js └── test │ └── test.js ├── ruff-car ├── .rapignore ├── README.md ├── app.json ├── package.json ├── ruff_modules │ ├── cherokey │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ ├── hc-sr501 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ ├── home │ │ ├── .registry │ │ ├── README.md │ │ ├── bld │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── index.js.map │ │ ├── mime.json │ │ ├── package.json │ │ └── ruff_modules │ │ │ └── promise │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── bld │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── index.js.map │ │ │ └── package.json │ └── ruff-mbd-v1 │ │ ├── .registry │ │ ├── README.md │ │ ├── board.json │ │ ├── package.json │ │ └── ruff_modules │ │ ├── button-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── led-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── ltc2309 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── mcp23017 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── pca9685 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ └── ruff-v1-sys-usb │ │ ├── .rapignore │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ ├── 10-ruff-usb │ │ ├── index.js │ │ └── message.js ├── src │ └── index.js └── test │ └── test.js ├── sound-lamp ├── .rapignore ├── README.md ├── app.json ├── package.json ├── ruff_modules │ ├── ky-016 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ ├── ruff-mbd-v1 │ │ ├── .registry │ │ ├── README.md │ │ ├── board.json │ │ ├── package.json │ │ └── ruff_modules │ │ │ ├── button-gpio │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── led-gpio │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── ltc2309 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── mcp23017 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── pca9685 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ └── ruff-v1-sys-usb │ │ │ ├── .rapignore │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ ├── 10-ruff-usb │ │ │ ├── index.js │ │ │ └── message.js │ └── sound-01 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ └── index.js ├── src │ └── index.js └── test │ └── test.js ├── thief-alarm ├── .rapignore ├── README.md ├── app.json ├── package.json ├── ruff_modules │ ├── buzzer-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ ├── ruff_modules │ │ │ └── t │ │ │ │ ├── .registry │ │ │ │ ├── README.md │ │ │ │ ├── bld │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── utils.d.ts │ │ │ │ ├── utils.js │ │ │ │ └── utils.js.map │ │ │ │ ├── package.json │ │ │ │ ├── ruff_modules │ │ │ │ └── promise │ │ │ │ │ ├── .registry │ │ │ │ │ ├── README.md │ │ │ │ │ ├── bld │ │ │ │ │ ├── index.d.ts │ │ │ │ │ ├── index.js │ │ │ │ │ └── index.js.map │ │ │ │ │ └── package.json │ │ │ │ └── t.d.ts │ │ └── src │ │ │ └── index.js │ ├── hc-sr501 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ └── ruff-mbd-v1 │ │ ├── .registry │ │ ├── README.md │ │ ├── board.json │ │ ├── package.json │ │ └── ruff_modules │ │ ├── button-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── led-gpio │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── ltc2309 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── mcp23017 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ ├── pca9685 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ └── ruff-v1-sys-usb │ │ ├── .rapignore │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ ├── 10-ruff-usb │ │ ├── index.js │ │ └── message.js ├── src │ └── index.js └── test │ └── test.js ├── vibration-to-rgb-led ├── .rapignore ├── README.md ├── app.json ├── package.json ├── ruff_modules │ ├── ky-016 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ ├── ruff-mbd-v1 │ │ ├── .registry │ │ ├── README.md │ │ ├── board.json │ │ ├── package.json │ │ └── ruff_modules │ │ │ ├── button-gpio │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── led-gpio │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── ltc2309 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── mcp23017 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── pca9685 │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ └── ruff-v1-sys-usb │ │ │ ├── .rapignore │ │ │ ├── .registry │ │ │ ├── README.md │ │ │ ├── driver.json │ │ │ ├── package.json │ │ │ └── src │ │ │ ├── 10-ruff-usb │ │ │ ├── index.js │ │ │ └── message.js │ └── sw-1801p │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ ├── src │ │ └── index.js │ │ └── test │ │ └── sw-1801p_test.js ├── src │ └── index.js └── test │ └── test.js └── weather-station ├── .rapignore ├── README.md ├── app.json ├── package.json ├── ruff_modules ├── dht11 │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── package.json │ └── src │ │ └── index.js ├── lcd1602-pcf8574a-hd44780 │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── layout.json │ ├── package.json │ └── ruff_modules │ │ ├── hd44780 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ │ └── index.js │ │ └── pcf8574 │ │ ├── .registry │ │ ├── README.md │ │ ├── driver.json │ │ ├── package.json │ │ └── src │ │ └── index.js ├── relay-1c │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── package.json │ └── src │ │ └── index.js └── ruff-mbd-v1 │ ├── .registry │ ├── README.md │ ├── board.json │ ├── package.json │ └── ruff_modules │ ├── button-gpio │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── package.json │ └── src │ │ └── index.js │ ├── led-gpio │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── package.json │ └── src │ │ └── index.js │ ├── ltc2309 │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── package.json │ └── src │ │ └── index.js │ ├── mcp23017 │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── package.json │ └── src │ │ └── index.js │ ├── pca9685 │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── package.json │ └── src │ │ └── index.js │ └── ruff-v1-sys-usb │ ├── .rapignore │ ├── .registry │ ├── README.md │ ├── driver.json │ ├── package.json │ └── src │ ├── 10-ruff-usb │ ├── index.js │ └── message.js ├── src └── index.js └── test └── test.js /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuffApps/Apps/90e13d23b0593aa45f35fdac736b8e19c6616a9d/.DS_Store -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true 4 | }, 5 | "extends": "eslint:recommended", 6 | "rules": { 7 | "indent": [ 8 | "error", 9 | 4 10 | ], 11 | "linebreak-style": [ 12 | "error", 13 | "unix" 14 | ], 15 | "quotes": [ 16 | "error", 17 | "single" 18 | ], 19 | "semi": [ 20 | "error", 21 | "always" 22 | ], 23 | "no-console": 0, 24 | "no-unused-vars": 1 25 | }, 26 | "globals": { 27 | "$": true 28 | } 29 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .eslintc.json 2 | node_modules/ 3 | driver/ 4 | .vscode/ 5 | 6 | .rap/ 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Apps 2 | Stunning applications on Ruff 3 | 4 | 这是我在ruff上写的一些应用 5 | 6 | + access control 7 | 8 | 这是一个使用红外传感器、LCD、大按键以及继电器实现的门禁应用 9 | 10 | + fire extinguisher 11 | 12 | 这是一个火灾监测及防护应用。当火焰传感器检测到火焰信号时,保安室的LCD显示屏提示有火灾,同时控制灭火器的继电器打开,开始灭火 13 | 14 | + light sensor 15 | 16 | 通过LCD显示光照传感器获取的光照强度值 17 | 18 | + sound lamp 19 | 20 | 这是一款声控灯应用 21 | 22 | + thief alarm 23 | 24 | 这是一款防贼系统,如果红外传感器检测到有人,则蜂鸣器响起 25 | 26 | + vibration to rgb led 27 | 28 | 看过小孩子脚上那Bling Bling的鞋吗?你肯定见过的,可爱的小孩子脚每踩一下地,鞋子就亮一下 29 | 30 | 这个项目的灵感就来源于此,每当震动传感器接收到震动信号时,LED灯就会交替颜色的发亮 31 | 32 | + weather station 33 | 34 | 这个案例利用温湿度传感器从环境中换取温度和湿度数据,如果温度和湿度不在人体舒适的范围内, 35 | 则通过相应的继电器控制空调或加湿器的开关,从而达到控制环境温湿度的目的。 36 | 37 | 怎么样,有趣吗?想了解更多 Ruff 开发的细节,请到[这里](https://ruff.io/zh-cn/docs/getting-started.html)。 38 | -------------------------------------------------------------------------------- /access-control/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | -------------------------------------------------------------------------------- /access-control/README.md: -------------------------------------------------------------------------------- 1 | # access control 2 | 3 | ## 介绍 4 | 5 | 我们总是想,当有人拜访我们时,我在沙发就能按动开关打开门让客人进来,那该多好啊。 6 | 7 | 为了造福广大懒癌重度患者,同时提供人们的生活幸福感,我们发明了这套设备。 8 | 9 | +首先,屋子外有一个红外传感器,实时监测有没有人 10 | 11 | +当有人时,屋内的LCD显示屏提示屋外有人 12 | 13 | +主人决定是否让客人进来 14 | 15 | >如果主人愿意让客人进来,则按下手中的红色按钮开关 16 | >>开关控制的继电器打开 17 | >>>继电器控制门打开 18 | >>>>主人松开红色按钮开关 19 | >>>>>继电器关闭 20 | >>>>>>门关闭 21 | 22 | >如果主人不愿意让客人进来,则不按开关 23 | >>继电器保持关闭 24 | >>>门保持关闭 25 | 26 | ## 硬件要求 27 | 28 | 1.[LCD Display Module(Model:LCD1602-02)](https://rap.ruff.io/devices/lcd1602-pcf8574a-hd44780) 29 | 30 | 2.[Relay Module(Model:RELAY-1C)](https://rap.ruff.io/devices/RELAY-1C) 31 | 32 | 3.[Push Button Module(Model:CK002)](https://rap.ruff.io/devices/CK002) 33 | 34 | 4.[Infrared Induction Module(Model:HC-SR501)](https://rap.ruff.io/devices/HC-SR501) 35 | 36 | 5.[Ruff开发板](https://shop154924108.taobao.com/) 37 | 38 | 6.杜邦线等 39 | 40 | ## 软件需求 41 | 42 | 1.[Ruff SDK](https://ruff.io/zh-cn/docs/download.html) 43 | 44 | 2.[Ruff 固件](https://ruff.io/zh-cn/docs/download.html) 45 | 46 | ## 参考 47 | 48 | Ruff应用开发请参见官网的[Getting started](https://ruff.io/zh-cn/docs/getting-started.html) -------------------------------------------------------------------------------- /access-control/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "access-control", 3 | "version": "0.1.0", 4 | "description": "a access control demo for ruff", 5 | "author": "ccccly", 6 | "main": "src/index.js", 7 | "ruff": { 8 | "boards": { 9 | "ruff-mbd-v1": "^4.1.2", 10 | "*": "*" 11 | }, 12 | "dependencies": { 13 | "button-gpio": "^2.0.4", 14 | "hc-sr501": "^2.0.3", 15 | "relay-1c": "^2.0.3", 16 | "lcd1602-pcf8574a-hd44780": "^0.2.5" 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /access-control/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.4 -------------------------------------------------------------------------------- /access-control/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /access-control/ruff_modules/button-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "button-gpio", 3 | "version": "2.0.4", 4 | "description": "The driver for buttons with GPIO interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/button-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/button-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/button-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /access-control/ruff_modules/button-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | 10 | var ButtonState = { 11 | pushed: 0, 12 | released: 1 13 | }; 14 | 15 | var prototype = {}; 16 | 17 | Object.defineProperties(prototype, { 18 | pushed: { 19 | get: function () { 20 | return this._state === ButtonState.pushed; 21 | } 22 | }, 23 | released: { 24 | get: function () { 25 | return this._state === ButtonState.released; 26 | } 27 | } 28 | }); 29 | 30 | module.exports = driver({ 31 | attach: function (inputs) { 32 | var that = this; 33 | 34 | this._gpio = inputs['gpio']; 35 | this._state = ButtonState.released; 36 | 37 | this._gpio.on('interrupt', function (state) { 38 | if (that._state === state) { 39 | return; 40 | } 41 | 42 | that._state = state; 43 | 44 | if (state === ButtonState.pushed) { 45 | that.emit('push'); 46 | } else { 47 | that.emit('release'); 48 | } 49 | }); 50 | }, 51 | exports: prototype 52 | }); 53 | -------------------------------------------------------------------------------- /access-control/ruff_modules/hc-sr501/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.3 -------------------------------------------------------------------------------- /access-control/ruff_modules/hc-sr501/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "HC-SR501" 4 | ], 5 | "power": { 6 | "name": "vcc", 7 | "voltage": "5v" 8 | }, 9 | "inputs": { 10 | "gpio": { 11 | "type": "gpio", 12 | "args": { 13 | "direction": "in", 14 | "edge": "both" 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /access-control/ruff_modules/hc-sr501/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hc-sr501", 3 | "version": "2.0.3", 4 | "description": "Driver for HC-SR501 motion sensor.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/hc-sr501.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/hc-sr501/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/hc-sr501", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.7" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /access-control/ruff_modules/hc-sr501/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Level = require('gpio').Level; 4 | var driver = require('ruff-driver'); 5 | 6 | var SensorState = { 7 | absence: Level.low, 8 | presence: Level.high 9 | }; 10 | 11 | module.exports = driver({ 12 | attach: function (inputs) { 13 | var that = this; 14 | 15 | this._gpio = inputs['gpio']; 16 | 17 | this._gpio.on('interrupt', function (state) { 18 | if (state === this._state) { 19 | return; 20 | } 21 | 22 | this._state = state; 23 | 24 | if (state === SensorState.presence) { 25 | that.emit('presence'); 26 | } else { 27 | that.emit('absence'); 28 | } 29 | }); 30 | } 31 | }); 32 | -------------------------------------------------------------------------------- /access-control/ruff_modules/lcd1602-pcf8574a-hd44780/.registry: -------------------------------------------------------------------------------- 1 | rap:0.2.5 -------------------------------------------------------------------------------- /access-control/ruff_modules/lcd1602-pcf8574a-hd44780/layout.json: -------------------------------------------------------------------------------- 1 | { 2 | "mapping": { 3 | "hd44780/rs": "pcf8574/gpio-0", 4 | "hd44780/rw": "pcf8574/gpio-1", 5 | "hd44780/e": "pcf8574/gpio-2", 6 | "hd44780/p3": "pcf8574/gpio-3", 7 | "hd44780/d4": "pcf8574/gpio-4", 8 | "hd44780/d5": "pcf8574/gpio-5", 9 | "hd44780/d6": "pcf8574/gpio-6", 10 | "hd44780/d7": "pcf8574/gpio-7" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /access-control/ruff_modules/lcd1602-pcf8574a-hd44780/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lcd1602-pcf8574a-hd44780", 3 | "version": "0.2.5", 4 | "engines": { 5 | "ruff": ">=1.2.0 <1.6.0" 6 | }, 7 | "ruff": { 8 | "dependencies": { 9 | "hd44780": "^0.2.1", 10 | "pcf8574": "^2.0.1" 11 | }, 12 | "devDependencies": {} 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /access-control/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/hd44780/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.2.1 -------------------------------------------------------------------------------- /access-control/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/hd44780/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hd44780", 3 | "version": "0.2.3", 4 | "description": "HD44780 LCD Controller Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/hd44780.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/hd44780/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/hd44780", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /access-control/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.1 -------------------------------------------------------------------------------- /access-control/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "inputs": { 4 | "i2c": { 5 | "type": "i2c", 6 | "args": { 7 | "address": { 8 | "type": "number", 9 | "default": 39 10 | } 11 | } 12 | } 13 | }, 14 | "outputs": { 15 | "gpio-0": { 16 | "type": "gpio" 17 | }, 18 | "gpio-1": { 19 | "type": "gpio" 20 | }, 21 | "gpio-2": { 22 | "type": "gpio" 23 | }, 24 | "gpio-3": { 25 | "type": "gpio" 26 | }, 27 | "gpio-4": { 28 | "type": "gpio" 29 | }, 30 | "gpio-5": { 31 | "type": "gpio" 32 | }, 33 | "gpio-6": { 34 | "type": "gpio" 35 | }, 36 | "gpio-7": { 37 | "type": "gpio" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /access-control/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pcf8574", 3 | "version": "2.0.3", 4 | "description": "PCF8574/PCF8574A I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pcf8574.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pcf8574/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pcf8574", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /access-control/ruff_modules/relay-1c/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.3 -------------------------------------------------------------------------------- /access-control/ruff_modules/relay-1c/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "RELAY-1C" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "out", 10 | "level": "high" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /access-control/ruff_modules/relay-1c/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "relay-1c", 3 | "version": "2.0.3", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/relay-1c.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/relay-1c/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/relay-1c", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /access-control/ruff_modules/relay-1c/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | var Level = require('gpio').Level; 10 | 11 | module.exports = driver({ 12 | attach: function (inputs) { 13 | this._gpio = inputs['gpio']; 14 | }, 15 | exports: { 16 | turnOn: function (callback) { 17 | this._gpio.write(Level.low, callback); 18 | }, 19 | 20 | turnOff: function (callback) { 21 | this._gpio.write(Level.high, callback); 22 | }, 23 | 24 | isOn: function (callback) { 25 | var readCallback = callback && function (error, value) { 26 | if (error) { 27 | callback(error); 28 | return; 29 | } 30 | 31 | callback(undefined, !value); 32 | }; 33 | 34 | this._gpio.read(readCallback); 35 | } 36 | } 37 | }); 38 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-mbd-v1", 3 | "version": "4.1.2", 4 | "description": "Ruff Main Board V1 Metadata", 5 | "author": "Nanchao Inc.", 6 | "ruff": { 7 | "dependencies": { 8 | "led-gpio": "^3.0.0", 9 | "button-gpio": "^2.0.0", 10 | "pca9685": "^2.0.0", 11 | "ltc2309": "^2.0.0", 12 | "mcp23017": "^2.0.0", 13 | "ruff-v1-sys-usb": "^0.1.1" 14 | } 15 | }, 16 | "engines": { 17 | "ruff": ">=1.4.0 <1.6.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "button-gpio", 3 | "version": "2.0.4", 4 | "description": "The driver for buttons with GPIO interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/button-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/button-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/button-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | 10 | var ButtonState = { 11 | pushed: 0, 12 | released: 1 13 | }; 14 | 15 | var prototype = {}; 16 | 17 | Object.defineProperties(prototype, { 18 | pushed: { 19 | get: function () { 20 | return this._state === ButtonState.pushed; 21 | } 22 | }, 23 | released: { 24 | get: function () { 25 | return this._state === ButtonState.released; 26 | } 27 | } 28 | }); 29 | 30 | module.exports = driver({ 31 | attach: function (inputs) { 32 | var that = this; 33 | 34 | this._gpio = inputs['gpio']; 35 | this._state = ButtonState.released; 36 | 37 | this._gpio.on('interrupt', function (state) { 38 | if (that._state === state) { 39 | return; 40 | } 41 | 42 | that._state = state; 43 | 44 | if (state === ButtonState.pushed) { 45 | that.emit('push'); 46 | } else { 47 | that.emit('release'); 48 | } 49 | }); 50 | }, 51 | exports: prototype 52 | }); 53 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^3.0.0 -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "led-gpio" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type" : "gpio", 8 | "args" : { 9 | "direction": "out", 10 | "level": "low", 11 | "activeLow": { 12 | "type": "boolean", 13 | "default": false 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "led-gpio", 3 | "version": "3.0.1", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/led-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/led-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/led-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "voltageReference": { 5 | "type": "number", 6 | "default": 5 7 | } 8 | }, 9 | "inputs": { 10 | "i2c": { 11 | "type": "i2c", 12 | "args": { 13 | "address": 8 14 | } 15 | } 16 | }, 17 | "outputs": { 18 | "an-0": { 19 | "type": "adc" 20 | }, 21 | "an-1": { 22 | "type": "adc" 23 | }, 24 | "an-2": { 25 | "type": "adc" 26 | }, 27 | "an-3": { 28 | "type": "adc" 29 | }, 30 | "an-4": { 31 | "type": "adc" 32 | }, 33 | "an-5": { 34 | "type": "adc" 35 | }, 36 | "an-6": { 37 | "type": "adc" 38 | }, 39 | "an-7": { 40 | "type": "adc" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ltc2309", 3 | "version": "2.0.3", 4 | "description": "LTC2309 I2C-ADC Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ltc2309.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ltc2309/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ltc2309", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mcp23017", 3 | "version": "2.0.3", 4 | "description": "MCP23017 I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/mcp23017.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/mcp23017/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/mcp23017", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "frequency": { 5 | "type": "number" 6 | } 7 | }, 8 | "inputs": { 9 | "i2c": { 10 | "type": "i2c", 11 | "args": { 12 | "address": { 13 | "type": "number", 14 | "default": 85 15 | } 16 | } 17 | } 18 | }, 19 | "outputs": { 20 | "pwm-0": { 21 | "type": "pwm" 22 | }, 23 | "pwm-1": { 24 | "type": "pwm" 25 | }, 26 | "pwm-2": { 27 | "type": "pwm" 28 | }, 29 | "pwm-3": { 30 | "type": "pwm" 31 | }, 32 | "pwm-4": { 33 | "type": "pwm" 34 | }, 35 | "pwm-5": { 36 | "type": "pwm" 37 | }, 38 | "pwm-6": { 39 | "type": "pwm" 40 | }, 41 | "pwm-7": { 42 | "type": "pwm" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pca9685", 3 | "version": "2.0.3", 4 | "description": "PCA9685 (I2C-PWM) Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pca9685.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pca9685/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pca9685", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | 10 | !.rapignore 11 | !src/** 12 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.1 -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | ], 4 | "power": null, 5 | "ground": null 6 | } 7 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-v1-sys-usb", 3 | "version": "0.1.2", 4 | "description": "Sys-usb managers the `mount` and `unmount` behaviour of USB devices.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ruff-v1-sys-usb.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ruff-v1-sys-usb/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ruff-v1-sys-usb", 15 | "keywords": [ 16 | "ruff", 17 | "driver", 18 | "usb" 19 | ], 20 | "main": "src/index.js", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "^4.1.0" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint *.js", 31 | "pretest": "npm run lint", 32 | "test": "ruff test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /access-control/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/src/10-ruff-usb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | notify () { 3 | echo $msg | socat - udp-sendto:127.0.0.1:9999 4 | } 5 | 6 | case "$ACTION" in 7 | "add") 8 | msg="{\"action\":\"mount\",\"devPath\":\"/sys$DEVPATH\"}" 9 | notify $msg 10 | ;; 11 | "remove") 12 | msg="{\"action\":\"unmount\",\"devPath\":\"/sys$DEVPATH\"}" 13 | notify $msg 14 | ;; 15 | esac 16 | -------------------------------------------------------------------------------- /access-control/test/test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var path = require('path'); 5 | var test = require('test'); 6 | 7 | var appRunner = require('ruff-app-runner'); 8 | var mock = require('ruff-mock'); 9 | 10 | var verify = mock.verify; 11 | 12 | var appPath = path.join(__dirname, '..'); 13 | 14 | module.exports = { 15 | 'test should run application': function (done) { 16 | appRunner 17 | .run(appPath, function () { 18 | verify($('#led-r')).turnOn(); 19 | }) 20 | .end(function () { 21 | verify($('#led-r')).turnOff(); 22 | done(); 23 | }); 24 | } 25 | }; 26 | 27 | test.run(module.exports); 28 | -------------------------------------------------------------------------------- /fire-extinguisher/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | -------------------------------------------------------------------------------- /fire-extinguisher/README.md: -------------------------------------------------------------------------------- 1 | # fire extinguisher 2 | 3 | ## 介绍 4 | 5 | 我们看过许多火灾的新闻报道,火灾造成了巨大的生命财产损失,因此,火灾的监测及防护成了重中之重 6 | 7 | 这是一个火灾监测及防护应用。当火焰传感器检测到火焰信号时,保安室的LCD显示屏提示有火灾,同时控制灭火器的继电器 8 | 打开,开始灭火 9 | 10 | ## 硬件要求 11 | 12 | 1.[Flame Sensor(Model:FLAME-01)](https://rap.ruff.io/devices/FLAME-01) 13 | 14 | 2.[LCD Display Module(LCD1602-02)](https://rap.ruff.io/devices/lcd1602-pcf8574a-hd44780) 15 | 16 | 3.[Ruff开发板](https://shop154924108.taobao.com/) 17 | 18 | 4.杜邦线等 19 | 20 | ## 软件需求 21 | 22 | 1.[Ruff SDK](https://ruff.io/zh-cn/docs/download.html) 23 | 24 | 2.[Ruff 固件](https://ruff.io/zh-cn/docs/download.html) 25 | 26 | 3.[软件包仓库](https://rap.ruff.io/) 27 | 28 | ## 参考 29 | 30 | Ruff应用开发请参见官网的[Getting started](https://ruff.io/zh-cn/docs/getting-started.html) -------------------------------------------------------------------------------- /fire-extinguisher/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fire-extinguisher", 3 | "version": "0.1.0", 4 | "description": "when flame sensor detect a flame signal, the relay should turn on the fire extinguisher to put out the fire", 5 | "author": "ccccly", 6 | "main": "src/index.js", 7 | "ruff": { 8 | "boards": { 9 | "ruff-mbd-v1": "^4.1.2", 10 | "*": "*" 11 | }, 12 | "dependencies": { 13 | "lcd1602-pcf8574a-hd44780": "^0.2.5", 14 | "flame-gpio": "^1.0.3", 15 | "relay-1c": "^2.0.3" 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/flame-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:1.0.3 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/flame-gpio/README.md: -------------------------------------------------------------------------------- 1 | # GPIO Flame Sensor Driver 2 | 3 | ## Description 4 | 5 | This is the driver for flame sensor with GPIO interface e.g. flame-01. 6 | 7 | It will emit events when fire and none and provides whether in the burning status currently. 8 | 9 | ## Support Devices 10 | 11 | [FLAME-01](http://rap.ruff.io/devices/FLAME-01) 12 | 13 | ## Usage 14 | 15 | * Query current burning status 16 | 17 | ```javascript 18 | $('#flame').isBurning(); 19 | ``` 20 | 21 | * Watch `fire` events 22 | 23 | ```javascript 24 | $('#flame').on('fire', function() { 25 | console.log('in flame fire'); 26 | }); 27 | ``` 28 | 29 | * Watch `none` events 30 | 31 | ```javascript 32 | $('#flame').on('none', function() { 33 | console.log('in flame none'); 34 | }); 35 | 36 | ``` 37 | 38 | ## API 39 | ### Events 40 | * **fire** 41 | Emitted when fire 42 | 43 | * **none** 44 | Emitted when none 45 | 46 | ### Commands 47 | * **isBurning** 48 | Get current burning status 49 | 50 | * Returns 51 | * (Boolean) whether or not is burning 52 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/flame-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": ["FLAME-01"], 3 | "inputs": { 4 | "gpio": { 5 | "type": "gpio", 6 | "args": { 7 | "direction": "in", 8 | "edge": "both" 9 | } 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/flame-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flame-gpio", 3 | "version": "1.0.4", 4 | "description": "GPIO flame sensor driver", 5 | "author": "ruff" 6 | } -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/flame-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | 10 | var FireState = { 11 | none: 0, 12 | fire: 1 13 | }; 14 | 15 | var prototype = {}; 16 | 17 | Object.defineProperties(prototype, { 18 | none: { 19 | get: function () { 20 | return this._state === FireState.none; 21 | } 22 | }, 23 | fire: { 24 | get: function () { 25 | return this._state === FireState.fire; 26 | } 27 | } 28 | }); 29 | 30 | module.exports = driver({ 31 | attach: function (inputs) { 32 | var that = this; 33 | 34 | this._gpio = inputs['gpio']; 35 | this._state = FireState.none; 36 | 37 | this._gpio.on('interrupt', function (state) { 38 | if (that._state === state) { 39 | return; 40 | } 41 | 42 | that._state = state; 43 | 44 | if (state === FireState.none) { 45 | that.emit('none'); 46 | } else { 47 | that.emit('fire'); 48 | } 49 | }); 50 | }, 51 | exports: prototype 52 | }); 53 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/lcd1602-pcf8574a-hd44780/.registry: -------------------------------------------------------------------------------- 1 | rap:0.2.5 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/lcd1602-pcf8574a-hd44780/layout.json: -------------------------------------------------------------------------------- 1 | { 2 | "mapping": { 3 | "hd44780/rs": "pcf8574/gpio-0", 4 | "hd44780/rw": "pcf8574/gpio-1", 5 | "hd44780/e": "pcf8574/gpio-2", 6 | "hd44780/p3": "pcf8574/gpio-3", 7 | "hd44780/d4": "pcf8574/gpio-4", 8 | "hd44780/d5": "pcf8574/gpio-5", 9 | "hd44780/d6": "pcf8574/gpio-6", 10 | "hd44780/d7": "pcf8574/gpio-7" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/lcd1602-pcf8574a-hd44780/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lcd1602-pcf8574a-hd44780", 3 | "version": "0.2.5", 4 | "engines": { 5 | "ruff": ">=1.2.0 <1.6.0" 6 | }, 7 | "ruff": { 8 | "dependencies": { 9 | "hd44780": "^0.2.1", 10 | "pcf8574": "^2.0.1" 11 | }, 12 | "devDependencies": {} 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/hd44780/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.2.1 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/hd44780/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hd44780", 3 | "version": "0.2.3", 4 | "description": "HD44780 LCD Controller Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/hd44780.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/hd44780/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/hd44780", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.1 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "inputs": { 4 | "i2c": { 5 | "type": "i2c", 6 | "args": { 7 | "address": { 8 | "type": "number", 9 | "default": 39 10 | } 11 | } 12 | } 13 | }, 14 | "outputs": { 15 | "gpio-0": { 16 | "type": "gpio" 17 | }, 18 | "gpio-1": { 19 | "type": "gpio" 20 | }, 21 | "gpio-2": { 22 | "type": "gpio" 23 | }, 24 | "gpio-3": { 25 | "type": "gpio" 26 | }, 27 | "gpio-4": { 28 | "type": "gpio" 29 | }, 30 | "gpio-5": { 31 | "type": "gpio" 32 | }, 33 | "gpio-6": { 34 | "type": "gpio" 35 | }, 36 | "gpio-7": { 37 | "type": "gpio" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pcf8574", 3 | "version": "2.0.3", 4 | "description": "PCF8574/PCF8574A I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pcf8574.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pcf8574/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pcf8574", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/relay-1c/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.3 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/relay-1c/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "RELAY-1C" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "out", 10 | "level": "high" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/relay-1c/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "relay-1c", 3 | "version": "2.0.3", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/relay-1c.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/relay-1c/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/relay-1c", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/relay-1c/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | var Level = require('gpio').Level; 10 | 11 | module.exports = driver({ 12 | attach: function (inputs) { 13 | this._gpio = inputs['gpio']; 14 | }, 15 | exports: { 16 | turnOn: function (callback) { 17 | this._gpio.write(Level.low, callback); 18 | }, 19 | 20 | turnOff: function (callback) { 21 | this._gpio.write(Level.high, callback); 22 | }, 23 | 24 | isOn: function (callback) { 25 | var readCallback = callback && function (error, value) { 26 | if (error) { 27 | callback(error); 28 | return; 29 | } 30 | 31 | callback(undefined, !value); 32 | }; 33 | 34 | this._gpio.read(readCallback); 35 | } 36 | } 37 | }); 38 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-mbd-v1", 3 | "version": "4.1.2", 4 | "description": "Ruff Main Board V1 Metadata", 5 | "author": "Nanchao Inc.", 6 | "ruff": { 7 | "dependencies": { 8 | "led-gpio": "^3.0.0", 9 | "button-gpio": "^2.0.0", 10 | "pca9685": "^2.0.0", 11 | "ltc2309": "^2.0.0", 12 | "mcp23017": "^2.0.0", 13 | "ruff-v1-sys-usb": "^0.1.1" 14 | } 15 | }, 16 | "engines": { 17 | "ruff": ">=1.4.0 <1.6.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "button-gpio", 3 | "version": "2.0.4", 4 | "description": "The driver for buttons with GPIO interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/button-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/button-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/button-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^3.0.0 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "led-gpio" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type" : "gpio", 8 | "args" : { 9 | "direction": "out", 10 | "level": "low", 11 | "activeLow": { 12 | "type": "boolean", 13 | "default": false 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "led-gpio", 3 | "version": "3.0.1", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/led-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/led-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/led-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "voltageReference": { 5 | "type": "number", 6 | "default": 5 7 | } 8 | }, 9 | "inputs": { 10 | "i2c": { 11 | "type": "i2c", 12 | "args": { 13 | "address": 8 14 | } 15 | } 16 | }, 17 | "outputs": { 18 | "an-0": { 19 | "type": "adc" 20 | }, 21 | "an-1": { 22 | "type": "adc" 23 | }, 24 | "an-2": { 25 | "type": "adc" 26 | }, 27 | "an-3": { 28 | "type": "adc" 29 | }, 30 | "an-4": { 31 | "type": "adc" 32 | }, 33 | "an-5": { 34 | "type": "adc" 35 | }, 36 | "an-6": { 37 | "type": "adc" 38 | }, 39 | "an-7": { 40 | "type": "adc" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ltc2309", 3 | "version": "2.0.3", 4 | "description": "LTC2309 I2C-ADC Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ltc2309.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ltc2309/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ltc2309", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mcp23017", 3 | "version": "2.0.3", 4 | "description": "MCP23017 I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/mcp23017.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/mcp23017/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/mcp23017", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "frequency": { 5 | "type": "number" 6 | } 7 | }, 8 | "inputs": { 9 | "i2c": { 10 | "type": "i2c", 11 | "args": { 12 | "address": { 13 | "type": "number", 14 | "default": 85 15 | } 16 | } 17 | } 18 | }, 19 | "outputs": { 20 | "pwm-0": { 21 | "type": "pwm" 22 | }, 23 | "pwm-1": { 24 | "type": "pwm" 25 | }, 26 | "pwm-2": { 27 | "type": "pwm" 28 | }, 29 | "pwm-3": { 30 | "type": "pwm" 31 | }, 32 | "pwm-4": { 33 | "type": "pwm" 34 | }, 35 | "pwm-5": { 36 | "type": "pwm" 37 | }, 38 | "pwm-6": { 39 | "type": "pwm" 40 | }, 41 | "pwm-7": { 42 | "type": "pwm" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pca9685", 3 | "version": "2.0.3", 4 | "description": "PCA9685 (I2C-PWM) Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pca9685.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pca9685/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pca9685", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | 10 | !.rapignore 11 | !src/** 12 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.1 -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | ], 4 | "power": null, 5 | "ground": null 6 | } 7 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-v1-sys-usb", 3 | "version": "0.1.2", 4 | "description": "Sys-usb managers the `mount` and `unmount` behaviour of USB devices.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ruff-v1-sys-usb.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ruff-v1-sys-usb/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ruff-v1-sys-usb", 15 | "keywords": [ 16 | "ruff", 17 | "driver", 18 | "usb" 19 | ], 20 | "main": "src/index.js", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "^4.1.0" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint *.js", 31 | "pretest": "npm run lint", 32 | "test": "ruff test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /fire-extinguisher/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/src/10-ruff-usb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | notify () { 3 | echo $msg | socat - udp-sendto:127.0.0.1:9999 4 | } 5 | 6 | case "$ACTION" in 7 | "add") 8 | msg="{\"action\":\"mount\",\"devPath\":\"/sys$DEVPATH\"}" 9 | notify $msg 10 | ;; 11 | "remove") 12 | msg="{\"action\":\"unmount\",\"devPath\":\"/sys$DEVPATH\"}" 13 | notify $msg 14 | ;; 15 | esac 16 | -------------------------------------------------------------------------------- /fire-extinguisher/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** lcd显示器 */ 4 | var lcd; 5 | /** 继电器 */ 6 | var relay; 7 | /** 火焰传感器 */ 8 | var flameSensor; 9 | 10 | $.ready(function (error) { 11 | if (error) { 12 | console.log(error); 13 | return; 14 | } 15 | 16 | lcd = $('#lcd'); 17 | relay = $('#relay'); 18 | flameSensor = $('#flame-sensor'); 19 | 20 | flameSensor.on('fire', function () { 21 | //清除LCD上次显示的内容 22 | lcd.clear(); 23 | 24 | //安保监控室内的显示器显示火焰警告 25 | lcd.print('caution!'); 26 | //设置lcd第二行显示 27 | lcd.setCursor(0, 1); 28 | lcd.print('fire alarm'); 29 | 30 | //relay打开,相应的灭火器打开 31 | relay.turnOn(); 32 | }); 33 | 34 | flameSensor.on('none', function () { 35 | //清除LCD上次显示的内容 36 | lcd.clear(); 37 | //安保监控室内的显示器显示安全 38 | lcd.print('safe'); 39 | //relay关闭,灭火器关闭 40 | relay.turnOff(); 41 | }); 42 | }); 43 | 44 | $.end(function () { 45 | lcd.turnOff(); 46 | relay.turnOff(); 47 | }); 48 | -------------------------------------------------------------------------------- /fire-extinguisher/test/test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var path = require('path'); 5 | var test = require('test'); 6 | 7 | var appRunner = require('ruff-app-runner'); 8 | var mock = require('ruff-mock'); 9 | 10 | var verify = mock.verify; 11 | 12 | var appPath = path.join(__dirname, '..'); 13 | 14 | module.exports = { 15 | 'test should run application': function (done) { 16 | appRunner 17 | .run(appPath, function () { 18 | verify($('#led-r')).turnOn(); 19 | }) 20 | .end(function () { 21 | verify($('#led-r')).turnOff(); 22 | done(); 23 | }); 24 | } 25 | }; 26 | 27 | test.run(module.exports); 28 | -------------------------------------------------------------------------------- /light-sensor/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | -------------------------------------------------------------------------------- /light-sensor/README.md: -------------------------------------------------------------------------------- 1 | # light sensor 2 | 3 | ## 介绍 4 | 5 | 当我们需要知道环境的光照强度值时,这个程序可以每一秒更新环境的光照强度值 6 | 7 | ## 硬件要求 8 | 9 | 1.[LCD Display Module(LCD1602-02)](https://rap.ruff.io/devices/lcd1602-pcf8574a-hd44780) 10 | 11 | 2.[Light Intensity Sensor(GY-30)](https://rap.ruff.io/devices/GY-30) 12 | 13 | 3.[Ruff开发板](https://shop154924108.taobao.com/) 14 | 15 | 4.杜邦线等 16 | 17 | ## 软件需求 18 | 19 | 1.[Ruff SDK](https://ruff.io/zh-cn/docs/download.html) 20 | 21 | 2.[Ruff 固件](https://ruff.io/zh-cn/docs/download.html) 22 | 23 | 3.[软件包仓库](https://rap.ruff.io/) 24 | 25 | ## 参考 26 | 27 | Ruff应用开发请参见官网的[Getting started](https://ruff.io/zh-cn/docs/getting-started.html) -------------------------------------------------------------------------------- /light-sensor/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "light-sensor", 3 | "version": "0.1.0", 4 | "description": "demo for light sensor.The LCD display will show the value the lignt intensity", 5 | "author": "ccccly", 6 | "main": "src/index.js", 7 | "ruff": { 8 | "boards": { 9 | "ruff-mbd-v1": "^4.1.2", 10 | "*": "*" 11 | }, 12 | "dependencies": { 13 | "lcd1602-pcf8574a-hd44780": "^0.2.5", 14 | "gy-30": "^3.0.3" 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /light-sensor/ruff_modules/gy-30/.registry: -------------------------------------------------------------------------------- 1 | rap:3.0.3 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/gy-30/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "GY-30" 4 | ], 5 | "args": { 6 | "highResolution": { 7 | "type": "boolean", 8 | "default": true 9 | } 10 | }, 11 | "inputs": { 12 | "i2c": { 13 | "type": "i2c", 14 | "args": { 15 | "address": 35 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/gy-30/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gy-30", 3 | "version": "3.0.3", 4 | "description": "Digital illuminance intensity sensor driver with I2C interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/gy-30.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/gy-30/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/gy-30", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/lcd1602-pcf8574a-hd44780/.registry: -------------------------------------------------------------------------------- 1 | rap:0.2.5 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/lcd1602-pcf8574a-hd44780/layout.json: -------------------------------------------------------------------------------- 1 | { 2 | "mapping": { 3 | "hd44780/rs": "pcf8574/gpio-0", 4 | "hd44780/rw": "pcf8574/gpio-1", 5 | "hd44780/e": "pcf8574/gpio-2", 6 | "hd44780/p3": "pcf8574/gpio-3", 7 | "hd44780/d4": "pcf8574/gpio-4", 8 | "hd44780/d5": "pcf8574/gpio-5", 9 | "hd44780/d6": "pcf8574/gpio-6", 10 | "hd44780/d7": "pcf8574/gpio-7" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/lcd1602-pcf8574a-hd44780/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lcd1602-pcf8574a-hd44780", 3 | "version": "0.2.5", 4 | "engines": { 5 | "ruff": ">=1.2.0 <1.6.0" 6 | }, 7 | "ruff": { 8 | "dependencies": { 9 | "hd44780": "^0.2.1", 10 | "pcf8574": "^2.0.1" 11 | }, 12 | "devDependencies": {} 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/hd44780/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.2.1 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/hd44780/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hd44780", 3 | "version": "0.2.3", 4 | "description": "HD44780 LCD Controller Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/hd44780.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/hd44780/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/hd44780", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.1 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "inputs": { 4 | "i2c": { 5 | "type": "i2c", 6 | "args": { 7 | "address": { 8 | "type": "number", 9 | "default": 39 10 | } 11 | } 12 | } 13 | }, 14 | "outputs": { 15 | "gpio-0": { 16 | "type": "gpio" 17 | }, 18 | "gpio-1": { 19 | "type": "gpio" 20 | }, 21 | "gpio-2": { 22 | "type": "gpio" 23 | }, 24 | "gpio-3": { 25 | "type": "gpio" 26 | }, 27 | "gpio-4": { 28 | "type": "gpio" 29 | }, 30 | "gpio-5": { 31 | "type": "gpio" 32 | }, 33 | "gpio-6": { 34 | "type": "gpio" 35 | }, 36 | "gpio-7": { 37 | "type": "gpio" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pcf8574", 3 | "version": "2.0.3", 4 | "description": "PCF8574/PCF8574A I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pcf8574.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pcf8574/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pcf8574", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-mbd-v1", 3 | "version": "4.1.2", 4 | "description": "Ruff Main Board V1 Metadata", 5 | "author": "Nanchao Inc.", 6 | "ruff": { 7 | "dependencies": { 8 | "led-gpio": "^3.0.0", 9 | "button-gpio": "^2.0.0", 10 | "pca9685": "^2.0.0", 11 | "ltc2309": "^2.0.0", 12 | "mcp23017": "^2.0.0", 13 | "ruff-v1-sys-usb": "^0.1.1" 14 | } 15 | }, 16 | "engines": { 17 | "ruff": ">=1.4.0 <1.6.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "button-gpio", 3 | "version": "2.0.4", 4 | "description": "The driver for buttons with GPIO interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/button-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/button-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/button-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | 10 | var ButtonState = { 11 | pushed: 0, 12 | released: 1 13 | }; 14 | 15 | var prototype = {}; 16 | 17 | Object.defineProperties(prototype, { 18 | pushed: { 19 | get: function () { 20 | return this._state === ButtonState.pushed; 21 | } 22 | }, 23 | released: { 24 | get: function () { 25 | return this._state === ButtonState.released; 26 | } 27 | } 28 | }); 29 | 30 | module.exports = driver({ 31 | attach: function (inputs) { 32 | var that = this; 33 | 34 | this._gpio = inputs['gpio']; 35 | this._state = ButtonState.released; 36 | 37 | this._gpio.on('interrupt', function (state) { 38 | if (that._state === state) { 39 | return; 40 | } 41 | 42 | that._state = state; 43 | 44 | if (state === ButtonState.pushed) { 45 | that.emit('push'); 46 | } else { 47 | that.emit('release'); 48 | } 49 | }); 50 | }, 51 | exports: prototype 52 | }); 53 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^3.0.0 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "led-gpio" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type" : "gpio", 8 | "args" : { 9 | "direction": "out", 10 | "level": "low", 11 | "activeLow": { 12 | "type": "boolean", 13 | "default": false 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "led-gpio", 3 | "version": "3.0.1", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/led-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/led-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/led-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "voltageReference": { 5 | "type": "number", 6 | "default": 5 7 | } 8 | }, 9 | "inputs": { 10 | "i2c": { 11 | "type": "i2c", 12 | "args": { 13 | "address": 8 14 | } 15 | } 16 | }, 17 | "outputs": { 18 | "an-0": { 19 | "type": "adc" 20 | }, 21 | "an-1": { 22 | "type": "adc" 23 | }, 24 | "an-2": { 25 | "type": "adc" 26 | }, 27 | "an-3": { 28 | "type": "adc" 29 | }, 30 | "an-4": { 31 | "type": "adc" 32 | }, 33 | "an-5": { 34 | "type": "adc" 35 | }, 36 | "an-6": { 37 | "type": "adc" 38 | }, 39 | "an-7": { 40 | "type": "adc" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ltc2309", 3 | "version": "2.0.3", 4 | "description": "LTC2309 I2C-ADC Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ltc2309.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ltc2309/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ltc2309", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mcp23017", 3 | "version": "2.0.3", 4 | "description": "MCP23017 I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/mcp23017.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/mcp23017/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/mcp23017", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "frequency": { 5 | "type": "number" 6 | } 7 | }, 8 | "inputs": { 9 | "i2c": { 10 | "type": "i2c", 11 | "args": { 12 | "address": { 13 | "type": "number", 14 | "default": 85 15 | } 16 | } 17 | } 18 | }, 19 | "outputs": { 20 | "pwm-0": { 21 | "type": "pwm" 22 | }, 23 | "pwm-1": { 24 | "type": "pwm" 25 | }, 26 | "pwm-2": { 27 | "type": "pwm" 28 | }, 29 | "pwm-3": { 30 | "type": "pwm" 31 | }, 32 | "pwm-4": { 33 | "type": "pwm" 34 | }, 35 | "pwm-5": { 36 | "type": "pwm" 37 | }, 38 | "pwm-6": { 39 | "type": "pwm" 40 | }, 41 | "pwm-7": { 42 | "type": "pwm" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pca9685", 3 | "version": "2.0.3", 4 | "description": "PCA9685 (I2C-PWM) Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pca9685.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pca9685/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pca9685", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | 10 | !.rapignore 11 | !src/** 12 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.1 -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | ], 4 | "power": null, 5 | "ground": null 6 | } 7 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-v1-sys-usb", 3 | "version": "0.1.2", 4 | "description": "Sys-usb managers the `mount` and `unmount` behaviour of USB devices.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ruff-v1-sys-usb.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ruff-v1-sys-usb/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ruff-v1-sys-usb", 15 | "keywords": [ 16 | "ruff", 17 | "driver", 18 | "usb" 19 | ], 20 | "main": "src/index.js", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "^4.1.0" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint *.js", 31 | "pretest": "npm run lint", 32 | "test": "ruff test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /light-sensor/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/src/10-ruff-usb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | notify () { 3 | echo $msg | socat - udp-sendto:127.0.0.1:9999 4 | } 5 | 6 | case "$ACTION" in 7 | "add") 8 | msg="{\"action\":\"mount\",\"devPath\":\"/sys$DEVPATH\"}" 9 | notify $msg 10 | ;; 11 | "remove") 12 | msg="{\"action\":\"unmount\",\"devPath\":\"/sys$DEVPATH\"}" 13 | notify $msg 14 | ;; 15 | esac 16 | -------------------------------------------------------------------------------- /light-sensor/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** LCD显示器 */ 4 | var lcd; 5 | /** 光线传感器 */ 6 | var lightSensor; 7 | 8 | $.ready(function (error) { 9 | if (error) { 10 | console.log(error); 11 | return; 12 | } 13 | 14 | lcd = $('#lcd'); 15 | lightSensor = $('#light-sensor'); 16 | //每1秒更新一次光照强度 17 | setInterval(showLightIntensity, 1000); 18 | }); 19 | 20 | function showLightIntensity() { 21 | lcd.clear(); 22 | //从光照传感器获取光照强度 23 | lightSensor.getIlluminance(function (error, value) { 24 | if (error) { 25 | console.error(error); 26 | return; 27 | } 28 | console.log('illuminance: ' + value); 29 | lcd.print('illuminance: ' + value); 30 | }); 31 | } 32 | 33 | $.end(function () { 34 | lcd = $('#lcd'); 35 | lcd.turnOff(); 36 | }); -------------------------------------------------------------------------------- /light-sensor/test/test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var path = require('path'); 5 | var test = require('test'); 6 | 7 | var appRunner = require('ruff-app-runner'); 8 | var mock = require('ruff-mock'); 9 | 10 | var verify = mock.verify; 11 | 12 | var appPath = path.join(__dirname, '..'); 13 | 14 | module.exports = { 15 | 'test should run application': function (done) { 16 | appRunner 17 | .run(appPath, function () { 18 | verify($('#led-r')).turnOn(); 19 | }) 20 | .end(function () { 21 | verify($('#led-r')).turnOff(); 22 | done(); 23 | }); 24 | } 25 | }; 26 | 27 | test.run(module.exports); 28 | -------------------------------------------------------------------------------- /ruff-car/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | -------------------------------------------------------------------------------- /ruff-car/README.md: -------------------------------------------------------------------------------- 1 | # Ruff Car 2 | 3 | ##介绍 4 | 5 | 在我很小很小的时候,看到其他家孩子有遥控汽车玩,我就十分羡慕。现在我走上了创客的旅途,当我跑通了“Blinking LED”的项目后,做一辆自己的玩具车的想法就一直占据我的脑海。 6 | 7 | 因此,当我在拿到 Ruff 1.0 开发套件后,我就打算用 Ruff 试一试开发玩具车的项目。 8 | 9 | 玩具车上有两个gpio口,分别控制两边轮子的转动方向。还有两个pwm口,控制两边轮子的转动速度。 10 | 11 | 为了达到车子转向的功能,有两种方法。 12 | 13 | 1.在车的转向的过程中,比如实现右转的话,就需要让右边的轮子向后走,左边的轮子向前走。反之则可实现左转,这样玩具车就可以实现转向了。 14 | 15 | 2.让左边的速度大于右边的速度,这样也可以让玩具车右转 。 16 | 17 | 我们在玩具车上搭建一个http服务器,我们通过App发送指令,玩具车上的 服务器收到指令之后操作玩具车。 18 | 19 | ##硬件要求 20 | 21 | 1.[Cherokey 4WD Mobile Car(Model cherokey)](https://rap.ruff.io/raps/cherokey) 22 | 23 | 2.5节5号电池(用于小车的供电),移动电源(用于ruff开发板的供电) 24 | 25 | 3.Ruff开发板 26 | 27 | 4.杜邦线等 28 | 29 | ##软件需求 30 | 31 | 1.[Ruff SDK](https://ruff.io/zh-cn/docs/download.html) 32 | 33 | 2.[Ruff 固件](https://ruff.io/zh-cn/docs/download.html) 34 | 35 | 3.[软件包仓库](https://rap.ruff.io/) 36 | 37 | ## 参考 38 | 39 | Ruff应用开发请参见官网的[Getting started](https://ruff.io/zh-cn/docs/getting-started.html) 40 | 41 | ## 注意事项 42 | 43 | 这个应用还需要安装官网的home组件 44 | 45 | rap install home -------------------------------------------------------------------------------- /ruff-car/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-car", 3 | "version": "0.1.0", 4 | "description": "a car example on ruff", 5 | "author": "ccccly", 6 | "main": "src/index.js", 7 | "ruff": { 8 | "boards": { 9 | "ruff-mbd-v1": "^4.1.2", 10 | "*": "*" 11 | }, 12 | "dependencies": { 13 | "cherokey": "^0.1.4", 14 | "home": "^0.1.6", 15 | "hc-sr501": "^2.0.3" 16 | }, 17 | "devDependencies": {} 18 | } 19 | } -------------------------------------------------------------------------------- /ruff-car/ruff_modules/cherokey/.registry: -------------------------------------------------------------------------------- 1 | rap:0.1.4 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/cherokey/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": ["cherokey"], 3 | "inputs": { 4 | "gpio-m1": { 5 | "type": "gpio", 6 | "args": { 7 | "direction": "out", 8 | "edge": "both", 9 | "level":"high" 10 | } 11 | }, 12 | "gpio-m2": { 13 | "type": "gpio", 14 | "args": { 15 | "direction": "out", 16 | "edge": "both", 17 | "level":"high" 18 | } 19 | }, 20 | "pwm-m1": { 21 | "type": "pwm", 22 | "args": { 23 | "frequency": 318 24 | } 25 | }, 26 | "pwm-m2": { 27 | "type": "pwm", 28 | "args": { 29 | "frequency": 318 30 | } 31 | } 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /ruff-car/ruff_modules/cherokey/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cherokey", 3 | "version": "0.1.4", 4 | "description": "a driver for cherokey 4wd", 5 | "author": "ccccly", 6 | "main": "src/index.js" 7 | } -------------------------------------------------------------------------------- /ruff-car/ruff_modules/hc-sr501/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.3 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/hc-sr501/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "HC-SR501" 4 | ], 5 | "power": { 6 | "name": "vcc", 7 | "voltage": "5v" 8 | }, 9 | "inputs": { 10 | "gpio": { 11 | "type": "gpio", 12 | "args": { 13 | "direction": "in", 14 | "edge": "both" 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/hc-sr501/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hc-sr501", 3 | "version": "2.0.3", 4 | "description": "Driver for HC-SR501 motion sensor.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/hc-sr501.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/hc-sr501/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/hc-sr501", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.7" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/hc-sr501/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Level = require('gpio').Level; 4 | var driver = require('ruff-driver'); 5 | 6 | var SensorState = { 7 | absence: Level.low, 8 | presence: Level.high 9 | }; 10 | 11 | module.exports = driver({ 12 | attach: function (inputs) { 13 | var that = this; 14 | 15 | this._gpio = inputs['gpio']; 16 | 17 | this._gpio.on('interrupt', function (state) { 18 | if (state === this._state) { 19 | return; 20 | } 21 | 22 | this._state = state; 23 | 24 | if (state === SensorState.presence) { 25 | that.emit('presence'); 26 | } else { 27 | that.emit('absence'); 28 | } 29 | }); 30 | } 31 | }); 32 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/home/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /ruff-car/ruff_modules/home/mime.json: -------------------------------------------------------------------------------- 1 | { 2 | ".txt": "text/plain", 3 | ".text": "text/plain", 4 | ".htm": "text/html", 5 | ".html": "text/html", 6 | ".png": "image/png", 7 | ".jpg": "image/jpeg", 8 | ".jpeg": "image/jpeg", 9 | ".gif": "image/gif", 10 | ".js": "text/javascript", 11 | ".css": "text/css" 12 | } -------------------------------------------------------------------------------- /ruff-car/ruff_modules/home/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "home", 3 | "version": "0.1.6", 4 | "description": "Home (Web Framework) for Ruff.", 5 | "author": "vilicvane", 6 | "license": "MIT", 7 | "main": "bld/index.js", 8 | "typings": "bld/index.d.ts", 9 | "scripts": { 10 | "install-sdk": "rvm install --local", 11 | "install-rap-dependencies": "rap install", 12 | "build": "tsc", 13 | "test": "ruff test/test.js" 14 | }, 15 | "engines": { 16 | "ruff": "^1.3.0" 17 | }, 18 | "devDependencies": { 19 | "rvm": "^0.3.2", 20 | "typescript": "^2.0.3" 21 | }, 22 | "ruff": { 23 | "dependencies": { 24 | "promise": "^0.1.2" 25 | }, 26 | "devDependencies": { 27 | "t": "^0.1.7", 28 | "chai": "npm:^3.5.0", 29 | "chai-as-promised": "npm:^6.0.0", 30 | "fetch": "^0.1.2" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/home/ruff_modules/promise/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.2 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/home/ruff_modules/promise/README.md: -------------------------------------------------------------------------------- 1 | 2 | Promises/A+ logo 3 | 4 | 5 | ES6 Promise based on [ThenFail](https://github.com/vilic/thenfail) v0.4. 6 | 7 | GitHub 8 | 9 | ## Install 10 | 11 | ```sh 12 | rap install promise 13 | ``` 14 | 15 | ## Usage 16 | 17 | By requiring this module, it will try to attach `Promise` constructor to `global` if it's not present. 18 | 19 | ```js 20 | require('promise'); 21 | 22 | var promise = new Promise(function (resolve) { 23 | setTimeout(function () { 24 | resolve('Hello, Ruff!'); 25 | }); 26 | }); 27 | 28 | promise.then(function (message) { 29 | console.log(message); 30 | }); 31 | ``` 32 | 33 | ## License 34 | 35 | MIT License. 36 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/home/ruff_modules/promise/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "promise", 3 | "version": "0.1.2", 4 | "description": "ES6 Promise based on ThenFail 0.4", 5 | "author": "vilicvane", 6 | "license": "MIT", 7 | "main": "bld/index.js", 8 | "typings": "bld/index.d.ts", 9 | "scripts": { 10 | "build": "tsc", 11 | "incremental-build": "tsc -w", 12 | "aplus": "promises-aplus-tests test/aplus/adapter.js", 13 | "test": "mocha && npm run aplus", 14 | "quick-test": "mocha" 15 | }, 16 | "devDependencies": { 17 | "chai": "latest", 18 | "chai-as-promised": "latest", 19 | "mocha": "latest", 20 | "promises-aplus-tests": "latest", 21 | "source-map-support": "latest", 22 | "typescript": "latest" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-mbd-v1", 3 | "version": "4.1.2", 4 | "description": "Ruff Main Board V1 Metadata", 5 | "author": "Nanchao Inc.", 6 | "ruff": { 7 | "dependencies": { 8 | "led-gpio": "^3.0.0", 9 | "button-gpio": "^2.0.0", 10 | "pca9685": "^2.0.0", 11 | "ltc2309": "^2.0.0", 12 | "mcp23017": "^2.0.0", 13 | "ruff-v1-sys-usb": "^0.1.1" 14 | } 15 | }, 16 | "engines": { 17 | "ruff": ">=1.4.0 <1.6.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "button-gpio", 3 | "version": "2.0.4", 4 | "description": "The driver for buttons with GPIO interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/button-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/button-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/button-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | 10 | var ButtonState = { 11 | pushed: 0, 12 | released: 1 13 | }; 14 | 15 | var prototype = {}; 16 | 17 | Object.defineProperties(prototype, { 18 | pushed: { 19 | get: function () { 20 | return this._state === ButtonState.pushed; 21 | } 22 | }, 23 | released: { 24 | get: function () { 25 | return this._state === ButtonState.released; 26 | } 27 | } 28 | }); 29 | 30 | module.exports = driver({ 31 | attach: function (inputs) { 32 | var that = this; 33 | 34 | this._gpio = inputs['gpio']; 35 | this._state = ButtonState.released; 36 | 37 | this._gpio.on('interrupt', function (state) { 38 | if (that._state === state) { 39 | return; 40 | } 41 | 42 | that._state = state; 43 | 44 | if (state === ButtonState.pushed) { 45 | that.emit('push'); 46 | } else { 47 | that.emit('release'); 48 | } 49 | }); 50 | }, 51 | exports: prototype 52 | }); 53 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^3.0.0 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "led-gpio" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type" : "gpio", 8 | "args" : { 9 | "direction": "out", 10 | "level": "low", 11 | "activeLow": { 12 | "type": "boolean", 13 | "default": false 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "led-gpio", 3 | "version": "3.0.1", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/led-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/led-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/led-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "voltageReference": { 5 | "type": "number", 6 | "default": 5 7 | } 8 | }, 9 | "inputs": { 10 | "i2c": { 11 | "type": "i2c", 12 | "args": { 13 | "address": 8 14 | } 15 | } 16 | }, 17 | "outputs": { 18 | "an-0": { 19 | "type": "adc" 20 | }, 21 | "an-1": { 22 | "type": "adc" 23 | }, 24 | "an-2": { 25 | "type": "adc" 26 | }, 27 | "an-3": { 28 | "type": "adc" 29 | }, 30 | "an-4": { 31 | "type": "adc" 32 | }, 33 | "an-5": { 34 | "type": "adc" 35 | }, 36 | "an-6": { 37 | "type": "adc" 38 | }, 39 | "an-7": { 40 | "type": "adc" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ltc2309", 3 | "version": "2.0.3", 4 | "description": "LTC2309 I2C-ADC Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ltc2309.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ltc2309/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ltc2309", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mcp23017", 3 | "version": "2.0.3", 4 | "description": "MCP23017 I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/mcp23017.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/mcp23017/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/mcp23017", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "frequency": { 5 | "type": "number" 6 | } 7 | }, 8 | "inputs": { 9 | "i2c": { 10 | "type": "i2c", 11 | "args": { 12 | "address": { 13 | "type": "number", 14 | "default": 85 15 | } 16 | } 17 | } 18 | }, 19 | "outputs": { 20 | "pwm-0": { 21 | "type": "pwm" 22 | }, 23 | "pwm-1": { 24 | "type": "pwm" 25 | }, 26 | "pwm-2": { 27 | "type": "pwm" 28 | }, 29 | "pwm-3": { 30 | "type": "pwm" 31 | }, 32 | "pwm-4": { 33 | "type": "pwm" 34 | }, 35 | "pwm-5": { 36 | "type": "pwm" 37 | }, 38 | "pwm-6": { 39 | "type": "pwm" 40 | }, 41 | "pwm-7": { 42 | "type": "pwm" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pca9685", 3 | "version": "2.0.3", 4 | "description": "PCA9685 (I2C-PWM) Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pca9685.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pca9685/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pca9685", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | 10 | !.rapignore 11 | !src/** 12 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.1 -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | ], 4 | "power": null, 5 | "ground": null 6 | } 7 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-v1-sys-usb", 3 | "version": "0.1.2", 4 | "description": "Sys-usb managers the `mount` and `unmount` behaviour of USB devices.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ruff-v1-sys-usb.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ruff-v1-sys-usb/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ruff-v1-sys-usb", 15 | "keywords": [ 16 | "ruff", 17 | "driver", 18 | "usb" 19 | ], 20 | "main": "src/index.js", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "^4.1.0" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint *.js", 31 | "pretest": "npm run lint", 32 | "test": "ruff test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /ruff-car/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/src/10-ruff-usb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | notify () { 3 | echo $msg | socat - udp-sendto:127.0.0.1:9999 4 | } 5 | 6 | case "$ACTION" in 7 | "add") 8 | msg="{\"action\":\"mount\",\"devPath\":\"/sys$DEVPATH\"}" 9 | notify $msg 10 | ;; 11 | "remove") 12 | msg="{\"action\":\"unmount\",\"devPath\":\"/sys$DEVPATH\"}" 13 | notify $msg 14 | ;; 15 | esac 16 | -------------------------------------------------------------------------------- /ruff-car/test/test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var path = require('path'); 5 | var test = require('test'); 6 | 7 | var appRunner = require('ruff-app-runner'); 8 | var mock = require('ruff-mock'); 9 | 10 | var verify = mock.verify; 11 | 12 | var appPath = path.join(__dirname, '..'); 13 | 14 | module.exports = { 15 | 'test should run application': function (done) { 16 | appRunner 17 | .run(appPath, function () { 18 | verify($('#led-r')).turnOn(); 19 | }) 20 | .end(function () { 21 | verify($('#led-r')).turnOff(); 22 | done(); 23 | }); 24 | } 25 | }; 26 | 27 | test.run(module.exports); 28 | -------------------------------------------------------------------------------- /sound-lamp/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | -------------------------------------------------------------------------------- /sound-lamp/README.md: -------------------------------------------------------------------------------- 1 | # sound_lamp 2 | 3 | ## 介绍 4 | 5 | 这是一个声控灯,当声音传感器监测到声音时,就会触发继电器,打开灯的开关 6 | 7 | ## 硬件要求 8 | 9 | 1.[Sound Sensor(Model:SOUND-01)](https://rap.ruff.io/devices/SOUND-01) 10 | 11 | 2.[RGB LED Module(Model:KY-016)](https://rap.ruff.io/devices/KY-016) 12 | 13 | 3.[Ruff开发板](https://shop154924108.taobao.com/) 14 | 15 | 4.杜邦线等 16 | 17 | ## 软件需求 18 | 19 | 1.[Ruff SDK](https://ruff.io/zh-cn/docs/download.html) 20 | 21 | 2.[Ruff 固件](https://ruff.io/zh-cn/docs/download.html) 22 | 23 | 3.[软件包仓库](https://rap.ruff.io/) 24 | 25 | ## 参考 26 | 27 | Ruff应用开发请参见官网的[Getting started](https://ruff.io/zh-cn/docs/getting-started.html) -------------------------------------------------------------------------------- /sound-lamp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sound-lamp", 3 | "version": "0.1.0", 4 | "description": "a lamp controlled by sound", 5 | "author": "ccccly", 6 | "main": "src/index.js", 7 | "ruff": { 8 | "boards": { 9 | "ruff-mbd-v1": "^4.1.2", 10 | "*": "*" 11 | }, 12 | "dependencies": { 13 | "ky-016": "^2.0.3", 14 | "sound-01": "^1.1.3" 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ky-016/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.3 -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ky-016/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "KY-016" 4 | ], 5 | "inputs": { 6 | "pwm-r": { 7 | "type": "pwm", 8 | "args": { 9 | "frequency": 800 10 | } 11 | }, 12 | "pwm-g": { 13 | "type": "pwm", 14 | "args": { 15 | "frequency": 800 16 | } 17 | }, 18 | "pwm-b": { 19 | "type": "pwm", 20 | "args": { 21 | "frequency": 800 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ky-016/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ky-016", 3 | "version": "2.0.3", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ky-016.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ky-016/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ky-016", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-mbd-v1", 3 | "version": "4.1.2", 4 | "description": "Ruff Main Board V1 Metadata", 5 | "author": "Nanchao Inc.", 6 | "ruff": { 7 | "dependencies": { 8 | "led-gpio": "^3.0.0", 9 | "button-gpio": "^2.0.0", 10 | "pca9685": "^2.0.0", 11 | "ltc2309": "^2.0.0", 12 | "mcp23017": "^2.0.0", 13 | "ruff-v1-sys-usb": "^0.1.1" 14 | } 15 | }, 16 | "engines": { 17 | "ruff": ">=1.4.0 <1.6.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "button-gpio", 3 | "version": "2.0.4", 4 | "description": "The driver for buttons with GPIO interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/button-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/button-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/button-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | 10 | var ButtonState = { 11 | pushed: 0, 12 | released: 1 13 | }; 14 | 15 | var prototype = {}; 16 | 17 | Object.defineProperties(prototype, { 18 | pushed: { 19 | get: function () { 20 | return this._state === ButtonState.pushed; 21 | } 22 | }, 23 | released: { 24 | get: function () { 25 | return this._state === ButtonState.released; 26 | } 27 | } 28 | }); 29 | 30 | module.exports = driver({ 31 | attach: function (inputs) { 32 | var that = this; 33 | 34 | this._gpio = inputs['gpio']; 35 | this._state = ButtonState.released; 36 | 37 | this._gpio.on('interrupt', function (state) { 38 | if (that._state === state) { 39 | return; 40 | } 41 | 42 | that._state = state; 43 | 44 | if (state === ButtonState.pushed) { 45 | that.emit('push'); 46 | } else { 47 | that.emit('release'); 48 | } 49 | }); 50 | }, 51 | exports: prototype 52 | }); 53 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^3.0.0 -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "led-gpio" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type" : "gpio", 8 | "args" : { 9 | "direction": "out", 10 | "level": "low", 11 | "activeLow": { 12 | "type": "boolean", 13 | "default": false 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "led-gpio", 3 | "version": "3.0.1", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/led-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/led-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/led-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "voltageReference": { 5 | "type": "number", 6 | "default": 5 7 | } 8 | }, 9 | "inputs": { 10 | "i2c": { 11 | "type": "i2c", 12 | "args": { 13 | "address": 8 14 | } 15 | } 16 | }, 17 | "outputs": { 18 | "an-0": { 19 | "type": "adc" 20 | }, 21 | "an-1": { 22 | "type": "adc" 23 | }, 24 | "an-2": { 25 | "type": "adc" 26 | }, 27 | "an-3": { 28 | "type": "adc" 29 | }, 30 | "an-4": { 31 | "type": "adc" 32 | }, 33 | "an-5": { 34 | "type": "adc" 35 | }, 36 | "an-6": { 37 | "type": "adc" 38 | }, 39 | "an-7": { 40 | "type": "adc" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ltc2309", 3 | "version": "2.0.3", 4 | "description": "LTC2309 I2C-ADC Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ltc2309.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ltc2309/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ltc2309", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mcp23017", 3 | "version": "2.0.3", 4 | "description": "MCP23017 I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/mcp23017.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/mcp23017/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/mcp23017", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "frequency": { 5 | "type": "number" 6 | } 7 | }, 8 | "inputs": { 9 | "i2c": { 10 | "type": "i2c", 11 | "args": { 12 | "address": { 13 | "type": "number", 14 | "default": 85 15 | } 16 | } 17 | } 18 | }, 19 | "outputs": { 20 | "pwm-0": { 21 | "type": "pwm" 22 | }, 23 | "pwm-1": { 24 | "type": "pwm" 25 | }, 26 | "pwm-2": { 27 | "type": "pwm" 28 | }, 29 | "pwm-3": { 30 | "type": "pwm" 31 | }, 32 | "pwm-4": { 33 | "type": "pwm" 34 | }, 35 | "pwm-5": { 36 | "type": "pwm" 37 | }, 38 | "pwm-6": { 39 | "type": "pwm" 40 | }, 41 | "pwm-7": { 42 | "type": "pwm" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pca9685", 3 | "version": "2.0.3", 4 | "description": "PCA9685 (I2C-PWM) Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pca9685.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pca9685/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pca9685", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | 10 | !.rapignore 11 | !src/** 12 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.1 -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | ], 4 | "power": null, 5 | "ground": null 6 | } 7 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-v1-sys-usb", 3 | "version": "0.1.2", 4 | "description": "Sys-usb managers the `mount` and `unmount` behaviour of USB devices.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ruff-v1-sys-usb.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ruff-v1-sys-usb/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ruff-v1-sys-usb", 15 | "keywords": [ 16 | "ruff", 17 | "driver", 18 | "usb" 19 | ], 20 | "main": "src/index.js", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "^4.1.0" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint *.js", 31 | "pretest": "npm run lint", 32 | "test": "ruff test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/src/10-ruff-usb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | notify () { 3 | echo $msg | socat - udp-sendto:127.0.0.1:9999 4 | } 5 | 6 | case "$ACTION" in 7 | "add") 8 | msg="{\"action\":\"mount\",\"devPath\":\"/sys$DEVPATH\"}" 9 | notify $msg 10 | ;; 11 | "remove") 12 | msg="{\"action\":\"unmount\",\"devPath\":\"/sys$DEVPATH\"}" 13 | notify $msg 14 | ;; 15 | esac 16 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/sound-01/.registry: -------------------------------------------------------------------------------- 1 | rap:1.1.3 -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/sound-01/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "SOUND-01" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "none" 11 | } 12 | } 13 | }, 14 | "args": { 15 | "interval": { 16 | "type": "number", 17 | "default": 1000 18 | }, 19 | "enabled": { 20 | "type": "boolean", 21 | "default": true 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /sound-lamp/ruff_modules/sound-01/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sound-01", 3 | "version": "1.1.3", 4 | "description": "Sound sensor driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/sound-01.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/sound-01/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/sound-01", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /sound-lamp/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 继电器 */ 4 | var led; 5 | /** 声音传感器 */ 6 | var soundSensor; 7 | 8 | $.ready(function (error) { 9 | if (error) { 10 | console.log(error); 11 | return; 12 | } 13 | 14 | led = $('#led'); 15 | soundSensor = $('#sound'); 16 | 17 | soundSensor.on('sound', function () { 18 | led.turnOn(); 19 | //继电器打开,控制相应的灯泡打开 20 | led.setRGB([0x80, 0x80, 0x80]); 21 | 22 | //若10秒钟内没有声音,则关闭继电器 23 | setTimeout( function () { 24 | led.turnOff(); 25 | }, 10000); 26 | }); 27 | }); 28 | 29 | $.end(function () { 30 | led.turnOff(); 31 | }); 32 | -------------------------------------------------------------------------------- /sound-lamp/test/test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var path = require('path'); 5 | var test = require('test'); 6 | 7 | var appRunner = require('ruff-app-runner'); 8 | var mock = require('ruff-mock'); 9 | 10 | var verify = mock.verify; 11 | 12 | var appPath = path.join(__dirname, '..'); 13 | 14 | module.exports = { 15 | 'test should run application': function (done) { 16 | appRunner 17 | .run(appPath, function () { 18 | verify($('#led-r')).turnOn(); 19 | }) 20 | .end(function () { 21 | verify($('#led-r')).turnOff(); 22 | done(); 23 | }); 24 | } 25 | }; 26 | 27 | test.run(module.exports); 28 | -------------------------------------------------------------------------------- /thief-alarm/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | -------------------------------------------------------------------------------- /thief-alarm/README.md: -------------------------------------------------------------------------------- 1 | # thief alarm 2 | 3 | ## 介绍 4 | 5 | 当你离开家的时候,你可以打开这套系统,如果红外传感器检测到有人体信号,蜂鸣器发出声音警报 6 | 7 | ## 硬件要求 8 | 9 | 1.[Infrared Induction Module(Model:HC-SR501)](https://rap.ruff.io/devices/HC-SR501) 10 | 11 | 2.[Buzzer(Model:FC-49)](https://rap.ruff.io/raps/buzzer-gpio) 12 | 13 | 3.[Ruff开发板](https://shop154924108.taobao.com/) 14 | 15 | 4.杜邦线等 16 | 17 | ## 软件需求 18 | 19 | 1.[Ruff SDK](https://ruff.io/zh-cn/docs/download.html) 20 | 21 | 2.[Ruff 固件](https://ruff.io/zh-cn/docs/download.html) 22 | 23 | 3.[软件包仓库](https://rap.ruff.io/) 24 | 25 | ## 参考 26 | 27 | Ruff应用开发请参见官网的[Getting started](https://ruff.io/zh-cn/docs/getting-started.html) -------------------------------------------------------------------------------- /thief-alarm/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "devices": [ 3 | { 4 | "id": "infrared-induction", 5 | "model": "HC-SR501", 6 | "driver": "hc-sr501", 7 | "power": { 8 | "name": "vcc", 9 | "voltage": "5v" 10 | }, 11 | "inputs": { 12 | "gpio": { 13 | "type": "gpio", 14 | "args": { 15 | "direction": "in", 16 | "edge": "both" 17 | } 18 | } 19 | } 20 | }, 21 | { 22 | "id": "buzzer", 23 | "model": "FC-49", 24 | "driver": "buzzer-gpio", 25 | "inputs": { 26 | "gpio": { 27 | "type": "gpio", 28 | "args": { 29 | "direction": "out", 30 | "level": "low" 31 | } 32 | } 33 | } 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /thief-alarm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "thief-alarm", 3 | "version": "0.1.0", 4 | "description": "a thief alarm system", 5 | "author": "ccccly", 6 | "main": "src/index.js", 7 | "ruff": { 8 | "boards": { 9 | "ruff-mbd-v1": "^4.1.2", 10 | "*": "*" 11 | }, 12 | "dependencies": { 13 | "hc-sr501": "^2.0.3", 14 | "buzzer-gpio": "^0.2.3" 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:0.2.3 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "MH-FMG", 4 | "FC-49" 5 | ], 6 | "inputs": { 7 | "gpio": { 8 | "type": "gpio", 9 | "args": { 10 | "direction": "out", 11 | "level": "low" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/ruff_modules/t/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.7 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/ruff_modules/t/bld/utils.d.ts: -------------------------------------------------------------------------------- 1 | export declare function stylize(text: string, styleName: string): string; 2 | export declare function indent(text: string, level: number): string; 3 | export declare function delay(timeout: number): Promise; 4 | export declare function delay(timeout: number, value: T): Promise; 5 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/ruff_modules/t/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "t", 3 | "version": "0.1.7", 4 | "description": "Testing Framework for Ruff.", 5 | "author": "vilicvane", 6 | "license": "MIT", 7 | "main": "bld/index.js", 8 | "typings": "bld/index.d.ts", 9 | "scripts": { 10 | "build": "tsc", 11 | "incremental-build": "tsc -w" 12 | }, 13 | "devDependencies": { 14 | "source-map-support": "latest", 15 | "typescript": "latest" 16 | }, 17 | "ruff": { 18 | "dependencies": { 19 | "promise": "^0.1.2" 20 | }, 21 | "devDependencies": {} 22 | } 23 | } -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/ruff_modules/t/ruff_modules/promise/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.2 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/ruff_modules/t/ruff_modules/promise/README.md: -------------------------------------------------------------------------------- 1 | 2 | Promises/A+ logo 3 | 4 | 5 | ES6 Promise based on [ThenFail](https://github.com/vilic/thenfail) v0.4. 6 | 7 | GitHub 8 | 9 | ## Install 10 | 11 | ```sh 12 | rap install promise 13 | ``` 14 | 15 | ## Usage 16 | 17 | By requiring this module, it will try to attach `Promise` constructor to `global` if it's not present. 18 | 19 | ```js 20 | require('promise'); 21 | 22 | var promise = new Promise(function (resolve) { 23 | setTimeout(function () { 24 | resolve('Hello, Ruff!'); 25 | }); 26 | }); 27 | 28 | promise.then(function (message) { 29 | console.log(message); 30 | }); 31 | ``` 32 | 33 | ## License 34 | 35 | MIT License. 36 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/ruff_modules/t/ruff_modules/promise/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "promise", 3 | "version": "0.1.2", 4 | "description": "ES6 Promise based on ThenFail 0.4", 5 | "author": "vilicvane", 6 | "license": "MIT", 7 | "main": "bld/index.js", 8 | "typings": "bld/index.d.ts", 9 | "scripts": { 10 | "build": "tsc", 11 | "incremental-build": "tsc -w", 12 | "aplus": "promises-aplus-tests test/aplus/adapter.js", 13 | "test": "mocha && npm run aplus", 14 | "quick-test": "mocha" 15 | }, 16 | "devDependencies": { 17 | "chai": "latest", 18 | "chai-as-promised": "latest", 19 | "mocha": "latest", 20 | "promises-aplus-tests": "latest", 21 | "source-map-support": "latest", 22 | "typescript": "latest" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/ruff_modules/t/t.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace T { 2 | interface Scope { 3 | timeout: number; 4 | describe(description: string, handler: ScopeHandler): void; 5 | it(description: string, handler: GeneralHandler): void; 6 | before(handler: GeneralHandler): void; 7 | beforeEach(handler: GeneralHandler): void; 8 | after(handler: GeneralHandler): void; 9 | afterEach(handler: GeneralHandler): void; 10 | } 11 | 12 | type DoneCallback = (error?: any) => void; 13 | type ScopeHandler = (scope: Scope) => void; 14 | type GeneralHandler = (done?: DoneCallback) => Promise | void; 15 | } 16 | 17 | declare function describe(description: string, handler: T.ScopeHandler): void; 18 | declare function it(description: string, handler: T.GeneralHandler): void; 19 | declare function before(handler: T.GeneralHandler): void; 20 | declare function beforeEach(handler: T.GeneralHandler): void; 21 | declare function after(handler: T.GeneralHandler): void; 22 | declare function afterEach(handler: T.GeneralHandler): void; 23 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/buzzer-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var Level = require('gpio').Level; 9 | var driver = require('ruff-driver'); 10 | 11 | module.exports = driver({ 12 | attach: function (inputs) { 13 | this._gpio = inputs['gpio']; 14 | }, 15 | exports: { 16 | turnOn: function (callback) { 17 | this._gpio.write(Level.high, callback); 18 | }, 19 | turnOff: function (callback) { 20 | this._gpio.write(Level.low, callback); 21 | }, 22 | isOn: function (callback) { 23 | var readCallback = callback && function (error, value) { 24 | if (error) { 25 | callback(error); 26 | return; 27 | } 28 | 29 | callback(undefined, !!value); 30 | }; 31 | 32 | this._gpio.read(readCallback); 33 | } 34 | } 35 | }); 36 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/hc-sr501/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.3 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/hc-sr501/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "HC-SR501" 4 | ], 5 | "power": { 6 | "name": "vcc", 7 | "voltage": "5v" 8 | }, 9 | "inputs": { 10 | "gpio": { 11 | "type": "gpio", 12 | "args": { 13 | "direction": "in", 14 | "edge": "both" 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/hc-sr501/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hc-sr501", 3 | "version": "2.0.3", 4 | "description": "Driver for HC-SR501 motion sensor.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/hc-sr501.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/hc-sr501/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/hc-sr501", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.7" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/hc-sr501/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Level = require('gpio').Level; 4 | var driver = require('ruff-driver'); 5 | 6 | var SensorState = { 7 | absence: Level.low, 8 | presence: Level.high 9 | }; 10 | 11 | module.exports = driver({ 12 | attach: function (inputs) { 13 | var that = this; 14 | 15 | this._gpio = inputs['gpio']; 16 | 17 | this._gpio.on('interrupt', function (state) { 18 | if (state === this._state) { 19 | return; 20 | } 21 | 22 | this._state = state; 23 | 24 | if (state === SensorState.presence) { 25 | that.emit('presence'); 26 | } else { 27 | that.emit('absence'); 28 | } 29 | }); 30 | } 31 | }); 32 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-mbd-v1", 3 | "version": "4.1.2", 4 | "description": "Ruff Main Board V1 Metadata", 5 | "author": "Nanchao Inc.", 6 | "ruff": { 7 | "dependencies": { 8 | "led-gpio": "^3.0.0", 9 | "button-gpio": "^2.0.0", 10 | "pca9685": "^2.0.0", 11 | "ltc2309": "^2.0.0", 12 | "mcp23017": "^2.0.0", 13 | "ruff-v1-sys-usb": "^0.1.1" 14 | } 15 | }, 16 | "engines": { 17 | "ruff": ">=1.4.0 <1.6.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "button-gpio", 3 | "version": "2.0.4", 4 | "description": "The driver for buttons with GPIO interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/button-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/button-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/button-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | 10 | var ButtonState = { 11 | pushed: 0, 12 | released: 1 13 | }; 14 | 15 | var prototype = {}; 16 | 17 | Object.defineProperties(prototype, { 18 | pushed: { 19 | get: function () { 20 | return this._state === ButtonState.pushed; 21 | } 22 | }, 23 | released: { 24 | get: function () { 25 | return this._state === ButtonState.released; 26 | } 27 | } 28 | }); 29 | 30 | module.exports = driver({ 31 | attach: function (inputs) { 32 | var that = this; 33 | 34 | this._gpio = inputs['gpio']; 35 | this._state = ButtonState.released; 36 | 37 | this._gpio.on('interrupt', function (state) { 38 | if (that._state === state) { 39 | return; 40 | } 41 | 42 | that._state = state; 43 | 44 | if (state === ButtonState.pushed) { 45 | that.emit('push'); 46 | } else { 47 | that.emit('release'); 48 | } 49 | }); 50 | }, 51 | exports: prototype 52 | }); 53 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^3.0.0 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "led-gpio" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type" : "gpio", 8 | "args" : { 9 | "direction": "out", 10 | "level": "low", 11 | "activeLow": { 12 | "type": "boolean", 13 | "default": false 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "led-gpio", 3 | "version": "3.0.1", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/led-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/led-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/led-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "voltageReference": { 5 | "type": "number", 6 | "default": 5 7 | } 8 | }, 9 | "inputs": { 10 | "i2c": { 11 | "type": "i2c", 12 | "args": { 13 | "address": 8 14 | } 15 | } 16 | }, 17 | "outputs": { 18 | "an-0": { 19 | "type": "adc" 20 | }, 21 | "an-1": { 22 | "type": "adc" 23 | }, 24 | "an-2": { 25 | "type": "adc" 26 | }, 27 | "an-3": { 28 | "type": "adc" 29 | }, 30 | "an-4": { 31 | "type": "adc" 32 | }, 33 | "an-5": { 34 | "type": "adc" 35 | }, 36 | "an-6": { 37 | "type": "adc" 38 | }, 39 | "an-7": { 40 | "type": "adc" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ltc2309", 3 | "version": "2.0.3", 4 | "description": "LTC2309 I2C-ADC Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ltc2309.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ltc2309/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ltc2309", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mcp23017", 3 | "version": "2.0.3", 4 | "description": "MCP23017 I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/mcp23017.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/mcp23017/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/mcp23017", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "frequency": { 5 | "type": "number" 6 | } 7 | }, 8 | "inputs": { 9 | "i2c": { 10 | "type": "i2c", 11 | "args": { 12 | "address": { 13 | "type": "number", 14 | "default": 85 15 | } 16 | } 17 | } 18 | }, 19 | "outputs": { 20 | "pwm-0": { 21 | "type": "pwm" 22 | }, 23 | "pwm-1": { 24 | "type": "pwm" 25 | }, 26 | "pwm-2": { 27 | "type": "pwm" 28 | }, 29 | "pwm-3": { 30 | "type": "pwm" 31 | }, 32 | "pwm-4": { 33 | "type": "pwm" 34 | }, 35 | "pwm-5": { 36 | "type": "pwm" 37 | }, 38 | "pwm-6": { 39 | "type": "pwm" 40 | }, 41 | "pwm-7": { 42 | "type": "pwm" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pca9685", 3 | "version": "2.0.3", 4 | "description": "PCA9685 (I2C-PWM) Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pca9685.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pca9685/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pca9685", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | 10 | !.rapignore 11 | !src/** 12 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.1 -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | ], 4 | "power": null, 5 | "ground": null 6 | } 7 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-v1-sys-usb", 3 | "version": "0.1.2", 4 | "description": "Sys-usb managers the `mount` and `unmount` behaviour of USB devices.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ruff-v1-sys-usb.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ruff-v1-sys-usb/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ruff-v1-sys-usb", 15 | "keywords": [ 16 | "ruff", 17 | "driver", 18 | "usb" 19 | ], 20 | "main": "src/index.js", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "^4.1.0" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint *.js", 31 | "pretest": "npm run lint", 32 | "test": "ruff test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /thief-alarm/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/src/10-ruff-usb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | notify () { 3 | echo $msg | socat - udp-sendto:127.0.0.1:9999 4 | } 5 | 6 | case "$ACTION" in 7 | "add") 8 | msg="{\"action\":\"mount\",\"devPath\":\"/sys$DEVPATH\"}" 9 | notify $msg 10 | ;; 11 | "remove") 12 | msg="{\"action\":\"unmount\",\"devPath\":\"/sys$DEVPATH\"}" 13 | notify $msg 14 | ;; 15 | esac 16 | -------------------------------------------------------------------------------- /thief-alarm/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /** 红外人体感应器 */ 3 | var infraredSensor; 4 | /** 蜂鸣器 */ 5 | var buzzer; 6 | 7 | $.ready(function (error) { 8 | if (error) { 9 | console.log(error); 10 | return; 11 | } 12 | 13 | infraredSensor = $('#infrared-induction'); 14 | buzzer = $('#buzzer'); 15 | 16 | infraredSensor.on('presence', function () { 17 | //如果红外人体感应检测到人,则蜂鸣器响起 18 | buzzer.turnOn(function (error) { 19 | if (error) { 20 | console.error(error); 21 | return; 22 | } 23 | console.log('buzzer turned on'); 24 | }); 25 | }); 26 | 27 | infraredSensor.on('absence', function () { 28 | //如果红外人体感应没有检测到人,则蜂鸣器不再响起 29 | buzzer.turnOff(function (error) { 30 | if (error) { 31 | console.error(error); 32 | return; 33 | } 34 | console.log('buzzer turned off'); 35 | }); 36 | }); 37 | }); 38 | 39 | $.end(function () { 40 | buzzer.turnOff(function (error) { 41 | if (error) { 42 | console.error(error); 43 | return; 44 | } 45 | console.log('app stoped, buzzer turned off'); 46 | }); 47 | }); 48 | -------------------------------------------------------------------------------- /thief-alarm/test/test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var path = require('path'); 5 | var test = require('test'); 6 | 7 | var appRunner = require('ruff-app-runner'); 8 | var mock = require('ruff-mock'); 9 | 10 | var verify = mock.verify; 11 | 12 | var appPath = path.join(__dirname, '..'); 13 | 14 | module.exports = { 15 | 'test should run application': function (done) { 16 | appRunner 17 | .run(appPath, function () { 18 | verify($('#led-r')).turnOn(); 19 | }) 20 | .end(function () { 21 | verify($('#led-r')).turnOff(); 22 | done(); 23 | }); 24 | } 25 | }; 26 | 27 | test.run(module.exports); 28 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/README.md: -------------------------------------------------------------------------------- 1 | # Vibration to rgb led 2 | 3 | ## 介绍 4 | 5 | 看过小孩子脚上那Bling Bling的鞋吗?你肯定见过的,可爱的小孩子脚每 6 | 踩一下地,鞋子就亮一下 7 | 8 | 这个项目的灵感就来源于此,每当震动传感器接收到震动信号时, 9 | LED灯就会交替颜色的发亮 10 | 11 | ## 硬件要求 12 | 13 | 1.[RGB LED Module(Model:KY-016)](https://rap.ruff.io/devices/KY-016) 14 | 15 | 2.[Vibrating Sensor(Model:SW-1801P)](https://rap.ruff.io/devices/SW-1801P) 16 | 17 | 3.[Ruff开发板](https://shop154924108.taobao.com/) 18 | 19 | 4.杜邦线等 20 | 21 | ## 软件需求 22 | 23 | 1.[Ruff SDK](https://ruff.io/zh-cn/docs/download.html) 24 | 25 | 2.[Ruff 固件](https://ruff.io/zh-cn/docs/download.html) 26 | 27 | 3.[软件包仓库](https://rap.ruff.io/) 28 | 29 | ## 参考 30 | 31 | Ruff应用开发请参见官网的[Getting started](https://ruff.io/zh-cn/docs/getting-started.html) -------------------------------------------------------------------------------- /vibration-to-rgb-led/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "devices": [ 3 | { 4 | "id": "led", 5 | "model": "KY-016", 6 | "driver": "ky-016", 7 | "inputs": { 8 | "pwm-r": { 9 | "type": "pwm", 10 | "args": { 11 | "frequency": 800 12 | } 13 | }, 14 | "pwm-g": { 15 | "type": "pwm", 16 | "args": { 17 | "frequency": 800 18 | } 19 | }, 20 | "pwm-b": { 21 | "type": "pwm", 22 | "args": { 23 | "frequency": 800 24 | } 25 | } 26 | } 27 | }, 28 | { 29 | "id": "vibration-sensor", 30 | "model": "SW-1801P", 31 | "driver": "sw-1801p", 32 | "inputs": { 33 | "gpio": { 34 | "type": "gpio", 35 | "args": { 36 | "direction": "in", 37 | "edge": "falling" 38 | } 39 | } 40 | } 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /vibration-to-rgb-led/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vibration-to-rgb-led", 3 | "version": "0.1.0", 4 | "description": "this project will transform vibration into rgb led light", 5 | "author": "ccccly", 6 | "main": "src/index.js", 7 | "ruff": { 8 | "boards": { 9 | "ruff-mbd-v1": "^4.1.2", 10 | "*": "*" 11 | }, 12 | "dependencies": { 13 | "ky-016": "^2.0.3", 14 | "sw-1801p": "^1.0.2" 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ky-016/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.3 -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ky-016/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "KY-016" 4 | ], 5 | "inputs": { 6 | "pwm-r": { 7 | "type": "pwm", 8 | "args": { 9 | "frequency": 800 10 | } 11 | }, 12 | "pwm-g": { 13 | "type": "pwm", 14 | "args": { 15 | "frequency": 800 16 | } 17 | }, 18 | "pwm-b": { 19 | "type": "pwm", 20 | "args": { 21 | "frequency": 800 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ky-016/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ky-016", 3 | "version": "2.0.3", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ky-016.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ky-016/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ky-016", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-mbd-v1", 3 | "version": "4.1.2", 4 | "description": "Ruff Main Board V1 Metadata", 5 | "author": "Nanchao Inc.", 6 | "ruff": { 7 | "dependencies": { 8 | "led-gpio": "^3.0.0", 9 | "button-gpio": "^2.0.0", 10 | "pca9685": "^2.0.0", 11 | "ltc2309": "^2.0.0", 12 | "mcp23017": "^2.0.0", 13 | "ruff-v1-sys-usb": "^0.1.1" 14 | } 15 | }, 16 | "engines": { 17 | "ruff": ">=1.4.0 <1.6.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^3.0.0 -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "led-gpio" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type" : "gpio", 8 | "args" : { 9 | "direction": "out", 10 | "level": "low", 11 | "activeLow": { 12 | "type": "boolean", 13 | "default": false 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "led-gpio", 3 | "version": "3.0.1", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/led-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/led-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/led-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "voltageReference": { 5 | "type": "number", 6 | "default": 5 7 | } 8 | }, 9 | "inputs": { 10 | "i2c": { 11 | "type": "i2c", 12 | "args": { 13 | "address": 8 14 | } 15 | } 16 | }, 17 | "outputs": { 18 | "an-0": { 19 | "type": "adc" 20 | }, 21 | "an-1": { 22 | "type": "adc" 23 | }, 24 | "an-2": { 25 | "type": "adc" 26 | }, 27 | "an-3": { 28 | "type": "adc" 29 | }, 30 | "an-4": { 31 | "type": "adc" 32 | }, 33 | "an-5": { 34 | "type": "adc" 35 | }, 36 | "an-6": { 37 | "type": "adc" 38 | }, 39 | "an-7": { 40 | "type": "adc" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ltc2309", 3 | "version": "2.0.3", 4 | "description": "LTC2309 I2C-ADC Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ltc2309.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ltc2309/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ltc2309", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mcp23017", 3 | "version": "2.0.3", 4 | "description": "MCP23017 I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/mcp23017.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/mcp23017/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/mcp23017", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "frequency": { 5 | "type": "number" 6 | } 7 | }, 8 | "inputs": { 9 | "i2c": { 10 | "type": "i2c", 11 | "args": { 12 | "address": { 13 | "type": "number", 14 | "default": 85 15 | } 16 | } 17 | } 18 | }, 19 | "outputs": { 20 | "pwm-0": { 21 | "type": "pwm" 22 | }, 23 | "pwm-1": { 24 | "type": "pwm" 25 | }, 26 | "pwm-2": { 27 | "type": "pwm" 28 | }, 29 | "pwm-3": { 30 | "type": "pwm" 31 | }, 32 | "pwm-4": { 33 | "type": "pwm" 34 | }, 35 | "pwm-5": { 36 | "type": "pwm" 37 | }, 38 | "pwm-6": { 39 | "type": "pwm" 40 | }, 41 | "pwm-7": { 42 | "type": "pwm" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pca9685", 3 | "version": "2.0.3", 4 | "description": "PCA9685 (I2C-PWM) Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pca9685.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pca9685/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pca9685", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | 10 | !.rapignore 11 | !src/** 12 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.1 -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | ], 4 | "power": null, 5 | "ground": null 6 | } 7 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-v1-sys-usb", 3 | "version": "0.1.2", 4 | "description": "Sys-usb managers the `mount` and `unmount` behaviour of USB devices.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ruff-v1-sys-usb.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ruff-v1-sys-usb/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ruff-v1-sys-usb", 15 | "keywords": [ 16 | "ruff", 17 | "driver", 18 | "usb" 19 | ], 20 | "main": "src/index.js", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "^4.1.0" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint *.js", 31 | "pretest": "npm run lint", 32 | "test": "ruff test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/src/10-ruff-usb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | notify () { 3 | echo $msg | socat - udp-sendto:127.0.0.1:9999 4 | } 5 | 6 | case "$ACTION" in 7 | "add") 8 | msg="{\"action\":\"mount\",\"devPath\":\"/sys$DEVPATH\"}" 9 | notify $msg 10 | ;; 11 | "remove") 12 | msg="{\"action\":\"unmount\",\"devPath\":\"/sys$DEVPATH\"}" 13 | notify $msg 14 | ;; 15 | esac 16 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/sw-1801p/.registry: -------------------------------------------------------------------------------- 1 | rap:1.0.2 -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/sw-1801p/README.md: -------------------------------------------------------------------------------- 1 | # Vibrating Sensor Driver 2 | 3 | ## Description 4 | This is the driver for vibrating sensor with GPIO interface e.g. SW-1801P. 5 | 6 | This driver will emit event when device shocks. 7 | 8 | ## Support Devices 9 | 10 | [SW-1801P](http://rap.ruff.io/devices/SW-1801P) 11 | 12 | ## Usage 13 | 14 | * Watch `shock` events 15 | 16 | ```javascript 17 | $('#vibrating').on('shock', function() { 18 | console.log('shocking'); 19 | }); 20 | ``` 21 | 22 | ## API 23 | ### Events 24 | * **shock** 25 | Emitted when shocking 26 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/sw-1801p/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": ["SW-1801P"], 3 | "inputs": { 4 | "gpio": { 5 | "type": "gpio", 6 | "args": { 7 | "direction": "in", 8 | "edge": "falling" 9 | } 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/sw-1801p/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sw-1801p", 3 | "version": "1.0.3", 4 | "description": "Vibrating sensor driver", 5 | "author": "ruff" 6 | } -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/sw-1801p/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var driver = require('ruff-driver'); 4 | 5 | module.exports = driver({ 6 | 7 | attach: function (inputs) { 8 | var _this = this; 9 | this._gpio = inputs['gpio']; 10 | 11 | this._gpio.on('interrupt', function () { 12 | _this.emit('shock'); 13 | }); 14 | }, 15 | 16 | events: { 17 | shock: 'message when device shocks' 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /vibration-to-rgb-led/ruff_modules/sw-1801p/test/sw-1801p_test.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var path = require('path'); 3 | var when = require('ruff-mock').when; 4 | 5 | var driverPath = path.join(__dirname, '..'); 6 | var runner = require('ruff-driver-runner'); 7 | 8 | exports['test should emit shock when read 1'] = function() { 9 | var run = false; 10 | 11 | runner.run(driverPath, function(ky002, context) { 12 | ky002.on('shock', function() { 13 | run = true; 14 | }); 15 | 16 | var gpio = context.arg('gpio'); 17 | gpio.emit('interrupt'); 18 | assert(run); 19 | }); 20 | }; 21 | 22 | require('test').run(exports); -------------------------------------------------------------------------------- /vibration-to-rgb-led/test/test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var path = require('path'); 5 | var test = require('test'); 6 | 7 | var appRunner = require('ruff-app-runner'); 8 | var mock = require('ruff-mock'); 9 | 10 | var verify = mock.verify; 11 | 12 | var appPath = path.join(__dirname, '..'); 13 | 14 | module.exports = { 15 | 'test should run application': function (done) { 16 | appRunner 17 | .run(appPath, function () { 18 | verify($('#led-r')).turnOn(); 19 | }) 20 | .end(function () { 21 | verify($('#led-r')).turnOff(); 22 | done(); 23 | }); 24 | } 25 | }; 26 | 27 | test.run(module.exports); 28 | -------------------------------------------------------------------------------- /weather-station/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | -------------------------------------------------------------------------------- /weather-station/README.md: -------------------------------------------------------------------------------- 1 | # weather-station 2 | 3 | ## 介绍 4 | 5 | 想要办公室或家维持在一定的舒适的温度和湿度范围内吗?这个温度湿度监测系统可以帮你 6 | 7 | 这个案例利用温湿度传感器从环境中换取温度和湿度数据,如果温度和湿度不在人体舒适的 8 | 范围内,则通过相应的继电器控制空调或加湿器的开关,从而达到控制环境温湿度的目的。 9 | 10 | 这个项目中,我们默认人体舒适的温度范围为20℃-25℃,舒适的湿度范围为40%RH-70%RH(相对湿度) 11 | 12 | ## 硬件要求 13 | 14 | 1.[LCD Display Module(Model:LCD1602-02](https://rap.ruff.io/raps/lcd1602-pcf8574a-hd44780) 15 | 16 | 2.[Temperature Humidity Sensor(Model:DHT11)](https://rap.ruff.io/devices/DHT11) 17 | 18 | 3.[Relay Module(Model:RELAY-1C)](https://rap.ruff.io/devices/RELAY-1C)*2 19 | 20 | 3.[Ruff开发板](https://shop154924108.taobao.com/) 21 | 22 | 4.杜邦线等 23 | 24 | ## 软件需求 25 | 26 | 1.[Ruff SDK](https://ruff.io/zh-cn/docs/download.html) 27 | 28 | 2.[Ruff 固件](https://ruff.io/zh-cn/docs/download.html) 29 | 30 | 3.[软件包仓库](https://rap.ruff.io/) 31 | 32 | ## 参考 33 | 34 | Ruff应用开发请参见官网的[Getting started](https://ruff.io/zh-cn/docs/getting-started.html) -------------------------------------------------------------------------------- /weather-station/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "weather-station", 3 | "version": "0.1.0", 4 | "description": "a weather station leverage humidity and temperature sensor", 5 | "author": "ccccly", 6 | "main": "src/index.js", 7 | "ruff": { 8 | "boards": { 9 | "ruff-mbd-v1": "^4.1.2", 10 | "*": "*" 11 | }, 12 | "dependencies": { 13 | "dht11": "^0.3.3", 14 | "lcd1602-pcf8574a-hd44780": "^0.2.5", 15 | "relay-1c": "^2.0.3" 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /weather-station/ruff_modules/dht11/.registry: -------------------------------------------------------------------------------- 1 | rap:0.3.3 -------------------------------------------------------------------------------- /weather-station/ruff_modules/dht11/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "DHT11" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "reserve": "gpio-18/gpio" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/dht11/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dht11", 3 | "version": "0.3.3", 4 | "description": "Temperature and humidity sensor with a calibrated digital signal output.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/dht11.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/dht11/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/dht11", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "*" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint .", 31 | "pretest": "npm run lint", 32 | "test": "ruff ./test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/lcd1602-pcf8574a-hd44780/.registry: -------------------------------------------------------------------------------- 1 | rap:0.2.5 -------------------------------------------------------------------------------- /weather-station/ruff_modules/lcd1602-pcf8574a-hd44780/layout.json: -------------------------------------------------------------------------------- 1 | { 2 | "mapping": { 3 | "hd44780/rs": "pcf8574/gpio-0", 4 | "hd44780/rw": "pcf8574/gpio-1", 5 | "hd44780/e": "pcf8574/gpio-2", 6 | "hd44780/p3": "pcf8574/gpio-3", 7 | "hd44780/d4": "pcf8574/gpio-4", 8 | "hd44780/d5": "pcf8574/gpio-5", 9 | "hd44780/d6": "pcf8574/gpio-6", 10 | "hd44780/d7": "pcf8574/gpio-7" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/lcd1602-pcf8574a-hd44780/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lcd1602-pcf8574a-hd44780", 3 | "version": "0.2.5", 4 | "engines": { 5 | "ruff": ">=1.2.0 <1.6.0" 6 | }, 7 | "ruff": { 8 | "dependencies": { 9 | "hd44780": "^0.2.1", 10 | "pcf8574": "^2.0.1" 11 | }, 12 | "devDependencies": {} 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/hd44780/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.2.1 -------------------------------------------------------------------------------- /weather-station/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/hd44780/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hd44780", 3 | "version": "0.2.3", 4 | "description": "HD44780 LCD Controller Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/hd44780.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/hd44780/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/hd44780", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.1 -------------------------------------------------------------------------------- /weather-station/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "inputs": { 4 | "i2c": { 5 | "type": "i2c", 6 | "args": { 7 | "address": { 8 | "type": "number", 9 | "default": 39 10 | } 11 | } 12 | } 13 | }, 14 | "outputs": { 15 | "gpio-0": { 16 | "type": "gpio" 17 | }, 18 | "gpio-1": { 19 | "type": "gpio" 20 | }, 21 | "gpio-2": { 22 | "type": "gpio" 23 | }, 24 | "gpio-3": { 25 | "type": "gpio" 26 | }, 27 | "gpio-4": { 28 | "type": "gpio" 29 | }, 30 | "gpio-5": { 31 | "type": "gpio" 32 | }, 33 | "gpio-6": { 34 | "type": "gpio" 35 | }, 36 | "gpio-7": { 37 | "type": "gpio" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/lcd1602-pcf8574a-hd44780/ruff_modules/pcf8574/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pcf8574", 3 | "version": "2.0.3", 4 | "description": "PCF8574/PCF8574A I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pcf8574.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pcf8574/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pcf8574", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/relay-1c/.registry: -------------------------------------------------------------------------------- 1 | rap:2.0.3 -------------------------------------------------------------------------------- /weather-station/ruff_modules/relay-1c/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "RELAY-1C" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "out", 10 | "level": "high" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/relay-1c/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "relay-1c", 3 | "version": "2.0.3", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/relay-1c.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/relay-1c/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/relay-1c", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/relay-1c/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | var Level = require('gpio').Level; 10 | 11 | module.exports = driver({ 12 | attach: function (inputs) { 13 | this._gpio = inputs['gpio']; 14 | }, 15 | exports: { 16 | turnOn: function (callback) { 17 | this._gpio.write(Level.low, callback); 18 | }, 19 | 20 | turnOff: function (callback) { 21 | this._gpio.write(Level.high, callback); 22 | }, 23 | 24 | isOn: function (callback) { 25 | var readCallback = callback && function (error, value) { 26 | if (error) { 27 | callback(error); 28 | return; 29 | } 30 | 31 | callback(undefined, !value); 32 | }; 33 | 34 | this._gpio.read(readCallback); 35 | } 36 | } 37 | }); 38 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/.registry: -------------------------------------------------------------------------------- 1 | rap:* -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-mbd-v1", 3 | "version": "4.1.2", 4 | "description": "Ruff Main Board V1 Metadata", 5 | "author": "Nanchao Inc.", 6 | "ruff": { 7 | "dependencies": { 8 | "led-gpio": "^3.0.0", 9 | "button-gpio": "^2.0.0", 10 | "pca9685": "^2.0.0", 11 | "ltc2309": "^2.0.0", 12 | "mcp23017": "^2.0.0", 13 | "ruff-v1-sys-usb": "^0.1.1" 14 | } 15 | }, 16 | "engines": { 17 | "ruff": ">=1.4.0 <1.6.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "CK002" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type": "gpio", 8 | "args": { 9 | "direction": "in", 10 | "edge": "both" 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "button-gpio", 3 | "version": "2.0.4", 4 | "description": "The driver for buttons with GPIO interface.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/button-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/button-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/button-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/button-gpio/src/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright (c) 2016 Nanchao Inc. 3 | * All rights reserved. 4 | */ 5 | 6 | 'use strict'; 7 | 8 | var driver = require('ruff-driver'); 9 | 10 | var ButtonState = { 11 | pushed: 0, 12 | released: 1 13 | }; 14 | 15 | var prototype = {}; 16 | 17 | Object.defineProperties(prototype, { 18 | pushed: { 19 | get: function () { 20 | return this._state === ButtonState.pushed; 21 | } 22 | }, 23 | released: { 24 | get: function () { 25 | return this._state === ButtonState.released; 26 | } 27 | } 28 | }); 29 | 30 | module.exports = driver({ 31 | attach: function (inputs) { 32 | var that = this; 33 | 34 | this._gpio = inputs['gpio']; 35 | this._state = ButtonState.released; 36 | 37 | this._gpio.on('interrupt', function (state) { 38 | if (that._state === state) { 39 | return; 40 | } 41 | 42 | that._state = state; 43 | 44 | if (state === ButtonState.pushed) { 45 | that.emit('push'); 46 | } else { 47 | that.emit('release'); 48 | } 49 | }); 50 | }, 51 | exports: prototype 52 | }); 53 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/.registry: -------------------------------------------------------------------------------- 1 | rap:^3.0.0 -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "led-gpio" 4 | ], 5 | "inputs": { 6 | "gpio": { 7 | "type" : "gpio", 8 | "args" : { 9 | "direction": "out", 10 | "level": "low", 11 | "activeLow": { 12 | "type": "boolean", 13 | "default": false 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/led-gpio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "led-gpio", 3 | "version": "3.0.1", 4 | "description": "Driver description.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/led-gpio.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/led-gpio/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/led-gpio", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "voltageReference": { 5 | "type": "number", 6 | "default": 5 7 | } 8 | }, 9 | "inputs": { 10 | "i2c": { 11 | "type": "i2c", 12 | "args": { 13 | "address": 8 14 | } 15 | } 16 | }, 17 | "outputs": { 18 | "an-0": { 19 | "type": "adc" 20 | }, 21 | "an-1": { 22 | "type": "adc" 23 | }, 24 | "an-2": { 25 | "type": "adc" 26 | }, 27 | "an-3": { 28 | "type": "adc" 29 | }, 30 | "an-4": { 31 | "type": "adc" 32 | }, 33 | "an-5": { 34 | "type": "adc" 35 | }, 36 | "an-6": { 37 | "type": "adc" 38 | }, 39 | "an-7": { 40 | "type": "adc" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/ltc2309/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ltc2309", 3 | "version": "2.0.3", 4 | "description": "LTC2309 I2C-ADC Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ltc2309.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ltc2309/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ltc2309", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "device-typings": "typings/device.d.ts", 21 | "engines": { 22 | "ruff": ">=1.2.0 <1.6.0" 23 | }, 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/mcp23017/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mcp23017", 3 | "version": "2.0.3", 4 | "description": "MCP23017 I2C-GPIO device driver.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/mcp23017.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/mcp23017/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/mcp23017", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "scripts": { 24 | "install-sdk": "rvm install --local", 25 | "install-rap-dependencies": "rap install", 26 | "lint": "eslint .", 27 | "pretest": "npm run lint", 28 | "test": "ruff ./test/test.js" 29 | }, 30 | "devDependencies": { 31 | "eslint": "^2.11.1", 32 | "ruff-standard": "^0.1.4", 33 | "rvm": "^0.3.2" 34 | }, 35 | "ruff": { 36 | "devDependencies": { 37 | "t": "^0.1.6" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/.registry: -------------------------------------------------------------------------------- 1 | rap:^2.0.0 -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [], 3 | "args": { 4 | "frequency": { 5 | "type": "number" 6 | } 7 | }, 8 | "inputs": { 9 | "i2c": { 10 | "type": "i2c", 11 | "args": { 12 | "address": { 13 | "type": "number", 14 | "default": 85 15 | } 16 | } 17 | } 18 | }, 19 | "outputs": { 20 | "pwm-0": { 21 | "type": "pwm" 22 | }, 23 | "pwm-1": { 24 | "type": "pwm" 25 | }, 26 | "pwm-2": { 27 | "type": "pwm" 28 | }, 29 | "pwm-3": { 30 | "type": "pwm" 31 | }, 32 | "pwm-4": { 33 | "type": "pwm" 34 | }, 35 | "pwm-5": { 36 | "type": "pwm" 37 | }, 38 | "pwm-6": { 39 | "type": "pwm" 40 | }, 41 | "pwm-7": { 42 | "type": "pwm" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/pca9685/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pca9685", 3 | "version": "2.0.3", 4 | "description": "PCA9685 (I2C-PWM) Driver for Ruff.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/pca9685.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/pca9685/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/pca9685", 15 | "keywords": [ 16 | "ruff", 17 | "driver" 18 | ], 19 | "main": "src/index.js", 20 | "engines": { 21 | "ruff": ">=1.2.0 <1.6.0" 22 | }, 23 | "device-typings": "typings/device.d.ts", 24 | "scripts": { 25 | "install-sdk": "rvm install --local", 26 | "install-rap-dependencies": "rap install", 27 | "lint": "eslint .", 28 | "pretest": "npm run lint", 29 | "test": "ruff ./test/test.js" 30 | }, 31 | "devDependencies": { 32 | "eslint": "^2.11.1", 33 | "ruff-standard": "^0.1.4", 34 | "rvm": "^0.3.2" 35 | }, 36 | "ruff": { 37 | "devDependencies": { 38 | "t": "^0.1.6" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.rapignore: -------------------------------------------------------------------------------- 1 | # See https://github.com/isaacs/node-glob 2 | 3 | test/** 4 | 5 | *.tar 6 | *.zip 7 | 8 | .* 9 | 10 | !.rapignore 11 | !src/** 12 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/.registry: -------------------------------------------------------------------------------- 1 | rap:^0.1.1 -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/driver.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | ], 4 | "power": null, 5 | "ground": null 6 | } 7 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ruff-v1-sys-usb", 3 | "version": "0.1.2", 4 | "description": "Sys-usb managers the `mount` and `unmount` behaviour of USB devices.", 5 | "author": "Nanchao Inc.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ruff-drivers/ruff-v1-sys-usb.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ruff-drivers/ruff-v1-sys-usb/issues" 13 | }, 14 | "homepage": "https://github.com/ruff-drivers/ruff-v1-sys-usb", 15 | "keywords": [ 16 | "ruff", 17 | "driver", 18 | "usb" 19 | ], 20 | "main": "src/index.js", 21 | "engines": { 22 | "ruff": ">=1.4.0 <1.6.0" 23 | }, 24 | "boards": { 25 | "ruff-mbd-v1": "^4.1.0" 26 | }, 27 | "scripts": { 28 | "install-sdk": "rvm install --local", 29 | "install-rap-dependencies": "rap install", 30 | "lint": "eslint *.js", 31 | "pretest": "npm run lint", 32 | "test": "ruff test/test.js" 33 | }, 34 | "devDependencies": { 35 | "eslint": "^2.11.1", 36 | "ruff-standard": "^0.1.4", 37 | "rvm": "^0.3.2" 38 | }, 39 | "ruff": { 40 | "devDependencies": { 41 | "t": "^0.1.6" 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /weather-station/ruff_modules/ruff-mbd-v1/ruff_modules/ruff-v1-sys-usb/src/10-ruff-usb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | notify () { 3 | echo $msg | socat - udp-sendto:127.0.0.1:9999 4 | } 5 | 6 | case "$ACTION" in 7 | "add") 8 | msg="{\"action\":\"mount\",\"devPath\":\"/sys$DEVPATH\"}" 9 | notify $msg 10 | ;; 11 | "remove") 12 | msg="{\"action\":\"unmount\",\"devPath\":\"/sys$DEVPATH\"}" 13 | notify $msg 14 | ;; 15 | esac 16 | -------------------------------------------------------------------------------- /weather-station/test/test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var path = require('path'); 5 | var test = require('test'); 6 | 7 | var appRunner = require('ruff-app-runner'); 8 | var mock = require('ruff-mock'); 9 | 10 | var verify = mock.verify; 11 | 12 | var appPath = path.join(__dirname, '..'); 13 | 14 | module.exports = { 15 | 'test should run application': function (done) { 16 | appRunner 17 | .run(appPath, function () { 18 | verify($('#led-r')).turnOn(); 19 | }) 20 | .end(function () { 21 | verify($('#led-r')).turnOff(); 22 | done(); 23 | }); 24 | } 25 | }; 26 | 27 | test.run(module.exports); 28 | --------------------------------------------------------------------------------