Mbed OS version of IoT.js implementation running on GR-PEACH
ビルド方法
ビルド環境セットアップ
Host PC要件 : Ubuntu 16.04 (64-bit)
1. 以下のコマンドを実行し、下表に示すツールをインストールします。
$ sudo apt update $ sudo apt upgrade $ sudo apt install [Package]
Package | Version |
build-essential | 12.1ubuntu2 |
gyp | 0.1+20150913git1f374df9-1ubuntu1 |
mercurial | 3.7.3-1ubuntu1 |
cmake | 3.5.1-1ubuntu3 |
git | 1:2.7.4-0ubuntu1.4 |
python2.7 | 2.7.12-1ubuntu016.04.3 |
valgrind | 1:3.11.0-1ubuntu4.2 |
python-pip | 8.1.1-2ubuntu0.4 |
2. 以下のコマンドを実行してMbed OS用ビルドツール mbed CLIをインストールします。
$ sudo -H pip install mbed-cli
3. GNU Arm Embedded Toolchainをインストールします。
- 下記URLからLinux用パッケージ (gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2) をダウンロードしてください。
https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2?revision=2cc92fb5-3e0e-402d-9197-bdfc8224d8a5?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,6-2017-q2-update
- ダウンロードしたファイルを任意のディレクトリに展開します。
(以下、展開先を${TOOLCHAIN}と記載します)
tar xjf gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2
- ツールチェインのパスを設定します。
環境変数を使用する場合
$ export GCC_ARM_ROOT=${TOOLCHAIN}/gcc-arm-none-eabi-6-2017-q2-update/bin $ export PATH=$GCC_ARM_ROOT:$PATH
mbed CLIで指定する場合
$ mbed config -G GCC_ARM_PATH $GCC_ARM_ROOT
iotjs環境のビルド
1. 本プログラムのクローン
下記コマンドを実行し、本プログラムをクローンしてください。
$ hg clone https://HinoNaka@os.mbed.com/users/HinoNaka/code/GR-PEACH_mbed-os-iotjs/
クローンが正常に終了すると、GR-PEACH_mbed-os-iotjs という名称のディレクトリが生成されますので、下記コマンドで当該ディレクトリへ移動してください。
$ cd GR-PEACH_mbed-os-iotjs
(Optional)
GR-PEACH-mbed-os-iotjsディレクトリを指す環境変数 ROOTを設定してください。以降の記載は本環境変数が設定されているものとします。
$ export ROOT=$(PWD)
2. 作業用ディレクトリ(e.g. work)を作成し、当該ディレクトリに移動してください。
$ mkdir -p work $ cd work
(Optional)
作業用ディレクトリを指す環境変数 WORK を設定してください。以降の記載は本環境変数 が設定されているものとします。
$ export WORK=$(PWD)
3. iotjsのソースツリーを取得します。
$ git clone https://github.com/pando-project/iotjs
クローンが正常に終了するとiotjsというディレクトリが生成されますので、当該ディレクトリに移動してください。
$cd iotjs
コミットID: acae9c8b2d40e7598b8d39b630b79113ce880a7e を取得します。
(下記例では、あわせてposixというブランチを作成し、当該ブランチへ切り替えています)
$ git checkout -b posix acae9c8b2d40e7598b8d39b630b79113ce880a7e
4. mbed-osセットアップ
Mbed OSソースツリーを格納するフォルダを生成し、当該フォルダへ移動します。
$ mkdir -p $(WORK)/iotjs/src/platform/mbedos5 $ cd $(WORK)/iotjs/src/platform/mbedos5
Mbed OSのソースツリーをクローンします。
$ git clone -b mbed-os-5.9 https://github.com/ARMmbed/mbed-os.git
クローンが正常に終了するとmbed-osというディレクトリが生成されますので、当該ディレクトリに移動してください。
$ cd mbed-os
コミットID: 50bd61a4a72332baa6b1bac6caccb44dc5423309 を取得します。
(下記例では、あわせてposixというブランチを作成し、当該ブランチへ切り替えています)
$ git checkout -b posix 50bd61a4a72332baa6b1bac6caccb44dc5423309
5. sd-driverの取得
下記コマンドでmbedos5ディレクトリへ移動します。
$ cd $(WORK)/iotjs/src/platform/mbedos5
sd-driverをクローンします。
$ git clone https://github.com/ARMmbed/sd-driver.git
クローンが正常終了するとsd-driverディレクトリが生成されますので、当該ディレクトリへ移動します。
$ cd sd-driver
コミットID: c8ae38fb291e086232566b0f1372cfb69c277e84 を取得します。
(下記例では、あわせてposixというブランチを作成し、当該ブランチへ切り替えています)
$ git checkout -b posix c8ae38fb291e086232566b0f1372cfb69c277e84
6. mbed-gr-libsの取得
下記コマンドでmbedos5ディレクトリへ移動します。
$ cd $(WORK)/iotjs/src/platform/mbedos5
mbed-gr-libsをクローンします。
$ git clone https://github.com/d-kato/mbed-gr-libs
クローンが正常終了するとmbed-gr-libsディレクトリが生成されますので、当該ディレクトリへ移動します。
$ cd mbed-gr-libs
コミットID: d921d611d596ecaebaab49070ef82450c583309c を取得します。
(下記例では、あわせてposixというブランチを作成し、当該ブランチへ切り替えています)
$ git checkout -b posix d921d611d596ecaebaab49070ef82450c583309c
7. AsciiFONTの取得
下記コマンドでmbedos5ディレクトリへ移動します。
$ cd $(WORK)/iotjs/src/platform/mbedos5
AsciiFONTライブラリを追加します。
$ mbed add https://os.mbed.com/teams/Renesas/code/AsciiFont/
8. iotjs環境のビルド
下記コマンドでiotjs環境のビルドディレクトリに移動し、ビルドを実行します。
$ cd $(WORK)/iotjs $ ./tools/build.py --no-snapshot
9. GR-PEACH用コードのコピー
(Optional) 既存のiotjs環境に上書きする場合、下記コマンドを実行してください。
$ rm -rf $(WORK)/iotjs/deps/posix $ rm -rf $(WORK)/iotjs/src/ext-modules $ rm -rf $(WORK)/iotjs/src/platform/mbedos5/iotjs_def.h
下記コマンドでGR-PEACH用コードをコピーします。
$ cp -pr $(ROOT)/src/iotjs/* $(WORK)/iotjs/
10. lwipパッチ適用
以下コマンドでlwipパッチを適用します。
$ cd $(WORK)/iotjs/src/platform/mbedos5/mbed-os $ git apply lwip_improve.patch
11. ESP32 TRNG対応パッチ適用
以下コマンドでESP32のTRNGを活用するためのパッチを適用します。
$ cd $(WORK)/iotjs/src/platform/mbedos5/mbed-os $ git apply trng_support.patch
12. Mbed OS版iotjs環境のビルド
下記コマンドを実行してMbed OS版iotjs環境をビルドします。
(リリースビルドの場合)
$ cd $(WORK)/iotjs/src/platform/mbedos5 $ make clean; make DEBUG=0
(デバッグビルドの場合)
$ cd $(WORK)/iotjs/src/platform/mbedos5 $ make clean; make DEBUG=1
13. ビルドが正常に終了すると、以下の通りバイナリが生成されます。
(リリースビルドの場合)
$ ls -l ${WORK}/iotjs/src/platform/mbedos5/BUILD/RZ_A1H/GCC_ARM-RELEASE/iotjs.bin
(デバッグビルドの場合)
$ ls -l ${WORK}/iotjs/src/platform/mbedos5/BUILD/RZ_A1H/GCC_ARM-DEBUG/iotjs.bin
実行方法
1. GR-PEACHにmicro SDカードを挿入します。
2. GR-PEACHのEthernetポートから遠い側のUSBポートとHost PCをマイクロUSBケーブルで接続します。
3. Host PCでGR-PEACHが『mbed:』ドライブとして認識されたら、iotjs.binをmbedドライブにコピーします。
4. ターミナルS/Wを立上げ、『mbed Serial Port』と接続します。
シリアルポートは下記設定としてください。
Baud rate | 115200 | |||
Data | 8 bit | |||
Parity | none | |||
Stop | 1 bit | |||
Flow control | none |
5. 正常に書込みが終了したらGR-PEACHのRESETボタンを押下します。
6. ターミナルS/W上に下記メッセージが表示されます。
7. Enterキーを押下してコード入力モードに移行します。
8. 実行するJavascriptコードをターミナルソフトウェアに貼り付けてEnterキーを押下すると、実行開始します。Javascriptコード例については、test/case.txtを参照ください。
Revision 1:c3d69f309845, committed 2019-07-11
- Comitter:
- Osamu Nakamura
- Date:
- Thu Jul 11 18:49:37 2019 +0900
- Parent:
- 0:7cc000799c93
- Child:
- 2:5b56214ef977
- Commit message:
- Initial commit of sample app and document
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/api/aligned_buffer.html Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,853 @@ +<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH aligned_bufferã¢ã¸ã¥ã¼ã«</title><style>@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #032f62; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2::before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; +} + +.markdown-body .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.markdown-body a { + background-color: transparent; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body * { + box-sizing: border-box; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: #0366d6; + text-decoration: none; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body .octicon { + vertical-align: text-bottom; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; + color: #6a737d; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li { + word-wrap: break-all; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.markdown-body hr { + border-bottom-color: #eee; +} +/* + +Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net> + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} +</style></head><body class="markdown-body"><h1 id="gr-peach-aligned_buffer-aligned_buffer-">GR-PEACH aligned_bufferã¢ã¸ã¥ã¼ã« (aligned_buffer)</h1> +<p><code>aligned_buffer</code> ã¢ã¸ã¥ã¼ã«ã¯ãã¢ã©ã¤ã¡ã³ããæå®ãããããã¡ãçæãã¾ãã</p> +<p>IoT.js ã®Bufferåã¨ã®äºææ§ã¯ãªããããBufferåã¨ãã¦ä½¿ç¨ããå ´åã¯<code>buf.toBuffer()</code>ã«ã¦ãå¤æããå¿ è¦ãããã¾ãã +<a href="https://github.com/pando-project/iotjs/blob/acae9c8b2d40e7598b8d39b630b79113ce880a7e/docs/api/IoT.js-API-Buffer.md">https://github.com/pando-project/iotjs/blob/acae9c8b2d40e7598b8d39b630b79113ce880a7e/docs/api/IoT.js-API-Buffer.md</a></p> +<!-- +htmlãã¡ã¤ã«ã¸å¤æããã¨ãã«ããªã³ã¯å ã .md ãã .html ã¸å¤æããã¦ãã¾ãã®ã§æ³¨æ +--> +<h2 id="new-alignedbuffer-length-alignment-">new AlignedBuffer(length, alignment)</h2> +<ul> +<li><code>length</code> {number} ãããã¡ã®é·ã</li> +<li><code>alignment</code> {number} ãããã¡ã®ã¢ã©ã¤ã¡ã³ãã<code>2ã®ç´¯ä¹</code>ã®å¤ãæå®ãã¦ãã ããã</li> +<li>æ»ãå¤: {AlignedBuffer} çæãããããã¡</li> +</ul> +<p><code>length</code>ã®é·ãã®ãããã¡ãæ°ããçæãã¾ãããããã¡ã®å 容ã¯<code>0</code>ã§åæåããã¾ãã +ãããã¡ã¯<code>alignment</code>ãã¤ãå¢çã®ã¡ã¢ãªã¢ãã¬ã¹ã«é ç½®ããã¾ãã</p> +<h2 id="new-alignedbuffer-buffer-alignment-">new AlignedBuffer(buffer, alignment)</h2> +<ul> +<li><code>buffer</code> {Buffer|AlignedBuffer} ã³ãã¼å ã®ãããã¡</li> +<li><code>alignment</code> {number} ãããã¡ã®ã¢ã©ã¤ã¡ã³ãã<code>2ã®ç´¯ä¹</code>ã®å¤ãæå®ãã¦ãã ããã</li> +<li>æ»ãå¤: {AlignedBuffer} çæãããããã¡</li> +</ul> +<p>æ¢åã®ãããã¡ã®ã³ãã¼ãçæãã¾ããï¼ã¤ã®ãããã¡éã§ãã¼ã¿ã¯å ±æããã¾ããã +ãããã¡ã¯<code>alignment</code>ãã¤ãå¢çã®ã¡ã¢ãªã¢ãã¬ã¹ã«é ç½®ããã¾ãã +ã¢ã©ã¤ã¡ã³ãå¢çãç°ãªã<code>buffer</code>ã®ã³ãã¼ã«ã使ç¨ã§ãã¾ãã</p> +<h2 id="buf-tobuffer-start-end-">buf.toBuffer([start[, end]])</h2> +<ul> +<li><code>start</code> {number} å é ã¤ã³ããã¯ã¹ã(çç¥æ: <code>0</code>)</li> +<li><code>end</code> {number} çµç«¯ã¤ã³ããã¯ã¹ã(çç¥æ: <code>buf.length</code>)</li> +<li>æ»ãå¤: {Buffer} çæãããããã¡</li> +</ul> +<p>æ¢åã®ãããã¡ããBufferåã®ãªãã¸ã§ã¯ããçæãã¾ãã +çæããããããã¡ã¯<code>end - start</code>ã®é·ããæã¡ã<code>start ï½ (end-1)</code>ã®ç¯å²ã®ãã¼ã¿ãã³ãã¼ããã¾ãã +ï¼ã¤ã®ãããã¡éã§ãã¼ã¿ã¯å ±æããã¾ããã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; +<span class="hljs-keyword">var</span> buf1 = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">128</span>, <span class="hljs-number">32</span>); +<span class="hljs-keyword">var</span> buf2 = buf1.toBuffer(); +<span class="hljs-built_in">console</span>.log(buf2 <span class="hljs-keyword">instanceof</span> Buffer); <span class="hljs-comment">// true</span> +</code></pre> +<h2 id="buf-alignment">buf.alignment</h2> +<ul> +<li>{number}</li> +<li>ãããã¡ã®ã¢ã©ã¤ã¡ã³ãã示ããèªã¿åãå°ç¨ããããã£ã§ãã</li> +</ul> +<h2 id="buf-length">buf.length</h2> +<ul> +<li>{number}</li> +<li>ãããã¡ã®é·ãã示ããèªã¿åãå°ç¨ããããã£ã§ãã</li> +</ul> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; +<span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">128</span>, <span class="hljs-number">32</span>); +<span class="hljs-built_in">console</span>.log(buf.alignment); <span class="hljs-comment">// 32</span> +<span class="hljs-built_in">console</span>.log(buf.length); <span class="hljs-comment">// 128</span> +</code></pre> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/api/display.html Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,1026 @@ +<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH ãã£ã¹ãã¬ã¤ã¢ã¸ã¥ã¼ã«</title><style>@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #032f62; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2::before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; +} + +.markdown-body .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.markdown-body a { + background-color: transparent; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body * { + box-sizing: border-box; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: #0366d6; + text-decoration: none; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body .octicon { + vertical-align: text-bottom; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; + color: #6a737d; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li { + word-wrap: break-all; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.markdown-body hr { + border-bottom-color: #eee; +} +/* + +Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net> + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} +</style></head><body class="markdown-body"><h1 id="gr-peach-display-">GR-PEACH ãã£ã¹ãã¬ã¤ã¢ã¸ã¥ã¼ã« (display)</h1> +<p><code>display</code> ã¢ã¸ã¥ã¼ã«ã¯ã<a href="http://www.core.co.jp/product/m2m/gr-peach/gr-lcd.html">GR-PEACH 4.3inch LCD Shield</a> +ã«æè¼ããã液æ¶ã®å¶å¾¡ãè¡ãã¾ãã</p> +<ul> +<li>対å¿ããLCDã¯ä»¥ä¸ã®éãã§ãã<ul> +<li><code>"4.3inch"</code> - <a href="https://www.core.co.jp/product/m2m/gr-peach/gr-lcd.html">GR-PEACH 4.3inch LCD Shield</a></li> +</ul> +</li> +</ul> +<p>ç»åã®åºåã¯ããã¤ã³ã³ã«æè¼ããããã¼ãã¦ã§ã¢ãªã½ã¼ã¹(VDC5)ãç¨ãã¦ããã°ã©ã ã¨ã¯éåæã«å®è¡ããã¾ãã</p> +<h2 id="display-openlcd-config-callback-">display.openLCD(config, callback)</h2> +<ul> +<li><code>config</code> {Object} LCDã®è¨å®<ul> +<li><code>type</code> {string} æ¥ç¶ããLCDã®ç¨®é¡ã<code>"4.3inch"</code>ã®ã¿æå®å¯è½ãå¿ é é ç®ã§ãã</li> +</ul> +</li> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +<li><code>lcd</code> {Object} <code>Lcd</code>ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ (æåã®ã¨ã)</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>LCDãã£ã¹ãã¬ã¤ã«æ¥ç¶ãã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * Display.Graphics_Lvds_Port_Init + * Display.Graphics_init + * Display.Graphics_Irq_Handler_Set (â videoã¨ãã³ãã©ãå ±ç¨ãã) + * Display.Graphics_Read_Setting +--> +<blockquote> +<p><strong>注æ</strong>: ãã¼ãã¦ã§ã¢ãªã½ã¼ã¹ãæä»ã§ä½¿ç¨ãããããè¤æ°ã®<code>Lcd</code>ã¤ã³ã¹ã¿ã³ã¹ãåæã«ä½¿ç¨ãããã¨ã¯ã§ãã¾ãããå¥ã®LCDã«æ¥ç¶ããå ´åã¯ãå ã«çæãããã¤ã³ã¹ã¿ã³ã¹ã«å¯¾ãã¦<code>close()</code>ãå®è¡ãã¦ãã ããã</p> +</blockquote> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> display = <span class="hljs-built_in">require</span>(<span class="hljs-string">'display'</span>); +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">var</span> buf1 = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); +<span class="hljs-keyword">var</span> buf2 = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + +display.openLCD({ + <span class="hljs-attr">type</span>: <span class="hljs-string">'4.3inch'</span> +}, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err, lcd</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* display.openLCD 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* display.openLCD æå... */</span> + + lcd.start(<span class="hljs-number">0</span>, buf1, <span class="hljs-string">'rgb565'</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* lcd.start 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* lcd.start æå... */</span> + + lcd.update(<span class="hljs-number">0</span>, buf2, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* lcd.update 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* lcd.update æå... */</span> + + lcd.stop(<span class="hljs-number">0</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* lcd.stop 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* lcd.stop æå... */</span> + + lcd.close(<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">err</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* lcd.close 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + } + <span class="hljs-comment">/* lcd.close æå... */</span> + }); + }); + }); + }); +}); +</code></pre> +<h2 id="display-openlcdsync-config-">display.openLCDSync(config)</h2> +<ul> +<li><code>config</code> {Object} LCDã®è¨å®<ul> +<li><code>display.openLCD()</code>ã®èª¬æãåç §ã</li> +</ul> +</li> +<li>æ»ãå¤: {Object} <code>Lcd</code>ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹</li> +</ul> +<p><code>display.openLCD()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨<code>Lcd</code>ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿å´ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> display = <span class="hljs-built_in">require</span>(<span class="hljs-string">'display'</span>); +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">var</span> buf1 = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); +<span class="hljs-keyword">var</span> buf2 = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> lcd = display.openLCDSync({ <span class="hljs-attr">type</span>: <span class="hljs-string">'4.3inch'</span> }); + <span class="hljs-comment">/* display.openLCDSync æå... */</span> + + lcd.startSync(<span class="hljs-number">0</span>, buf1, <span class="hljs-string">'rgb565'</span>); + <span class="hljs-comment">/* lcd.startSync æå... */</span> + + lcd.updateSync(<span class="hljs-number">0</span>, buf2); + <span class="hljs-comment">/* lcd.updateSync æå... */</span> + + lcd.stopSync(<span class="hljs-number">0</span>); + <span class="hljs-comment">/* lcd.stopSync æå... */</span> + + lcd.closeSync(); + <span class="hljs-comment">/* lcd.closeSync æå... */</span> +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h1 id="lcd-">Lcdã¯ã©ã¹</h1> +<p>LCDã®å¶å¾¡ãç»åãã¼ã¿ã®åºåãè¡ãã¯ã©ã¹ã§ãã</p> +<h2 id="lcd-type">lcd.type</h2> +<ul> +<li>{string}</li> +<li>æ¥ç¶ããã¦ããLCDã®ç¨®é¡ã示ããèªã¿åãå°ç¨ããããã£ã§ãã<code>display.openLCD()</code>ã®<code>config.type</code>ã«æå®ããå¤ãå¾ããã¾ãã</li> +</ul> +<h2 id="lcd-width">lcd.width</h2> +<ul> +<li>{number}</li> +<li>表示ããã¤ã¹ã®æ¨ªå¹ ããã¯ã»ã«æ°ã§ç¤ºããèªã¿åãå°ç¨ããããã£ã§ãã</li> +</ul> +<h2 id="lcd-height">lcd.height</h2> +<ul> +<li>{number}</li> +<li>表示ããã¤ã¹ã®é«ãããã¯ã»ã«æ°ã§ç¤ºããèªã¿åãå°ç¨ããããã£ã§ãã</li> +</ul> +<h2 id="lcd-start-layer-buf-format-callback-">lcd.start(layer, buf, format, callback)</h2> +<ul> +<li><code>layer</code> {number} LCDã®ã¬ã¤ã¤IDã<code>0</code>ï½<code>3</code>ã®å¤ã</li> +<li><code>buf</code> {AlignedBuffer} LCDåºåãããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +<li><code>format</code> {string} å ¥åç»å(ãã¬ã¼ã ãããã¡)ã«ç¨ãããã¯ã»ã«ãã©ã¼ãããã<code>"ycbcr422"</code>,<code>"rgb565"</code>,<code>"rgb888"</code>,<code>"argb8888"</code>,<code>"argb4444"</code>ã®ãããããæå®å¯è½ãå¿ é é ç®ã§ãã</li> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ç»åã®åºåãéå§ãã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * Display.Graphics_Start +--> +<h2 id="lcd-startsync-layer-buf-format-">lcd.startSync(layer, buf, format)</h2> +<ul> +<li><code>layer</code> {number} LCDã®ã¬ã¤ã¤IDã<code>0</code>ï½<code>3</code>ã®å¤ã</li> +<li><code>buf</code> {AlignedBuffer} LCDåºåãããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +<li><code>format</code> {string} å ¥åç»å(ãã¬ã¼ã ãããã¡)ã«ç¨ãããã¯ã»ã«ãã©ã¼ãããã<code>"ycbcr422"</code>,<code>"rgb565"</code>,<code>"rgb888"</code>,<code>"argb8888"</code>,<code>"argb4444"</code>ã®ãããããæå®å¯è½ãå¿ é é ç®ã§ãã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p><code>lcd.start()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h2 id="lcd-stop-layer-callback-">lcd.stop(layer, callback)</h2> +<ul> +<li><code>layer</code> {number} LCDã®ã¬ã¤ã¤IDã<code>0</code>ï½<code>3</code>ã®å¤ã</li> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ç»åã®åºåãåæ¢ãã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * Display.Graphics_Stop +--> +<h2 id="lcd-stopsync-layer-">lcd.stopSync(layer)</h2> +<ul> +<li><code>layer</code> {number} LCDã®ã¬ã¤ã¤IDã<code>0</code>ï½<code>3</code>ã®å¤ã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p><code>lcd.stop()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h2 id="lcd-update-layer-buf-callback-">lcd.update(layer, buf, callback)</h2> +<ul> +<li><code>layer</code> {number} LCDã®ã¬ã¤ã¤IDã<code>0</code>ï½<code>3</code>ã®å¤ã</li> +<li><code>buf</code> {AlignedBuffer} LCDåºåãããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>LCDã«è¡¨ç¤ºãããã¬ã¼ã ãããã¡ãæ´æ°ï¼ç½®ãæãï¼ãã¾ãã +ãã¬ã¼ã ãããã¡ã¯<code>lcd.start()</code>ã®<code>format</code>ã§æå®ãããã©ã¼ãããã§ããå¿ è¦ãããã¾ãã +å¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * Display.Graphics_Read_Change +--> +<h2 id="lcd-updatesync-layer-buf-">lcd.updateSync(layer, buf)</h2> +<ul> +<li><code>layer</code> {number} LCDã®ã¬ã¤ã¤IDã<code>0</code>ï½<code>3</code>ã®å¤ã</li> +<li><code>buf</code> {AlignedBuffer} LCDåºåãããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p><code>lcd.update()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h2 id="lcd-close-callback-">lcd.close(callback)</h2> +<ul> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ç»ååºåã«é¢ãããã¼ãã¦ã§ã¢ãªã½ã¼ã¹ã解æ¾ãã¾ãã<code>lcd.start()</code>ã«ããç»åã®åºåãéå§ããã¦ããå ´åããã®é¢æ°ã®å é¨ã§èªåçã«<code>lcd.stop()</code>ãå¼ã³åºããã¦åæ¢ããã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<blockquote> +<p><strong>注æ</strong>: ãã®é¢æ°ãå¼ãã å¾ã«ã¯ããã®<code>Lcd</code>ã¤ã³ã¹ã¿ã³ã¹ã«å¯¾ãã¦ãããªãæä½ãè¡ãã¾ããããã®ã¨ãåããããã£ã®è¿ãå¤ã¯æªå®ç¾©ã§ãããåé¢æ°ã®å¼ã³åºããè¡ãã¨ã¨ã©ã¼ãçºçãã¾ãã</p> +</blockquote> +<!-- +* C++ã©ã¤ãã©ãªå´API + * 使ç¨ããªã +--> +<h2 id="lcd-closesync-">lcd.closeSync()</h2> +<ul> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p><code>lcd.close()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/api/fixup.html Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,838 @@ +<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH fixupã¢ã¸ã¥ã¼ã«</title><style>@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #032f62; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2::before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; +} + +.markdown-body .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.markdown-body a { + background-color: transparent; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body * { + box-sizing: border-box; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: #0366d6; + text-decoration: none; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body .octicon { + vertical-align: text-bottom; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; + color: #6a737d; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li { + word-wrap: break-all; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.markdown-body hr { + border-bottom-color: #eee; +} +/* + +Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net> + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} +</style></head><body class="markdown-body"><h1 id="gr-peach-fixup-fixup-">GR-PEACH fixupã¢ã¸ã¥ã¼ã« (fixup)</h1> +<p><code>fixup</code> ã¢ã¸ã¥ã¼ã«ã¯ãIoT.jsã®æ¢åã®ã¢ã¸ã¥ã¼ã«ãä¿®çãã¾ãã +ä¿®çå 容ã¯ã¦ã¼ã¶ã³ã¼ãããã¯ãã©ã³ã¹ãã¢ã¬ã³ãã§ãã +ç¾å¨ã<code>"http"</code>ããã³<code>"https"</code>ã«å¯¾å¿ãã¦ãã¾ãã +ãããã®ã¢ã¸ã¥ã¼ã«ã使ç¨ããå ´åã¯ãæ¬ã¢ã¸ã¥ã¼ã«ã«ã¦ä¿®çãè¡ã£ã¦ãã ããã</p> +<h2 id="fixup-module1-module2-">fixup(module1[, module2, ...])</h2> +<ul> +<li><code>module1</code> {string} ä¿®çããã¢ã¸ã¥ã¼ã«ã®ååã</li> +<li><code>module2, ...</code> {string} ä¿®çããã¢ã¸ã¥ã¼ã«ã®ååãä»»æã®åæ°æå®å¯è½ã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>å¼æ°ã«æå®ãããã¢ã¸ã¥ã¼ã«ãä¿®çãã¾ãã +æå®ãããã¢ã¸ã¥ã¼ã«ãè¦ã¤ãããªãå ´åãä¿®çãä¸è¦ãªã¢ã¸ã¥ã¼ã«ãæå®ããå ´åã¯ä½ãè¡ãã¾ããã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-comment">// http ã¢ã¸ã¥ã¼ã«ãä¿®çããå ´å</span> +<span class="hljs-keyword">var</span> fixup = <span class="hljs-built_in">require</span>(<span class="hljs-string">'fixup'</span>); +fixup(<span class="hljs-string">'http'</span>); <span class="hljs-comment">// http ã require ããç´åã«è¿½è¨</span> + <span class="hljs-comment">// require('fixup')('http'); ã¨è¨è¿°ããã®ã¨ç価</span> +<span class="hljs-keyword">var</span> http = <span class="hljs-built_in">require</span>(<span class="hljs-string">'http'</span>); +</code></pre> +<pre><code class="lang-javascript"><span class="hljs-comment">// https ã¢ã¸ã¥ã¼ã«ãä¿®çããå ´å</span> +<span class="hljs-built_in">require</span>(<span class="hljs-string">'fixup'</span>)(<span class="hljs-string">'https'</span>); <span class="hljs-comment">// https ã require ããç´åã«è¿½è¨</span> +<span class="hljs-keyword">var</span> https = <span class="hljs-built_in">require</span>(<span class="hljs-string">'https'</span>); +</code></pre> +<pre><code class="lang-javascript"><span class="hljs-comment">// http, https ã¢ã¸ã¥ã¼ã«ãä¿®çããå ´å</span> +<span class="hljs-built_in">require</span>(<span class="hljs-string">'fixup'</span>)(<span class="hljs-string">'http'</span>, <span class="hljs-string">'https'</span>); <span class="hljs-comment">// http, https ã require ããç´åã«è¿½è¨</span> +<span class="hljs-keyword">var</span> http = <span class="hljs-built_in">require</span>(<span class="hljs-string">'http'</span>); +<span class="hljs-keyword">var</span> https = <span class="hljs-built_in">require</span>(<span class="hljs-string">'https'</span>); +</code></pre> +<h2 id="fixup-modules-">fixup(modules)</h2> +<ul> +<li><code>modules</code> {Array} ä¿®çããã¢ã¸ã¥ã¼ã«ã®ååãæ ¼ç´ããé åã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p><code>modules</code>ã«é åã§æå®ãããã¢ã¸ã¥ã¼ã«ãä¿®çãã¾ãã</p> +<pre><code class="lang-javascript"><span class="hljs-comment">// http, https ã¢ã¸ã¥ã¼ã«ãä¿®çããå ´å</span> +<span class="hljs-built_in">require</span>(<span class="hljs-string">'fixup'</span>)([ <span class="hljs-string">'http'</span>, <span class="hljs-string">'https'</span> ]); <span class="hljs-comment">// http, https ã require ããç´åã«è¿½è¨</span> +<span class="hljs-keyword">var</span> http = <span class="hljs-built_in">require</span>(<span class="hljs-string">'http'</span>); +<span class="hljs-keyword">var</span> https = <span class="hljs-built_in">require</span>(<span class="hljs-string">'https'</span>); +</code></pre> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/api/graphics.html Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,1051 @@ +<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH ã°ã©ãã£ãã¯ã¹ã¢ã¸ã¥ã¼ã«</title><style>@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #032f62; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2::before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; +} + +.markdown-body .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.markdown-body a { + background-color: transparent; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body * { + box-sizing: border-box; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: #0366d6; + text-decoration: none; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body .octicon { + vertical-align: text-bottom; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; + color: #6a737d; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li { + word-wrap: break-all; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.markdown-body hr { + border-bottom-color: #eee; +} +/* + +Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net> + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} +</style></head><body class="markdown-body"><h1 id="gr-peach-graphics-">GR-PEACH ã°ã©ãã£ãã¯ã¹ã¢ã¸ã¥ã¼ã« (graphics)</h1> +<p><code>graphics</code> ã¢ã¸ã¥ã¼ã«ã¯ããã¬ã¼ã ãããã¡ã¸ã®ã°ã©ãã£ãã¯ã¹ã®æç»ãè¡ãã¾ãã</p> +<h2 id="new-graphics-config-">new Graphics(config)</h2> +<ul> +<li><code>config</code> {Object} ã°ã©ãã£ãã¯ã¹ã®æç»ãè¡ããã¬ã¼ã ãããã¡ã®è¨å®<ul> +<li><code>buf</code> {AlignedBuffer} ãã¬ã¼ã ãããã¡ã¨ãã¦ä½¿ç¨ãããããã¡ãå¿ é é ç®ã§ãã</li> +<li><code>width</code> {number} ãã¬ã¼ã ãããã¡ã®æ¨ªå¹ (ãã¯ã»ã«æ°)ãå¿ é é ç®ã§ãã</li> +<li><code>height</code> {number} ãã¬ã¼ã ãããã¡ã®é«ã(ãã¯ã»ã«æ°)ãå¿ é é ç®ã§ãã</li> +<li><code>format</code> {string} ãã¬ã¼ã ãããã¡ã®ãã¯ã»ã«ãã©ã¼ãããã<code>"rgb565"</code>, <code>"rgb888"</code>, <code>"argb8888"</code>, <code>"argb4444"</code>ã®ãããããæå®ã§ãã¾ããå¿ é é ç®ã§ãã</li> +</ul> +</li> +<li>æ»ãå¤: {Object} <code>Graphics</code>ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹</li> +</ul> +<p>ã°ã©ãã£ãã¯ã¹ã®æç»ãè¡ããã¬ã¼ã ãããã¡ã®è¨å®ãè¡ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨<code>Graphics</code>ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿å´ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; +<span class="hljs-keyword">var</span> display = <span class="hljs-built_in">require</span>(<span class="hljs-string">'display'</span>); + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + <span class="hljs-comment">/* ã°ã©ãã£ãã¯ã¹æç»... */</span> + + <span class="hljs-comment">/* ã°ã©ãã£ãã¯ã¹ãLCDã«è¡¨ç¤º */</span> + <span class="hljs-keyword">var</span> lcd = display.openLCDSync({ <span class="hljs-attr">type</span>: <span class="hljs-string">'4.3inch'</span> }); + lcd.startSync(<span class="hljs-number">0</span>, graphics.frameBuffer, <span class="hljs-string">'rgb565'</span>); +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h1 id="graphics-">Graphicsã¯ã©ã¹</h1> +<p>ãã¬ã¼ã ãããã¡ã¸ã®ã°ã©ãã£ãã¯ã¹ã®æç»ãè¡ãã¯ã©ã¹ã§ãã</p> +<p>æ¬ã¯ã©ã¹ã§ä½¿ç¨ããè²ãã¼ã¿ã¯ã<code>new Graphics()</code>ã®<code>config.format</code>ã§æå®ãããã©ã¼ãããã®1ãã¯ã»ã«å½ããã®ãã¼ã¿ã<code>number</code>ã§æå®ãã¾ãã +åãã©ã¼ãããã«å¯¾ãã¦ãè²ãã¼ã¿ã®åãããã®å¯¾å¿é¢ä¿ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã</p> +<p><code>"rgb565"</code>ã : <code>0bRRRRRGGGGGGBBBBB</code><br><code>"argb4444"</code> : <code>0bAAAARRRRGGGGBBBB</code><br><code>"rgb888"</code>ã : <code>0bXXXXXXXXRRRRRRRRGGGGGGGGBBBBBBBB</code>(<code>X</code>ã®ãããã®å¤ã¯ç¡å¹)<br><code>"argb8888"</code> : <code>0bAAAAAAAARRRRRRRRGGGGGGGGBBBBBBBB</code></p> +<h2 id="graphics-framebuffer">graphics.frameBuffer</h2> +<ul> +<li>{AlignedBuffer}</li> +<li>æç»å¯¾è±¡ã®ãã¬ã¼ã ãããã¡ã示ãããããã£ã§ãã<code>new Graphics()</code>ã®<code>config.buf</code>ã«æå®ããå¤ãå¾ããã¾ãã</li> +</ul> +<h2 id="graphics-bufferwidth">graphics.bufferWidth</h2> +<ul> +<li>{number}</li> +<li>ãã¬ã¼ã ãããã¡ã®æ¨ªå¹ (ãã¯ã»ã«æ°)ã示ããèªã¿åãå°ç¨ããããã£ã§ãã<code>new Graphics()</code>ã®<code>config.width</code>ã«æå®ããå¤ãå¾ããã¾ãã</li> +</ul> +<h2 id="graphics-bufferheight">graphics.bufferHeight</h2> +<ul> +<li>{number}</li> +<li>ãã¬ã¼ã ãããã¡ã®é«ã(ãã¯ã»ã«æ°)ã示ããèªã¿åãå°ç¨ããããã£ã§ãã<code>new Graphics()</code>ã®<code>config.height</code>ã«æå®ããå¤ãå¾ããã¾ãã</li> +</ul> +<h2 id="graphics-bufferformat">graphics.bufferFormat</h2> +<ul> +<li>{string}</li> +<li>ãã¬ã¼ã ãããã¡ã®ãã¯ã»ã«ãã©ã¼ãããã示ããèªã¿åãå°ç¨ããããã£ã§ãã<code>new Graphics()</code>ã®<code>config.format</code>ã«æå®ããå¤ãå¾ããã¾ãã</li> +</ul> +<h2 id="graphics-drawimage-image-x-y-">graphics.drawImage(image, x, y)</h2> +<ul> +<li><code>image</code> {Object} 転éå ã®ç»åãã¼ã¿<ul> +<li><code>width</code> {number} ç»åã®å¹ (ãã¯ã»ã«æ°)ã</li> +<li><code>height</code> {number} ç»åã®é«ã(ãã¯ã»ã«æ°)</li> +<li><code>bitmap</code> {AlignedBuffer} ç»ç´ ãã¼ã¿ããã¯ã»ã«ãã©ã¼ãããã¯<code>graphics.bufferFormat</code>ã¨ä¸è´ãã¦ããå¿ è¦ãããã¾ãã</li> +</ul> +</li> +<li><code>x</code> {number} 転éå ã®å·¦ä¸Xåº§æ¨ (çç¥æ: <code>0</code>)</li> +<li><code>y</code> {number} 転éå ã®å·¦ä¸Yåº§æ¨ (çç¥æ: <code>0</code>)</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ç»åããã¬ã¼ã ãããã¡ã«è»¢é(ã³ãã¼)ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<p>æå®ãããå座æ¨ããµã¤ãºããã¬ã¼ã ãããã¡ã®ãµã¤ãºãè¶ ããå ´åããµã¤ãºå ã®ç¯å²ã«åãè©°ãããã¾ããåãè©°ããçµæã転éããé åã®æ¨ªå¹ ãé«ãã<code>0</code>以ä¸ã¨ãªã£ãå ´åã¯ã転éãè¡ããã«æåæ±ãã§çµäºãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; +<span class="hljs-keyword">var</span> jpeg = <span class="hljs-built_in">require</span>(<span class="hljs-string">'jpeg'</span>); +<span class="hljs-keyword">var</span> fs = <span class="hljs-built_in">require</span>(<span class="hljs-string">'fs'</span>); + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + <span class="hljs-keyword">var</span> jpegData = fs.readFileSync(<span class="hljs-string">'/sd/input.jpg'</span>); + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(jpegData, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> image = jpeg.decodeSync(buf, {<span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + graphics.drawImage(image, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>); +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h2 id="graphics-drawline-startx-starty-endx-endy-color-">graphics.drawLine(startX, startY, endX, endY, color)</h2> +<ul> +<li><code>startX</code> {number} ç·ã®å§ç¹ã®X座æ¨</li> +<li><code>startY</code> {number} ç·ã®å§ç¹ã®Y座æ¨</li> +<li><code>endX</code> {number} ç·ã®çµç¹ã®X座æ¨</li> +<li><code>endY</code> {number} ç·ã®çµç¹ã®Y座æ¨</li> +<li><code>color</code> {number} ç·ã®è²</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ãã¬ã¼ã ãããã¡ã«ç·ãæç»ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + graphics.drawRect(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">480</span>, <span class="hljs-number">272</span>, <span class="hljs-number">0xFFFF</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* èæ¯ãç½ã§å¡ãã¤ã¶ã */</span> + graphics.drawLine(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">480</span>, <span class="hljs-number">272</span>, <span class="hljs-number">0xF800</span>); <span class="hljs-comment">/* 赤ã®ç·ãæç» */</span> +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h2 id="graphics-drawrect-x-y-width-height-color-fill-">graphics.drawRect(x, y, width, height, color, fill)</h2> +<ul> +<li><code>x</code> {number} ç©å½¢ã®å·¦ä¸X座æ¨</li> +<li><code>y</code> {number} ç©å½¢ã®å·¦ä¸Y座æ¨</li> +<li><code>width</code> {number} ç©å½¢ã®å¹ </li> +<li><code>height</code> {number} ç©å½¢ã®é«ã</li> +<li><code>color</code> {number} ç©å½¢ã®è²</li> +<li><code>fill</code> {boolean} <code>true</code>:å¡ãã¤ã¶ããã, <code>false</code>:å¡ãã¤ã¶ããªã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ãã¬ã¼ã ãããã¡ã«ç©å½¢ãæç»ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + graphics.drawRect(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">480</span>, <span class="hljs-number">272</span>, <span class="hljs-number">0xFFFF</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* èæ¯ãç½ã§å¡ãã¤ã¶ã */</span> + graphics.drawRect(<span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">0x0000</span>, <span class="hljs-literal">false</span>); <span class="hljs-comment">/* é»ã®ç©å½¢ãæç» */</span> +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h2 id="graphics-drawarc-centerx-centery-radius-startangle-endangle-color-">graphics.drawArc(centerX, centerY, radius, startAngle, endAngle, color)</h2> +<ul> +<li><code>centerX</code> {number} 弧ã®ä¸å¿ç¹ã®X座æ¨</li> +<li><code>centerY</code> {number} 弧ã®ä¸å¿ç¹ã®Y座æ¨</li> +<li><code>radius</code> {number} 弧ã®åå¾</li> +<li><code>startAngle</code> {number} 弧ã®å§ç¹ã®è§åº¦</li> +<li><code>endAngle</code> {number} 弧ã®çµç¹ã®è§åº¦</li> +<li><code>color</code> {number} 弧ã®è²</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ãã¬ã¼ã ãããã¡ã«å¼§ãæç»ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + graphics.drawRect(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">480</span>, <span class="hljs-number">272</span>, <span class="hljs-number">0xFFFF</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* èæ¯ãç½ã§å¡ãã¤ã¶ã */</span> + graphics.drawArc(<span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">0</span>, <span class="hljs-number">180</span>, <span class="hljs-number">0x07E0</span>); <span class="hljs-comment">/* ç·ã®ååãæç» */</span> +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h2 id="graphics-drawcircle-centerx-centery-radius-color-fill-">graphics.drawCircle(centerX, centerY, radius, color, fill)</h2> +<ul> +<li><code>centerX</code> {number} åã®ä¸å¿ç¹ã®X座æ¨</li> +<li><code>centerY</code> {number} åã®ä¸å¿ç¹ã®Y座æ¨</li> +<li><code>radius</code> {number} åã®åå¾</li> +<li><code>color</code> {number} åã®è²</li> +<li><code>fill</code> {boolean} <code>true</code>:å¡ãã¤ã¶ããã, <code>false</code>:å¡ãã¤ã¶ããªã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ãã¬ã¼ã ãããã¡ã«åãæç»ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + graphics.drawRect(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">480</span>, <span class="hljs-number">272</span>, <span class="hljs-number">0xFFFF</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* èæ¯ãç½ã§å¡ãã¤ã¶ã */</span> + graphics.drawCircle(<span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">0x001F</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* éã®åãæç» */</span> +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h2 id="graphics-drawellipse-centerx-centery-radiusx-radiusy-color-fill-">graphics.drawEllipse(centerX, centerY, radiusX, radiusY, color, fill)</h2> +<ul> +<li><code>centerX</code> {number} æ¥åã®ä¸å¿ç¹ã®X座æ¨</li> +<li><code>centerY</code> {number} æ¥åã®ä¸å¿ç¹ã®Y座æ¨</li> +<li><code>radiusX</code> {number} æ¥åã®Xæ¹åã®åå¾</li> +<li><code>radiusY</code> {number} æ¥åã®Yæ¹åã®åå¾</li> +<li><code>color</code> {number} æ¥åã®è²</li> +<li><code>fill</code> {boolean} <code>true</code>:å¡ãã¤ã¶ããã, <code>false</code>:å¡ãã¤ã¶ããªã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ãã¬ã¼ã ãããã¡ã«æ¥åãæç»ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + graphics.drawRect(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">480</span>, <span class="hljs-number">272</span>, <span class="hljs-number">0xFFFF</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* èæ¯ãç½ã§å¡ãã¤ã¶ã */</span> + graphics.drawEllipse(<span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">50</span>, <span class="hljs-number">0x0000</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* é»ã®æ¥åãæç» */</span> +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h2 id="graphics-drawpolygon-centerx-centery-radius-sides-color-fill-">graphics.drawPolygon(centerX, centerY, radius, sides, color, fill)</h2> +<ul> +<li><code>centerX</code> {number} æ£å¤è§å½¢ã®ä¸å¿ç¹ã®X座æ¨</li> +<li><code>centerY</code> {number} æ£å¤è§å½¢ã®ä¸å¿ç¹ã®Y座æ¨</li> +<li><code>radius</code> {number} æ£å¤è§å½¢ã®ä¸å¿ç¹ã¨é ç¹ã®è·é¢ï¼å¤æ¥åã®åå¾ï¼</li> +<li><code>sides</code> {number} æ£å¤è§å½¢ã®è¾ºã®æ°</li> +<li><code>color</code> {number} æ£å¤è§å½¢ã®è²</li> +<li><code>fill</code> {boolean} <code>true</code>:å¡ãã¤ã¶ããã, <code>false</code>:å¡ãã¤ã¶ããªã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ãã¬ã¼ã ãããã¡ã«æ£å¤è§å½¢ãæç»ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + graphics.drawRect(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">480</span>, <span class="hljs-number">272</span>, <span class="hljs-number">0x0000</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* èæ¯ãé»ã§å¡ãã¤ã¶ã */</span> + graphics.drawPolygon(<span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">100</span>, <span class="hljs-number">3</span>, <span class="hljs-number">0xFFFF</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* ç½ã®ä¸è§å½¢ãæç» */</span> +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h2 id="graphics-drawtext-text-x-y-size-color-background-">graphics.drawText(text, x, y, size, color, background)</h2> +<ul> +<li><code>text</code> {string} æç»ããæååãAsciiæåã®ã¿å¯¾å¿ãã¦ãã¾ãã</li> +<li><code>x</code> {number} æååã®X座æ¨</li> +<li><code>y</code> {number} æååã®Y座æ¨</li> +<li><code>size</code> {number} æååã®ãã©ã³ããµã¤ãºãæç»ãããæåã¯ãå¹ <code>sizeÃ6ãã¯ã»ã«</code>ãé«ã<code>sizeÃ8ãã¯ã»ã«</code>ã«ãªãã¾ãã</li> +<li><code>color</code> {number} æååã®è²</li> +<li><code>background</code> {number} æååã®èæ¯ã®è²</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ãã¬ã¼ã ãããã¡ã«æååãæç»ãã¾ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> Graphics = <span class="hljs-built_in">require</span>(<span class="hljs-string">'graphics'</span>).Graphics; +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> graphics = <span class="hljs-keyword">new</span> Graphics({<span class="hljs-attr">buf</span>:buf, <span class="hljs-attr">width</span>:<span class="hljs-number">480</span>, <span class="hljs-attr">height</span>:<span class="hljs-number">272</span>, <span class="hljs-attr">format</span>:<span class="hljs-string">'rgb565'</span>}); + graphics.drawRect(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">480</span>, <span class="hljs-number">272</span>, <span class="hljs-number">0xFFFF</span>, <span class="hljs-literal">true</span>); <span class="hljs-comment">/* èæ¯ãç½ã§å¡ãã¤ã¶ã */</span> + graphics.drawText(<span class="hljs-string">'Hello World!'</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">2</span>, <span class="hljs-number">0x0000</span>, <span class="hljs-number">0xFFFF</span>); +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/api/index.html Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,871 @@ +<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH IoT.jsã¢ã¸ã¥ã¼ã« APIä»æ§</title><style>@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #032f62; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2::before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; +} + +.markdown-body .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.markdown-body a { + background-color: transparent; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body * { + box-sizing: border-box; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: #0366d6; + text-decoration: none; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body .octicon { + vertical-align: text-bottom; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; + color: #6a737d; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li { + word-wrap: break-all; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.markdown-body hr { + border-bottom-color: #eee; +} +/* + +Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net> + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} +</style></head><body class="markdown-body"><h1 id="gr-peach-iot-js-api-">GR-PEACH IoT.js ã¢ã¸ã¥ã¼ã«APIä»æ§</h1> +<p>ããã㯠GR-PEACH åã IoT.js ç°å¢ã§ä½¿ç¨å¯è½ãªã¢ã¸ã¥ã¼ã«ç¾¤ã§ãã</p> +<p>IoT.js ã®æ¢åã®ã¢ã¸ã¥ã¼ã«ã® API ä»æ§ã«ã¤ãã¦ã¯ã以ä¸ããåç §ãã ããã<br><a href="https://github.com/pando-project/iotjs/blob/acae9c8b2d40e7598b8d39b630b79113ce880a7e/docs/api/IoT.js-API-reference.md">https://github.com/pando-project/iotjs/blob/acae9c8b2d40e7598b8d39b630b79113ce880a7e/docs/api/IoT.js-API-reference.md</a></p> +<!-- +htmlãã¡ã¤ã«ã¸å¤æããã¨ãã«ããªã³ã¯å ã .md ãã .html ã¸å¤æããã¦ãã¾ãã®ã§æ³¨æ +--> +<h1 id="-">ã¢ã¸ã¥ã¼ã«ä¸è¦§ã¨ä¸»ãªæ©è½</h1> +<ul> +<li><a href="aligned_buffer.html">aligned_bufferã¢ã¸ã¥ã¼ã«</a> - ã¢ã©ã¤ã¡ã³ãæå®å¯è½ãªãããã¡</li> +<li><a href="display.html">displayã¢ã¸ã¥ã¼ã«</a> - LCDã·ã¼ã«ãåºæ¿ã«æè¼ããã液æ¶ã®æä½</li> +<li><a href="fixup.html">fixupã¢ã¸ã¥ã¼ã«</a> - IoT.jsã®æ¢åã®ã¢ã¸ã¥ã¼ã«ã®ä¿®ç</li> +<li><a href="graphics.html">graphicsã¢ã¸ã¥ã¼ã«</a> - ãã¬ã¼ã ãããã¡ã¸ã®ã°ã©ãã£ãã¯ã¹ã®æç»</li> +<li><a href="jpeg.html">jpegã¢ã¸ã¥ã¼ã«</a> - ãã¤ã³ã³å èµã®JPEGã³ã¼ããã¯ãå©ç¨ããJPEGã®ã¨ã³ã³ã¼ãã»ãã³ã¼ã</li> +<li><a href="nic.html">nicã¢ã¸ã¥ã¼ã«</a> - ãããã¯ã¼ã¯ç°å¢ã®å¶å¾¡</li> +<li><a href="video.html">videoã¢ã¸ã¥ã¼ã«</a> - ã«ã¡ã©ã·ã¼ã«ãåºæ¿ã«æè¼ãããã«ã¡ã©ããã®ç»åã®åå¾</li> +</ul> +<h1 id="-">対象ãã©ãããã©ã¼ã </h1> +<ul> +<li>ãã¼ãã¦ã§ã¢<ul> +<li>GR-PEACH (æ ªå¼ä¼ç¤¾ã³ã¢)<ul> +<li><a href="https://www.core.co.jp/product/m2m/gr-peach/index.html">https://www.core.co.jp/product/m2m/gr-peach/index.html</a></li> +</ul> +</li> +</ul> +</li> +<li>ã½ããã¦ã§ã¢<ul> +<li>JerryScript<ul> +<li><a href="https://github.com/pando-project/jerryscript">https://github.com/pando-project/jerryscript</a></li> +</ul> +</li> +<li>IoT.js<ul> +<li><a href="https://github.com/pando-project/iotjs">https://github.com/pando-project/iotjs</a></li> +</ul> +</li> +</ul> +</li> +</ul> +<h1 id="-">対象ã·ã¼ã«ãåºæ¿</h1> +<ul> +<li><p>GR-PEACH WIRELESS CAMERA Shield (æ ªå¼ä¼ç¤¾ã³ã¢)</p> +<ul> +<li><a href="https://www.core.co.jp/product/m2m/gr-peach/audio-camera.html">https://www.core.co.jp/product/m2m/gr-peach/audio-camera.html</a></li> +</ul> +</li> +<li><p>GR-PEACH 4.3inch LCD Shield (æ ªå¼ä¼ç¤¾ã³ã¢)</p> +<ul> +<li><a href="http://www.core.co.jp/product/m2m/gr-peach/gr-lcd.html">http://www.core.co.jp/product/m2m/gr-peach/gr-lcd.html</a></li> +</ul> +</li> +</ul> +<h1 id="-">使ç¨ä¾</h1> +<pre><code class="lang-javascript"><span class="hljs-comment">/* ã«ã¡ã©ã§æ®å½±ãããã¬ã¼ã ãLCDã«è¡¨ç¤ºããä¾ */</span> +<span class="hljs-comment">/* (ã¨ã©ã¼å¦çã¯å²æ) */</span> +<span class="hljs-keyword">var</span> video = <span class="hljs-built_in">require</span>(<span class="hljs-string">'video'</span>); +<span class="hljs-keyword">var</span> display = <span class="hljs-built_in">require</span>(<span class="hljs-string">'display'</span>); +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">var</span> width = <span class="hljs-number">480</span>; +<span class="hljs-keyword">var</span> height = <span class="hljs-number">272</span>; +<span class="hljs-keyword">var</span> format = <span class="hljs-string">'rgb565'</span>; +<span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(width * height * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); +<span class="hljs-keyword">var</span> layer = <span class="hljs-number">0</span>; + +<span class="hljs-keyword">var</span> lcd = display.openLCDSync({ + <span class="hljs-attr">type</span>: <span class="hljs-string">'4.3inch'</span> +}); +<span class="hljs-keyword">var</span> camera = video.openCMOSCameraSync({ + <span class="hljs-attr">width</span>: width, <span class="hljs-attr">height</span>: height, <span class="hljs-attr">format</span>: format, <span class="hljs-attr">type</span>: <span class="hljs-string">'ov7725'</span> +}); + +camera.startSync(buf); +lcd.startSync(layer, buf, format); +</code></pre> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/api/jpeg.html Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,967 @@ +<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH JPEGã¢ã¸ã¥ã¼ã«</title><style>@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #032f62; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2::before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; +} + +.markdown-body .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.markdown-body a { + background-color: transparent; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body * { + box-sizing: border-box; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: #0366d6; + text-decoration: none; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body .octicon { + vertical-align: text-bottom; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; + color: #6a737d; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li { + word-wrap: break-all; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.markdown-body hr { + border-bottom-color: #eee; +} +/* + +Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net> + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} +</style></head><body class="markdown-body"><h1 id="gr-peach-jpeg-jpeg-">GR-PEACH JPEGã¢ã¸ã¥ã¼ã« (jpeg)</h1> +<p><code>jpeg</code> ã¢ã¸ã¥ã¼ã«ã¯ãGR-PEACHãã¤ã³ã³ã«æè¼ãããJPEGã³ã¼ããã¯ãç¨ãã¦JPEGç»åã®ã¨ã³ã³ã¼ãã»ãã³ã¼ããè¡ãã¾ãã</p> +<h2 id="jpeg-encode-image-callback-">jpeg.encode(image, callback)</h2> +<ul> +<li><code>image</code> {Object} ã¨ã³ã³ã¼ãããç»å<ul> +<li><code>width</code> {number} ç»åã®å¹ (ãã¯ã»ã«æ°)ãå¿ é é ç®ã§ãããã®å¤ã¯å¶æ°ã§ãªããã°ãªãã¾ããã</li> +<li><code>height</code> {number} ç»åã®é«ã(ãã¯ã»ã«æ°)ãå¿ é é ç®ã§ãã</li> +<li><code>format</code> {string} ç»åã®ãã¯ã»ã«ãã©ã¼ãããã<code>"ycbcr422"</code>ã®ã¿ãæå®å¯è½ã§ããå¿ é é ç®ã§ãã</li> +<li><code>bitmap</code> {AlignedBuffer} ç»ç´ ãã¼ã¿ãå¿ é é ç®ã§ãã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +</ul> +</li> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +<li><code>jpegData</code> {AlignedBuffer} JPEGãã¼ã¿ãæ ¼ç´ãããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ãã</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ããããããç»åãJPEGç»åã«å¤æãã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * JPEG_Converter::encode +--> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> jpeg = <span class="hljs-built_in">require</span>(<span class="hljs-string">'jpeg'</span>); +<span class="hljs-keyword">var</span> fs = <span class="hljs-built_in">require</span>(<span class="hljs-string">'fs'</span>); +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">var</span> bitmap = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); +<span class="hljs-comment">/* bitmap ã«ç»åãã¼ã¿ãæ ¼ç´ãã... */</span> +<span class="hljs-keyword">var</span> image = { + <span class="hljs-attr">width</span>: <span class="hljs-number">480</span>, + <span class="hljs-attr">height</span>: <span class="hljs-number">272</span>, + <span class="hljs-attr">format</span>: <span class="hljs-string">'ycbcr422'</span>, + <span class="hljs-attr">bitmap</span>: bitmap +}; +jpeg.encode(image, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err, jpegData</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* ãã¡ã¤ã«ã«ä¿åãã */</span> + fs.writeFile(<span class="hljs-string">'/sd/output.jpg'</span>, jpegData.toBuffer(), <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err</span>) </span>{ + }); +}); +</code></pre> +<h2 id="jpeg-encodesync-image-">jpeg.encodeSync(image)</h2> +<ul> +<li><code>image</code> {Object} ã¨ã³ã³ã¼ãããããããããç»å<ul> +<li><code>jpeg.encode()</code>ã®èª¬æãåç §</li> +</ul> +</li> +<li>æ»ãå¤: {AlignedBuffer} JPEGãã¼ã¿ãæ ¼ç´ãããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ãã</li> +</ul> +<p><code>jpeg.encode()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨JPEGãã¼ã¿ãæ ¼ç´ãããããã¡ãè¿å´ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> jpeg = <span class="hljs-built_in">require</span>(<span class="hljs-string">'jpeg'</span>); +<span class="hljs-keyword">var</span> fs = <span class="hljs-built_in">require</span>(<span class="hljs-string">'fs'</span>); +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; + +<span class="hljs-keyword">var</span> bitmap = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span> * <span class="hljs-number">272</span> * <span class="hljs-number">2</span>, <span class="hljs-number">32</span>); +<span class="hljs-comment">/* bitmap ã«ç»åãã¼ã¿ãæ ¼ç´ãã... */</span> +<span class="hljs-keyword">var</span> image = { + <span class="hljs-attr">width</span>: <span class="hljs-number">480</span>, + <span class="hljs-attr">height</span>: <span class="hljs-number">272</span>, + <span class="hljs-attr">format</span>: <span class="hljs-string">'ycbcr422'</span>, + <span class="hljs-attr">bitmap</span>: bitmap +}; +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> jpegData = jpeg.encodeSync(image); + <span class="hljs-comment">/* ãã¡ã¤ã«ã«ä¿åãã */</span> + fs.writeFileSync(<span class="hljs-string">'/sd/output.jpg'</span>, jpegData.toBuffer()); +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h2 id="jpeg-decode-jpegdata-config-callback-">jpeg.decode(jpegData, config, callback)</h2> +<ul> +<li><code>jpegData</code> {AlignedBuffer} JPEGãã¼ã¿ãæ ¼ç´ãããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +<li><code>config</code> {Object} ãã³ã¼ãè¨å®ã<ul> +<li><code>width</code> {number} åºåããããããããã®å¹ (ãã¯ã»ã«æ°)ããã®å¤ã¯å¶æ°ã§ãªããã°ãªãã¾ããã</li> +<li><code>height</code> {number} åºåããããããããã®é«ã(ãã¯ã»ã«æ°)ã</li> +<li><code>format</code> {string} åºåããããããããã®ãã¯ã»ã«ãã©ã¼ãããã<code>"ycbcr422"</code>,<code>"rgb565"</code>,<code>"argb8888"</code>ã®ããããã</li> +<li><code>alpha</code> {number} ãã¯ã»ã«ãã©ã¼ãããã<code>"argb8888"</code>ã®ã¨ãã®éé度ã<code>0</code>ï½<code>255</code>ã®å¤ã(çç¥æ: <code>255</code>)</li> +</ul> +</li> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +<li><code>image</code> {Object} ãã³ã¼ããããããããããç»å<ul> +<li><code>width</code> {number} ç»åã®å¹ (ãã¯ã»ã«æ°)ã</li> +<li><code>height</code> {number} ç»åã®é«ã(ãã¯ã»ã«æ°)ã</li> +<li><code>format</code> {string} ç»åã®ãã¯ã»ã«ãã©ã¼ãããã<code>"ycbcr422"</code>,<code>"rgb565"</code>,<code>"argb8888"</code>ã®ããããã</li> +<li><code>bitmap</code> {AlignedBuffer} ç»ç´ ãã¼ã¿ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ãã</li> +</ul> +</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>JPEGãã¼ã¿ãããããããç»åã«å¤æãã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * JPEG_Converter::decode +--> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; +<span class="hljs-keyword">var</span> jpeg = <span class="hljs-built_in">require</span>(<span class="hljs-string">'jpeg'</span>); +<span class="hljs-keyword">var</span> fs = <span class="hljs-built_in">require</span>(<span class="hljs-string">'fs'</span>); +<span class="hljs-keyword">var</span> config = { + <span class="hljs-attr">width</span>: <span class="hljs-number">480</span>, + <span class="hljs-attr">height</span>: <span class="hljs-number">272</span>, + <span class="hljs-attr">format</span>: <span class="hljs-string">'argb8888'</span>, + <span class="hljs-attr">alpha</span>: <span class="hljs-number">0xFF</span> +}; +fs.readFile(<span class="hljs-string">'/sd/input.jpg'</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err, jpegData</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* ãã¡ã¤ã«èªã¿è¾¼ã¿å¤±æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(jpegData, <span class="hljs-number">32</span>); + jpeg.decode(buf, config, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err, image</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* ãã³ã¼ã失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* æå... */</span> + }); +}); +</code></pre> +<h2 id="jpeg-decodesync-jpegdata-config-">jpeg.decodeSync(jpegData, config)</h2> +<ul> +<li><code>jpegData</code> {AlignedBuffer} JPEGãã¼ã¿ãæ ¼ç´ãããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +<li><code>config</code> {Object} ãã³ã¼ãè¨å®ã<ul> +<li><code>width</code> {number} åºåããããããããã®å¹ (ãã¯ã»ã«æ°)ããã®å¤ã¯å¶æ°ã§ãªããã°ãªãã¾ããã</li> +<li><code>height</code> {number} åºåããããããããã®é«ã(ãã¯ã»ã«æ°)ã</li> +<li><code>format</code> {string} åºåããããããããã®ãã¯ã»ã«ãã©ã¼ãããã<code>"ycbcr422"</code>,<code>"rgb565"</code>,<code>"argb8888"</code>ã®ããããã</li> +<li><code>alpha</code> {number} ãã¯ã»ã«ãã©ã¼ãããã<code>"argb8888"</code>ã®ã¨ãã®éé度ã<code>0</code>ï½<code>255</code>ã®å¤ã(çç¥æ: <code>255</code>)</li> +</ul> +</li> +<li>æ»ãå¤: {Object} ãã³ã¼ããããããããããç»å<ul> +<li><code>width</code> {number} ç»åã®å¹ (ãã¯ã»ã«æ°)ã</li> +<li><code>height</code> {number} ç»åã®é«ã(ãã¯ã»ã«æ°)ã</li> +<li><code>format</code> {string} ç»åã®ãã¯ã»ã«ãã©ã¼ãããã<code>"ycbcr422"</code>,<code>"rgb565"</code>,<code>"argb8888"</code>ã®ããããã</li> +<li><code>bitmap</code> {AlignedBuffer} ç»ç´ ãã¼ã¿ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ãã</li> +</ul> +</li> +</ul> +<p><code>jpeg.decode()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨ããããããç»åãæ ¼ç´ãããªãã¸ã§ã¯ããè¿å´ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; +<span class="hljs-keyword">var</span> jpeg = <span class="hljs-built_in">require</span>(<span class="hljs-string">'jpeg'</span>); +<span class="hljs-keyword">var</span> fs = <span class="hljs-built_in">require</span>(<span class="hljs-string">'fs'</span>); +<span class="hljs-keyword">var</span> config = { + <span class="hljs-attr">width</span>: <span class="hljs-number">480</span>, + <span class="hljs-attr">height</span>: <span class="hljs-number">272</span>, + <span class="hljs-attr">format</span>: <span class="hljs-string">'argb8888'</span>, + <span class="hljs-attr">alpha</span>: <span class="hljs-number">0xFF</span> +}; +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> jpegData = fs.readFileSync(<span class="hljs-string">'/sd/input.jpg'</span>); + <span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(jpegData, <span class="hljs-number">32</span>); + <span class="hljs-keyword">var</span> image = jpeg.decodeSync(buf, config); + <span class="hljs-comment">/* æå... */</span> +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/api/nic.html Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,962 @@ +<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH nicã¢ã¸ã¥ã¼ã«</title><style>@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff'); +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #032f62; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2::before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; +} + +.markdown-body .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.markdown-body a { + background-color: transparent; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body * { + box-sizing: border-box; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: #0366d6; + text-decoration: none; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body .octicon { + vertical-align: text-bottom; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; + color: #6a737d; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li { + word-wrap: break-all; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.markdown-body hr { + border-bottom-color: #eee; +} +/* + +Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net> + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} +</style></head><body class="markdown-body"><h1 id="gr-peach-nic-nic-">GR-PEACH nicã¢ã¸ã¥ã¼ã« (nic)</h1> +<p><code>nic</code> ã¢ã¸ã¥ã¼ã«ã¯ããããã¯ã¼ã¯ç°å¢ãå¶å¾¡ããããã®ã¢ã¸ã¥ã¼ã«ã§ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>); +<span class="hljs-keyword">var</span> nics = nic.enumerate(); +<span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">Object</span>.keys( nics ).length + <span class="hljs-string">"åã®NICãæè¼ããã¦ãã¾ã"</span> ); +<span class="hljs-keyword">var</span> index = <span class="hljs-number">0</span>; +<span class="hljs-built_in">Object</span>.keys( nics ).forEach( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">key</span>) </span>{ + <span class="hljs-built_in">console</span>.log( ++ index + <span class="hljs-string">"åç®ã¯:"</span> + key ); +}); + +<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>]; +<span class="hljs-keyword">if</span>( eth0 ) { + eth0.ifup(); <span class="hljs-comment">// use DHCP</span> + eth0.ntpdate({ <span class="hljs-attr">server</span>:<span class="hljs-string">"ntp.nict.jp"</span> }); + <span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">JSON</span>.stringify( eth0.ifconfig() ) ); + <span class="hljs-built_in">console</span>.log( <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().toString() ); +} +</code></pre> +<h2 id="nic-enumerate-">nic.enumerate()</h2> +<ul> +<li>æ»ãå¤: {Array} Nicãªãã¸ã§ã¯ãã®ä¸è¦§ãæ ¼ç´ããé£æ³é å<ul> +<li><code>ETHERNET</code> {Nic} Ethernet Interface ã«å¯¾å¿ããNicã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹</li> +</ul> +</li> +</ul> +<p>ãã¼ãã«æè¼ããã NIC ä¸è¦§ãåå¾ãã¾ããï¼ç¾å¨ãEthernet Interface ã®ã¿ã«å¯¾å¿ãã¦ãã¾ãï¼</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>); + +<span class="hljs-comment">// â â ä¸è¦§åå¾</span> +<span class="hljs-keyword">var</span> nics = nic.enumerate(); + +<span class="hljs-comment">// ä¸è¦§è¡¨ç¤º</span> +<span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">Object</span>.keys( nics ).length + <span class="hljs-string">"åã®NICãæè¼ããã¦ãã¾ã"</span> ); +<span class="hljs-keyword">var</span> index = <span class="hljs-number">0</span>; +<span class="hljs-built_in">Object</span>.keys( nics ).forEach( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">key</span>) </span>{ + <span class="hljs-built_in">console</span>.log( ++ index + <span class="hljs-string">"åç®ã¯:"</span> + key ); +}); +</code></pre> +<h1 id="nic-">Nicã¯ã©ã¹</h1> +<p>NIC ã®å¶å¾¡ãç¶æ ã®åå¾ãè¡ãã¯ã©ã¹ã§ãã</p> +<h2 id="nic-ifup-param-">nic.ifup([param])</h2> +<ul> +<li><code>param</code> {Object} ãããã¯ã¼ã¯è¨å®ããã¹ã¦ã®é ç®ãçç¥ããå ´åããã®å¼æ°èªä½ãçç¥å¯è½ã§ãã<ul> +<li><code>ip</code> {string} IPã¢ãã¬ã¹ï¼çç¥æãDHCP使ç¨ï¼</li> +<li><code>netmask</code> {string} ããããã¹ã¯ï¼çç¥æãDHCP使ç¨ï¼</li> +<li><code>gateway</code> {string} ã²ã¼ãã¦ã§ã¤ï¼çç¥æãDHCP使ç¨ï¼</li> +<li><code>dns</code> {string} DNSãµã¼ãï¼çç¥å¯è½ï¼</li> +</ul> +</li> +<li>æ»ãå¤: {boolean} <code>true</code>:æ¥ç¶æåã<code>false</code>:æ¥ç¶å¤±æ</li> +</ul> +<p>ãããã¯ã¼ã¯ã¸æ¥ç¶ãã¾ãã +<code>param</code>ãæå®ããªãå ´åãããã³<code>ip</code>, <code>netmask</code>, <code>gateway</code>ã®ã©ããä¸ã¤ã§ãçç¥ããã¦ããå ´åã¯DHCPã使ç¨ãã¾ãã +<code>ip</code>, <code>netmask</code>, <code>gateway</code>ãå ¨ã¦æå®ããã¦ããå ´åã¯éçIPã¢ãã¬ã¹ã使ç¨ãã¾ãã +<code>dns</code>ã¯DHCPã»éçIPã¢ãã¬ã¹ã®ã©ã¡ãã使ç¨ããå ´åã§ãçç¥å¯è½ã§ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>); +<span class="hljs-keyword">var</span> nics = nic.enumerate(); +<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>]; +<span class="hljs-keyword">if</span>( !eth0 ) { + <span class="hljs-keyword">return</span>; +} + +<span class="hljs-comment">// â â ãããã¯ã¼ã¯ã¸æ¥ç¶ (DHCP)</span> +eth0.ifup(); +eth0.ifdown(); + +<span class="hljs-comment">// â â ãããã¯ã¼ã¯ã¸æ¥ç¶ (éçIPã¢ãã¬ã¹æå®)</span> +eth0.ifup({ + <span class="hljs-attr">ip</span>: <span class="hljs-string">"192.168.123.100"</span>, + <span class="hljs-attr">netmask</span>: <span class="hljs-string">"255.255.255.0"</span>, + <span class="hljs-attr">gateway</span>: <span class="hljs-string">"192.168.123.1"</span>, + <span class="hljs-attr">dns</span>: <span class="hljs-string">"8.8.8.8"</span> +}); +eth0.ifdown(); +</code></pre> +<h2 id="nic-ifdown-">nic.ifdown()</h2> +<ul> +<li>æ»ãå¤: {boolean} <code>true</code>:åææåã<code>false</code>:åæ失æ</li> +</ul> +<p>ãããã¯ã¼ã¯ããåæãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>); +<span class="hljs-keyword">var</span> nics = nic.enumerate(); +<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>]; +<span class="hljs-keyword">if</span>( !eth0 ) { + <span class="hljs-keyword">return</span>; +} +eth0.ifup(); + +<span class="hljs-comment">// â â ãããã¯ã¼ã¯ããåæ</span> +eth0.ifdown(); +</code></pre> +<h2 id="nic-ifconfig-">nic.ifconfig()</h2> +<ul> +<li>æ»ãå¤: {Object} NIC ã®ç¶æ ãæ ¼ç´ãããªãã¸ã§ã¯ã<ul> +<li><code>NIC</code> {string} NIC ã®ç¨®é¡</li> +<li><code>HWaddr</code> {string}} MACã¢ãã¬ã¹</li> +<li><code>inet</code> {string} inetã¢ãã¬ã¹</li> +<li><code>netmask</code> {string} ããããã¹ã¯</li> +<li><code>gateway</code> {string} ã²ã¼ãã¦ã§ã¤</li> +</ul> +</li> +</ul> +<p>NICã®ç¶æ ãåå¾ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>); +<span class="hljs-keyword">var</span> nics = nic.enumerate(); +<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>]; +<span class="hljs-keyword">if</span>( !eth0 ) { + <span class="hljs-keyword">return</span>; +} +eth0.ifup(); + +<span class="hljs-comment">// â â NIC ã®ç¶æ ãåå¾ (æ¥ç¶æ)</span> +<span class="hljs-keyword">var</span> conf = eth0.ifconfig(); +<span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">JSON</span>.stringify( conf ) ); + +eth0.ifdown(); + +<span class="hljs-comment">// â â NIC ã®ç¶æ ãåå¾ (åææ)</span> +conf = eth0.ifconfig(); +<span class="hljs-built_in">console</span>.log( <span class="hljs-built_in">JSON</span>.stringify( conf ) ); +</code></pre> +<h2 id="nic-ntpdate-param-">nic.ntpdate([param])</h2> +<ul> +<li><code>param</code> {Object} æå»åæè¨å®ããã¹ã¦ã®é ç®ãçç¥ããå ´åããã®å¼æ°èªä½ãçç¥å¯è½ã§ãã<ul> +<li><code>server</code> {string} NTPãµã¼ã(çç¥æ:<code>"0.pool.ntp.org"</code>)</li> +<li><code>port</code> {number} ãã¼ãçªå·(çç¥æ:<code>123</code>)</li> +<li><code>timeout</code> {number} ã¿ã¤ã ã¢ã¦ãæéï¼åä½:ããªç§ï¼(çç¥æ:<code>10 * 1000</code>)</li> +</ul> +</li> +<li>æ»ãå¤: {boolean} <code>true</code>:æå»åææåã<code>false</code>:æå»åæ失æ</li> +</ul> +<p>ã¤ã³ã¿ã¼ãããæå»ã¨åæãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nic = <span class="hljs-built_in">require</span>(<span class="hljs-string">'nic'</span>); +<span class="hljs-keyword">var</span> nics = nic.enumerate(); +<span class="hljs-keyword">var</span> eth0 = nics[<span class="hljs-string">"ETHERNET"</span>]; +<span class="hljs-keyword">if</span>( !eth0 ) { + <span class="hljs-keyword">return</span>; +} +eth0.ifup(); + +<span class="hljs-comment">// â â ã¤ã³ã¿ã¼ãããæå»ã¨åæ(ããã©ã«ããµã¼ã "0.pool.ntp.org" 使ç¨)</span> +<span class="hljs-keyword">if</span>( eth0.ntpdate() ) { + <span class="hljs-built_in">console</span>.log( <span class="hljs-string">'æå»åææå'</span>, <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().toString() ); +} +<span class="hljs-keyword">else</span> { + <span class="hljs-built_in">console</span>.log( <span class="hljs-string">'æå»åæ失æ'</span> ); +} + +<span class="hljs-comment">// â â ã¤ã³ã¿ã¼ãããæå»ã¨åæ(ãµã¼ãæå®)</span> +<span class="hljs-keyword">if</span>( eth0.ntpdate({ <span class="hljs-attr">server</span>:<span class="hljs-string">"ntp.nict.jp"</span> }) ) { + <span class="hljs-built_in">console</span>.log( <span class="hljs-string">'æå»åææå'</span>, <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>().toString() ); +} +<span class="hljs-keyword">else</span> { + <span class="hljs-built_in">console</span>.log( <span class="hljs-string">'æå»åæ失æ'</span> ); +} + +eth0.ifdown(); +</code></pre> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/api/video.html Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,999 @@ +<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description"><meta name="keywords"><meta name="robots"><title>GR-PEACH ãããªã¢ã¸ã¥ã¼ã«</title><style>@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #032f62; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2::before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; +} + +.markdown-body .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.markdown-body a { + background-color: transparent; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body * { + box-sizing: border-box; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: #0366d6; + text-decoration: none; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +.markdown-body .octicon { + vertical-align: text-bottom; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; + color: #6a737d; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li { + word-wrap: break-all; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.markdown-body hr { + border-bottom-color: #eee; +} +/* + +Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net> + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} +</style></head><body class="markdown-body"><h1 id="gr-peach-video-">GR-PEACH ãããªã¢ã¸ã¥ã¼ã« (video)</h1> +<p><code>video</code> ã¢ã¸ã¥ã¼ã«ã¯ãWIRELESS CAMERA Shieldã«æ¥ç¶ãããã«ã¡ã©ã®å¶å¾¡ãæ åä¿¡å·ã®åãè¾¼ã¿ãè¡ãã¾ãã</p> +<ul> +<li>対å¿ããã«ã¡ã©ã¯ä»¥ä¸ã®éãã§ãã<ul> +<li><code>"ov7725"</code> - <a href="https://www.core.co.jp/product/m2m/gr-peach/audio-camera.html">GR-PEACH Wireless CAMERA Shield</a></li> +</ul> +</li> +</ul> +<p>ç»åã®åãè¾¼ã¿ã¯ããã¤ã³ã³ã«æè¼ããããã¼ãã¦ã§ã¢ãªã½ã¼ã¹(VDC5)ãç¨ãã¦ããã°ã©ã ã¨ã¯éåæã«å®è¡ããã¾ãã </p> +<h2 id="video-opencmoscamera-config-callback-">video.openCMOSCamera(config, callback)</h2> +<ul> +<li><code>config</code> {Object} ã«ã¡ã©ã®è¨å®<ul> +<li><code>width</code> {number} ç»åã®æ¨ªå¹ (ãã¯ã»ã«æ°)ãå¿ é é ç®ã§ãã</li> +<li><code>height</code> {number} ç»åã®é«ã(ãã¯ã»ã«æ°)ãå¿ é é ç®ã§ãã</li> +<li><code>format</code> {string} å¸æãããã¯ã»ã«ãã©ã¼ãããã<code>"ycbcr422"</code>, <code>"rgb565"</code>, <code>"rgb888"</code>ã®ãããããæå®ã§ãã¾ããå¿ é é ç®ã§ãã</li> +<li><code>type</code> {string} CMOSã«ã¡ã©ã®ç¨®é¡ã示ãæååã<code>"ov7725"</code>ã®ã¿æå®ã§ãã¾ãã(çç¥æ: <code>"ov7725"</code>)</li> +</ul> +</li> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +<li><code>videoSource</code> {Object} <code>VideoSource</code>ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ (æåã®ã¨ã)</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>CMOSã«ã¡ã©ã«æ¥ç¶ãã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * Display.Graphics_Video_init + * Display.Graphics_Dvinput_Port_Init + * Display.Graphics_Irq_Handler_Set (â graphicsã¨ãã³ãã©ãå ±ç¨ãã) + * Display.Video_Write_Setting +--> +<blockquote> +<p><strong>注æ</strong>: ãã¼ãã¦ã§ã¢ãªã½ã¼ã¹ãæä»ã§ä½¿ç¨ãããããè¤æ°ã®<code>VideoSource</code>ã¤ã³ã¹ã¿ã³ã¹ãåæã«ä½¿ç¨ãããã¨ã¯ã§ãã¾ãããå¥ã®ã«ã¡ã©ãæ¥ç¶ããå ´åã¯ãå ã«çæãããã¤ã³ã¹ã¿ã³ã¹ã«å¯¾ãã¦<code>close()</code>ãå®è¡ãã¦ãã ããã</p> +</blockquote> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> video = <span class="hljs-built_in">require</span>(<span class="hljs-string">'video'</span>); +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; +<span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span>*<span class="hljs-number">272</span>*<span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + +video.openCMOSCamera({ + <span class="hljs-attr">width</span>: <span class="hljs-number">480</span>, <span class="hljs-attr">height</span>: <span class="hljs-number">272</span>, <span class="hljs-attr">format</span>: <span class="hljs-string">'rgb565'</span>, <span class="hljs-attr">type</span>: <span class="hljs-string">'ov7725'</span> +}, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err, videoSource</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* video.openCMOSCamera 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* video.openCMOSCamera æå... */</span> + + videoSource.start(buf, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* videoSource.start 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* videoSource.start æå... */</span> + + videoSource.stop(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">err</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* videoSource.stop 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* videoSource.stop æå... */</span> + + videoSource.close(<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">err</span>) </span>{ + <span class="hljs-keyword">if</span> (err) { + <span class="hljs-comment">/* videoSource.close 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); + <span class="hljs-keyword">return</span>; + } + <span class="hljs-comment">/* videoSource.close æå... */</span> + + }); + }); + }); +}); +</code></pre> +<h2 id="video-opencmoscamerasync-config-">video.openCMOSCameraSync(config)</h2> +<ul> +<li><code>config</code> {Object} ã«ã¡ã©ã®è¨å®<ul> +<li><code>video.openCMOSCamera()</code>ã®èª¬æãåç §</li> +</ul> +</li> +<li>æ»ãå¤: {Object} <code>VideoSource</code>ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹</li> +</ul> +<p><code>video.openCMOSCamera()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨<code>VideoSource</code>ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿å´ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h4 id="-">使ç¨ä¾</h4> +<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> video = <span class="hljs-built_in">require</span>(<span class="hljs-string">'video'</span>); +<span class="hljs-keyword">var</span> AlignedBuffer = <span class="hljs-built_in">require</span>(<span class="hljs-string">'aligned_buffer'</span>).AlignedBuffer; +<span class="hljs-keyword">var</span> buf = <span class="hljs-keyword">new</span> AlignedBuffer(<span class="hljs-number">480</span>*<span class="hljs-number">272</span>*<span class="hljs-number">2</span>, <span class="hljs-number">32</span>); + +<span class="hljs-keyword">try</span> { + <span class="hljs-keyword">var</span> videoSource = video.openCMOSCameraSync({ + <span class="hljs-attr">width</span>: <span class="hljs-number">480</span>, <span class="hljs-attr">height</span>: <span class="hljs-number">272</span>, <span class="hljs-attr">format</span>: <span class="hljs-string">'rgb565'</span>, <span class="hljs-attr">type</span>: <span class="hljs-string">'ov7725'</span> + }); + <span class="hljs-comment">/* video.openCMOSCameraSync æå... */</span> + + videoSource.startSync(buf); + <span class="hljs-comment">/* videoSource.startSync æå... */</span> + + videoSource.stopSync(); + <span class="hljs-comment">/* videoSource.stopSync æå... */</span> + + videoSource.closeSync(); + <span class="hljs-comment">/* videoSource.closeSync æå... */</span> + +} <span class="hljs-keyword">catch</span> (err) { + <span class="hljs-comment">/* 失æ... */</span> + <span class="hljs-built_in">console</span>.log(err); +} +</code></pre> +<h1 id="videosource-">VideoSourceã¯ã©ã¹</h1> +<p>ã«ã¡ã©ã®å¶å¾¡ãæ åã½ã¼ã¹ã®åãè¾¼ã¿ãè¡ãã¯ã©ã¹ã§ãã</p> +<h2 id="videosource-width">videoSource.width</h2> +<ul> +<li>{number}</li> +<li>ç»åã®å¹ ããã¯ã»ã«æ°ã§ç¤ºããèªã¿åãå°ç¨ããããã£ã§ãã</li> +</ul> +<h2 id="videosource-height">videoSource.height</h2> +<ul> +<li>{number}</li> +<li>ç»åã®é«ãããã¯ã»ã«æ°ã§ç¤ºããèªã¿åãå°ç¨ããããã£ã§ãã</li> +</ul> +<h2 id="videosource-pixelformat">videoSource.pixelFormat</h2> +<ul> +<li>{string}</li> +<li>ãã¯ã»ã«ãã©ã¼ãããã示ããèªã¿åãå°ç¨ããããã£ã§ãã<code>"ycbcr422"</code>, <code>"rgb565"</code>, <code>"rgb888"</code>ã®ããããã§ãã</li> +</ul> +<h2 id="videosource-pixelbytes">videoSource.pixelBytes</h2> +<ul> +<li>{number}</li> +<li>1ãã¯ã»ã«å½ããã®ãã¤ãæ°ã示ããèªã¿åãå°ç¨ããããã£ã§ãã</li> +</ul> +<h2 id="videosource-type">videoSource.type</h2> +<ul> +<li>{string}</li> +<li>CMOSã«ã¡ã©ã®ç¨®é¡ã示ãæååãè¿ããèªã¿åãå°ç¨ããããã£ã§ãã</li> +</ul> +<h2 id="videosource-start-buf-callback-">videoSource.start(buf, callback)</h2> +<ul> +<li><code>buf</code> {AlignedBuffer} ã«ã¡ã©å ¥åãåãè¾¼ããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ã«ã¡ã©ã®æ®å½±/ä¿¡å·ã®åãè¾¼ã¿ãéå§ãã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * Display.Video_Start + * Display.Video_Stop +--> +<h2 id="videosource-startsync-buf-">videoSource.startSync(buf)</h2> +<ul> +<li><code>buf</code> {AlignedBuffer} ã«ã¡ã©å ¥åãåãè¾¼ããããã¡ã32ãã¤ãã®ã¢ã©ã¤ã¡ã³ãã§ããå¿ è¦ãããã¾ãã</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p><code>videoSource.start()</code>ã®åæçã§ããå¦çã¯éåæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h2 id="videosource-stop-callback-">videoSource.stop(callback)</h2> +<ul> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ã«ã¡ã©ã®æ®å½±/ä¿¡å·ã®åãè¾¼ã¿ãåæ¢ãã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<!-- +* C++ã©ã¤ãã©ãªå´API + * Display.Video_Stop +--> +<h2 id="videosource-stopsync-">videoSource.stopSync()</h2> +<ul> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p><code>videoSource.stop()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +<h2 id="videosource-close-callback-">videoSource.close(callback)</h2> +<ul> +<li><code>callback</code> {Function} ã³ã¼ã«ããã¯é¢æ°<ul> +<li><code>err</code> {Error|null} ã¨ã©ã¼ãªãã¸ã§ã¯ã(失æã®ã¨ã) ã¾ã㯠<code>null</code>(æåã®ã¨ã)ã</li> +</ul> +</li> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p>ã«ã¡ã©ã®å¶å¾¡/ä¿¡å·åãè¾¼ã¿ã«é¢ãããã¼ãã¦ã§ã¢ãªã½ã¼ã¹ã解æ¾ãã¾ãã<code>videoSource.start()</code>ã«ããã«ã¡ã©ã®æ®å½±/ä¿¡å·ã®åãè¾¼ã¿ãéå§ããã¦ããå ´åããã®é¢æ°ã®å é¨ã§èªåçã«<code>videoSource.stop()</code>ãå¼ã³åºããã¦åæ¢ããã¾ããå¦çã¯éåæã§è¡ãããå¦çãå®äºã¾ãã¯å¤±æããã¨ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¾ãã</p> +<blockquote> +<p><strong>注æ</strong>: ãã®é¢æ°ãå¼ãã å¾ã«ã¯ããã®<code>VideoSource</code>ã¤ã³ã¹ã¿ã³ã¹ã«å¯¾ãã¦ãããªãæä½ãè¡ãã¾ããããã®ã¨ãåããããã£ã®è¿ãå¤ã¯æªå®ç¾©ã§ãããåé¢æ°ã®å¼ã³åºããè¡ãã¨ã¨ã©ã¼ãçºçãã¾ãã</p> +</blockquote> +<!-- +* C++ã©ã¤ãã©ãªå´API + * 使ç¨ããªã +--> +<h2 id="videosource-closesync-">videoSource.closeSync()</h2> +<ul> +<li>æ»ãå¤: {undefined}</li> +</ul> +<p><code>videoSource.close()</code>ã®åæçã§ããå¦çã¯åæã§è¡ãããå¦çãå®äºããã¨å¼ã³åºãå ã«æ»ãã¾ãã失æããã¨ä¾å¤ãã¹ãã¼ãã¾ãã</p> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/lbg[N«̧äÉ¢Ä.txt Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,35 @@ +================================== + lbg[N«̧äÉ墀 +================================== + +javascript ©çlbg[N«ð§ä·éû@É¢ÄLqµÜ·B + +¡ nic W [ + + nodejs â iotjs ÅÍWÀ³êĢȢAlbg[N«ð§ä·é½ßÌ +nic W [ðWÀµÄ¢Ü·B + + +¡ nic W [Ì@\ + + nic W [ÉͺLÌ@\ª èÜ·B + + Eenumerate - {[hÉÚ³ê½ NIC êð澵ܷB + Eifup - IPAmaskAgatewayA(dns)ðwèµÄlbg[NÖÚ±µÜ·B + Eifdown - lbg[N©çØfµÜ·B + Eifconfig - óÔð澵ܷB + Entpdate - C^[lbgƯúµÜ·B + + ÁÉwèªÈ¢êÍ javascript ÌæªÉÌR[hðÜßĨ±Æð +¨©ßµÜ·B + + var nic = require('nic'); + var eth = nic.enumerate().ETHERNET; + if( eth ) { + eth.ifup(); // DHCP + eth.ntpdate({ server: "ntp.nict.jp" }); // ¯ú + } + + nic W [ÌÚ×É¢ÄÍAudoc/api/nic.htmlvð²¾³¢B + + Èã
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/rhû@.txt Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,138 @@ +============== + rhû@ +============== + +¡XVð + + 2018N0827ú i1jÓÌèðXV + 2018N1220ú i2jÓÌèðXV + svÈèÌíE® + 2019N0201ú iotjsÌæ¾³ðÏXiàeÍÏXȵj + i3jÓÌèðXV + +¡rh«\z + + ®ìmF« + OS : Ubuntu 16.04 + + 1) pbP[WXgÌXV + sudo apt update + + 2) CXg[ÏÝpbP[WÌXV + sudo apt upgrade + + 3) pbP[WÌÇÁ + sudo apt install [package] + + ypackagez : yversionz + build-essential : 12.1ubuntu2 + gyp : 0.1+20150913git1f374df9-1ubuntu1 + mercurial : 3.7.3-1ubuntu1 + cmake : 3.5.1-1ubuntu3 + git : 1:2.7.4-0ubuntu1.4 + python2.7 : 2.7.12-1ubuntu0~16.04.3 + valgrind : 1:3.11.0-1ubuntu4.2 + python-pip : 8.1.1-2ubuntu0.4 + + 4) Mbed CLI ÌCXg[ + sudo -H pip install mbed-cli + + 5) gcc-arm-none-eabi ÌCXg[i2j + ȺÌURL©ç gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 ð + _E[hµÜ·B + https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads + + _E[hµ½t@CðCÓÌfBNgÉðµÜ·B + tar xjf gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 + + pXÌÝèðs¢Ü·B + # «Ïðgp·éê + export GCC_ARM_ROOT=ðæÌpX/gcc-arm-none-eabi-6-2017-q2-update/bin + export PATH=$GCC_ARM_ROOT:$PATH + + # Mbed CLI Åwè·éê + mbed config -G GCC_ARM_PATH $GCC_ARM_ROOT + + +¡rhû@É墀 + + ºLÌR}hÅJ«Ì\zErhðs¢Ü·B + + # ìÆfBNgì¬ + export WORK=${HOME}/work + mkdir -p ${WORK} + cd ${WORK} + + # iotjsæ¾ + git clone https://github.com/pando-project/iotjs + cd iotjs + git checkout -b posix acae9c8b2d40e7598b8d39b630b79113ce880a7e + + # mbed-osæ¾ + mkdir -p ${WORK}/iotjs/src/platform/mbedos5 + cd ${WORK}/iotjs/src/platform/mbedos5 + + git clone -b mbed-os-5.9 https://github.com/ARMmbed/mbed-os.git + cd mbed-os + git checkout -b posix 50bd61a4a72332baa6b1bac6caccb44dc5423309 + + # sd-driveræ¾ + cd ${WORK}/iotjs/src/platform/mbedos5 + git clone https://github.com/ARMmbed/sd-driver.git + cd sd-driver + git checkout -b posix c8ae38fb291e086232566b0f1372cfb69c277e84 + + # mbed-gr-libsæ¾i1j + cd ${WORK}/iotjs/src/platform/mbedos5 + git clone https://github.com/d-kato/mbed-gr-libs + cd mbed-gr-libs + git checkout -b posix d921d611d596ecaebaab49070ef82450c583309c + + # AsciiFontæ¾i3j + cd ${WORK}/iotjs/src/platform/mbedos5 + mbed add https://os.mbed.com/teams/Renesas/code/AsciiFont/ + + # iotjsrh + cd ${WORK}/iotjs + ./tools/build.py --no-snapshot + + # \[XR[hðzui3j + # ù¶Ì«Éã«·éêÍAȺÌt@CíðÀsµÄ¾³¢B + rm -rf ${WORK}/iotjs/deps/posix + rm -rf ${WORK}/iotjs/src/ext-modules + rm ${WORK}/iotjs/src/platform/mbedos5/iotjs_def.h + + # [CDROM]Ì src/iotjs/* ð iotjs/ Éã«Rs[ + cp -pr [CDROM]/src/iotjs/* ${WORK}/iotjs/ + + # lwippb`Kp + cd ${WORK}/iotjs/src/platform/mbedos5/mbed-os + git apply lwip_improve.patch + + # Mbed TLS Å Wireless Camera Shield ÉÚ³êÄ¢é ESP32 Ì^«¶í + # ðgp·éêÍȺÌèðÀsµÄ¾³¢Bi2j + cd ${WORK}/iotjs/src/platform/mbedos5/mbed-os + git apply trng_support.patch + + ##ym[gz + ## Wireless Camera Shield ðÚ±¹¸É IoT.js ð®ì³¹½¢êâA + ## ESP32 pb`ðKpµÈ¢êÍAºLQÓÌÏXðsÁÄÄrhµÄ¾³¢B + t@CpXFiotjs / src / platform / mbedos5 / Makefile + 35sÚ: + ÏXOj --cmake-param=-DENABLE_MODULE_VIDEO=ON \ + ÏXãj --cmake-param=-DENABLE_MODULE_VIDEO=OFF \ + t@CpXFiotjs / src / platform / mbedos5 / mbed_app.json + 107sÚ: + ÏXOj "ENABLE_MODULE_VIDEO=1", + ÏXãj "ENABLE_MODULE_VIDEO=0", + + # mbed«ü¯rh + cd ${WORK}/iotjs/src/platform/mbedos5 + make clean; make DEBUG=0 + ¦debugrh·éêÍ DEBUG=1 Ƶľ³¢ + + # GR-PEACH É«ÞoCit@CªÈºÉ¶¬³êÜ· + ls -l ${WORK}/iotjs/src/platform/mbedos5/BUILD/RZ_A1H/GCC_ARM/iotjs.bin + + + Èã
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/W [Îóµ.txt Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,28 @@ +====================== + W [Îóµ +====================== + +1) ÎW [É墀 +~~~~~~~~~~~~~~~~~~~~~~~~~ + IoT.js ÌW [inodejsÌW [Éj̤¿ + ºLW [É¢ĮìmF𮹵ĢܷB + + assert, buffer, console, dgram, dns, events, fs, + http, https, module, net, stream, timers, tls, process + + ãLÈOÌá¦Î BLE ÈÇÌW [ÉÍεĢܹñB + +2) API Reference É墀 +~~~~~~~~~~~~~~~~~~~~~~~~~ + »ÝgpÌ IoT.js Ìo[WÍȺÉÈèÜ·B + + IoT.js version + Wed Jul 4 12:03:55 2018 + commit : acae9c8b2d40e7598b8d39b630b79113ce880a7e + + ãLo[WÌeW [Ì API dlÉ¢ÄÍAȺð²Qƾ³¢B + + IoT.js API Reference + https://github.com/pando-project/iotjs/blob/acae9c8b2d40e7598b8d39b630b79113ce880a7e/docs/api/IoT.js-API-reference.md + + Èã
Binary file doc/ÚAÖê.xlsx has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/gpû@.txt Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,10 @@ +============ + gpû@ +============ + +gpû@É¢ÄÍAºLÌhL gðQƵľ³¢B + + - test/case.txt + + + Èã
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/§À.txt Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,120 @@ +============ + §À +============ + +»ÝAȺ̧Àª èÜ·B + +¡§À + +1) POSIX/LINUX ÖÌÚAóµÉ墀 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ÚAÖÍ IoT.js ð®ì³¹é½ßÉKvÈàÌÌÝÆÈèÜ·B + POSIX/LINUX ÌÖdlÉ®SεĢéí¯ÅÍ èܹñB + ÚAóµÚ×É¢ÄÍAºLÌhL gðQƵľ³¢B + + - ÚAÖê.xlsx + + +2) Åå\PbgÉ墀 +~~~~~~~~~~~~~~~~~~~~~~~~~ + LWIP ÉÄgpÂ\È\PbgâTCYðºLÝèt@CÉÄ + ÝèµÄ¢Ü·B + ÝèðÏX·éêÍÝèt@CðÒWµÄÄrhµÄ¾³¢B + + t@CpXF + iotjs / src / platform / mbedos5 / mbed_app.json + + 161: "target_overrides": { + +1: "*": { + +1: "lwip.socket-max": 60, + +1: "lwip.tcp-server-max": 60, + +1: "lwip.tcp-socket-max": 60, + +1: "lwip.udp-socket-max": 60, + +1: "lwip.pbuf-pool-size": 10, + +1: "lwip.pbuf-pool-bufsize": 1072, + +1: "lwip.mem-size": 3200 + +1: } + +1: } + + +3) IPv6 É墀 +~~~~~~~~~~~~~~~~ + mbed-os(5.9.3)ÌftHgÝèÍIPv6ª³øÉÈÁĢܷB + IPv6ðLøÉ·éêͺLÝèt@CðÒWµÄÄrhµÄ¾³¢B + ¦È¨ IPv6 ðLøɵ½êÌe¿ÍͨæÑ®ìÉ¢ÄÍ¢mFÅ·B + + t@CpXF + iotjs / src / platform / mbedos5 / mbed_app.json + + 161: "target_overrides": { + +1: "*": { + <ÇÁ>: "lwip.ipv6-enabled": true, + +1: "lwip.socket-max": 60, + +1: "lwip.tcp-server-max": 60, + +1: "lwip.tcp-socket-max": 60, + +1: "lwip.udp-socket-max": 60, + +1: "lwip.pbuf-pool-size": 10, + +1: "lwip.pbuf-pool-bufsize": 1072, + +1: "lwip.mem-size": 3200 + +1: } + +1: } + + +4) lbg[N«̧äÉ墀 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + »óAlbg[NÖÌÚ±Í EthernetInterface NXÖ}bsO³êé +foCX(GR-Peach ÌêÍI{[hÌfoCX)ÌÝðT|[gµÄ¢Ü·B + javascript ©ç§ä·éû@É¢ÄÍAºLÌhL gðQƵľ³¢B + + - lbg[N«̧äÉ¢Ä.txt + + +5) JELCḐäÉ墀 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + videoW [(J)ÆdisplayW [(LCD)ð¯Égp·éêA + display.openLCD() ðÀsãÉ video.openCMOSCamera() ðÀsµÄ¾³¢B + + ܽAlcd.start() Ì format Ìwè¢ÄAeC[ÉεÄñÀsÌÝ + LøÉÈèÜ·B + ññÚÈ~ÍñÆÙÈé format ðwèµÄàAñÌÝèªLøÉÈèÜ·B + + áj + lcd.startSync(0, buf, 'rgb565'); + lcd.stopSync(0); + lcd.startSync(0, buf, 'rgb888'); // format Í 'rgb565' ÉÈèÜ· + + +6) IoT.js IWiÌ http(https) W [ÌâèÉ墀 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IoT.js IWiÌ http(https) W [ÉÄAêñÌ SOCKET ÊMÅÍè«ê + È¢TCYÌf[^ðMµæ¤Æ·éÆAññÚÈ~ÉM³êéf[^ðÜÞÌæ + ªMOÉðú (jó) ³êĵܤ±Æªí©èܵ½B + + ±Ìâèðñð·é½ßAÌÎôðs¢Üµ½B + + 1. IoT.js IWiÌMÖ write() ðI[o[ChµA»ÌÖàÅ + f[^ð 究ßêñÌ SOCKET ÊMÅè«êéTCYɪµÄ¨B + ªµ½f[^ðIWiÌMÖÉn·B + - 4096 oCg²Æɪ + - [UR[h©çÍ write() ÖÍgXyAg + 2. POSIX wÌ SOCKET ÖÌMÍAøÅwè³ê½TCYªðèØéÜÅ + [v·éB + + ãL 1. ðÀ»·é½ßAhttp(s) W [ðgp·éêÍ fixup W [ð + Ìæ¤É require µÄ¾³¢B + + - http W [ðgp·éêF + + require('fixup')('http'); // http ð require ·é¼OÉÇL + // http W [ðC·éAÌÓ + var http = require('http'); + + - https W [ðgp·éêF + + require('fixup')('https'); // https ð require ·é¼OÉÇL + // https W [ðC·éAÌÓ + var https = require('https'); + + ±ÌLqð·éÆ IoT.js IWiÌMÖªu«·¦çêÜ·B + + Èã
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sample/client.js Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,140 @@ +//boc ---------- (BeginOfCode) +// â JPEGãã¼ã¿ãä¸å®å¨æã§ãµã¼ãã¸éä¿¡ãããµã³ãã« +var display = require('display'); +var video = require('video'); +var jpeg = require('jpeg'); +var nic = require('nic'); +var http = require('http'); +var AlignedBuffer = require('aligned_buffer').AlignedBuffer; +require('fixup')('http'); + +/************/ +/* settings */ +/************/ +// JPEGãã¼ã¿éä¿¡å ãµã¼ãã®ãããã¯ã¼ã¯è¨å® +var server = { + host: "172.27.1.196", // HTTPãµã¼ãã®IPã¢ãã¬ã¹ï¼â ï¼ + port: 8000 // HTTPãµã¼ãã®ãã¼ãçªå· +}; + +// GR-PEACH ã®ãããã¯ã¼ã¯è¨å® +var dhcp = true; // DHCP使ç¨ãã©ã° +var ifconfig = { + ip: "172.27.1.234", // IPã¢ãã¬ã¹ + netmask: "255.255.255.0", // ãµãããããã¹ã¯ + gateway: "172.27.1.1", // ããã©ã«ãã²ã¼ãã¦ã§ã¤ + dns: "8.8.8.8" // DNSãµã¼ã +}; + +var interval = 1000; // JPEGãã¼ã¿éä¿¡å¨æ(ããªç§) +/************/ + +var width = 480; +var height = 272; +var video_format = 'ycbcr422'; +var pixel_bytes = 2; +var alignment = 32; +var video_buf = new AlignedBuffer(width * height * pixel_bytes, alignment); + +var lcd_config = { + type : '4.3inch' +}; +var camera_config = { + width : width, + height : height, + format : video_format, + type : 'ov7725' +}; +var jpeg_config = { + width : width, + height : height, + format : video_format +}; + +var eth = nic.enumerate().ETHERNET; +if( eth ) { + if ( dhcp ) { + eth.ifup(); // DHCP + } else { + eth.ifup(ifconfig); // éçIPã¢ãã¬ã¹æå® + } + eth.ntpdate({ server: "ntp.nict.jp" }); // æå»åæ +} + +/* LCDåæå */ +display.openLCD(lcd_config, function(err, lcd) { + if(err) { + console.log(err); + process.exit(); + } + + /* ã«ã¡ã©åæå */ + video.openCMOSCamera(camera_config, function(err, video_source) { + if(err) { + console.log(err); + process.exit(); + } + + /* ã«ã¡ã©æ åãLCDã¸åºåéå§ */ + video_source.startSync(video_buf); + lcd.startSync(0, video_buf, video_format); + + /* ã«ã¡ã©æ åããµã¼ãã¸éä¿¡éå§ */ + snapshot(); + }); +}); + +var i = 0; +/* ã«ã¡ã©æ åãJPEGã¨ã³ã³ã¼ããããµã¼ãã¸éä¿¡ãã */ +function snapshot() { + jpeg_config.bitmap = new AlignedBuffer(video_buf, alignment); + jpeg.encode(jpeg_config, function(err, jpeg_data) { + if(err) { + console.log(err); + process.exit(); + } + console.log(++i, ' : jpeg_data.length', jpeg_data.length); + + /* HTTPãªã¯ã¨ã¹ãä½æ */ + var data = '{"image":"' + jpeg_data.toBuffer().toString('base64') + '"}'; + var options = { + host: server.host, + port: server.port, + method: 'POST', + headers: { + 'Host': server.host + ':' + server.port, + 'Content-Type': 'application/json', + 'Content-Length': data.length + } + }; + var req = http.request(options, function(res) { + var body = ''; + console.log( 'res.statusCode', res.statusCode); + + res.on('data',function(chunk) { + body += chunk; + }); + res.on('end',function() { + /* éåä¿¡å®äº */ + console.log(body); + /* intervalå¾ã«æ¬¡ã®éä¿¡ãéå§ãã */ + setTimeout(snapshot, interval); + }); + res.on( 'error', function( err ) { + /* ã¨ã©ã¼çµäº */ + console.log( err ); + process.exit(); + }); + }); + req.on( 'error', function( err ) { + /* ã¨ã©ã¼çµäº */ + console.log( err ); + process.exit(); + }); + + /* ãªã¯ã¨ã¹ãéä¿¡ */ + req.write(data); + req.end(); + }); +} +//eoc ---------- (EndOfCode)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sample/readme.txt Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,107 @@ +====================================== + Ê^MTvvOÉ墀 +====================================== + +Ê^MTvvOÉ¢ÄྵܷB + +¡t@C\¬ + + - server.js : PC ãÅÀs·é Node.js vO + - client.js : GR-PEACH ãÅÀs·é IoT.js vO + +¡®ìྠ+ + PC ªHTTPT[oAGR-PEACH ªHTTPNCAgƵĮìµÜ·B + + GR-PEACH ÅÍAêèüúÅJ©çæèñ¾æðJPEGGR[hµA + JPEGf[^ðT[oÖMµÜ·B + + PC ÅÍóMµ½JPEGf[^ðt@CÉÛ¶µÜ·B + t@CÌãÀ𴦽êAt@C¼ð[e[gµAât@Cð + 㫵ܷB + +¡®ìÝè + + KvɶÄvOàÌT[oENCAgÌÝèðÏXµÄ¾³¢B + ij̪ÍK{ÚÉÈèÜ·B + + - server.js + + ȺÌÝèÌÏXªÂ\Å·B + + 7: const port = 8000; // HTTPT[oÌ|[gÔ + +1: const maxFileNo = 100; // JPEGt@CÌãÀ + +1: const path = './jpeg/'; // JPEGt@CÛ¶tH_ + + - client.js + + ²gpÌ«Éí¹ÄMæT[oðwèµÄ¾³¢B + + 15: var server = { + +1: host: "172.27.1.196", // HTTPT[oÌIPAhXij + +1: port: 8000 // HTTPT[oÌ|[gÔ + +1: }; + + úÝèÅÍ GR-PEACH Ìlbg[NÝèÉÍ DHCP ðgpµÜ·B + DHCP ðgpµÈ¢êÍȺÌÏð false ɵľ³¢B + + 21: var dhcp = true; // DHCPgptO + + DHCP ðgpµÈ¢êA²gpÌ«Éí¹ÄAGR-PEACHÌlbg[NÝèð + sÁľ³¢BiDHCP ðgp·éêAȺÌÝèͳøÅ·j + + 22: var ifconfig = { + +1: ip: "172.27.1.234", // IPAhX + +1: netmask: "255.255.255.0", // Tulbg}XN + +1: gateway: "172.27.1.1", // ftHgQ[gEFC + +1: dns: "8.8.8.8" // DNST[o + +1: }; + + JPEGf[^ÌMüúðÏX·éêÍAȺÌlðÏXµÄ¾³¢B + + 29: var interval = 1000; // JPEGf[^Müú(~b) + +¡Àsõ + + PC É Node.js ÌÀs«ð\zµÜ·B + + ®ìmF« + OS : Windows 8.1 Pro 64bit + Node.js : Windows Binary 64-bit v10.15.1 + + ȺÌURLæèANode.js Ì Windows Binary (.zip) ð_E[hµÜ·B + + https://nodejs.org/en/download/ + + _E[hµ½t@CðCÓÌêÉðµÜ·B + ðµ½tH_àÉ server.js ðzuµÜ·B + +¡Àsû@ + + - T[oÌÀs + + server.js ðzuµ½tH_ÉÄAȺÌR}hðÀsµÜ·B + + node server.js + + - NCAgÌÀs + + GR-PEACH ðN®·éÆAVAR\[ÉȺÌbZ[Wª\¦³êÜ·B + + IoT.js for mbed-os... + mbed-os version: 5.9.3 + build timestamp: MMM DD YYYY HH:MM:SS + + input js fullpath here: + + [Enter]L[ðMµÄAR[hÌüÍ[hÉÚsµÜ·B + + input javascript code here: + + client.js ÌàeðSÄRs[µÄ\èt¯éƪnÜèÜ·B + +¡®ìmFÊ + + JPEGf[^ÌMüúð1~bÉÝèµA100ÔÈãA±µÄ®ì·é±ÆðmFµÜµ½B + +Èã
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sample/server.js Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,54 @@ +const http = require('http'); +const fs = require('fs'); + +/************/ +/* settings */ +/************/ +const port = 8000; // HTTPãµã¼ãã®ãã¼ãçªå· +const maxFileNo = 100; // JPEGãã¡ã¤ã«æ°ã®ä¸é +const path = './jpeg/'; // JPEGãã¡ã¤ã«ä¿åãã©ã«ã +/************/ + +/* ç»åä¿åãã£ã¬ã¯ããªä½æ */ +try { + fs.mkdirSync(path); +} catch(err) { + if(err.code != 'EEXIST') { + console.log(err); + process.exit(); + } +} + +var fileNo = 1; +var i = 0; +/* ãµã¼ãã®ä½æ */ +const server = http.createServer(function(req, res) { + var body = ''; + req.on('data', function(chunk) { +// console.log('chunk.length : ' + chunk.length); + body += chunk; + }); + req.on('end', function() { + /* åä¿¡ãããã¼ã¿ããã¡ã¤ã«ã«ä¿å */ + try { + var obj = JSON.parse(body); + var image = Buffer.from(obj.image, 'base64'); + console.log(++i, 'Write : ' + path + 'image' + fileNo + '.jpg'); + fs.writeFileSync(path + fileNo + '.jpg', image); + fileNo = (fileNo < maxFileNo) ? (fileNo + 1) : 1; + } catch(err) { + console.log(err); + } + + /* ã¯ã©ã¤ã¢ã³ã㸠OK ãåºå®ã§è¿ã */ + res.setHeader('Content-Type', 'text/html'); + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('OK'); + }); + req.on('error', function(err) { + /* ã¨ã©ã¼çµäº */ + console.log(err); + res.end(); + }); +}); +server.listen(port);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/.mbedignore Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,1 @@ +*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/case.txt Thu Jul 11 18:49:37 2019 +0900 @@ -0,0 +1,1122 @@ +â ãã¹ãã±ã¼ã¹ã«ã¤ã㦠+ + 次ã®è¡ã§å²ã¾ããé¨åãããããã®ãã¹ãã±ã¼ã¹ã«ãªãã¾ãã + //boc ---------- (BeginOfCode) + //eoc ---------- (EndOfCode) + +ã»ä½¿ç¨ä¾ï¼ + +ï¼ï¼ä¸è¨ã® //boc ã® *åè¡* ãã //eoc ã® *次è¡* ã¾ã§ãã¯ãªãããã¼ãã«ã³ãã¼ãã¦ããã¾ãã + +//boc ---------- (BeginOfCode) +console.log("001"); +//eoc ---------- (EndOfCode) + +ï¼ï¼GR-Peach ããªã»ããï¼or BREAKä¿¡å·ãéä¿¡ï¼ãã¾ãã + â» GR-Peach ã«ã¯ *å¿ ã* microSD ã«ã¼ããã»ãããã¦ããã¦ãã ããã + + IoT.js for mbed-os... + mbed-os version: 5.9.3 + build timestamp: MMM DD YYYY HH:MM:SS + + input js fullpath here: + +ï¼ï¼[Enter]ãã¼ãéä¿¡ãã¦ãã³ã¼ãã®å ¥åã¢ã¼ãã«ç§»è¡ãã¾ãã + + input javascript code here: + +ï¼ï¼ã¯ãªãããã¼ãã®å 容ãè²¼ãä»ããã¨å¦çãå§ã¾ãã¾ããï¼æå ¥åã§ãï¼¯ï¼«ï¼ + + input javascript code here: + //boc ---------- (BeginOfCode) + console.log("001"); + //eoc ---------- (EndOfCode) + + ------- POSIX[ 1][thr0] -->clock_getres(clk_id=6, res=0x2005aae4) + ------- POSIX[ 2][thr0] <--clock_getres(clk_id=6, res={0.001000000}) = 0(errno:0) + ------- POSIX[ 3][thr0] -->clock_gettime(clk_id=6, tp=0x2005aae4) + : + : + + + +â ããã¤ãã®ãã¹ãã±ã¼ã¹ + + + +//boc ---------- (BeginOfCode) +//â process.platform ã "mbedos" ãç¢ºèª +console.log( 'platform = ' + process.platform ); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â process ç°å¢è¡¨ç¤ºãã¹ã +console.log( 'platform' + JSON.stringify( process, null, " " ) ); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â ã«ã¬ã³ããã¹ã®ãã¹ã +console.log('current path: "' + process.cwd() + '"'); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â console 表示ãã¹ã (UTF8) +console.log("001"); +console.log("002", "002"); +var val = "string"; +console.log("003", val); +val = 123; +console.log("004", val); +val = 3.14; +console.log("005", val); +console.log("nihongo", "UTF8"); +console.log("nihongo", "æ¥æ¬èª", "UTF8"); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â JSON.stringifyãJSON.parse ã®ãã¹ã +var obj = {abc:10, pi:3.14, str:"moji"}; +var json = JSON.stringify(obj); +console.log( json ); +var copy = JSON.parse(json); +console.log( copy ); +console.log( JSON.stringify(copy) ); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â chdir ã®ãã¹ã +function CHECK( number, val, must_be) +{ + console.log( 'check', number, ': must be', must_be, ':', val == must_be ? 'OK' : 'NG' ); +} + +var currentPath = process.cwd(); +console.log('currentPath', process.cwd()); + +try { + process.chdir('/sd'); +} catch(err) { + console.log('invalid path'); +} + +console.log('currentPath', process.cwd()); +CHECK(1, process.cwd(), '/sd'); + +process.chdir(currentPath); +console.log('currentPath', process.cwd()); + +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â Buffer ã®ãã¹ã (linuxçã¨çµæãåãã§ãããã¨) +var buf = new Buffer('hello world', 'ascii'); +console.log(buf.toString('hex')); // Prints: 68656c6c6f20776f726c64 +console.log(buf.toString('base64')); // Prints: aGVsbG8gd29ybGQ= +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â setTimeout() ã®ãã¹ã +setTimeout( function() { + console.log( new Date().getTime(), 'kita' ); +}, 3000); +console.log( new Date().getTime(), 'setTimeout started'); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â setInterval() ã®ãã¹ã +var count = 0; +var tid = setInterval( function() { + console.log( new Date().getTime(), 'setInterval kita' ); + if( ++ count >= 5 ) clearInterval( tid ); +}, 1000); +console.log( new Date().getTime(), 'setInterval started'); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â setTimeout(), setInterval() ã®ãã¹ã +setTimeout( function() { + console.log( new Date().getTime(), 'setTimeout1 kita' ); +}, 3500); +console.log( new Date(), 'setTimeout1 started'); + +setTimeout( function() { + console.log( new Date().getTime(), 'setTimeout2 kita' ); +}, 5500); +console.log( new Date().getTime(), 'setTimeout2 started'); + +var count = 0; +var tid = setInterval( function() { + console.log( new Date().getTime(), 'setInterval kita' ); + if( ++ count >= 5 ) clearInterval( tid ); +}, 2000); +console.log( new Date().getTime(), 'setInterval started'); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â fs ã¢ã¸ã¥ã¼ã«ã®ãã¹ã (åæ) +var fs = require('fs'); +var fname = "/sd/_temp_code.js"; +var stat = fs.statSync(fname); +console.log( JSON.stringify(stat) ); +console.log( fs.readFileSync(fname) ); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â æ£è¦è¡¨ç¾ã®ãã¹ã +var re = /(\w+)\s(\w+)/; +var str = 'John Smith'; +var newstr = str.replace(re, '$2, $1'); +console.log(newstr); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â æåååå²ãã¹ã +var text = 'Some text\nAnd some more\r\nAnd yet\rThis is the end'; +var lines = text.split(/\r\n|\r|\n/); +console.log(lines); // logs [ 'Some text', 'And some more', 'And yet', 'This is the end' ] +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â å¤å½èªãã¹ã +var text = 'ÐбÑÐ°Ð·ÐµÑ text на ÑÑÑÑком ÑзÑке'; +var regex = /[\u0400-\u04FF]+/g; + +var match = regex.exec(text); +console.log(match[0]); // logs 'ÐбÑазеÑ' +console.log(regex.lastIndex); // logs '7' + +var match2 = regex.exec(text); +console.log(match2[0]); // logs 'на' [did not log 'text'] +console.log(regex.lastIndex); // logs '15' + +// and so on +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +//â æååæä½ãã¹ã +var url = 'http://xxx.domain.com'; +console.log(/[^.]+/.exec(url)[0].substr(7)); // logs 'xxx' +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â EventEmitterãã¹ã +var EventEmitter = require('events').EventEmitter; + +function asyncFunc() { + var ev = new EventEmitter; + console.log('in asyncFunc'); + setTimeout(function () { + ev.emit('done', 'foo', 'bar'); + }, 1000); + return ev; +} + +var async = asyncFunc(); +async.on('done', function(arg1, arg2) { + console.log(arg1, arg2); +}); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â streamãã¹ã + +var Readable = require('stream').Readable; + +function CHECK( number, val, must_be) +{ + console.log( 'check', number, ': must be', must_be, ':', val == must_be ? 'OK' : 'NG' ); +} + +var readable1 = new Readable(); +var d = ""; +var e = ""; + + +readable1.on('error', function(err) { + e += "."; +}); + +readable1.on('data', function(data) { + d += data.toString(); +}); + +readable1.on('end', function() { + e += 'e'; +}); + + +readable1.pause(); +readable1.push('abcde'); +readable1.push('12345'); +CHECK(1, d, ''); +CHECK(2, e, ''); + +readable1.resume(); +CHECK(3, d, 'abcde12345'); +CHECK(4, e, ''); + +readable1.push('a'); +readable1.push('1'); +readable1.push('b'); +readable1.push('2'); +CHECK(5, d, 'abcde12345a1b2'); +CHECK(6, e, ''); + +CHECK(7, readable1.isPaused(), false); +readable1.pause(); +CHECK(8, d, 'abcde12345a1b2'); +CHECK(9, e, ''); +CHECK(10, readable1.isPaused(), true); + +// Pause the readable again. This should do nothing. +readable1.pause(); +CHECK(11, readable1.isPaused(), true); + +readable1.push('c'); +readable1.push('3'); +readable1.push('d'); +readable1.push('4'); +CHECK(12, d, 'abcde12345a1b2'); +CHECK(13, e, ''); + +readable1.resume(); +CHECK(14, d, 'abcde12345a1b2c3d4'); +CHECK(15, e, ''); + +readable1.push(null); +CHECK(16, d, 'abcde12345a1b2c3d4'); +CHECK(17, e, 'e'); + +readable1.push('push after eof'); +CHECK(18, d, 'abcde12345a1b2c3d4'); +CHECK(19, e, 'e.'); + + +// Create a readable stream without the new keyword. +var readable2 = Readable({encoding: 'utf8'}); + +// Read with irregular parameters from an empty stream. +CHECK(20, readable2.read(-2), null); +CHECK(21, readable2.read(0), null); + +readable2.push('qwerty'); +CHECK(22, readable2.read(6), 'qwerty'); + +// Throw not implemented Error when we trying to read less length data. +readable2.push('new-data'); + +var readable3 = new Readable(); +var readable3End = false; +var paused = false; +var str = 'test'; + +readable3.on('data', function(data) { + CHECK(23, paused, true); + CHECK(24, data, str); +}); + +readable3.on('end', function() { + readable3End = true; +}); + +readable3.pause(); +readable3.push(str); +readable3.push(null); + +setTimeout(function() { + paused = true; + readable3.resume(); +}, 1000); + + +process.on('exit', function() { + CHECK(25, readable2 instanceof Readable, true); + CHECK(26, readable3End, true); +}); + +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â dns ã¢ã¸ã¥ã¼ã«ã®ç°¡æãã¹ã +var dns = require('dns'); +dns.lookup('www.google.co.jp', function(err, address, family) { + console.log('www.google.co.jp -> address: %j family: IPv%s', address, family); +}); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â nic ã¢ã¸ã¥ã¼ã«ã®ç°¡æãã¹ã +var nic = require('nic'); +// ä¸è¦§åå¾ +var nics = nic.enumerate(); +// ä¸è¦§ç¢ºèª +console.log( Object.keys( nics ).length + "åã®NICãæè¼ããã¦ãã¾ã" ); +var index = 0; +Object.keys( nics ).forEach( function(key) { + console.log( ++ index + "åç®ã¯:" + key ); +}); +// 使ãæ¹ +var eth0 = nics["ETHERNET"]; +if( eth0 ) { + eth0.ifup(); // use DHCP + eth0.ntpdate({ server:"ntp.nict.jp" }); + console.log( JSON.stringify( eth0.ifconfig() ) ); + console.log( new Date().toString() ); +} +var wifi = nics["WIFI_BP3595"]; +if( wifi ) { + wifi.ifup( { + wifi: { + ssid: "<SSID>", + password: "<PASSWORD>", + security: "WPA_WPA2" // åè£ï¼WEP, WPA, WPA2, WPA_WPA2 + }, + ip: "192.168.10.123", + netmask: "255.255.255.0", + gateway: "192.168.10.1", + dns: "8.8.8.8" + }); + wifi.ntpdate(); + console.log( JSON.stringify( wifi.ifconfig() ) ); + console.log( new Date().toString() ); +} +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â http ã¯ã©ã¤ã¢ã³ãã®ãã¹ã + +var cli = require('http'); +require('fixup')('http'); +cli.get({ host: 'www.google.com' }, function(res) { + console.log( 'res.statusCode', res.statusCode); + res.on('data', function(chunk) { + console.log( chunk.toString() ); + }); + res.on('end', function() { + console.log( 'end' ); + }); +}); + +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â https ã¯ã©ã¤ã¢ã³ãã®ãã¹ã + +var cli = require('https'); +require('fixup')('https'); +cli.get({ host: 'www.google.com' }, function(res) { + console.log( 'res.statusCode', res.statusCode); + res.on('data', function(chunk) { + console.log( chunk.toString() ); + }); + res.on('end', function() { + console.log( 'end' ); + }); +}); + +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â ã«ã¡ã©å ¥åãJPEGãã¡ã¤ã«ã«ä¿åãã +var video = require('video'); +var jpeg = require('jpeg'); +var fs = require('fs'); +var AlignedBuffer = require('aligned_buffer').AlignedBuffer; + +var width = 480; +var height = 272; +var video_format = 'ycbcr422'; +var pixel_bytes = 2; +var alignment = 32; +var video_buf = new AlignedBuffer(width * height * pixel_bytes, alignment); + +var camera_config = { + width : width, + height : height, + format : video_format, + type : 'ov7725' +}; +var jpeg_config = { + width : width, + height : height, + format : video_format +}; + +var interval = 1*1000; // ç»åä¿åå¨æ(ms) +var count = 10; // ä¿åããç»åãã¡ã¤ã«æ° + +// ã«ã¡ã©ã®åæå +video.openCMOSCamera(camera_config, function(err, video_source){ + if(err) { + console.log(err); + return; + } + // æ åã®åãè¾¼ã¿éå§ + video_source.start(video_buf, function(err) { + if(err) { + console.log(err); + return; + } + // interval ã®å¨æ㧠count æ°ã®JPEGç»åãä¿å + var i = 0; + var timer = setInterval(function() { + if(i >= count) { + clearInterval(timer); + video_source.stopSync(); // æ åã®åãè¾¼ã¿åæ¢ + video_source.closeSync(); // ã«ã¡ã©ãªã½ã¼ã¹ã®è§£æ¾ + return; + } + jpeg_config.bitmap = new AlignedBuffer(video_buf, alignment); + var jpeg_data = jpeg.encodeSync(jpeg_config); + fs.writeFileSync('/sd/image' + i + '.jpg', jpeg_data.toBuffer()); + console.log('/sd/image' + i + '.jpg'); + i++; + }, interval); + }); +}); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â LCDã®ã°ã©ãã£ãã¯ã¹æç»ãã¹ã +var display = require('display'); +var Graphics = require('graphics').Graphics; +var AlignedBuffer = require('aligned_buffer').AlignedBuffer; + +var width = 480; +var height = 272; +var pixel_bytes = 2; +var alignment = 32; + +var buf_size = width * height * pixel_bytes; + +var lcd_config = { + type : '4.3inch' +}; + +// ã¬ã¤ã¤ã¼0ç¨ãã¬ã¼ã ãããã¡åæå +var format0 = 'rgb565'; +var buf0 = new AlignedBuffer(buf_size, alignment); +var graphics0 = new Graphics({buf:buf0, width:width, height:height, format:format0}); +graphics0.drawRect(0,0,width,height,0xFFFF,true); // å ¨é åãç½ã§å¡ãã¤ã¶ã + +// ã¬ã¤ã¤ã¼1ç¨ãã¬ã¼ã ãããã¡åæå +var format1 = 'argb4444'; +var buf1 = new AlignedBuffer(buf_size, alignment); +var graphics1 = new Graphics({buf:buf1, width:width, height:height, format:format1}); +graphics1.drawRect(0,0,width,height,0x0000,true); // å ¨é åãå®å ¨éé + +var interval = 1*1000; // LCD表示åãæ¿ãå¨æ(ms) + +// LCDã®åæå +display.openLCD(lcd_config, function(err, lcd) { + if(err) { + console.log(err); + return; + } + + var i = 0; + var timer = setInterval(function(){ + switch(i) { + case 0: + // ã¬ã¤ã¤ã¼0ã®è¡¨ç¤ºãéå§ï¼ç½èæ¯ï¼ + lcd.startSync(0, graphics0.frameBuffer, format0); + break; + case 1: + // ã¬ã¤ã¤ã¼1ã®è¡¨ç¤ºãéå§ï¼ç½èæ¯ã«èµ¤ã®åï¼ + graphics1.drawCircle(100,100,50,0xFF00,true); + lcd.startSync(1, graphics1.frameBuffer, format1); + break; + case 2: + // ã¬ã¤ã¤ã¼0ã®ãã¬ã¼ã ãããã¡ãåãæ¿ãï¼éèæ¯ã«èµ¤ã®åï¼ + var new_buf0 = new AlignedBuffer(buf_size, alignment); + var new_graphics0 = new Graphics({buf:new_buf0, width:width, height:height, format:format0}); + new_graphics0.drawRect(0,0,width,height,0x001F,true); // å ¨é åãéã§å¡ãã¤ã¶ã + lcd.updateSync(0, new_graphics0.frameBuffer); + break; + case 3: + // ã¬ã¤ã¤ã¼0ã®è¡¨ç¤ºãåæ¢ï¼é»èæ¯ã«èµ¤ã®åï¼ + lcd.stopSync(0); + break; + case 4: + // ã¬ã¤ã¤ã¼1ã®è¡¨ç¤ºãåæ¢ï¼é»èæ¯ï¼ + lcd.stopSync(1); + break; + default: + // LCDãªã½ã¼ã¹ã®è§£æ¾ + lcd.closeSync(); + clearInterval(timer); + break; + } + i++; + }, interval); +}); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â ã«ã¡ã©å ¥åãGoogle Vision APIã«éä¿¡ããæ¤åºçµæãLCDã«æç»ãããã¹ã +var display = require('display'); +var video = require('video'); +var jpeg = require('jpeg'); +var https = require('https'); +var AlignedBuffer = require('aligned_buffer').AlignedBuffer; +var Graphics = require('graphics').Graphics; +require('fixup')('https'); + +var width = 480; +var height = 272; +var video_format = 'ycbcr422'; +var pixel_bytes = 2; +var alignment = 32; +var video_buf = new AlignedBuffer(width * height * pixel_bytes, alignment); + +var result_format = 'argb4444'; +var result_color = 0xF00F; +var result_pixel_bytes = 2; + +var lcd_config = { + type : '4.3inch' +}; +var camera_config = { + width : width, + height : height, + format : video_format, + type : 'ov7725' +}; +var jpeg_config = { + width : width, + height : height, + format : video_format +}; + +var key = 'key=<your APIKey>'; +var timeout = 10*1000; +var detection_type = 'FACE_DETECTION'; +//var detection_type = 'OBJECT_LOCALIZATION'; + +var lcd; +display.openLCD(lcd_config, function(err, lcd_) { + console.log('LCD Open Callback'); + + if(!err) { + lcd = lcd_; + lcd.start(0, video_buf, video_format, function(err){ + if(!err) console.log('LCD Layer 0 Start'); + else console.log(err); + }); + + console.log('Camera Open Start'); + video.openCMOSCamera(camera_config, function(err, video_source){ + if(!err) { + video_source.start(video_buf, function(){ + console.log('Camera Start'); + + // 10ç§å¾ã«JPEGã¨ã³ã³ã¼ãéå§ + setTimeout(function() { + console.log('JPEG Encode Start'); + video_source.stopSync(); + jpeg_config.bitmap = new AlignedBuffer(video_buf, alignment); + jpeg.encode(jpeg_config, function(err, data) { + console.log('JPEG Encode Callback'); + if(!err && data) { + use_google_vision_api(data.toBuffer().toString('base64')); + } else { + console.log(err); + } + }); + }, timeout); + }); + } + else { + console.log(err); + } + }); + } + else { + console.log(err); + } +}); + +console.log('LCD Open Start'); + +function use_google_vision_api(image) { + var host = 'vision.googleapis.com'; + var port = 443; + var path = '/v1/images:annotate'; + + var data = '{"requests":[{"image":{"content":"' + + image + + '"},"features":[{"type":"' + detection_type + '"}]},]}'; + + var options = { + host: host, + port: port, + path: path + '?' + key, + method: 'POST', + headers: { + 'Host': host + ':' + port, + 'Content-Type': 'application/json', + 'Content-Length': data.length + } + }; + + var req = https.request(options, function(res) { + var body = ''; + console.log( 'res.statusCode', res.statusCode); + + res.on('data',function(chunk) { + body += chunk; + }); + res.on('end',function() { + console.log(body); + drawResult(JSON.parse(body)); + }); + }); + req.on( 'error', function( e ) { + console.log( 'error' ); + console.log( e.message ); + }); + + req.writeEntire = function(data, block_size) { + block_size = block_size || 1024; + for(var i = 0; i < data.length; i += block_size) { + this.write(data.slice(i, i + block_size)); + } + }; + req.writeEntire(data); + req.end(); +} + +function drawResult(res) { + switch(detection_type) { + case 'FACE_DETECTION': + drawFace(res); + break; + case 'OBJECT_LOCALIZATION': + drawObject(res); + break; + default: + break; + } +} + +function drawObject(res) { + var result_buf = new AlignedBuffer(width*height*result_pixel_bytes, alignment); + var result = new Graphics({buf:result_buf, width:width, height:height, format:result_format}); + result.drawRect(0, 0, width, height, 0x0000, true); + + // response format + // https://cloud.google.com/vision/docs/reference/rest/v1/images/annotate?hl=ja#LocalizedObjectAnnotation + var objects = res.responses[0].localizedObjectAnnotations; + objects.forEach(function(e, index){ + var rect = e.boundingPoly.normalizedVertices; + rect.forEach(function(e) { + e.x *= width; + e.y *= height; + }); + result.drawRect(rect[0].x, + rect[0].y, + rect[1].x - rect[0].x, + rect[3].y - rect[0].y, + result_color, false); + result.drawText(e.name, rect[0].x + 1, rect[0].y + 1, 1, result_color, 0x0000); + }); + + lcd.startSync(2, result.frameBuffer, result_format); +} + +function drawFace(res) { + var result_buf = new AlignedBuffer(width*height*result_pixel_bytes, alignment); + var result = new Graphics({buf:result_buf, width:width, height:height, format:result_format}); + result.drawRect(0, 0, width, height, 0x0000, true); + + var background_buf = new AlignedBuffer(width*height*result_pixel_bytes, alignment); + var background_format = 'rgb565'; + var background = new Graphics({buf : background_buf, width:width, height:height, format:background_format}); + background.drawRect(0, 0, width, height, 0xFFFF, true); + + result.drawPolyline = function ( positions, close, color ) { + for(var i = 0; i < positions.length - 1; i++) { + this.drawLine(positions[i].x, + positions[i].y, + positions[i+1].x, + positions[i+1].y, + color); + } + if(close) { + this.drawLine(positions[positions.length-1].x, + positions[positions.length-1].y, + positions[0].x, + positions[0].y, + color); + } + }; + + // response format + // https://cloud.google.com/vision/docs/reference/rest/v1/images/annotate?hl=ja#FaceAnnotation + + res.responses[0].faceAnnotations.forEach(function(faceAnnotation){ + + var landmarks = faceAnnotation.landmarks; + landmarks.findIndex = function(type) { + var ret; + this.forEach(function(e, index) { + if(e.type == type) ret = index; + }); + return ret; + }; + + var outline = []; + outline.push(landmarks[landmarks.findIndex('LEFT_EAR_TRAGION')].position); + outline.push(landmarks[landmarks.findIndex('CHIN_LEFT_GONION')].position); + outline.push(landmarks[landmarks.findIndex('CHIN_GNATHION')].position); + outline.push(landmarks[landmarks.findIndex('CHIN_RIGHT_GONION')].position); + outline.push(landmarks[landmarks.findIndex('RIGHT_EAR_TRAGION')].position); + result.drawPolyline(outline, false, result_color); + + var left_eyeblow = []; + left_eyeblow.push(landmarks[landmarks.findIndex('LEFT_OF_LEFT_EYEBROW')].position); + left_eyeblow.push(landmarks[landmarks.findIndex('LEFT_EYEBROW_UPPER_MIDPOINT')].position); + left_eyeblow.push(landmarks[landmarks.findIndex('RIGHT_OF_LEFT_EYEBROW')].position); + result.drawPolyline(left_eyeblow, false, result_color); + + var right_eyeblow = []; + right_eyeblow.push(landmarks[landmarks.findIndex('LEFT_OF_RIGHT_EYEBROW')].position); + right_eyeblow.push(landmarks[landmarks.findIndex('RIGHT_EYEBROW_UPPER_MIDPOINT')].position); + right_eyeblow.push(landmarks[landmarks.findIndex('RIGHT_OF_RIGHT_EYEBROW')].position); + result.drawPolyline(right_eyeblow, false, result_color); + + var left_eye = []; + left_eye.push(landmarks[landmarks.findIndex('LEFT_EYE_TOP_BOUNDARY')].position); + left_eye.push(landmarks[landmarks.findIndex('LEFT_EYE_RIGHT_CORNER')].position); + left_eye.push(landmarks[landmarks.findIndex('LEFT_EYE_BOTTOM_BOUNDARY')].position); + left_eye.push(landmarks[landmarks.findIndex('LEFT_EYE_LEFT_CORNER')].position); + result.drawPolyline(left_eye, true, result_color); + + var eye = landmarks[landmarks.findIndex('LEFT_EYE')].position + result.drawCircle(eye.x, eye.y, 2, result_color, true); + eye = landmarks[landmarks.findIndex('RIGHT_EYE')].position + result.drawCircle(eye.x, eye.y, 2, result_color, true); + + var right_eye = []; + right_eye.push(landmarks[landmarks.findIndex('RIGHT_EYE_TOP_BOUNDARY')].position); + right_eye.push(landmarks[landmarks.findIndex('RIGHT_EYE_RIGHT_CORNER')].position); + right_eye.push(landmarks[landmarks.findIndex('RIGHT_EYE_BOTTOM_BOUNDARY')].position); + right_eye.push(landmarks[landmarks.findIndex('RIGHT_EYE_LEFT_CORNER')].position); + result.drawPolyline(right_eye, true, result_color); + + var nose = []; + nose.push(landmarks[landmarks.findIndex('NOSE_BOTTOM_LEFT')].position); + nose.push(landmarks[landmarks.findIndex('NOSE_TIP')].position); + nose.push(landmarks[landmarks.findIndex('NOSE_BOTTOM_RIGHT')].position); + nose.push(landmarks[landmarks.findIndex('NOSE_BOTTOM_CENTER')].position); + nose.push(landmarks[landmarks.findIndex('NOSE_BOTTOM_LEFT')].position); + nose.push(landmarks[landmarks.findIndex('MIDPOINT_BETWEEN_EYES')].position); + nose.push(landmarks[landmarks.findIndex('NOSE_BOTTOM_RIGHT')].position); + result.drawPolyline(nose, false, result_color); + + var mouth = []; + mouth.push(landmarks[landmarks.findIndex('MOUTH_LEFT')].position); + mouth.push(landmarks[landmarks.findIndex('UPPER_LIP')].position); + mouth.push(landmarks[landmarks.findIndex('MOUTH_RIGHT')].position); + mouth.push(landmarks[landmarks.findIndex('LOWER_LIP')].position); + mouth.push(landmarks[landmarks.findIndex('MOUTH_LEFT')].position); + mouth.push(landmarks[landmarks.findIndex('MOUTH_CENTER')].position); + mouth.push(landmarks[landmarks.findIndex('MOUTH_RIGHT')].position); + result.drawPolyline(mouth, false, result_color); + + }); + + lcd.start(2, result.frameBuffer, result_format, function(){ + console.log('lcd start callback'); + setTimeout(function(){ + lcd.startSync(1, background.frameBuffer, background_format); + lcd.stopSync(0); + }, timeout); + }); +} +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â ã©ã³ãã ã°ã©ãã£ãã¯ã¹æç»ãã¹ã +var display = require('display'); +var Graphics = require('graphics').Graphics; +var AlignedBuffer = require('aligned_buffer').AlignedBuffer; + +var width = 480; +var height = 272; +var graphics_format = 'rgb565'; +var text_format = 'argb4444'; +var pixel_bytes = 2; +var alignment = 32; +var color_mask = 0xFFFF; +var text_color = 0xF000; +var text_background = 0xFFFF; + +var buf_size = width * height * pixel_bytes; +var interval = 10; +var count = 500; + +var lcd_config = { + type : '4.3inch' +}; + +var graphcis_buf = new AlignedBuffer(buf_size, alignment); +var canvas = new Graphics({buf:graphcis_buf, width:width, height:height, format:graphics_format}); +canvas.drawRect(0,0,width,height,0xFFFF,true); +var text_buf = new AlignedBuffer(buf_size, alignment); +var text = new Graphics({buf:text_buf, width:width, height:height, format:text_format}); +text.drawRect(0,0,width,height,0x0000,true); + +var start_index = 0; +var drawRandomGraphics = [ + { type : "Line", func : drawRandomLine }, + { type : "Rectangle", func : drawRandomRect }, + { type : "Arc", func : drawRandomArc }, + { type : "Circle", func : drawRandomCircle }, + { type : "Ellipse", func : drawRandomEllipse }, + { type : "Polygon", func : drawRandomPolygon } +]; + +function drawRandomLine(g) { + var sx = Math.floor(Math.random() * width); + var sy = Math.floor(Math.random() * height); + var ex = Math.floor(Math.random() * width); + var ey = Math.floor(Math.random() * height); + var color = Math.floor(Math.random() * color_mask); + g.drawLine(sx, sy, ex, ey, color); +} + +function drawRandomRect(g) { + var x = Math.floor(Math.random() * width); + var y = Math.floor(Math.random() * height); + var w = Math.floor(Math.random() * width); + var h = Math.floor(Math.random() * height); + var color = Math.floor(Math.random() * color_mask); + var fill = Math.round(Math.random()); + g.drawRect(x, y, w, h, color, fill); +} + +function drawRandomArc(g) { + var x = Math.floor(Math.random() * width); + var y = Math.floor(Math.random() * height); + var radius = Math.floor(Math.random() * height); + var start = Math.floor(Math.random() * 360); + var end = Math.floor(Math.random() * 360); + var color = Math.floor(Math.random() * color_mask); + g.drawArc(x, y, radius, start, end, color); +} + +function drawRandomCircle(g) { + var x = Math.floor(Math.random() * width); + var y = Math.floor(Math.random() * height); + var radius = Math.floor(Math.random() * height); + var color = Math.floor(Math.random() * color_mask); + var fill = Math.round(Math.random()); + g.drawCircle(x, y, radius, color, fill); +} + +function drawRandomEllipse(g) { + var cx = Math.floor(Math.random() * width); + var cy = Math.floor(Math.random() * height); + var rx = Math.floor(Math.random() * height); + var ry = Math.floor(Math.random() * height); + var color = Math.floor(Math.random() * color_mask); + var fill = Math.round(Math.random()); + g.drawEllipse(cx, cy, rx, ry, color, fill); +} + +function drawRandomPolygon(g) { + var x = Math.floor(Math.random() * width); + var y = Math.floor(Math.random() * height); + var radius = Math.floor(Math.random() * height); + var sides = Math.floor(Math.random() * 10) + 3; + var color = Math.floor(Math.random() * color_mask); + var fill = Math.round(Math.random()); + g.drawPolygon(x, y, radius, sides, color, fill); +} + +display.openLCD(lcd_config, function(err, lcd) { + if(!err) { + lcd.startSync(0, canvas.frameBuffer, graphics_format); + lcd.startSync(1, text.frameBuffer, text_format); + + var draw = function(index) { + var type = drawRandomGraphics[index].type; + canvas.drawRect(0, 0, width, height, 0xFFFF, true); + text.drawRect(0, 0, width, height, 0x0000, true); + text.drawText('Draw Random ' + type, 0, 0, 2, text_color, text_background); + + var timer = setInterval(function() { + drawRandomGraphics[index].func(canvas); + }, interval); + + setTimeout(function() { + clearInterval(timer); + if(++index < drawRandomGraphics.length) { + draw(index); + } + }, interval * count); + } + draw(start_index); + } +}); +//eoc ---------- (EndOfCode) + + + + + +//boc ---------- (BeginOfCode) +// â JPEGç»åã®é£ç¶è¡¨ç¤ºãã¹ã +// äºåã« contents_microSD.zip ã解åããframes ãã©ã«ãã microSD ã«ã¼ãç´ä¸ã« +// ã³ãã¼ãã¦ãã ãã +var display = require('display'); +var jpeg = require('jpeg'); +var fs = require('fs'); +var AlignedBuffer = require('aligned_buffer').AlignedBuffer; +var Graphics = require('graphics').Graphics; + +var width = 480; +var height = 272; +var format = 'rgb565'; +var pixel_bytes = 2; +var alignment = 32; +var buf = new AlignedBuffer(width * height * pixel_bytes, alignment); +var canvas = new Graphics({buf:buf, width:width, height:height, format:format}); +canvas.drawRect(0,0,width,height,0xFFFF,true); + +var lcd_config = { + type : '4.3inch' +}; + +var file_num = 14315; + +display.openLCD(lcd_config, function(err, lcd) { + if(!err) { + lcd.start(0, canvas.frameBuffer, format, function() { + var i = 1; + var interval = setInterval(function() { + if(i > file_num) { + clearInterval(interval); + return; + } + body(i++); + }, 1); + }); + } else { + console.log(err); + } +}); + +function body(i) { + var dir = ('000' + Math.floor(i / 100)).slice(-3); + var file = ('00000' + i).slice(-5) + '.jpg'; + var path = '/sd/frames/' + dir + '/' + file; + var jpeg_data = new AlignedBuffer(fs.readFileSync(path), alignment); + + var decode_config = { + width : 384, + height : 216, + format : format + }; + + var image = jpeg.decodeSync(jpeg_data, decode_config); + canvas.drawImage(image, 48, 28); +} +//eoc ---------- (EndOfCode)
Binary file test/contents_microSD.zip has changed