改 定 履 歴 版 改 定 内 容 改 定 日 1.0 初 版 作 成 2014/11/03 1.1 Raspberry Pi の I2C ポートの 有 効 化 方 法 を 追 記 2014/11/07 その 他 誤 記 修 正 1.2 ライブラリバージョンアップに 伴 う サンプルコードの 微 修

Similar documents
TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

C.1 共 有 フォルダ 接 続 操 作 の 概 要 アクセスが 許 可 されている 研 究 データ 交 換 システムの 個 人 用 共 有 フォルダまたは メーリングリストの 共 有 フォルダに 接 続 して フォルダを 作 成 したり ファイル をアップロードまたはダウンロードしたりすることがで

PowerPoint プレゼンテーション

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

■デザイン

ez_meishi.ppt

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

技術報告会原稿フォーマット

Mac OS Xでの利用設定 マニュアル

目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順 アドレス 帳 の 操 作 手 順 フォルダーの 操 作 手 順 メール 発 信 者 登 録 署 名 登 録 手 順 基 本 的 な 設 定

1

Microsoft PowerPoint - webサイト更新マニュアル ppt [互換モード]

WebMail ユーザーズガイド

Microsoft PowerPoint _リビジョンアップ案内_最終.pptx

購買ポータルサイトyOASIS簡易説明書 b

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

POWER EGG V2.01 ユーザーズマニュアル ファイル管理編

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

目 次 機 能 概 要 配 信 管 理 1. メールの 配 信 履 歴 と 予 約 を 確 認 する

変 更 履 歴 日 付 Document ver. 変 更 箇 所 変 更 内 容 2015/3/ 新 規 追 加 2015/9/24 誤 字 修 正 2016/2/ 動 作 環 境 最 新 のものへ 変 更 全 体 オペレーター の 表 記 を 削 除 2016/5/

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

HTG-35U ブルーバック表示の手順書 (2014年12月改定)

ことばを覚える

スライド 1

AGT10 ( Android(TM) 4.1) ファームウェア更新方法

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

Microsoft Word - 311Tools_END

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

スライド 1

4.5. < 参 加 表 明 書 を 提 出 する> 調 達 案 件 一 覧 の 表 示 対 象 となる 案 件 を 検 索 し 調 達 案 件 一 覧 に 表 示 させます 参 加 したい 案 件 の 調 達 案 件 名 称 行 - 入 札 参 加 資 格 確 認 申 請 / 技 術 資 料 /

PDF閲覧制限システムLight版体験版マニュアル


V-CUBE One

Thunderbird のメール/設定を別PCへ移行する方法(「MozBackup」を使って)

図 2 のような 画 面 が 表 示 されるので Install Proself Disk.pkg を 右 クリック(Ctrl+クリック)して 開 く をクリックしてください 図 2 インストーラ 画 面 図 3 のような 画 面 が 表 示 されるので 開 く をクリックしてください 図 3 確

この 章 では 電 子 入 札 システムをご 利 用 いただくための 事 前 準 備 について 説 明 します 事 前 準 備 と して ID 初 期 パスワードの 確 認 初 期 パスワード 初 期 見 積 用 暗 証 番 号 の 変 更 IC カード 登 録 またはICカード 更 新 を 行 っ

工事記録写真チェックシステム 操作説明書

パソコンバンクWeb21 操作マニュアル[導入・事前設定編]

同 期 を 開 始 する( 初 期 設 定 ) 2 1 Remote Link PC Sync を 起 動 する 2 1 接 続 機 器 の [PIN コード ] [ ユーザー 名 ] [ パスワード ] を 入 力 する [PIN コード ] などの 情 報 は 接 続 機 器 の 設 定 画 面

端 末 型 払 い 出 しの 場 合 接 続 構 成 図 フレッツ グループから 払 出 されたIPアドレス /32 NTT 西 日 本 地 域 IP 網 フレッツ グループ フレッツ グループから 払 出 されたIPアドレス /

目 次 必 ずお 読 みください 接 続 方 法 WEB ブラウザ 操 作 方 法 閲 覧 用 PC で 直 接 ZERO 本 体 と 接 続 する 場 合 各 ページについて 発 電 状 況 画 面 表 示... 3

Microsoft PowerPoint - c3_op-manual.pdf

ご 利 用 の 前 に 手 順 初 回 ご 利 用 時 に 必 ずご 確 認 ください ご 利 用 の 前 に (ご 利 用 環 境 の 確 認 ) P アクセス 方 法 (IMAGE WORKSサイトへアクセス) P 初 期 設 定 (JREのインストール) P

<82C582F182B382A2322E3594C5837D836A B2E786C73>

目 次 1 インストール 手 順 プログラム データファイルのインストール Microsoft Access2013Runtime SP1(32bit) 版 のインストール 基 本 操 作 ログイン メニュー...

1.2. ご 利 用 環 境 推 奨 ブラウザ Internet Explorer Google Chrome(バージョン 32 時 点 で 動 作 確 認 済 み) Mozilla Firefox(バージョン 26 時 点 で 動 作 確 認 済 み) Safari 7

Microsoft Word - 操作マニュアル(石油コンビナート_オフラインソフト編)_v0.2.doc

ファイルサーバー(NFS) 構築ガイド

WebOTXマニュアル

iStorage ソフトウェア VMware vSphere Web Client Plug-in インストールガイド

Microsoft Word - FBE3A91F.doc

WEBメールシステム 操作手順書

CSV_Backup_Guide

Microsoft Word - サンプル _データベースアクセス_.doc

(表紙)

変 更 履 歴 版 日 付 区 分 変 更 内 容 変 更 個 所 /11/30 新 規 初 版 作 成 /12/10 修 正 資 料 カバー 画 像 設 定 の 操 作 内 容 を 追 加 資 料 カバー 画 像 設 定 i

PowerPoint プレゼンテーション

本 操 作 説 明 書 について 本 操 作 説 明 書 は 物 品 電 子 調 達 システム 入 札 参 加 資 格 審 査 申 請 についての 操 作 を 説 明 したものです 動 作 環 境 本 アプリケーションは 以 下 の 環 境 にて 動 作 致 します OS 日 本 語 Microso

スライド 1

<4D F736F F D B382F182AC82F18A4F88D B A82B D836A B5F8F898AFA90DD92E85F E646F E302E646F6378>

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

Microsoft Word - 参考資料:SCC_IPsec_win8__リモート設定手順書_

入退室インストールマニュアル.pdf

Office 10 パッケージ版「リンク集」

WorkWithPlus 8.1 へのアップグレードについて

メール 受 信 画 面 のレイアウトを 変 更 することができます ここでは 初 期 設 定 のレイアウトで 表 示 されているボタ ンやマークについて 解 説 します メール 一 覧 画 面 には 受 信 したメールが 一 覧 表 示 されます メール 受 信 タブをクリックすると 受 信 箱 フ

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

研究者情報データベース

■ディレクトリ

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

SILAND.JP テンプレート集

前 書 き 広 域 機 関 システム System for Organization for Cross-regional Coordination of Transmission Operators(OCCTO) rev: 商 標 類 Windows Office Excel

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

目 次 JAVIS Appli の 基 本 機 能... 3 JAVIS Appli について... 3 音 声 確 認 機 能 JAVIS Appli( 有 償 版 )の 機 能... 4 音 声 で 読 みの 確 認 をする... 4 辞 書 機 能... 5 単 語 を 登 録 する... 5

第1章 情報処理センターの利用

<4D F736F F D F B B838082F090DD927582B782E995FB96405F E646F6378>

ゼウスクレジットカード決済システムご利用ショップ様 各位

SchITコモンズ【活用編】

アドイン翻訳について

CENTNET 導 入 の 手 引 き 変 更 履 歴 No. 変 更 日 変 更 番 号 変 更 枚 数 備 考 /07/ 版 発 行 - システムリプレースにより 全 面 刷 新 //07/ 版 発 行 3 誤 字 等 の 修 正 /

2016 年 度 情 報 リテラシー 次 に Excel のメニューから[ 挿 入 ]タブをクリックし 表 示 されたメニュー 内 の[グラフ]にある[ 折 れ 線 グラフ]のボタンをクリックする するとサブメニューが 表 示 されるので 左 上 の[ 折 れ 線 ]を 選 択 する [ 挿 入 ]

01_07_01 データのインポート_エクスポート_1

Ver.30 改 版 履 歴 版 数 日 付 内 容 担 当 V /09/5 初 版 発 行 STS V /0/8 証 明 書 バックアップ 作 成 とインストール 手 順 追 加 STS V /0/7 文 言 と 画 面 修 正 STS V..30 0//6

WATCH LOGGER

はじめに 本 書 では 福 井 県 電 子 入 札 システムの 利 用 を 目 的 としたパソコンの 設 定 内 容 と 設 定 手 順 例 を 説 明 し たものです パソコンは ハードウェア ソフトウェア ネットワーク 条 件 を 全 て 満 たし 民 間 認 証 局 から 購 入 する IC

論文誌用MS-Wordテンプレートファイル

項 目 を 入 力 し [ 内 容 確 認 ]をクリック *がついているものは 必 須 項 目 になります 入 力 情 報 の 確 認 のページが 表 示 されるので 間 違 いがなければ[ 送 信 ]をクリック 以 上 で 登 録 フォーム 処 理 の 完 了 フォームから 送 られたデータを 確


PowerPoint プレゼンテーション

