<4D F736F F D20694F538F5A91EE A20838A C >

Similar documents
エレクトーンのお客様向けiPhone/iPad接続マニュアル

インターネット接続ガイド v110

iPhone/iPad接続マニュアル

ScanFront300/300P セットアップガイド

2

ScanFront 220/220P 取扱説明書

ScanFront 220/220P セットアップガイド

TH-47LFX60 / TH-47LFX6N



DDK-7 取扱説明書 v1.10

WYE771W取扱説明書

NetVehicle GX5取扱説明書 基本編

TH-80LF50J TH-70LF50J


目次 1. 珠肌 Photoshop プラグインについて はじめに 必要システム構成 インストールとアクティベーション 珠肌 for Photoshop をインストールする アクティベーションする...

珠肌 for Video ユーザーマニュアル

MusicSoft Manager

DS-860

License

Operating Instructions

準備と設定

準備と設定

Readme

準備と設定

基本操作ガイド

操作ガイド(本体操作編)

操作ガイド(本体操作編)

BRA1209A_Ja_001_009.p65

ソフトウェア説明書 Interstage Shunsaku Data Manager Enterprise Edition V9.0.0 評価版

基本操作ガイド

Microsoft Word - LaCie Manual_JA080719doc.doc

DS-510

Appendix


LWN-A54APS 設定ガイド

2

TH-65/60PF30

Chapter

Si-R130取扱説明書

readme

変更履歴 変更日 変更箇所 変更内容 2013/9/30 新規作成 2013/11/11 ご利用上の注意点 注意点を追記 2014/03/24 ご利用上の注意点 注意点を追加 2015/9/ の文言修正と画像差し替え デフォルト設定変更に伴う文言修正と画像差し替え 2

sato-FBSDW key

2

操作ガイド(本体操作編)

Post.Office 4.1 Additional Manual

ScanFront 300P/330 取扱説明書

DS-30


ES-D400/ES-D200

readme

AirStash(エアスタッシュ)ユーザーマニュアル

ES-D400/ES-D350

EPSON ES-D200 パソコンでのスキャンガイド

ContentDistributor

1.indd

フィギュアカート マニュアル

Readme

PX-403A

RN.book

