特集
Raspberry PiにAllJoynフレームワーク「Standard Core」を移植する(5/6 ページ)
AllJoynは「家電を中心にさまざまな機器を接続し、情報交換を可能としたフレームワーク」です。さまざまな機器を対象としており、それにはRaspberry Piも含まれます。ルーター機能などを実装可能な「Standard Core」をRaspberry Piに移植します。
これでメインの流れは終わりですが、大事なサブルーティン(クラスと言うほうが正しいかもしれませんを見てみましょう。
class BasicSampleObject : public BusObject { public: BasicSampleObject(BusAttachment& bus, const char* path) : BusObject(path) { /** Add the test interface to this object */ const InterfaceDescription* exampleIntf = bus.GetInterface(INTERFACE_NAME); assert(exampleIntf); AddInterface(*exampleIntf); /オブジェクトにインタフェースを割り当てる/ /** Register the method handlers with the object */ /メッセージ到着時に起動するハンドラーとして、Catという名称のサブルーティンを登録する/ const MethodEntry methodEntries[] = { { exampleIntf->GetMember("cat"), stat-ic_cast<MessageReceiver::MethodHandler>(&BasicSampleObject::Cat) } }; QStatus status = AddMethodHandlers(methodEntries, sizeof(methodEntries) / sizeof(methodEntries[0])); if (ER_OK != status) { printf("Failed to register method handlers for BasicSampleObject.\n"); } }
ハンドラーのcatは以下のようになっています。引数に、到着したメッセージが入り次第それらを連結して、また、送付元へ戻すだけです。
void Cat(const InterfaceDescription::Member* member, Message& msg) { QCC_UNUSED(member); /* Concatenate the two input strings and reply with the result. */ qcc::String inStr1 = msg->GetArg(0)->v_string.str; qcc::String inStr2 = msg->GetArg(1)->v_string.str; qcc::String outStr = inStr1 + inStr2; MsgArg outArg("s", outStr.c_str()); QStatus status = MethodReply(msg, &outArg, 1); if (ER_OK != status) { printf("Ping: Error sending reply.\n"); } }
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Raspberry PiにAllJoynを移植して、IoTを自作する
「いろいろなデバイスがシームレスにつながり、簡単に操作できる」――IoTが目指すその姿を、Raspberry Piと機器相互接続フレームワーク「Alljoyn」で自作してみましょう。 - 「Alljoyn」のいまをクアルコムブースで見る
ET2015のクアルコムブースにて大きく展示されていたのは、機器相互接続フレームワーク「Alljoyn」のデモだ。機器連携シナリオ“ストーリー”の様子も紹介されている。 - 激化する“IoTの陣取り合戦”欠けているのは「共通言語」
IoTの未来像として、「いろいろなデバイスがシームレスにつながり、簡単に操作できる」様子が挙げられるが、AllSeen Allianceのディレクターはそのために必要なのは「共通言語だ」という。 - Allseen Allianceの中核技術「Alljoyn」とは何か
Linux Foundationが設立した非営利団体「Allseen Alliance」のキモとなるのが「Alljoyn」だ。IoTについて“現状の使いにくさ”の打破を目指す、この団体の中核技術を解説する。 - IoT団体によるUPnP(Universal Plug and Play)吸収を読み解く
インテルやサムスンらが主導するIoT標準化団体「OIC」が、UPnP(Universal Plug and Play)Forumを吸収した。UPnPの推進する“挿すだけで使える”をIoTに持ち込むことは理にかなっているように思えるが、AppleのHomeKitや、GoogleのProject Brilloに対する競争力はあるだろうか。