目 次 1. 大 学 情 報 データベースシステムの 使 用 方 法 について EXCEL 一 括 登 録 EXCEL ダウンロード 検 索 条 件 の 指 定 プレビュー EXCEL ダウンロード(データ 抽 出 あ

_禑暥ã†�ã…“ã……ã…‹ç«¯æœ«ã‡»ã……ã…‹ã‡¢ã……ã…Šæ›‰é€ƒæł¸ã•’10ã•‚V1.3.xls

目 次 1 ログインする 1 2 研 修 情 報 を 登 録 する 2 step1 登 録 フォームに 入 力 する 2 step2 プレビューで 入 力 内 容 を 確 認 する 18 step3 下 書 き 保 存 する 20 step4 登 録 する 21 step5 管 理 者 による 承

Microsoft Word - セキュアMyNUMBER_詳細マニュアル_ docx

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

Gmail 利用者ガイド

Cloud Disk とは インターネット 上 (クラウド)に 大 切 なデータを 保 存 することが 出 来 る 便 利 なアプリケーション (オンラインストレージ)です 本 資 料 について Cloud Disk サービスは マイナーバージョンアップ 等 もあるため 実 際 のクライアントと 本

<4D F736F F D208E9197BF342D8EC08F4B87428EF68BC B834A E646F6378>

GRIDY SFA カスタム 項 目 操 作 ガイド 用 本 書 はに 必 要 な 操 作 を 解 説 しております は GRIDY SFA ののことです GRIDY SFA へ 申 し 込 み 最 初 に 登 録 を 行 った 方 がそのままとなります カスタム 項 目 はの 方 のみ 操 作 可

電子納品チェックシステム利用マニュアル

Transcription:

UECS-Pi SDK デベロッパーガイド バージョン 1.2 2016/05/11 1 / 89 Copyright 2014 ( 株 ) ワビット

改 定 履 歴 版 改 定 内 容 改 定 日 1.0 初 版 作 成 2014/11/03 1.1 Raspberry Pi の I2C ポートの 有 効 化 方 法 を 追 記 2014/11/07 その 他 誤 記 修 正 1.2 ライブラリバージョンアップに 伴 う サンプルコードの 微 修 正 2016/05/11 その 他 誤 記 修 正 2 / 89 Copyright 2014 ( 株 ) ワビット

目 次 1. UECS-Pi SDK とは... 5 1.1. 概 要... 5 1.2. UECS-Pi SDK の 機 能... 6 2. 開 発 環 境 セットアップ... 9 2.1. Eclipse セットアップ... 9 2.2. Eclipse への UECS-Pi SDK セットアップ... 12 2.3. Eclipse 上 での Tomcat セットアップ... 14 2.4. Eclipse 上 での UecsPi_SDK 実 行... 19 3. 基 本 ライブラリ フレームワーク 概 説... 20 3.1. 全 体 ライブラリ 構 成... 20 3.2. API ドキュメント(JavaDoc) ソースコード... 22 3.3. ノード CCM 送 受 信 機 能... 23 3.3.1. ノード 基 本 機 能... 23 3.3.2. CCM と CCM サービス... 24 3.4. デバイス コンポーネント 機 能... 24 3.4.1. ノード デバイス コンポーネントの 概 念... 24 3.4.2. ノード デバイス コンポーネントの 設 定 ファイル... 26 3.4.3. デバイス 通 信 制 御 のライブラリ... 26 3.4.4. コンポーネントと CCM... 27 3.4.5. ノード デバイス コンポーネント CCM の 動 作... 27 3.4.6. Raspberry Pi へのデバイス 接 続 方 法... 30 3.5. WebUI 機 能... 33 3.5.1. 基 本 ページレイアウトとレイアウトの 継 承... 33 3.5.2. WebUI 出 力 のためのファイルセット... 35 3.5.3. 基 本 WebUI 一 式... 37 4. チュートリアル... 42 4.1. プロジェクト 構 成... 42 4.2. ノード WebUI アプリケーションクラス... 43 4.2.1. ノードクラス... 43 4.2.1. WebUI アプリケーションクラス... 45 4.3. Sample 1 : ダミーセンサ... 46 4.3.1. デバイス コンポーネントクラス... 47 4.3.1. WebUI 設 定 画 面 クラス... 49 4.4. Sample 2 : タイマー 動 作 アクチュエータ... 53 4.4.1. デバイス コンポーネントクラス... 55 4.4.2. WebUI 設 定 画 面 クラス... 57 4.5. Sample 3:シリアル 通 信... 58 3 / 89 Copyright 2014 ( 株 ) ワビット

4.5.1. デバイス コンポーネントクラス... 59 4.5.2. WebUI 設 定 画 面 クラス... 61 4.6. Sample 4 : I2C 通 信... 62 4.6.1. デバイス コンポーネントクラス... 63 4.6.2. WebUI 設 定 画 面 クラス... 65 5. UECS-Pi アプリケーションのインストール... 66 5.1. Raspberry Pi セットアップ... 66 5.1.1. SD カードの 準 備... 67 5.1.2. Raspberry Pi の 初 期 設 定... 69 5.1.3. Raspberry Pi のユーザ 設 定... 72 5.1.4. IP アドレス 設 定... 73 5.1.5. DNS 設 定... 74 5.1.6. シリアル 通 信 (UART)の 有 効 化... 75 5.1.7. I2C ポートの 有 効 化... 76 5.1.8. Tomcat の 設 定... 77 5.1.9. 各 種 スクリプトの 転 送 と 登 録... 82 5.2. アプリケーションインストール... 84 5.2.1. WAR ファイルファイルの 作 成... 84 5.2.2. 実 機 インストール... 86 5.2.3. web.xml について... 88 6. 利 用 ライセンス... 89 7. 免 責 事 項... 89 8. お 問 い 合 わせ... 89 4 / 89 Copyright 2014 ( 株 ) ワビット

1. UECS-Pi SDK とは 1.1. 概 要 UECS-Pi(ウエックスパイ)は 英 国 ラズベリーパイ 財 団 によって 開 発 された ARM プロセッサを 搭 載 したシングルボードコンピュータ Raspberry Pi(ラズベリーパイ) Model B/B+/2 上 で 動 作 する ユビ キタス 環 境 制 御 システム(UECS:Ubiquitous Environment Control System) 実 用 通 信 規 約 Ver1.00-E10 ( 以 下 E10 規 格 ) 準 拠 のソフトウェアです UECS-Pi SDK は UECS-Pi のオープンソース 版 であり E10 規 格 に 準 拠 したソフトウェアを 作 成 し UECS 機 器 を 自 作 するためのソフトウェア 開 発 キットです 商 用 製 品 にも 利 用 可 能 なオープンソースライセ ンスのライブラリを 用 いていますので 企 業 個 人 に 関 わらず 開 発 者 は 無 償 で 利 用 できます 開 発 者 は UECS-Pi SDK で 提 供 されるベースコードに 接 続 したいデバイスの 制 御 コードと Web UI コードを 追 加 で 作 成 するだけで 短 期 間 で E10 規 格 準 拠 の UECS 機 器 の 作 成 が 可 能 です 図 1:Raspberry Pi Model B 図 2:Raspberry Pi Model B+ 5 / 89 Copyright 2014 ( 株 ) ワビット

1.2. UECS-Pi SDK の 機 能 UECS-Pi SDK は 開 発 者 に 以 下 の 機 能 を 提 供 します No. 説 明 1 E10 規 格 に 則 って 動 作 するノードと CCM の 基 本 ライブラリ 2 ノード 設 定 CCM 情 報 確 認 ログ 確 認 等 が 行 える 基 本 Web UI 機 能 一 式 3 Raspberry Pi に 接 続 したデバイスを 制 御 するための 基 本 ライブラリ フレームワーク 4 接 続 したデバイス 用 の Web UI を 作 成 するための 基 本 ライブラリ フレームワーク 表 1:UECS-Pi SDK が 提 供 する 主 機 能 開 発 者 はこれらの 機 能 を 用 いて UECS 機 器 を 開 発 します 例 えば 様 々なセンサや アクチュエータを 接 続 して 動 作 する UECS 機 器 を 作 成 できます UECS-Pi SDK では 下 図 のように Raspberry Pi 基 板 上 の GPIO 端 子 や USB シリアル 変 換 アダプタで 接 続 されたセンサデバイスを UECS 仕 様 のセンサとして 利 用 す ることが 可 能 です また GPIO 端 子 からアクチュエータに 接 続 して 各 種 制 御 機 器 を 動 作 させる 事 も 可 能 で す 図 3:センサ 接 続 イメージ 6 / 89 Copyright 2014 ( 株 ) ワビット

図 4:アクチュエータ 接 続 イメージ UECS-Pi SDK には 上 図 にあるようなデバイスを 制 御 するための 基 本 ライブラリ フレームワークが 用 意 されています Raspberry Pi に 接 続 したセンサやアクチュエータの 設 定 は WebUI から 行 う 事 が 可 能 です WebUI も 基 本 ライブラリ フレームワークが 用 意 されています 図 5:Web UI イメージ 7 / 89 Copyright 2014 ( 株 ) ワビット

UECS-Pi SDK を 使 って 開 発 できる UECS 機 器 の 全 体 動 作 イメージを 示 します 他 UECS 機 器 との 連 携 (CCM 送 受 信 ) 各 種 制 御 環 境 センシング 図 6:UECS-Pi SDK で 開 発 する UECS 機 器 の 動 作 イメージ 8 / 89 Copyright 2014 ( 株 ) ワビット

2. 開 発 環 境 セットアップ 2.1. Eclipse セットアップ 本 章 では Windows 環 境 での 開 発 を 例 に 説 明 します Java が 動 作 する Linux Mac OS 等 の 環 境 でも 開 発 可 能 です No. 名 称 説 明 ダウンロード URL 1 Pleiades オープンソースの 統 合 開 発 環 境 Eclipseに 各 種 プラ http://mergedoc.sourceforge.jp/ グインを 統 合 した 日 本 語 版 パッケージ 表 2:Eclipse セットアップに 必 要 なソフトウェア 一 覧 1 Pleiades の 配 布 ページに 移 動 し Pleiades ALL in One ダウンロードから Eclipse 4.3 Kepler をクリッ クします 図 7:Pleiades 配 布 ページ 2 Java の Full Edition をダウンロードします 32bit か 64bit かは 開 発 用 PC に 応 じて 選 択 して 下 さい 図 8:Pleiades ダウンロードページ 9 / 89 Copyright 2014 ( 株 ) ワビット

3 exe ファイルがダウンロードされるので 実 行 します 下 のポップアップが 出 た 場 合 は 実 行 ボタンを 押 して 下 さい 図 9:exe ファイル 実 行 時 ポップアップ 4 Pleiades 関 連 ファイルの 解 凍 先 を 尋 ねられるので 参 照 ボタンから 指 定 します 指 定 を 終 えた 場 合 か 初 期 の C: pleiades で 良 い 場 合 は 解 凍 ボタンを 押 すと 指 定 フォルダにファイルが 展 開 され ます 図 10: 解 凍 画 面 5 解 凍 後 Pleiades の 解 凍 先 フォルダに 移 動 し eclipse フォルダの eclipse.exe をダブルクリックし ます 図 11: 解 凍 先 フォルダ 画 面 10 / 89 Copyright 2014 ( 株 ) ワビット

6 Eclipse 起 動 時 に ワークスペースを 作 成 するフォルダを 指 定 する 画 面 が 開 きます ワークスペース とは Eclipse で 作 成 したプロジェクトのリソースを 格 納 するフォルダです これは 後 で 変 更 可 能 で す 指 定 が 終 わったら OK ボタンを 押 すと Eclipse が 起 動 します 図 12:ワークスペースフォルダ 指 定 画 面 7 起 動 が 完 了 すると 以 下 の 画 面 になります これで Eclipse のセットアップは 完 了 です 図 13:Eclipse 初 期 画 面 11 / 89 Copyright 2014 ( 株 ) ワビット

2.2. Eclipse への UECS-Pi SDK セットアップ No. 名 称 説 明 ダウンロード URL 1 UECS-Pi SDK UECS 機 器 開 発 のためのオープンソースSDK http://www.wa-bit.com/business_info-2/ smart-agri/uecs-pi 表 3:Eclipse への UECS-Pi SDK セットアップに 必 要 なソフトウェア 一 覧 1 UECS-Pi SDK の 配 布 ページに 移 動 し zip ファイルをダウンロードして 適 当 な 場 所 に 解 凍 します 2 Eclipse を 開 き 画 面 左 上 の ファイル メニューの 中 の インポート をクリックします 図 14:ファイルメニュー 画 面 3 一 般 の 中 の 既 存 プロジェクトをワークスペースへ をクリックし 次 へ ボタンをクリックし ます 図 15:インポート 画 面 1 12 / 89 Copyright 2014 ( 株 ) ワビット

4 ルート ディレクトリの 選 択 で 先 ほど zip ファイルを 解 凍 したフォルダ(UecsPi_SDK フォルダ)を 選 択 し 完 了 ボタンを 押 します 図 16:インポート 画 面 2 5 パッケージ エクスプローラーの 中 に UECS-Pi SDK プロジェクトが 追 加 されて 表 示 されます これで Eclipse への UECS-Pi SDK セットアップは 完 了 です この 時 点 では Tomcat の 定 義 がされていないの でエラーが 出 ています 図 17:UECS-Pi SDK プロジェクト 追 加 完 了 画 面 13 / 89 Copyright 2014 ( 株 ) ワビット

2.3. Eclipse 上 での Tomcat セットアップ 1 Eclipse を 開 き ウィンドウ メニューの 設 定 をクリックします 図 18:ウィンドウメニュー 画 面 2 設 定 ウィンドウが 表 示 されるので サーバー の ランタイム 環 境 を 選 択 し 追 加 ボタンをクリッ クします 図 19:ランタイム 環 境 設 定 画 面 1 3 Apache から Apache Tomcat v7.0 を 選 択 して 新 規 ローカル サーバーの 作 成 にチェック を 入 れたら 次 へ ボタンをクリックします 14 / 89 Copyright 2014 ( 株 ) ワビット

図 20:ランタイム 環 境 設 定 画 面 2 4 Tomcat インストールディレクトリを Pleiades フォルダの tomcat フォルダ 内 にある 7 フォル ダに 設 定 し 完 了 ボタンをクリックします 図 21:ランタイム 環 境 設 定 画 面 3 5 サーバが 追 加 されるので 選 択 して 編 集 ボタンをクリックします 15 / 89 Copyright 2014 ( 株 ) ワビット

図 22:ランタイム 環 境 設 定 画 面 4 6 JRE を Java7 に 変 更 し 完 了 ボタンをクリックします 図 23:ランタイム 環 境 設 定 画 面 5 7 これでサーバの 設 定 は 完 了 です OK ボタンをクリックします 16 / 89 Copyright 2014 ( 株 ) ワビット

図 24:ランタイム 環 境 設 定 画 面 6 8 UecsPi_SDK プロジェクトを 右 クリックし プロパティー をクリックします 図 25:プロジェクトメニュー 画 面 9 プロパティーから Java コンパイラー をクリックし JDK 準 拠 を 1.7 に 変 更 します 17 / 89 Copyright 2014 ( 株 ) ワビット

図 26:Java コンパイラー 設 定 画 面 10 サーバー をクリックし 常 に 使 用 するサーバに 作 成 したサーバを 設 定 して OK ボタンをクリッ クします これで Eclipse 上 での Tomcat セットアップは 完 了 です 図 27:サーバー 設 定 画 面 18 / 89 Copyright 2014 ( 株 ) ワビット

2.4. Eclipse 上 での UecsPi_SDK 実 行 1 UecsPi_SDK プロジェクトを Eclipse 上 で 実 行 したい 場 合 は プロジェクトを 選 択 して デバック も しくは 実 行 ボタンをクリックします ( 初 回 起 動 時 に 実 行 方 法 選 択 ダイアログが 表 示 されますので サーバーで 実 行 を 選 択 してください) 図 28:UecsPi_SDK の 実 行 2 実 行 するとログイン 画 面 が Eclipse 上 に 表 示 されます admin と 入 力 すればログイン 出 来 ます 図 29:Eclipse 上 でのログイン 画 面 Eclipse 上 での UECS-Pi SDK 実 行 は 作 成 した Web UI コードなどの 動 作 テストに 使 えます 開 発 PC に 接 続 できない 機 器 との 通 信 テストは Eclipse 上 では 行 えませんので Raspberry Pi 実 機 にインストールし てテストする 必 要 があります 実 機 を 使 った 実 行 方 法 は 5. UECS-Pi アプリケーションインストール 以 降 で 説 明 します 19 / 89 Copyright 2014 ( 株 ) ワビット

3. 基 本 ライブラリ フレームワーク 概 説 3.1. 全 体 ライブラリ 構 成 UECS-Pi SDK の 全 体 は E10 規 格 をベースにした UECS 基 本 ライブラリをコアとし そこに Raspberry Pi 上 で UECS-Pi SDK が 基 本 的 な 動 作 を 行 うためのライブラリ( 以 下 UECS-Pi 基 本 ライブラリ)をラッ プした 構 成 になっています UECS-Pi SDK を 使 用 する 開 発 者 に 提 供 されているのが この 2 層 構 成 ライブ ラリから 成 っているフレームワークです 開 発 者 はそのフレームワークをベースにコードを 作 成 する 事 とな ります 4.Raspberry Pi 用 ノード 基 本 機 能 13. 接 続 するデバイス& コンポーネント 制 御 機 能 5.Raspberry Pi 用 デバイス& コンポーネント 基 本 機 能 14. 接 続 するテ ハ イス 用 WebUI 機 能 7.WebUI 基 本 機 能 1.ノード 基 本 機 能 2.CCM 機 能 3.テ ハ イス& コンホ ーネント 基 本 機 能 8.Pi4J 6.DB 機 能 9.OrmLite 10.SQLite 11.Wicket 12.Tomcat 図 30:UECS-Pi SDK の 全 体 ライブラリ 構 成 上 図 の 1~3 が UECS 基 本 ライブラリ 4~12 が UECS-Pi 基 本 ライブラリ 13~14 が 開 発 者 追 加 コード です UECS-Pi 基 本 ライブラリのノード デバイス コンポーネント 関 連 の 機 能 は UECS 基 本 ライブラリ を 拡 張 して 作 成 されています また 開 発 者 が 追 加 コードを 作 成 する 時 は 基 本 的 には UECS-Pi 基 本 ライブ ラリのクラスを 拡 張 してコードを 作 成 します 開 発 者 追 加 コードは 大 きく 分 けると 接 続 するデバイスを 制 御 するコード と 接 続 デバイス 用 の WebUI コード の 2 種 類 あります そのため UECS-Pi SDK では デバイス 接 続 用 と WebUI 作 成 用 の 2 つのライ ブラリを 提 供 しています 以 下 表 に UECS-Pi SDK を 構 成 するライブラリの 機 能 概 要 を 示 します No. 分 類 名 称 主 な 機 能 1 UECS 基 本 ライブラリ ノード 基 本 機 能 ネットワーク 通 信 CCMサービス デバイス 管 理 機 能 2 (uecs-core.jar) CCM 機 能 CCMサービス 各 種 CCMの 定 義 3 デバイス&コンポー デバイス 基 本 動 作 コンポーネント 基 本 動 作 ネント 基 本 機 能 20 / 89 Copyright 2014 ( 株 ) ワビット

4 UECS-Pi 基 本 ライブラリ (uecs-pi-core.jar) Raspberry Pi 用 ノー ド 基 本 機 能 DB 連 携 DB 登 録 済 みデバイスの 起 動 5 Raspberry Pi 用 デバ イス&コンポーネン I2C シリアル 通 信 (UART USB-シリアル) GPIO 接 続 を 使 った デバイスとコンポーネントの 基 本 動 作 ト 基 本 機 能 6 DB 機 能 ノード デバイス コンポーネント 等 のデータ 処 理 7 WebUI 基 本 機 能 UECS-Pi SDKの 基 本 WebUI 一 式 8 UECS-Pi 基 本 ライブラリ (サードパーティ 製 ) 9 UECS-Pi 基 本 ライブラリ (サードパーティ 製 ) 10 UECS-Pi 基 本 ライブラリ (サードパーティ 製 ) 11 UECS-Pi 基 本 ライブラリ (サードパーティ 製 作 ) 12 UECS-Pi 基 本 ライブラリ (サードパーティ 製 ) Pi4J OrmLite SQLite Wicket Tomcat Raspberry Piに 接 続 したデバイスをJavaから 制 御 する 参 照 URL:http://pi4j.com/ ORMマッパー 参 照 URL:http://ormlite.com/ 軽 量 RDBMS 参 照 URL:https://bitbucket.org/xerial/sqlite-jdbc WebUI 用 のWebフレームワーク 参 照 URL:https://wicket.apache.org/ WebUIやWicketが 動 作 するHTTPアプリケーションサー バ 参 照 URL:http://tomcat.apache.org/ 13 開 発 者 作 成 コード 接 続 するデバイス& 開 発 者 が 接 続 するデバイス 用 の 制 御 コード コンポーネント 制 御 機 能 14 開 発 者 作 成 コード 接 続 するデバイス 用 開 発 者 が 接 続 するデバイス 用 のWebUIコード WebUI 機 能 表 4:UECS-Pi SDK を 構 成 するライブラリの 機 能 概 要 21 / 89 Copyright 2014 ( 株 ) ワビット

3.2. API ドキュメント(JavaDoc) ソースコード 開 発 時 に 利 用 する 主 要 なライブラリ 群 の API ドキュメントとソースコードは UecsPi_SDK プロジェク ト 内 の src_3rd フォルダ 内 に 含 まれています 必 要 に 応 じて Eclipse の JavaDoc ソースコードのバイ ンド 機 能 を 用 いて 参 照 することが 可 能 です また ライブラリ 自 体 を 自 由 にカスタマイズすることも 可 能 で す 図 31:JavaDoc/ソースコード jar 22 / 89 Copyright 2014 ( 株 ) ワビット

3.3. ノード CCM 送 受 信 機 能 3.3.1. ノード 基 本 機 能 UECS では 制 御 したい 環 境 内 にコンピュータとセンサやアクチュエータを 設 置 し イーサネットで 接 続 します この 機 器 は ノード と 呼 ばれます ノード 同 士 は E10 規 格 に 則 った XML データの 相 互 通 信 を 行 い 計 測 や 制 御 を 自 律 的 に 行 います この XML データは UECS 共 用 通 信 子 (UECS-CCM) と 呼 ばれます 以 下 に UECS の 模 式 図 を 示 します 換 気 窓 N ネットワーク 電 力 線 N ノード CCM インターネットへ 電 力 盤 暖 房 機 N N 気 温 センサ 状 況 確 認 設 定 端 末 N 図 32 :UECS ノードが 配 置 されたガラスハウスの 模 式 図 UECS についての 詳 細 はユビキタス 環 境 制 御 システム 研 究 会 HP(http://www.uecs.jp/)を 参 照 して 下 さい CCM についての 詳 細 は UECS 通 信 実 用 規 約 1.00-E10(http://www.uecs.jp/uecs/kiyaku/UECSStandard100_E10.pdf)を 参 照 して 下 さ い 例 えば 上 図 では 気 温 センサから CCM が 流 れ 暖 房 機 のノードがそれを 受 け 取 って 点 火 したり 換 気 窓 が 閉 じたり 状 況 確 認 設 定 端 末 に 気 温 が 表 示 されるといった 事 が 可 能 です UECS 基 本 ライブラリの 中 心 になっているのが この 機 能 を 実 装 した CCM 機 能 です CCM 機 能 は 内 部 で CCM 受 信 と CCM 周 期 送 信 を 行 います この 機 能 により UECS-Pi SDK は 他 UECS 機 器 と 連 携 を 行 います また UECS-Pi SDK のノードは ノード 自 身 のセットアップ(ホストの IP 設 定 ノード 状 態 通 知 CCM(cnd.kNN) 登 録 ブロードキャストアドレスの 設 定 )や DB に 登 録 されているデバイス 起 動 を 行 い ます 23 / 89 Copyright 2014 ( 株 ) ワビット

3.3.2. CCM と CCM サービス CCM 機 能 の 周 期 送 信 処 理 では CCM が 周 期 的 に 送 信 されます 複 数 の CCM を 送 信 する 事 も 可 能 です ノードは CCM サービス を 使 い CCM を 送 信 します CCM サービスとは CCM の 状 態 を 管 理 する サービスクラスです ノード CCM サービス CCM の 関 係 は 下 図 のようになっています 図 33:ノード CCM サービス CCM の 関 係 Ccm クラスの 派 生 クラスが com.wabit.uecs.ccm com.wabit.uecs.protocol パッケージに 含 まれてい ますが AbstractUecsNode 内 部 で 自 動 的 に 利 用 されますので 開 発 者 が 通 常 のアプリケーション 開 発 で 直 接 これらの Ccm 派 生 クラスを 意 識 する 必 要 はありません 3.4. デバイス コンポーネント 機 能 3.4.1. ノード デバイス コンポーネントの 概 念 UECS-Pi SDK にデバイスを 接 続 する 際 は デバイスだけでなく ノードとコンポーネントを 考 えま す ノード デバイス コンポーネントは 概 念 です 1 つのノードには 複 数 のデバイスを 所 属 させられ 1 つのデバイスには 複 数 のコンポーネントを 所 属 させられます 24 / 89 Copyright 2014 ( 株 ) ワビット

図 34:ノード デバイス コンポーネントの 関 係 例 えば 電 流 電 圧 電 力 計 測 が 出 来 る INA226 モジュールを Raspberry Pi に 接 続 して UECS-Pi SDK として 動 作 させるとすると 見 た 目 の 上 では Raspberry Pi がノード INA226 がデバイス INA226 に 付 いている 電 流 電 圧 電 力 を 測 るそれぞれのセンサがコンポーネントとなります ノード コンポーネント (デバイスに 所 属 複 数 可 能 ) 電 圧 計 測 電 流 計 測 デバイス (ノードに 所 属 複 数 可 能 ) 電 力 計 測 INA226 図 35:INA226 接 続 イメージ 25 / 89 Copyright 2014 ( 株 ) ワビット

配 布 直 後 の UECS-Pi SDK は 何 も 接 続 されていないノードとなっています 開 発 者 はそこに 様 々なデ バイスを 接 続 し デバイスとデバイスに 関 連 付 くコンポーネントのプログラムを 作 成 する 事 となります 3.4.2. ノード デバイス コンポーネントの 設 定 ファイル 図 36:ノード デバイス コンポーネントと 各 設 定 ファイルの 関 係 ノード デバイス コンポーネントは 各 々 設 定 ファイルを 持 っています 設 定 ファイルでは 定 数 の 設 定 を 行 い ノード デバイス コンポーネントの 各 ファイルでそれを 利 用 してプログラムを 記 述 していま す UECS-Pi SDK では 設 定 を key / value の 形 で 扱 っています プログラムを 記 述 する 側 のファイルで は 設 定 ファイルに 記 述 された key を 呼 び 出 すことで その key に 関 連 付 く value を 利 用 します 3.4.3. デバイス 通 信 制 御 のライブラリ UECS-Pi SDK のフレームワークに 用 意 されているデバイス 用 の 各 種 通 信 方 式 は I2C シリアル 通 信 (UART USB-シリアル)です また GPIO 接 続 によるアクチュータ 制 御 用 のライブラリも 用 意 され ています 開 発 者 は 各 方 式 の 基 本 ライブラリクラスを 拡 張 して 接 続 するデバイス 制 御 用 のオリジナルク ラスを 作 成 します そこに 接 続 するデバイスに 関 連 付 くコンポーネント 用 のクラスを 作 成 する 事 で UECS-Pi SDK に 接 続 するデバイスとコンポーネントを 動 作 させる 準 備 が 出 来 ます これらのライブラリ クラスは UECS 基 本 ライブラリの 派 生 クラスとして com.wabit.uecs.pi パッケージ 以 下 に 含 まれてい ます また 開 発 した UECS 機 器 の 上 でデバイスやコンポーネントの 設 定 値 をユーザーに 変 更 させる 必 要 がある 場 合 は WebUI の 作 成 を 行 う 事 になります (チュートリアルの 章 で 詳 細 を 説 明 します) 26 / 89 Copyright 2014 ( 株 ) ワビット

3.4.4. コンポーネントと CCM コンポーネントをノード 内 で 動 作 させると 必 ず 対 応 する CCM も 動 作 します コンポーネントが 起 動 する 時 に 自 らに 関 連 付 く CCM サービスをノードに 登 録 するためです 1 つのコンポーネントに 所 属 す る CCM の 数 は コンポーネントの 種 類 によって 変 わります コンポーネントの 種 類 は センサ アクチュエータ コントローラの 3 種 類 です 以 下 にそれぞれの 機 能 を 示 します クラス 分 類 機 能 登 録 される CCM の 種 類 SensorComponent の 派 生 クラス ActuatorComponent の 派 生 クラス ControllerComponent の 派 生 クラス センサー 機 器 と 直 接 通 信 してCCM 送 信 あるいは 他 のUECS センサーノードからのCCM 受 信 でセンサー 値 を 受 信 する リレー 制 御 やモーター 制 御 により 接 続 された 制 御 機 器 を 動 作 させる ノード 自 身 の 自 律 動 作 以 外 に コントローラから の 遠 隔 制 御 CCMを 受 信 して 動 作 する アクチュエータとネットワーク 経 由 でCCMのやり 取 りを 行 って 遠 隔 コントロールする 例 えばツマミがひねられたらコントローラがCCMを 送 信 するようにし ておき アクチュエータ 側 にそのCCMが 来 たら 機 器 を 作 動 させるプログ ラムを 入 れておけば 間 接 的 な 機 器 制 御 が 行 える 表 5: 各 コンポーネントの 機 能 DataCcm( 受 信 / 送 信 ) OprCcm( 送 信 側 ) RcACcm( 受 信 側 ) RcMCcm( 受 信 側 ) OprCcm( 受 信 側 ) RcACcm( 送 信 側 ) RcMCcm( 送 信 側 ) これらの CCM がコンポーネントによってノードに 登 録 される 事 により ノードの 周 期 送 信 機 能 がそれ らの CCM を 送 信 する 事 や WebUI の CCM 一 覧 確 認 画 面 からそれらの CCM を 確 認 する 事 が 可 能 になり ます 3.4.5. ノード デバイス コンポーネント CCM の 動 作 これまでに 紹 介 したノード デバイス コンポーネント CCM の 関 係 を 図 示 します 27 / 89 Copyright 2014 ( 株 ) ワビット

図 37:ノード デバイス コンポーネント CCM の 関 係 図 また ノード デバイス コンポーネント CCM の 動 作 は 一 連 の 流 れになっています UECS-Pi SDK の 起 動 プロセス~ 定 常 動 作 にそれが 現 れています 以 下 に 図 示 します 28 / 89 Copyright 2014 ( 株 ) ワビット

図 38:UECS-Pi SDK 起 動 プロセスシーケンス 順 序 動 作 名 称 動 作 内 容 1 電 源 投 入 電 源 投 入 され OS Tomcatが 起 動 Tomcatはweb.xmlで 定 義 されている WebUI 初 期 処 理 実 行 クラスを 起 動 2 WebUI 初 期 処 理 実 行 WebUI 初 期 処 理 実 行 クラスはノードとWebUIトップ 画 面 を 起 動 クラス 起 動 3 ノード 起 動 1 ホストIP 設 定 ノード 用 CCM 登 録 ブロードキャストアドレス 設 定 を 行 う 4 ノード 起 動 2 ノードが 所 属 するデバイスを 起 動 5 デバイス 起 動 各 デバイスが 所 属 コンポーネントを 起 動 6 コンポーネント 起 動 各 コンポーネントがCCMを 作 成 し CCMサービスの 形 でノードに 登 録 する 7.1 ノード 定 常 動 作 開 始 ノードが 定 常 動 作 開 始 CCMサービスに 登 録 済 のCCMの 周 期 送 信 と CCM 受 29 / 89 Copyright 2014 ( 株 ) ワビット

信 を 行 う 7.2 コンポーネント 定 常 動 作 開 始 コンポーネントが 定 常 動 作 開 始 何 か 変 化 があった 時 にデータ(センサの 取 得 値 や アクチュエータの 動 作 値 )を 更 新 し 同 時 に 所 属 するCCMの 値 も 更 新 す る 表 6:UECS-Pi SDK 起 動 プロセス 解 説 またノード 再 起 動 の 時 は それまで 登 録 されていたデバイスや CCM サービスはリセットされ 改 め て DB からデバイスやコンポーネントが 呼 び 出 されて 動 作 を 開 始 します 3.4.6. Raspberry Pi へのデバイス 接 続 方 法 センサデバイスを Raspberry Pi に 接 続 する 時 は 以 下 のイメージのように 接 続 します 図 39:センサ 接 続 イメージ ( )GPIO 接 続 のセンサーユニットは 5Vまたは3.3V 電 源 3.3V TTLレベルI/O 対 応 のものであれば 直 接 接 続 可 能 です 次 にアクチュエータの 接 続 方 法 を 示 します アクチュエータで 制 御 可 能 な 機 器 は リレーを1つ 利 用 し た[ON/OFF]によるスイッチ 制 御 アクチュエータが 最 大 8 系 統 リレーを2つ 利 用 した[ON/OFF/ 正 / 逆 ]に よる[0%~100%]のポジション 制 御 アクチュエータが 最 大 4 系 統 まで 接 続 できます 30 / 89 Copyright 2014 ( 株 ) ワビット

図 40:アクチュエータ 接 続 イメージ GPIO 端 子 は 以 下 のようにアサインされているので 利 用 目 的 に 沿 った 形 でセンサやリレーユニットと 接 続 して 下 さい 図 41:GPIO ピン 番 号 ピン 番 号 名 称 機 能 説 明 備 考 1 3.3V DC Power 3.3V 電 源 2 5.0V DC power 5.0V 電 源 3 SDA0(I2C) I2C シリアルデータ(SDA) 4 5.0V DC Power 5.0V 電 源 5 SCL0(I2C) I2C シリアルロック(SCL) 6 GND グランド 7 GPIO 7 デジタル OUT [L /H] 8 TxD UART TX 9 GND グランド 10 RxD UART RX 11 GPIO 0 デジタル OUT [L /H] 12 GPIO 1 デジタル OUT [L /H] 13 GPIO 2 デジタル OUT [L /H] 14 GND グランド 15 GPIO 3 デジタル OUT [L /H] 16 GPIO 4 デジタル OUT [L /H] 17 3.3V DC Power 3.3V 電 源 18 GPIO 5 デジタル OUT [L /H] 31 / 89 Copyright 2014 ( 株 ) ワビット

19 SPI MOSI SPI 用 ピン 20 GND グランド 21 SPI MISO SPI 用 ピン 22 GPIO 6 デジタル OUT [L /H] 23 SPI SCLK SPI 用 ピン 24 SPI CE0 N SPI 用 ピン 25 GND グランド 26 SPI CE1 N SPI 用 ピン 表 7:GPIO 端 子 アサイン 表 32 / 89 Copyright 2014 ( 株 ) ワビット

3.5. WebUI 機 能 UECS-Pi SDK の WebUI は フレームワークに Apache Wicket( 以 降 Wicket)を 利 用 しています Wicket はオブジェクト 指 向 型 の Web アプリケーションフレームワークで Web ページのデザインや Web ページ の 部 品 をオブジェクトとして 扱 います これらは 独 自 拡 張 可 能 で Wicket はこのようなオブジェクトを 組 み 合 わせて 様 々な Web ページを 作 成 します また UECS-Pi SDK では 基 本 的 な 機 能 を 持 つページをあらか じめ 準 備 しています 3.5.1. 基 本 ページレイアウトとレイアウトの 継 承 WebUI 作 成 の 際 は 親 ページクラスのレイアウトを 継 承 して 子 ページクラスを 作 成 します 例 えば UECS-Pi SDK のトップページ CCM 一 覧 ページ 等 の 全 ての 画 面 ページは LayoutPage というクラス を 継 承 する 事 で そのレイアウトを 継 承 しています LayoutPage は HeaderPanel MenuPanel CostomFeedbackPanel FooterPanel といった 部 分 表 示 クラスを 内 包 しています 図 42:LayoutPage クラスと 他 の 全 ての WebUI クラスの 関 係 LayoutPage は ベースのレイアウトクラスとして 機 能 するために LayoutPage.html という 対 になる HTML ファイルを 持 っています これが 継 承 されるレイアウトの 大 枠 になります 同 様 に 内 包 する 部 分 表 示 クラスにも 対 になる HTML ファイルが 存 在 します これらが 合 成 された 結 果 が 最 終 的 に HTML コードとして 出 力 されます 33 / 89 Copyright 2014 ( 株 ) ワビット

ページ(LayoutPage.html) ヘッダ(HeadearPanel.html) メニューパネル(Menupanel.html) コンテンツ ( 拡 張 ページごとに 記 述 する) フッタ(FooterPanel.html) 図 43:LayoutPage.java が 形 成 しているレイアウト 上 図 の 右 側 にあるのが LayoutPage.html に 集 約 されているページ 部 品 です これらの HTML ファイ ルに 出 力 されるコンテンツや ユーザ 操 作 時 の 挙 動 は 対 になる Java クラスに 記 載 されています すなわち Wicket では Java クラスはデータや 動 作 を 記 述 するファイルとして HTML ファイルは Java クラスに 記 述 されたデータや 動 作 を 出 力 するテンプレートファイルとして 機 能 します Java クラス データ& 動 作 HTML ファイル テンプレート Wicket Web UI 結 果 出 力 図 44:Wicket における Java ファイルと HTML ファイルの 模 式 図 34 / 89 Copyright 2014 ( 株 ) ワビット

これら LayoutPage ヘッダ メニューパネル コンテンツ フッタの Java ファイルと HTML ファイ ルは ページ 部 品 のクラスライブラリとして 機 能 します 基 本 ページ 一 式 の 全 てのページは この LayoutPage.html のレイアウトを 継 承 した 上 で コンテンツ 部 分 に 各 々のページ 独 自 の 内 容 を 出 力 しています これが Wicket の 機 能 です 開 発 者 が 接 続 デバイス 用 WebUI を 作 成 する 際 も 基 本 ページ 一 式 と 同 じように LayoutPage.java を 継 承 したクラスファイルを 作 り このレイアウトを 継 承 して 作 成 していきます 継 承 したレイアウトをデザ インのベースとして 使 う 事 で 開 発 者 はコンテンツ 部 分 に 出 力 する 接 続 デバイス 用 コンテンツ 作 成 に 注 力 出 来 ます またレイアウトを 構 成 する Java クラスや HTML ファイルを 独 自 に 作 成 して 差 し 替 える 事 により 基 本 レイアウトを 変 更 した WebUI を 作 成 する 事 も 可 能 です ( 詳 細 はチュートリアルを 参 照 ) 3.5.2. WebUI 出 力 のためのファイルセット Wicket では 基 本 的 に Java ファイル(xxx.java)と HTML ファイル(xxx.html)が 1 つの Web ペ ージを 出 力 するためのファイルセットになります また 多 言 語 表 示 対 応 させるためのリソースプロパティ ファイル(xxx.properties)をそこに 加 える 事 も 出 来 ます これらが 連 携 して Web リクエストが 来 た 時 に 表 示 される WebUI を 作 成 します 図 45:Web ページ 出 力 のためのファイルセット 例 各 ファイルの 機 能 概 要 は 以 下 の 通 りです 順 序 動 作 名 称 動 作 内 容 1 Javaファイル HTMLファイルに 表 示 するデータや HTTPリクエスト 処 理 の 挙 動 が 記 述 されて いる 2 HTMLファイル Javaファイルに 記 載 した 内 容 を 反 映 するテンプレートになる またプロパティフ ァイルのテキストを 表 示 するテンプレートにもなっている 35 / 89 Copyright 2014 ( 株 ) ワビット

3 プロパティファイル 各 言 語 に 対 応 したテキスト 一 式 が 記 述 されている 日 本 語 で 表 示 する 時 には 日 本 語 用 (_ja)の 英 語 で 表 示 する 時 には 英 語 用 (_en)のプロパティファイルのテ キストが HTMLファイルに 表 示 される これはブラウザのロケールによって 切 り 替 わる 多 言 語 対 応 させる 必 要 がない 場 合 は HTMLファイルに 直 接 テキスト を 書 いても 良 い 表 8:WebUI を 構 成 する 各 ファイルの 機 能 概 要 36 / 89 Copyright 2014 ( 株 ) ワビット

3.5.3. 基 本 WebUI 一 式 ここでは UECS-Pi SDK に 始 めから 用 意 されている 基 本 WebUI 一 式 のコンテンツと 使 い 方 を 解 説 しま す 基 本 WebUI は 以 下 の 5 機 能 です また UECS-Pi SDK はこれらの WebUI が 持 つ 機 能 に 加 え ログ アウト 機 能 を 持 っています No. 名 称 機 能 1 認 証 ページ 認 証 を 得 ていないユーザが UECS-Pi にアクセスした 時 に 表 示 されるページ 2 トップページ ログイン 直 後 あるいは 上 部 メニューの トップ をクリックすると 表 示 され るページ 3 CCM 一 覧 ページ CCMの 状 態 一 覧 を 確 認 できるページ 4 状 態 ログページ ノードやデバイスの 状 態 を 確 認 できるページ 5 セットアップページ 上 部 メニューのセットアップにマウスを 重 ねた 際 に プルダウンで 出 てくるメ ニューをクリックすると 表 示 されるページ 初 期 はノード 用 のみ 開 発 者 はこ こに 接 続 デバイス 用 の WebUI を 作 成 する 表 9: 基 本 ページ 機 能 概 要 3.5.3.1. トップページ ログイン 直 後 あるいは 上 部 メニューの トップ をクリックすると 表 示 されるページです UECS-Pi SDK の 動 作 状 態 や 接 続 されているセンサとアクチュエータの 情 報 が 一 覧 化 されて 表 示 さ れます 更 新 ボタンをクリックすると 表 示 されている 値 が 更 新 されます 図 46:トップページ 37 / 89 Copyright 2014 ( 株 ) ワビット

3.5.3.2. 認 証 ページ 認 証 を 得 ていないユーザが UECS-Pi にアクセスした 時 に 表 示 されるページです 図 47: 認 証 ページ 3.5.3.3. CCM 一 覧 ページ 上 部 メニューの CCM 一 覧 をクリックすると 表 示 されるページです UECS-Pi SDK に 登 録 さ れている CCM( 共 用 通 信 子 )の 状 態 が 一 覧 化 されて 表 示 されます 更 新 ボタンをクリックすると 表 示 されている 値 が 更 新 されます 図 48:CCM 一 覧 ページ 38 / 89 Copyright 2014 ( 株 ) ワビット

3.5.3.4. 状 態 ログページ 上 部 メニューの 状 態 ログ をクリックすると 表 示 される 画 面 です 各 カテゴリ に 分 類 された ログ 情 報 が 最 新 順 に 一 覧 化 されて 表 示 されます カテゴリ には ノード デバイス その 他 全 体 があります 図 49: 状 態 ログページ ログカテゴリを 変 更 した 時 に 表 示 される 内 容 を 下 表 に 示 します No. 項 目 説 明 1 ノード UECS-Pi 全 体 のノード 機 能 に 関 するログ 情 報 が 出 力 されます 主 に 起 動 停 止 ログ ネットワーク 接 続 エラー 情 報 などが 含 まれます 2 デバイス 設 定 登 録 されたセンサやアクチュエータに 関 するエラー 情 報 などが 出 力 され ます 3 その 他 その 他 付 帯 機 能 に 関 するログが 出 力 されます 4 全 体 全 てのカテゴリのログが 一 覧 表 示 されます 表 10:ログカテゴリ 一 覧 39 / 89 Copyright 2014 ( 株 ) ワビット

3.5.3.5. セットアップページ 上 部 メニューのセットアップにマウスを 重 ねた 際 に プルダウンで 出 てくるメニューをクリックす ると 表 示 される 画 面 です ノードや 各 種 デバイスの 設 定 を 行 うページですが はじめに 用 意 されてい るのはノード 設 定 ページのみなので それについて 説 明 します ノード 設 定 ページを 表 示 するには 上 部 メニューから セットアップ ノード 設 定 をクリックします 図 50:ノード 設 定 ページ ノード 設 定 ページ 使 用 時 は 以 下 表 を 参 考 に 接 続 動 作 させたい UECS/LAN ネットワークに 合 わ せた 設 定 値 に 変 更 し 保 存 ボタンをクリックして 設 定 を 保 存 してください No. 項 目 説 明 1 ノード 名 UECS 通 信 のノードスキャン 応 答 CCM の<NAME> 項 目 に 使 用 されます 設 定 名 は 画 面 上 部 のタイトルにも 使 用 されます 設 定 文 字 は ASCII コード(ISO 646-1991)[ 半 角 の 英 数 字 記 号 ]のみ 使 用 が 許 可 されています 2 ノード 種 別 (knn) UECS 通 信 で 使 用 される CCM 識 別 子 のノード 種 別 に 使 用 されます ノード 種 別 名 の 一 覧 は UECS 実 用 通 信 規 約 の 仕 様 書 に 記 載 されています 3 room-region-order (priority) UECS 通 信 で 使 用 される 各 種 区 分 番 号 です LAN に 接 続 される 他 の UECS ノードの 設 定 値 と 重 複 しないように 設 定 してください room region order : 部 屋 番 号 [0~127] : 系 統 番 号 [0~127] : 通 し 番 号 [0~30000] priority : 優 先 順 位 [0~30] 4 現 在 時 刻 変 更 をチェックして 時 刻 を 修 正 入 力 すると Raspberry Pi 内 部 の 時 刻 が 変 更 されます 時 間 管 理 CCM(Date, Time)で 補 正 を 行 う をチェックすると UECS 通 信 40 / 89 Copyright 2014 ( 株 ) ワビット

規 約 で 定 義 されている 時 間 管 理 サーバが 発 信 する CCM(Date, Time)を 受 信 し て 内 部 時 刻 を 自 動 的 に 補 正 します ( 注 :インターネット 通 信 可 能 な LAN に 接 続 されている 場 合 は 自 動 的 に NTP サーバ から 現 在 値 が 取 得 されます NTP サーバに 接 続 できず Date/Time CCM も 受 信 できな い 場 合 は 電 源 が OFF になると 現 在 時 刻 もリセットされます ) 5 管 理 パスワード 設 定 画 面 にログインするためのパスワードを 変 更 したい 場 合 に 新 しいパスワ ードを 入 力 します 6 IPアドレス Raspberry Pi 本 体 の IP アドレスを 設 定 します DHCP LAN 内 の DHCP サーバから 自 動 的 に IP アドレス 情 報 を 取 得 し ます 固 定 IP 設 定 値 項 目 が 表 示 されますので 接 続 する LAN 環 境 に 合 わせた 設 定 値 を 入 力 してください ( 注 :UECS-Pi SDK のデフォルトでは DHCP になっていますが Eclipse 上 で 開 発 している 状 態 では IP アドレス 変 更 は 機 能 しません Raspberry Pi 実 機 にインストール した 際 に 必 要 に 応 じて 設 定 変 更 してください ) 表 11:ノード 設 定 画 面 項 目 41 / 89 Copyright 2014 ( 株 ) ワビット

4. チュートリアル UECS-Pi SDK では 様 々なセンサを 使 った 環 境 測 定 や アクチュエータを 使 った 機 器 制 御 が 行 えます ここ では 先 の 章 で Eclipse にインポートした UecsPi_SDK プロジェクトファイル 内 に 含 まれているサンプルコ ードの 解 説 をします センサとアクチュエータを 使 う 簡 単 なチュートリアルを 紹 介 し その 基 礎 を 理 解 します 作 成 したソフトウェアのインストール 方 法 は UECS-Pi アプリケーションのインストール の 章 を 参 照 して 下 さい 4.1. プロジェクト 構 成 Eclipse にインポートした UecsPi_SDK プロジェクトに 含 まれるフォルダやファイルについて 概 説 しま す 1 2 3 4 5 図 51:プロジェクト 内 フォルダ 構 成 42 / 89 Copyright 2014 ( 株 ) ワビット

No. フォルダ/ファイル 名 説 明 1 /src/ 以 下 フォルダ アプリケーションのソースコードがパッケージ 構 成 ツリー の 形 でフォルダ 分 けされて 格 納 されます myapp はサンプル 用 の 仮 パッケージ 名 ですので 任 意 のパッケージ 名 に 変 更 可 能 です 2 /src/logback.xml プログラム 内 部 出 力 ログの 設 定 ファイルです 内 部 デバッグ 出 力 の 切 り 替 えなど アプリケーション 開 発 時 と 本 番 稼 働 時 で 設 定 を 変 更 することで 出 力 内 容 を 切 り 替 え ることが 可 能 です 設 定 ファイルの 書 式 は オープンソース ログ 出 力 ライブラリの Logback の 書 式 に 従 います (http://logback.qos.ch/) 3 /WebContent/css/styles.css WebUI 画 面 の 配 色 や 文 字 サイズなどを 定 義 する CSS ファ イルです 開 発 者 は 独 自 の CSS に 差 し 替 えることで 画 面 デ ザインを 変 更 可 能 です 4 /WebContent/WEB-INF/lib アプリケーションが 動 作 時 に 参 照 するライブラリ jar ファ イルが 格 納 されています 開 発 者 が 独 自 の 機 能 を 開 発 するた めに 必 要 なライブラリ jar を 追 加 することが 可 能 です 5 /WebContent/WEB-INF/web.xml Tomcat が 読 み 込 む Web アプリケーション 設 定 ファイルで す Wicket 関 連 の 設 定 が 記 述 されています 表 12:フォルダ ファイル 説 明 4.2. ノード WebUI アプリケーションクラス まず 始 めに UECS-Pi SDK で 独 自 のアプリケーションを 作 成 する 際 に 基 本 となる UECS ノードクラス と WebUI アプリケーションクラスの 解 説 をします 4.2.1. ノードクラス ノード 部 分 の 基 本 的 な 構 成 は ノードクラス+ノード 設 定 クラス が 1 セットとなります 図 52:ノード 部 分 のファイル 構 成 43 / 89 Copyright 2014 ( 株 ) ワビット

それでは ノードクラスとノード 設 定 クラスのコードを 見 ていきます MyPiNode クラスは UECS-Pi 基 本 ライブラリに 用 意 されている 親 クラス(UecsPiNode)を 継 承 することで UECS ノードとしての 基 本 機 能 を 持 たせています 追 加 のコードとして installprocess()メソッドをオーバーライドすることで 初 回 起 動 時 にデバイスやコンポーネントを 内 部 DBに 初 期 登 録 させています 本 サンプルでは チュートリア ルで 解 説 する4つのデバイスクラスを 初 期 登 録 しています 動 作 させるデバイスが 固 定 している 場 合 は 初 期 登 録 しておくことが 簡 単 ですが 初 期 起 動 時 にはデバイスを 登 録 せず WebUI 画 面 でユーザが 設 定 変 更 する 操 作 と 連 動 して 動 的 にデバイスやコンポーネントを 登 録 削 除 させることも 可 能 です MyPiNode.java public class MyPiNode extends UecsPiNode { public MyPiNode() { super(new MyPiNodeConfig()); protected void installprocess() throws Exception { DatabaseManager.callInTransaction(new Callable<Void>() { public Void call() throws Exception { // Sample 1 DummyDevice dummydevice = new DummyDevice(DatabaseUtils.nextDeviceId()); DummySensor dummysensor = new DummySensor(DatabaseUtils.nextComponentId()); dummydevice.addcomponent(dummysensor); DatabaseUtils.saveDevice(dummyDevice); // Sample 2 SimpleGpioDevice gpiodevice = new SimpleGpioDevice(DatabaseUtils.nextDeviceId()); TimerSwitchActuator timerswitch = new TimerSwitchActuator(DatabaseUtils.nextComponentId()); gpiodevice.addcomponent(timerswitch); DatabaseUtils.saveDevice(gpioDevice); // Sample 3 SimpleSerialDevice serialdevice = new SimpleSerialDevice(DatabaseUtils.nextDeviceId()); RegexSensor regexsensor = new RegexSensor(DatabaseUtils.nextComponentId()); serialdevice.addcomponent(regexsensor); DatabaseUtils.saveDevice(serialDevice); // Sample 4 SimpleI2cDevice i2cdevice = new SimpleI2cDevice(DatabaseUtils.nextDeviceId()); I2cCo2Sensor co2sensor = new I2cCo2Sensor(DatabaseUtils.nextComponentId()); i2cdevice.addcomponent(co2sensor); DatabaseUtils.saveDevice(i2cDevice); return null; ); 44 / 89 Copyright 2014 ( 株 ) ワビット

MyPiNodeConfig.java も 基 本 ライブラリに 用 意 されている 親 クラス(UecsPiNodeConfig)を 継 承 するこ とで デフォルト 設 定 値 がプリセットされています 独 自 の 設 定 値 に 変 更 したい 場 合 に コンストラクタ 内 で 任 意 の 初 期 設 定 値 に 書 き 換 えることができます 本 サンプルでは ノード 名 称 を 独 自 のものに 変 更 し ていますが そのほかにも UECS ID やベンダー 名 ノード 状 態 通 知 CCM の room-region-order なども 初 期 値 を 変 更 できます 変 更 可 能 な 設 定 値 キーは 継 承 元 クラスの 定 数 で 定 義 されていますので JavaDoc を 参 照 してください MyPiNodeConfig.java public class MyPiNodeConfig extends UecsPiNodeConfig { public MyPiNodeConfig() { // ノード 名 称 setstring(key_node_name, "MyAppNode"); 4.2.1. WebUI アプリケーションクラス WebUI アプリケーション 部 分 では Wicket フレームワークを 利 用 した 基 底 クラスを 拡 張 し 画 面 パーツ クラス(xxxPanel.java, xxx) HTML テンプレートファイル(xxxPanel.html) プロパティファイル (xxx.properties)を 作 成 します 図 53:WebUI アプリケーション 部 分 のファイル 構 成 本 サンプルで 作 成 している MyUIApplication クラスでは 先 に 作 成 した MyPiNode クラスをアプリケー ション 内 で 呼 び 出 し カスタマイズされたメニュー(MyMenuPanel)とフッター(MyFooterPanel)に 変 更 するために 継 承 元 クラスのメソッドをオーバーライドしています MyUIApplication.java public class MyUIApplication extends WebUIApplication { 45 / 89 Copyright 2014 ( 株 ) ワビット

@Override protected UecsPiNode createnodeinstance() { return new MyPiNode(); @Override protected Class<? extends Panel> getmenupanelclass() { return MyMenuPanel.class; @Override protected Class<? extends Panel> getfooterpanelclass() { return MyFooterPanel.class; 各 クラスの 実 装 は Wicklet の API に 従 っていますので 詳 細 は Wicket の HP(http://wicket.apache.org/) のユーザーガイドを 参 照 してください 4.3. Sample 1 : ダミーセンサ このチュートリアルでは ダミー 値 を 送 信 する 仮 想 センサのサンプルを 解 説 します 実 際 のセンサ 機 器 は 使 いません WebUI から 設 定 値 をセンサ 値 としてノードに 認 識 させ 定 義 変 更 可 能 な 任 意 のデータ CCM として 送 信 を 行 います 図 54:ダミーセンササンプル WebUI( 枠 内 がダミーセンサ 入 力 値 ) 46 / 89 Copyright 2014 ( 株 ) ワビット

図 55:CCM 一 覧 画 面 ( 枠 内 がダミーセンサ 入 力 値 を 反 映 した CCM) 4.3.1. デバイス コンポーネントクラス デバイス 部 分 の 基 本 的 な 構 成 は デバイスクラス+デバイス 設 定 クラス が 1 セットと コンポーネ ントクラス+コンポーネント 設 定 クラス が 任 意 セット 数 含 まれる 形 です 本 サンプルでは コンポーネ ントはダミーセンサー1 個 となりますので 1セット 用 意 されています デバイスクラス + デバイス 設 定 クラス コンポーネントクラス 図 56:デバイス 部 分 のファイル 構 成 + コンポーネント 設 定 クラス それでは デバイスクラスとデバイス 設 定 クラスのコードを 見 ていきます DammyDevice.java DammyDeviceConfig.java は 継 承 元 の UECS-Pi 基 本 ライブラリクラスの PiDeviceBase PiDeviceConfig と 同 じ 動 作 をするコードになっていますので ここでは 説 明 は 割 愛 します コンポーネントクラスとコン ポーネント 設 定 クラスを 見 ていきます DammySensor.java public class DummySensor extends PiSensorBase<DummySensorConfig> { public DummySensor(String id) { super(id, new DummySensorConfig()); @Override protected void onstart() throws Exception { // 起 動 時 の 処 理 を 記 述 します Number val = getconfig().getfloat(dummysensorconfig.key_sense_value, 0); super.setvalue(val); 47 / 89 Copyright 2014 ( 株 ) ワビット

@Override protected void onstop() throws Exception { // 停 止 時 の 処 理 を 記 述 します DammySensor.java も 基 本 的 には 継 承 元 のクラス PiSensorBase と 同 じ 動 作 をするコードですが 起 動 時 に DammySensorConfig から KEY_SENSE_VALUE を 取 得 して setvalue()に 入 力 しています この KEY_SENSE_VALUE が WebUI から 入 力 される ダミーのセンサ 取 得 値 です また setvalue()は 値 が 入 力 されると センサーコンポーネントに 対 応 する CCM の 値 も 自 動 的 に 更 新 されます DammySensorConfig.java public class DummySensorConfig extends PiSensorConfig { /** 設 定 値 項 目 キー:ダミーセンサー 値 */ public final static String KEY_SENSE_VALUE = "SenseValue"; public DummySensorConfig() { // センサー 値 に 対 応 するCCM 情 報 を 初 期 設 定 します setstring(key_component_name, "Dummy Sensor"); setstring(key_ccm_info_name, "InAirTemp"); setstring(key_ccm_level, CcmLevel.A_10S_0.toString()); setint(key_ccm_room, 1); setint(key_ccm_region, 1); setint(key_ccm_order, 1); setint(key_ccm_priority, 1); setstring(key_ccm_unit, "C"); setstring(key_ccm_side, "S"); setint(key_ccm_cast, 1); setint(key_sense_value, 0); DammySensorConfig.java では コンポーネント 設 定 値 の 定 数 定 義 と 対 応 する CCM の 初 期 設 定 を 行 っています これらの 初 期 値 は ダミーセンサ 用 の WebUI の 初 期 値 として 使 用 されます コンポーネン トに 設 定 できる 値 のキー 定 数 は 継 承 元 クラスに 定 義 されていますので JavaDoc を 参 照 してください 48 / 89 Copyright 2014 ( 株 ) ワビット

4.3.1. WebUI 設 定 画 面 クラス 次 は デバイス 設 定 画 面 の WebUI コード 部 分 を 見 ていきます WebUI 部 分 の 基 本 的 な 構 成 は Java ファイル+HTML ファイル+プロパティファイル です 図 57:WebUI 部 分 のファイル 構 成 DammyDevicePage.java @AuthorizeInstantiation({Roles.ADMIN) ------1 public class DummyDevicePage extends LayoutPage { ------2 private static final long serialversionuid = 9205561784306869639L; private Form<PropertyConfig> deviceform; private PropertyConfig formparams = new PropertyConfig(); ------3 private Log logger = LogFactory.getLog(getClass()); private static String[] ccmlevels = new String[] { CcmLevel.A_1S_0.toString(), CcmLevel.A_1S_1.toString(), CcmLevel.A_10S_0.toString(), CcmLevel.A_10S_1.toString(), CcmLevel.A_1M_0.toString(), CcmLevel.A_1M_1.toString(), CcmLevel.B_0.toString(), CcmLevel.B_1.toString(), ; private String deviceid; private String componentid; public DummyDevicePage() { < 中 略 > @Override protected void oninitialize() { super.oninitialize(); // 設 定 対 象 となるデバイスとコンポーネントのIDを 取 得 します MyPiNode node = (MyPiNode)MyUIApplication.getNodeInstance(); DummyDevice device = node.listdevices(dummydevice.class).get(0); ------4 DummySensor sensor = device.listcomponents(dummysensor.class).get(0); ------5 deviceid = device.getid(); componentid = sensor.getid(); // コンポーネント 設 定 値 をWebUIフォームの 初 期 値 としてコピーします 49 / 89 Copyright 2014 ( 株 ) ワビット

formparams.putall(sensor.getconfig()); deviceform = new Form<PropertyConfig>("deviceForm") { private static final long serialversionuid = 1L; @Override public void onsubmit() { ------6 try { deviceform.modelchanging(); // フォーム 入 力 された 設 定 値 をセンサー 設 定 に 反 映 して // DBに 保 存 したのち ノードを 再 起 動 します DatabaseManager.callInTransaction(new Callable<Void>() { public Void call() throws Exception { DummySensor sensor = (DummySensor)MyUIApplication.getNodeInstance().getDevice(deviceId).getComponent(componentId); sensor.getconfig().putall(formparams); DatabaseUtils.saveComponent(deviceId, sensor); MyUIApplication.getNodeInstance().restart(); return null; ); ; deviceform.modelchanged(); success(messageutils.getmessage(messagecode.saved)); catch (Exception e) { error(messageutils.getmessage(messagecode.error)); logger.error("save error.", e); // フォームに 入 力 フィールドを 登 録 します ------7 deviceform.setdefaultmodel(new CompoundPropertyModel<PropertyConfig>(formParams)); deviceform.add(new RequiredTextField<String>(DummySensorConfig.KEY_COMPONENT_NAME, String.class).add(new StringValidator(1, 50))); deviceform.add(new RequiredTextField<String>(DummySensorConfig.KEY_CCM_INFO_NAME, String.class) < 中 略 > add(deviceform); DammyDevicePage.java では HTML ファイルに 埋 め 込 み 表 示 するコンテンツや HTML が 操 作 され た 時 の 処 理 を 記 述 しています コンテンツを 作 成 しているコードでは 主 に Wicket フレームワークが 用 意 している Form クラスに 対 して 入 力 フィールドのアイテムや 入 力 値 バリデーションクラスの 登 録 を 記 述 しています No. コードの 説 明 1 Webページ 表 示 の 際 に 認 証 チェックを 行 うためのアノテーション 2 LayoutPageクラスを 継 承 する 事 で UECS-Pi SDKのWebUIデザインを 継 承 3 Web 画 面 の 入 力 フォームフィールドの 入 力 値 を 格 納 するためのデータオブジェクト 50 / 89 Copyright 2014 ( 株 ) ワビット

4 ノードに 初 期 登 録 されているデバイスインスタンスを 取 得 5 デバイスに 初 期 登 録 されているセンサーコンポーネントインスタンスを 取 得 6 Web 画 面 の 登 録 ボタンクリックのリクエスト 処 理 を 記 述 7 WicketのFormオブジェクトに 入 力 フィールドデータを 関 連 付 け 各 項 目 に 対 応 するフィールドオブジェク トや 入 力 バリデーションオブジェクトを 生 成 して 登 録 表 13:DammyDevicePage.java の 処 理 次 は HTML ファイルを 見 ていきます 3.4.1. 基 本 ページレイアウトとレイアウトの 継 承 で 説 明 し たように WebUI の HTML ファイルは Java ファイルに 記 述 されている 内 容 を 表 示 するテンプレート になっています DammyDevicePage.html < 中 略 > <body> <wicket:extend> ------1 <fieldset style="width: 780px;"> <legend> <wicket:message key="title.dummy" /> ------2 </legend> <form wicket:id="deviceform"> ------3 <table border="1" style="width: 770px"> <tr> <th style="width: 180px;"><wicket:message key="componentname" /></th> <td><input type="text" wicket:id="componentname" size="50" ------4 style="width: 300px" /></td> </tr> < 中 略 > </div> </form> </fieldset> </wicket:extend> </body> </html> </table> <table border="1" style="width: 770px"> <tr> <th style="width: 180px;"><wicket:message key="sensevalue" /></th> <td><input type="text" wicket:id="sensevalue" size="5" style="width: 50px" /></td> </tr> </table> <br /> <div style="text-align: right;"> <input type="submit" value="save" ------4 wicket:message="value:button.save" /> DammyDevicePage.html では LayoutPage を 継 承 していますが コンテンツは 独 自 のものを 表 示 し ます 独 自 コンテンツが 表 示 されるのは<wicket:extend> ~ </wicket:extend> タグ 内 です DammyDevicePage.java の deviceform の 内 容 は<form wicket:id= deviceform >~</form >に 表 示 され ています 51 / 89 Copyright 2014 ( 株 ) ワビット

また DammyDevicePage.java のデータ 入 力 オブジェクトと HTML ファイル 内 のフォーム 入 力 フィー ルド 値 を wicket:id 属 性 値 で 互 いに 関 連 付 けています No. コードの 説 明 1 独 自 コンテンツ 表 示 用 タグ 2 wicket:messageタグ プロパティファイルからテキストを 取 得 している 3 DammyDevicePage.javaのdeviceFormの 内 容 を 反 映 するタグ 4 wicket:idでjavaクラス 内 のformParamsオブジェクトの 値 と 関 連 付 けている 5 deviceformareaにaddされた 内 容 を 呼 び 出 している 6 保 存 ボタン クリックするとJavaクラス 内 のFormオブジェクトのsubmitメソッド 処 理 が 行 われる 表 14:DammyDevicePage.html のタグの 意 味 52 / 89 Copyright 2014 ( 株 ) ワビット

4.4. Sample 2 : タイマー 動 作 アクチュエータ このチュートリアルでは Raspberry Pi の GPIO 端 子 にリレーユニットを 接 続 し 一 定 間 隔 で 周 期 的 に ON/OFF 動 作 をするサンプルを 解 説 します 実 際 に 機 器 同 士 を 接 続 して 動 作 を 確 認 して 下 さい 周 期 動 作 設 定 周 期 的 にスイッチ 図 58:タイマー 動 作 アクチュエータサンプル 作 成 イメージ 53 / 89 Copyright 2014 ( 株 ) ワビット

WebUI 画 面 から 各 種 動 作 定 義 を 行 うことができます 図 59:タイマーアクチュエータサンプル WebUI 設 定 項 目 No. 項 目 説 明 1 装 置 名 称 接 続 した 機 器 のラベル 名 称 です トップ 画 面 などでアクチュエータ 情 報 として 表 示 される 名 称 となります 2 CCM 識 別 子 UECS 通 信 で 使 用 される CCM 識 別 子 の 情 報 です 設 定 可 能 な 識 別 子 のルールは UECS 実 用 通 信 規 約 あるいは 運 用 ガイドライン 書 類 に 記 載 されていますので 参 考 に 設 定 してく ださい [ 設 定 例 ] 項 目 名 =Relay, 系 統 番 号 =1, ノード 識 別 子 =cmc で 設 定 された 場 合 は 以 下 の 3 種 類 の CCM がノード 内 部 に 登 録 されます 制 御 機 器 運 転 状 態 CCM ( 送 信 )=Relayopr.1.cMC 遠 隔 制 御 指 示 CCM ( 受 信 )=RelayrcA.1.cMC 遠 隔 操 作 指 示 CCM ( 受 信 )=RelayrcM.1.cMC 3 オプション [H/L 反 転 動 作 ] デフォルト 動 作 では GPIO ピン 状 態 が LOW=OFF HIGH=ON として 扱 われます 接 続 しているリレーモジュールによっては 動 作 が 逆 の 場 合 がありますので その 場 合 はチェ ックを 入 れてください 4 周 期 時 間 周 期 条 件 を 入 力 します 例 : [30] 秒 ごとに[10] 秒 間 ON にする と 入 力 された 場 合 [ON:10 秒 ]-[OFF:20 秒 ]-[ON-10 秒 ]-[OFF:20 秒 ]~( 以 降 繰 り 返 し)~ 5 停 止 時 間 帯 一 日 のうち 定 期 動 作 を 停 止 したい 時 間 帯 がある 場 合 に 指 定 できます 0 時 をまたいだ 設 定 も 可 能 です ( 例 :23:00~2:00) 表 15:タイマーアクチュエータサンプル WebUI 設 定 項 目 解 説 54 / 89 Copyright 2014 ( 株 ) ワビット

4.4.1. デバイス コンポーネントクラス デバイス 部 分 のコードを 解 説 します 図 60:デバイス 部 分 のファイル 構 成 SimpleGpioDevice.java public class SimpleGpioDevice extends GpioDeviceBase<SimpleGpioDeviceConfig> { public SimpleGpioDevice(String id) { super(id, new SimpleGpioDeviceConfig()); @Override protected void oninit() throws Exception { super.oninit(); UecsPiNodeConfig nconf = (UecsPiNodeConfig) getnode().getconfig(); for (IComponent<?> compo : listcomponents()) { // アクチュエータCCMの 属 性 値 として ノードのCCM 属 性 値 を 引 き 継 いで 設 定 ComponentConfig conf = compo.getconfig(); conf.setint(componentconfig.key_ccm_room, nconf.getint(uecspinodeconfig.key_node_room, 0)); conf.setint(componentconfig.key_ccm_region, nconf.getint(uecspinodeconfig.key_node_region, 0)); conf.setint(componentconfig.key_ccm_order, nconf.getint(uecspinodeconfig.key_node_order, 0)); conf.setint(componentconfig.key_ccm_priority, nconf.getint(uecspinodeconfig.key_node_priority, 0)); SimpkeGpioDeviceConfig.java public class SimpleGpioDeviceConfig extends GpioDeviceConfig { private static final long serialversionuid = -2238752941334340868L; public SimpleGpioDeviceConfig() { デバイスクラスでは 内 包 するコンポーネント(ここでは TimerSwitchActuator)の CCM の 属 性 値 (room / region / order / priority)をノードの 設 定 値 と 同 期 させるために 引 継 ぎコピーを 行 っています デバイス 設 定 クラスは 継 承 元 のクラスと 同 じ 動 作 を 行 っています 55 / 89 Copyright 2014 ( 株 ) ワビット

次 はアクチュエータクラス アクチュエータ 設 定 クラスを 見 ていきます TimerSwitchActuator.java public class TimerSwitchActuator extends SwitchActuator<TimerSwitchActuatorConfig> { public TimerSwitchActuator(String id) { super(id, new TimerSwitchActuatorConfig()); @Override protected void oninit() throws Exception { super.oninit(); TimerSwitchActuatorConfig config = getconfig(); int periodicinterval = config.getint(timerswitchactuatorconfig.key_periodic_interval, 0); int oninterval = config.getint(timerswitchactuatorconfig.key_periodic_on, 0); if (periodicinterval > 0 && oninterval > 0) { // 設 定 値 が 有 効 な 場 合 は 定 周 期 動 作 PeriodicSwitchAction periodaction = new PeriodicSwitchAction(); periodaction.setperiodicinterval(periodicinterval * 1000L); periodaction.setoninterval(oninterval * 1000L); periodaction.setinactivestarttime(config.getint(timerswitchactuatorconfig.key_periodic_inactive_start_h OUR, -1), config.getint(timerswitchactuatorconfig.key_periodic_inactive_start_min, -1)); periodaction.setinactiveendtime(config.getint(timerswitchactuatorconfig.key_periodic_inactive_end_hour, -1), config.getint(timerswitchactuatorconfig.key_periodic_inactive_end_min, -1)); setaction(actionmode.autonomy, periodaction); setactionmode(actionmode.autonomy); else { // 何 も 設 定 されない 場 合 は スタンドアローンモードで 起 動 setactionmode(actionmode.standalone); アクチュエータクラスでは 初 期 化 を 行 う oninit()メソッドをオーバーライドして 周 期 動 作 の 設 定 を 行 っています 周 期 ON/OFF 動 作 を 行 うアクションクラスは UECS 基 本 ライブラリで 提 供 されています (PeriodicSwitchAction)ので そのクラスを 利 用 するだけで アクチュエータの 動 作 を 定 義 する 事 が 可 能 です ここでは E10 規 約 で 定 義 されている アクチュエータの 動 作 モードのうち 自 律 モード (ActionMode.Autonomy)に 対 応 したアクションとして 登 録 しています 定 期 動 作 以 外 にも センサーCCM 連 動 や 時 刻 範 囲 指 定 で 動 作 を 行 うようなアクションクラスも 用 意 されていますので 詳 細 は JavaDoc を 参 照 してください TimerSwitchActuatorConfig.java public class TimerSwitchActuatorConfig extends SwitchActuatorConfig { private static final long serialversionuid = 1L; /** 設 定 項 目 キー : 定 周 期 動 作 間 隔 */ public static final String KEY_PERIODIC_INTERVAL = "PeriodicInterval"; 56 / 89 Copyright 2014 ( 株 ) ワビット

/** 設 定 項 目 キー : ON 動 作 間 隔 */ public static final String KEY_PERIODIC_ON = "PeriodicOn"; /** 設 定 項 目 キー : 動 作 停 止 開 始 時 刻 ( 時 ) */ public static final String KEY_PERIODIC_INACTIVE_START_HOUR = "PeriodicInactiveStartHour"; /** 設 定 項 目 キー : 動 作 停 止 開 始 時 刻 ( 分 ) */ public static final String KEY_PERIODIC_INACTIVE_START_MIN = "PeriodicInactiveStartMinute"; /** 設 定 項 目 キー : 動 作 停 止 終 了 時 刻 ( 時 ) */ public static final String KEY_PERIODIC_INACTIVE_END_HOUR = "PeriodicInactiveEndHour"; /** 設 定 項 目 キー : 動 作 停 止 終 了 時 刻 ( 分 ) */ public static final String KEY_PERIODIC_INACTIVE_END_MIN = "PeriodicInactiveEndMinute"; public TimerSwitchActuatorConfig() { setint(key_default_value, 0); setint(key_fixed_value, 0); setboolean(key_inverse, false); setboolean(key_is_representative, false); setint(key_ccm_line, 1); setint(key_gpio_pin, 0); setstring(key_component_name, "Timer Switch"); setstring(key_ccm_info_name, "Switch"); TimerSwitchActuatorConfig.java では 設 定 値 キー 定 義 と 初 期 値 設 定 を 行 っています この 定 数 は WebUI 設 定 画 面 の 入 力 フィールドのキーとしても 使 用 されます 4.4.2. WebUI 設 定 画 面 クラス WebUI 部 分 のファイルの 構 成 は Sample 1 と 全 く 同 じ 構 造 です 実 装 パターンも 同 様 ですので ここ では 説 明 を 割 愛 します 図 61:WebUI 部 分 のファイル 構 成 57 / 89 Copyright 2014 ( 株 ) ワビット

4.5. Sample 3:シリアル 通 信 個 のチュートリアルでは シリアル 通 信 を 使 って 外 部 接 続 されたデバイスから 定 期 的 に 送 信 されるデータ 文 字 列 を 読 み 取 ってセンサ 値 として CCM 送 信 するサンプルを 解 説 します データ 文 字 列 は 正 規 表 現 パタ ーンマッチングで 数 値 部 分 を 抽 出 します Ether HD 5 SD USB Car GPIO ポート UART シリアル 通 信 デバイス 図 62: 実 際 のシリアル 通 信 デバイスとの 接 続 イメージ No. 項 目 説 明 1 シリアルポート シリアルポートの 識 別 子 を 入 力 します 通 常 は 以 下 で 動 作 します GPIO ポートの UART(RX/TX) 接 続 : /dev/ttys0 USB シリアル 変 換 接 続 : /dev/ttyusb0 2 通 信 速 度 シリアルポートの 通 信 速 度 (bps)を 入 力 します 接 続 する 機 器 側 の 通 信 速 度 の 仕 様 に 合 わせてください 3 値 抽 出 パターン 値 を 抽 出 する 正 規 表 現 パターンを 設 定 します ( 書 式 は Java 正 規 表 現 ライブラリに 従 います) 表 16:シリアル 通 信 サンプル WebUI 設 定 項 目 解 説 58 / 89 Copyright 2014 ( 株 ) ワビット

4.5.1. デバイス コンポーネントクラス デバイス 部 分 のコードを 解 説 します 図 63:デバイス 部 分 のファイル 構 成 SimpleSerialDevice.java public class SimpleSerialDevice extends SerialPortDeviceBase<SimpleSerialDeviceConfig> { public SimpleSerialDevice(String deviceid) { super(deviceid, new SimpleSerialDeviceConfig()); @Override protected void oninit() throws Exception { super.oninit(); UecsPiNodeConfig nconf = (UecsPiNodeConfig) getnode().getconfig(); for (IComponent<?> compo : listcomponents()) { // CCMの 属 性 値 として ノードのCCM 属 性 値 を 引 き 継 いで 設 定 ComponentConfig conf = compo.getconfig(); conf.setint(componentconfig.key_ccm_room, nconf.getint(uecspinodeconfig.key_node_room, 0)); conf.setint(componentconfig.key_ccm_region, nconf.getint(uecspinodeconfig.key_node_region, 0)); conf.setint(componentconfig.key_ccm_order, nconf.getint(uecspinodeconfig.key_node_order, 0)); conf.setint(componentconfig.key_ccm_priority, nconf.getint(uecspinodeconfig.key_node_priority, 0)); @Override public void datareceived(byte[] data) { for (RegexSensor sensor : listcomponents(regexsensor.class)) { sensor.parsedata(data); SimpleSerialDeviceConfig.java public class SimpleSerialDeviceConfig extends SerialPortDeviceConfig { private static final long serialversionuid = -5081030325821182630L; public SimpleSerialDeviceConfig() { setstring(key_device_name, SimpleSerialDevice.class.getSimpleName()); setstring(key_serial_port_id, ""); setint(key_serial_port_speed, 9600); 59 / 89 Copyright 2014 ( 株 ) ワビット

UECS-Pi 基 本 ライブラリでは シリアル 通 信 を 行 う 基 底 デバイスクラスが 用 意 されています (SerialPortDeviceBase) ので 継 承 することでシリアル 通 信 機 能 を 持 たせることができます SimpleSerialDeviceConfig で 設 定 された 通 信 ポート ID(KEY_SERIAL_PORT_ID)と 通 信 スピード[BPS] (KEY_SERIAL_PORT_SPEED)で 通 信 を 行 います データが 受 信 されると 非 同 期 に datareceived()メソッドが 起 動 されますので datareceived()メソッドをオーバーライドして 受 信 データを 処 理 するコード 記 述 しま す 本 サンプルでは 実 デバイスに 対 してデータ 送 信 は 行 っていませんが 継 承 元 クラスには データ 送 信 を 行 う senddata()メソッドも 用 意 されています 詳 細 は JavaDoc を 参 照 してください RegexSensor.java public class RegexSensor extends PiSensorBase<RegexSensorConfig> { private Pattern regexpattern; public RegexSensor(String id) { super(id, new RegexSensorConfig()); @Override protected void oninit() throws Exception { super.oninit(); RegexSensorConfig conf = getconfig(); String textpattern = conf.getstring(regexsensorconfig.key_regex_pattern); if (textpattern!= null) { try { regexpattern = Pattern.compile(textPattern); catch (PatternSyntaxException e) { notifyexception(e); @Override protected void onstart() throws Exception { @Override protected void onstop() throws Exception { public void parsedata(byte[] data) { String text = null; try { text = new String(data, "us-ascii"); catch (UnsupportedEncodingException e) { return; if (regexpattern!= null && text!= null) { Matcher matcher = regexpattern.matcher(text); if (matcher.find()) { String sval = matcher.group(1); try { double value = Double.valueOf(sval); setvalue(value); catch (NumberFormatException e) { notifyexception(e); 60 / 89 Copyright 2014 ( 株 ) ワビット

RegexSensorConfig.java public class RegexSensorConfig extends PiSensorConfig { private static final long serialversionuid = -2298819350796006077L; public static final String KEY_REGEX_PATTERN = "RegexPattern"; public RegexSensorConfig() { setstring(key_component_name, "Serial Port Sensor"); setstring(key_ccm_info_name, "InAirHumid"); setstring(key_ccm_level, CcmLevel.A_10S_0.toString()); setstring(key_ccm_unit, "%"); setstring(key_regex_pattern, "\\[HUMID:([0-9.\\-\\+]+)\\]"); RegexSensor.java は WebUI 画 面 から 設 定 された 正 規 表 現 パターンを 元 に シリアル 通 信 で 得 られたバ イト 配 列 データを 文 字 列 に 変 換 して 値 抽 出 を 行 っています 本 サンプルでは SerialDevice に 対 して1つ の RegexSensor インスタンスを 持 たせていますが 複 数 の RegexSensor を 持 たせるように 拡 張 すれば 異 なる 文 字 パターンを 解 析 して 複 数 のセンサー 値 を 取 得 する 機 能 も 簡 単 に 実 現 することができます 送 受 信 データは byte 配 列 で 処 理 されますので バイナリ 値 での 通 信 にも 対 応 可 能 です 4.5.2. WebUI 設 定 画 面 クラス 図 64:WebUI 部 分 のファイル 構 成 SerialDevicvePage.java は Sample1 Sample2 と 同 じ 構 造 です また 対 になる HTML ファイル 等 も 同 様 ですので 説 明 は 割 愛 します 61 / 89 Copyright 2014 ( 株 ) ワビット

4.6. Sample 4 : I2C 通 信 最 後 に I2C 通 信 方 式 で 仮 想 の CO2 センサデバイスと 通 信 するサンプルを 作 成 します 実 在 の 製 品 デバ イスとの 通 信 ではありませんが 本 サンプルコードを 参 考 に データ 取 得 コマンドや 受 信 データチェック 処 理 などをコーディングする 事 で 実 在 の I2C 通 信 デバイスと 通 信 が 可 能 になります Ether HD 5 SD USB Car GPIO ポート I2C I2C 接 続 モジュール [ 仮 想 CO2 センサ] 図 65:I2C 通 信 デバイス 接 続 イメージ No. 項 目 説 明 1 I2Cアドレス I2C バスに 接 続 されたデバイスのアドレス(HEX 形 式 )を 設 定 します 2 計 測 間 隔 定 期 的 にセンサー 値 取 得 コマンドを 発 行 する 時 間 間 隔 を 設 定 します 表 17:I2C 通 信 サンプル WebUI 設 定 項 目 解 説 62 / 89 Copyright 2014 ( 株 ) ワビット

4.6.1. デバイス コンポーネントクラス デバイス 部 分 のコードを 解 説 します 図 66:デバイス 部 分 のファイル 構 成 SimpleI2cDevice.java public class SimpleI2cDevice extends I2cDeviceBase<SimpleI2cDeviceConfig> { public SimpleI2cDevice(String deviceid) { super(deviceid, new SimpleI2cDeviceConfig()); @Override protected void oninit() throws Exception { super.oninit(); UecsPiNodeConfig nconf = (UecsPiNodeConfig) getnode().getconfig(); for (IComponent<?> compo : listcomponents()) { // アクチュエータCCMの 属 性 値 として ノードのCCM 属 性 値 を 引 き 継 いで 設 定 ComponentConfig conf = compo.getconfig(); conf.setint(componentconfig.key_ccm_room, nconf.getint(uecspinodeconfig.key_node_room, 0)); conf.setint(componentconfig.key_ccm_region, nconf.getint(uecspinodeconfig.key_node_region, 0)); conf.setint(componentconfig.key_ccm_order, nconf.getint(uecspinodeconfig.key_node_order, 0)); conf.setint(componentconfig.key_ccm_priority, nconf.getint(uecspinodeconfig.key_node_priority, 0)); SimpleI2cDeviceConfig.java public class SimpleI2cDeviceConfig extends I2cDeviceConfig { public SimpleI2cDeviceConfig() { setstring(key_device_name, SimpleI2cDevice.class.getSimpleName()); setint(key_i2c_address, 0x40); UECS-Pi 基 本 ライブラリでは I2C 通 信 を 行 う 基 底 デバイスクラスが 用 意 されています(I2cDeviceBase) ので 継 承 することで I2C 通 信 機 能 を 持 たせることができます SimpleI2cDeviceConfig で 設 定 された I2C アドレス (KEY_I2C_ADDRESS)に 対 して 通 信 を 行 います 63 / 89 Copyright 2014 ( 株 ) ワビット

本 サンプルでは1つだけの I2C アドレスに 対 して 通 信 を 行 っていますが ノードに 対 して 複 数 のデバ イスを 持 たせることで 複 数 の I2C アドレスデバイスと 通 信 可 能 です I2cCo2Sensor.java public class I2cCo2Sensor extends I2cSensorBase<I2cCo2SensorConfig> { private static final byte GET_CO2_DATA = (byte) 0x05; private byte[] buffer = new byte[2]; public I2cCo2Sensor(String id) { super(id, new I2cCo2SensorConfig()); @Override public void onreadprocess(i2cdevice i2cdevice) throws Exception { I2cUtils.write(i2cDevice, 2, GET_CO2_DATA); int len = I2cUtils.read(i2cDevice, 100L, buffer, 0, 2); if (len >= 2) { int co2 = (buffer[0] & 0xff) * 256 + (buffer[1] & 0xff); setvalue(co2); I2cCo2SensorConfig.java public class I2cCo2SensorConfig extends I2cSensorConfig { private static final long serialversionuid = -321642178913071370L; public I2cCo2SensorConfig() { setstring(key_component_name, "I2C Bus Sensor"); setstring(key_ccm_info_name, "InAirCO2"); setstring(key_ccm_level, CcmLevel.A_10S_0.toString()); setstring(key_ccm_unit, "ppm"); setint(key_ccm_cast, 0); setint(key_sense_interval, 10); I2cCo2Sensor では 周 期 動 作 をしてセンサ 値 を 取 得 しています ただし その 処 理 は 継 承 元 のクラス I2cSensorBase クラス 内 で 自 動 的 に 行 われるため このクラスでは 周 期 動 作 タイミングで 起 動 される onreadprocess()メソッドをオーバーライドして 受 信 処 理 を 記 述 しています 周 期 動 作 間 隔 は I2cSensorConfig で 定 義 されている 設 定 値 (KEY_SENSE_INTERVAL)で 変 更 可 能 です I2C センサクラスとの 通 信 をする 基 本 的 な 流 れは センサクラス 起 動 時 に 周 期 実 行 処 理 セット 処 理 タイミングが 来 たら onreadprocess 起 動 I2cUtil.write()で データ 取 得 コマンド 発 行 I2cUtil.read()で データを 読 み 取 り 値 を setvalue()で 登 録 CCM の 値 が 更 新 される という 流 れになります 64 / 89 Copyright 2014 ( 株 ) ワビット

4.6.2. WebUI 設 定 画 面 クラス 図 67:WebUI 部 分 のファイル 構 成 I2cDevicvePage.java は Sample1 Sample2 Sample3 と 同 じ 構 造 です また 対 になる HTML ファ イル 等 も 同 様 ですので 説 明 は 割 愛 します 65 / 89 Copyright 2014 ( 株 ) ワビット

5. UECS-Pi アプリケーションのインストール ここでは Raspberry Pi の 初 期 設 定 及 び UECS-Pi SDK で 開 発 したアプリケーションを Raspberry Pi にインストールする 手 順 について 説 明 します 5.1. Raspberry Pi セットアップ No. 名 称 説 明 関 連 情 報 1 Raspberry Pi Model B/B+ UECS-Pi SDK 動 作 製 品 本 体 販 売 サイトURL http://jp.rs-online.com/web/ 2 ACアダプタ Raspberry Pi の microusb 電 源 端 子 に 5V-750mA 以 上 を 給 電 可 能 なもの( 周 辺 機 器 を 接 続 する 場 合 1.0~1.2A 程 度 を 推 奨 ) 3 SDカード+SDカ ードリーダ 4 HDMI 接 続 ディ SDHC 4GB(Class4) 以 上 Type B+の 場 合 は microsd Raspberry Pi の 初 期 設 定 時 に 接 続 して 使 用 スプレイ+USBキ ーボード 5 LAN 接 続 ハブ/ケ ーブル Raspberry Pi と 開 発 用 PC をイーサネット 経 由 で 接 続 するための 機 器 とケーブル 6 Raspbian OS Raspberry Pi 上 で 動 作 する Linux OS ダウンロードURL http://www.raspberrypi.org/downl oads/ 7 Win32 Disk Imager RAW ディスクイメージを SD カードに 書 き 込 むソ フトウェア Mac OS/Linux を 使 われる 方 は Win32 Disk Imager ではなく dd コマンドで 書 き 込 みが 可 能 です ダウンロードURL http://sourceforge.jp/projects/sfnet _win32diskimager/releases/ 表 18:Raspberry Pi セットアップに 必 要 な 機 器 とソフトウェア 66 / 89 Copyright 2014 ( 株 ) ワビット

5.1.1. SD カードの 準 備 1 Raspbian OS の 配 布 ページに 移 動 し zip ファイルをダウンロードします 図 68:Rapbian OS 配 布 ページ 2 ダウンロードが 完 了 したら ファイルを 適 当 な 場 所 に 解 凍 します 3 Win32 Disk Imager 配 布 サイトに 移 動 し exe ファイルをダウンロードしてインストールします 4 使 用 する SD カードを SD カードスロットに 差 し 込 み その 後 Win32 Disk Imager を 起 動 しま す 5 フォルダのアイコンをクリックして OS のイメージファイル( 例 : 2014-06-20-wheezy-raspbian.img)を 選 択 します Write ボタンをクリックして SD カー ドへの 書 き 込 みを 行 います 67 / 89 Copyright 2014 ( 株 ) ワビット

図 69:Win32 Disk Imager 画 面 6 書 き 込 み 終 了 後 SD カードを SD カードスロットから 取 り 外 し Win32 Disk Imager を 終 了 し てください 68 / 89 Copyright 2014 ( 株 ) ワビット

5.1.2. Raspberry Pi の 初 期 設 定 1 Raspberry Pi の SD カードスロットに OS イメージファイルを 書 き 込 んだ SD カードを 差 し 込 みます 次 にキーボード ディスプレイ LAN ケーブル 等 の 周 辺 機 器 を Raspberry Pi に 接 続 します 最 後 に AC アダプタを 接 続 すると Raspberry Pi が 起 動 します 2 起 動 後 下 記 のような Raspberry Pi Software Configuration Tool(raspi-config) 画 面 が 表 示 され ます 図 70:Raspberry Pi Software Configuration Tool(raspi-config) 画 面 以 下 順 に 設 定 を 行 ってください A) 1 Expand Filesystem Enter を 押 すと 次 の 画 面 が 表 示 されます OK を 選 択 してください B) 2 Change User Password Enter を 押 すと 画 面 下 部 で 新 しいパスワードを 尋 ねられますので 2 回 同 じパスワード を 入 力 してください 以 降 Raspberry Pi にログインを 行 う 際 に 必 要 になりますので 忘 れないようにしてくだ さい C) 3 Enable Boot to Desktop/Scratch 設 定 する 必 要 はありません D) 4 Internationalisation Options Enter を 押 すと 下 記 のような 言 語 タイムゾーン キーボードレイアウトのメニュー 画 面 に 69 / 89 Copyright 2014 ( 株 ) ワビット