├── .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 |
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 |
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 |
--------------------------------------------------------------------------------