変更履歴 変更日 変更箇所 変更内容 2013/9/30 新規作成 2013/11/11 ozziocloud(android 用 ) をアンイン 新規追加 ストールする 2013/11/11 ご利用上の注意点 注意点を追記 2014/03/11 付録設定情報インポート リスト 新規追加 ア項目 (

DS-70000/DS-60000/DS-50000

July prog11-02.c /*, */ /* $Id: prog11-02.c,v :48:07+09 naito Exp $ */ #include <stdio.h> #define N 10 int main(int argc, cha

EPSON PX-503A ユーザーズガイド

スカパー!DVR[SP-DV100S] 取扱説明書

PX-504A

PX-434A/PX-404A

GT-X830

1 目次 1 はじめに 留意事項 MANAGER ソフトのバージョンアップ 事前準備新バージョンの物件入手 Manager の停止 辞書 /SG ファイルのバックアップ 旧バージョンの Man

GT-F740/GT-S640

readme

EPSON EP-803A/EP-803AW ユーザーズガイド

EPSON EP-703A ユーザーズガイド

EP-704A

TM-T88VI Utility ユーザーズマニュアル

GT-X980

readme

ContentDistributor

変更履歴 変更日 変更箇所 変更内容 2013/9/30 新規作成 2013/11/11 ozziocloud(ios) をアンインストー 新規追加 ルする 2014/1/ クラウドストレージ上の連 新規追加 絡先ファイル (.vcf) をダウンロードする 2014/2/6 ご利用上

PX-673F

sato-FBSDW key

StationTV Link取扱説明書

ContentDistributor for FlashAir

untitled

ソフトウェア カフェテリアサービス向けソフトウェア説明書



はじめてのJMP

心霊カメラ ~憑いてる手帳~

外部SQLソース入門

NewFeatures.book


PX-B750F

intra-mart BaseModule/Framework Releasenotes

IM 21B04C50-01


DS-40

EP-904シリーズ/EP-804シリーズ/EP-774A

/ Bluetooth / Apps iphone Apple CarPlay

安全上のご注意必ずお守りください 人への危害 財産への損害を防ぐため お守りいただくことを説明しています 誤った使いかたで生じる内容を 次のように説明しています お守りいただく内容の種類を 次の図記号で説明しています 警告 死亡または重傷を負うおそれがある 内容 しなければならないこと 警告 外出先

Transcription:

ios 住宅 API ライブラリ リファレンス Version 1.0

更新履歴 版改版年月日 発行改版内容 1.0 2015/2/5 新規作成

目次 1. はじめに... 1 2. ライブラリ基本情報... 1 2.1. 動作環境... 1 2.2. ライセンス... 2 3. ライブラリの利用方法... 3 3.1. ライブラリの利用方法... 3 4. リファレンス... 5 4.1. コマンドを生成する... 5 4.2. コマンドを送信する... 6 4.3. 応答メッセージを取得する... 7 4.4. サンプルコード... 11 5. おわりに... 12 5.1. 著作権 商標について... 12

1. はじめに 本ライブラリは 住宅 API を利用したコマンドの生成と応答メッセージの解析を容易に実現する事を目的とした ios 向けのライブラリです パラメータを指定する事で 住宅 API のコマンドの生成を容易にします IP アドレス ポート番号 コマンドのパラメータを指定する事で コマンドの送信と受信した応答メッセージの解析をライブラリ側で行います 本ライブラリの各処理は同期処理です 2. ライブラリ基本情報 2.1. 動作環境 本ライブラリは 以下の環境で利用可能です 開発環境 Xcode 6.1.1 OS ios 8.1 言語 objective-c ARC 有効 対象コマンド 住宅 API version 1.3 応答メッセージの形式 XML - 1 -

2.2. ライセンス 本ライブラリは BSD ライセンスのもとで公開されています Copyright (c) 2015, Daiwa House Industry Co., Ltd. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the <organization> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ( 日本語訳 ) ソースコード形式かバイナリ形式か 変更するかしないかを問わず 以下の条件を満たす場合に限り 再頒布および使用が許可されます * ソースコードを再頒布する場合 上記の著作権表示 本条件一覧 および下記免責条項を含めること * バイナリ形式で再頒布する場合 頒布物に付属のドキュメント等の資料に 上記の著作権表示 本条件一覧 および下記免責条項を含めること * 書面による特別の許可なしに 本ソフトウェアから派生した製品の宣伝または販売促進に < 組織 > の名前またはコントリビューターの名前を使用してはならない 本ソフトウェアは 著作権者およびコントリビューターによって 現状のまま 提供されており 明示黙示を問わず 商業的な使用可能性 および特定の目的に対する適合性に関する暗黙の保証も含め またそれに限定されない いかなる保証もありません 著作権者もコントリビューターも 事由のいかんを問わず 損害発生の原因いかんを問わず かつ責任の根拠が契約であるか厳格責任であるか ( 過失その他の ) 不法行為であるかを問わず 仮にそのような損害が発生する可能性を知らされていたとしても 本ソフトウェアの使用によって発生した ( 代替品または代用サービスの調達 使用の喪失 データの喪失 利益の喪失 業務の中断も含め またそれに限定されない ) 直接損害 間接損害 偶発的な損害 特別損害 懲罰的損害 または結果損害について 一切責任を負わないものとします - 2 -

3. ライブラリの利用方法 Xcode 6.1.1 を使用してアプリケーションにライブラリを追加する方法は 以下のとおりです 3.1. ライブラリの利用方法 3.1.1. プロジェクトにライブラリを追加する 1. アプリケーションのプロジェクトフォルダを右クリックし [Add Files to アプリケーションのプロジェクト名 ] を選択します 2. 以下のファイルをプロジェクトに追加します - 3 -

ファイル追加後のプロジェクトの状態 3. ライブラリを利用するクラスで [HousingApi.h] をインポートします 4 リファレンスに記載の各処理が利用できるようになります - 4 -

4. リファレンス 4.1. コマンドを生成する 4.1.1. コマンドの生成方法 コマンドは HousingApiConstant に定義された固定値を組み合わせて作成します Sample // 主幹瞬時電力 (W) のコマンドの生成 // /smart/rest/request?deviceid=lite.boardmeter_1_1&type=get&key=instantpower NSString* command = [NSString stringwithformat:klocalcommandrestget,klocaldeviceidmainboard,klocalkeyboardinstantpower]; // エアコンの動作状態 温度設定 湿度設定 動作モード 風量設定 スイング設定を取得 // /smart/rest/request?deviceid=lite.aircon_1_1&type=get& key=operationstatus,temeprature,humidity,currentmode,airflow,swing // 取得対象の全ての Key 値を配列に格納 NSArray* airconkeys = @[klocalkeyairconoperationstatus, klocalkeyaircontemperature, klocalkeyairconhumidity, klocalkeyairconcurrentmode, klocalkeyairconairflow, klocalkeyairconswing]; // カンマ区切りの文字列を生成 NSString* key = [airconkeys componentsjoinedbystring:klocalcommanddelimiter]; // 定義値からコマンドを生成 NSString* command = [NSString stringwithformat:klocalcommandrestget,klocaldeviceidaircon,key]; - 5 -

4.2. コマンドを送信する 4.2.1. sendcommand: port: command: timeoutinterval: error 指定の IP アドレス ポート番号に対してコマンドを送信し 応答結果をライブラリ内部で保持します 送信が成功したかどうかを呼び元に返却します Declaration - (BOOL) sendcommand: (NSString*) ipaddress port: (NSString*) portno command: (NSString*) command timeoutinterval: (NSTimeInterval) timeoutinterval error: (NSError**) error; Parameters ipaddress コマンドの送信先 IP アドレス portno コマンドの送信先ポート番号 command 送信するコマンド timeoutinterval コマンドを送信する時にタイムアウトするまでの時間 秒単位で設定可能です error メソッドを実行した結果 エラーが発生した場合にエラーオブジェクトが格納されます メソッドの呼び元から参照可能です Return value コマンドの送信結果送信に成功し 応答メッセージを取得する事が出来た場合は true を返却します Sample // 画面の入力項目から IP アドレスとポート番号を取得 NSString* ipaddress = txtipaddress.text; NSString* portno = txtportno.text; // 定義値からコマンドを生成 NSString* command = [NSString stringwithformat:klocalcommandrestget, klocaldeviceidmainboard, klocalkeyboardinstantpower]; HousingApi* housingapi = [[HousingApi alloc] init]; //IP アドレス ポート番号 コマンドを渡すと ライブラリ内で HTTP リクエストを生成して送信し // 応答メッセージを解析する NSError* error = nil; BOOL connectresulst = [housingapi sendcommand:ipaddress port:portno command:command timeoutinterval:30 error:&error]; - 6 -

4.3. 応答メッセージを取得する 4.3.1. getresponseresult: コマンド送信後 受信した応答メッセージから応答結果を表すタグの情報を取得します 引数には 応答結果のタグまでの全てのタグを記述します Declaration - (BOOL) getresponseresult: (NSString*) roottag,...ns_requires_nil_termination; Parameters roottag XML 形式の応答メッセージのルートのタグ 応答結果が格納されているタグまでの ルートタグ以降のタグを全て指定します Return value 引数に指定されたタグの値を BOOL 値に変換して返却します タグの指定に誤りがあると 正しい応答結果を取得する事は出来ません 応答メッセージが受信できていない場合は false を返却します Sample //<result> タグの情報を取得します 引数には <result> タグまでの XML タグを // 全て指定します resultset result を設定しています BOOL result = [housingapi getresponseresult:klocalelementresultset, klocalelementresult, nil]; - 7 -

4.3.2. getresponseerror: コマンド送信後 受信した応答メッセージからエラーメッセージを表すタグの情報を取得します 引数には エラーメッセージのタグまでの全てのタグを記述します 4.2.1 sendcommand: port: command: timeoutinterval: error の戻り値が false の場合の エラー判定には本メソッドではなく sendcommand: port: command: timeoutinterval: error のパラメータ error を使用する事を推奨します Declaration - (BOOL) getresponseerror: (NSString*) roottag,...ns_requires_nil_termination; Parameters roottag XML 形式の応答メッセージのルートのタグ エラーメッセージが格納されているタグまでの ルートタグ以降のタグを全て指定します Return value 引数に指定されたタグの値を NSString に変換して返却します タグの指定に誤りがあると 正しい応答結果を取得する事は出来ません 応答メッセージが取得できていない場合は -9999 を返却します Sample //<message> タグの情報を取得します 引数には <message> タグまでの XML タグを // 全て指定します resultset message を設定しています NSString* errormsg = [housingapi getresponseerror:klocalelementresultset, klocalelementmessage, nil]; - 8 -

4.3.3. getresponsedata: コマンド送信後 受信した応答メッセージから指定のタグの情報を取得します 引数には 取得したいデータのタグまでの全てのタグを記述します Declaration - (id) getresponsedata: (NSString*) roottag,...ns_requires_nil_termination; Parameters roottag XML 形式の応答メッセージのルートのタグ エラーメッセージが格納されているタグまでの ルートタグ以降のタグを全て記述する Return value 引数に指定されたタグの情報を返却します 指定のタグが持つデータの状態により 戻り値の型が変化します 指定のタグの中に複数のタグの情報を含む場合 戻り値の型は NSDictionary です 指定のタグの中に複数の値を含む場合 戻り値の型は NSArray です 指定のタグが一つの値しか持たない場合 戻り値の型は NSString です タグごとのデータの状態は 各 API の仕様書よりご確認ください タグの指定に誤りがあると 正しい応答結果を取得する事は出来ません 応答メッセージが取得できていない場合や 指定のタグの情報が存在しないは nil を返却します - 9 -

Sample 指定のタグの中に複数のタグの情報を含む場合 //<data> タグ内の情報を取得します 引数には <data> タグまでの XML タグを // 全て指定します resultset dataset data を設定しています id data = [housingapi getresponsedata:klocalelementresultset, klocalelementdataset, klocalelementdata, nil]; if ([data iskindofclass:[nsdictionary class]]) { NSDictionary* datadic = (NSDictionary*) data; NSString* result = datadic[klocalelementresult]; //data タグ内の <result> の値 NSString* key = datadic[klocalelementkey]; //data タグ内の <key> の値 NSString* value = datadic[klocalelementvalue]; //data タグ内の <value> の値 指定のタグの中に複数の値を含む場合 //<data> タグ内の情報を取得します 引数には <data> タグまでの XML タグを全て指定します resultset dataset data を設定しています id data = [housingapi getresponsedata:klocalelementresultset, klocalelementdataset, klocalelementdata, nil]; NSString* response = @""; if ([datas iskindofclass:[nsarray class]]) { NSArray* datalist = (NSArray*) datas; NSInteger datacount = [datalist count]; for (int i = 0; i < datacount; i++) { id data = datalist[i]; if ([data iskindofclass:[nsdictionary class]]) { NSString* result = data[klocalelementresult]; //data タグ内の <result> の値 NSString* key = data[klocalelementkey]; //data タグ内の <key> の値 NSString* value = data[klocalelementvalue]; //data タグ内の <value> の値 - 10 -

4.4. サンプルコード 4.4.1. コマンドの生成から応答メッセージの受信までのサンプル // 画面の入力項目から IP アドレスとポート番号を取得 NSString* ipaddress = txtipaddress.text; NSString* portno = txtportno.text; // 主幹瞬時電力 (W) のコマンドの生成 // /smart/rest/request?deviceid=lite.boardmeter_1_1&type=get&key=instantpower NSString* command = [NSString stringwithformat:klocalcommandrestget, klocaldeviceidmainboard, klocalkeyboardinstantpower]; HousingApi* housingapi = [[HousingApi alloc] init]; //IP アドレス ポート番号 コマンドを渡すと ライブラリ内で HTTP リクエストを生成して送信し // 応答メッセージを解析する NSError* error = nil; BOOL connectresulst = [housingapi sendcommand:ipaddress port:portno command:command timeoutinterval:30 error:&error]; // 送信結果をチェック if (connectresulst) { //<result> タグの情報を取得します 引数には <result> タグまでの XML タグを // 全て指定します resultset result を設定しています BOOL result = [housingapi getresponseresult:klocalelementresultset, klocalelementresult, nil]; if (result) { //<data> タグ内の情報を取得します 引数には <data> タグまでの XML タグを // 全て指定します resultset dataset data を設定しています id data = [housingapi getresponsedata:klocalelementresultset, klocalelementdataset, klocalelementdata, nil]; if ([data iskindofclass:[nsdictionary class]]) { NSDictionary* datadic = (NSDictionary*) data; NSString* result = datadic[klocalelementresult]; //data タグ内の <result> の値 NSString* key = datadic[klocalelementkey]; //data タグ内の <key> の値 NSString* value = datadic[klocalelementvalue]; //data タグ内の <value> の値 // 応答メッセージが取得できた場合の処理を記述 else { //<message> タグの情報を取得します 引数には <message> タグまでの XML タグを // 全て指定します resultset message を設定しています NSString* errormsg = [housingapi getresponseerror:klocalelementresultset, klocalelementmessage, nil]; // エラー時の処理を記述 else { // 送信処理が失敗した時の処理 //sendcomand が返却したエラー情報から 判断して処理を行う if (error.userinfo!= nil) { NSString* errormsg = error.userinfo[nslocalizeddescriptionkey]]; // エラー時の処理を記述 - 11 -

5. おわりに 5.1. 著作権 商標 商標について 本ライブラリの著作権は が所有しています 本ライブラリは 著作権法および国際条約の規約によって保護されています ios は 米国および他の国々で登録された Apple Inc. の商標です その他 製品名などの固有名詞は 各社の商標または登録商標です - 12 -