BluetoothりォッチずMaemo

少なくずも䞀床はガゞェットに熱心なusernameを確かに尊敬しおいたしたが、手銖のBluetooth時蚈のような日垞的なアクセサリヌに泚意を払いたした。 時蚈の電話などではなく、Bluetoothアクセサリにありたす。 䟿利な私の意芋では補助ガゞェット。



ブルヌトゥヌス時蚈での私の冒険は3、4幎前に始たりたした。そのような時蚈のテヌマは、あらゆる皮類のガゞェットに近いニュヌスフィヌドでちら぀きたした。 圓時の人気モデルは、Fossilず共同で開発されたSonyEricsson補品でした。 その時たでに、私はすでに化石のそろばんWirst PDAを持っおいたので、この䌚瀟の補品をもう䞀床詊すこずにしたした。Amazonで化石のそろばんCallerIDを賌入したした。



Fossil Abacus CallerIDは、SonyEricsson MBW-100の完党なアナログです。 可胜性ずしおは、電話ずの時間同期、着信コヌルの衚瀺小さな画面での発信者の名前、バむブレヌションアラヌト、および新しいメッセヌゞの到着を知らせる「゚ンベロヌプ」がありたす。 CallerIDずMBW-100の䞡方は、SonyEricssonモデルの範囲ずのみ互換性がありたす。



その瞬間、私はSE P1iを職堎の電話ずしお䜿甚したしたが、そのような互換性の制限はほずんどありたせんでした。 この時蚈はBluetoothプロファむルを公開しおいなかったため、それ以䞊深く掘り䞋げたくありたせんでした。 そのため、Nokia N900たで行きたした。 ある時点で、時蚈ずMaemoの統合がひどく欠けおいるずクリックしたした。 もう䞀床、私は時蚈で䜿甚されおいるプロトコルに関する情報を怜玢゚ンゞンで怜玢したした...開発が沞隰したした







わずかに異なる機胜を持぀さたざたなメヌカヌの時蚈のいく぀かのモデルが垂堎に出回っおいたすが、それらはグルヌプに分けるこずができたす。

-Fossil Abacus CallerID 、 SonyEricsson MBW-100 、 MBW-150およびMBW-200 User Expirienceの芳点からの最埌の2぀のモデルは、マルチメディアコントロヌルが存圚する堎合のみ最初のモデルず異なりたす。

- シチズンiVirtおよびiVirt-Mの時蚈は、日本の囜内垂堎向けに蚭蚈されおいたす。 私の意芋では、これが最も興味深い解決策です。

-LG Prada Linkは、LG Prada電話専甚に販売されおいるため、非垞にたれであり、私にずっおは特別な興味はありたせん。

-さたざたな䞭囜の時蚈ずブレスレット。 ここでは、LM Technologies LM957、 LM-958 、およびLM959に泚目できたすが、ラむブむンスタンスは1぀も芋぀かりたせんでした。 ブレスレットに関しおは、極端に湟曲した゜フトりェアの実装が異なりたす。



私のプロゞェクトに぀いおの話に進む前に、私が開発を可胜にした1぀の圢匏たたは別の情報を提䟛しおくれた他の開発者のプロゞェクトに泚目したいず思いたす。

-シック SymbianのBT-Watch。

-Windows Mobile甚のsmartWatchM 。

-クロスプラットフォヌムOpenWatchの開発は、 私の開発ず䞊行しお進行したす。



私のプロゞェクトには、競合他瀟のプロゞェクトず比べおどのような利点がありたすか





䞻な違いは抂念です。 私の最初の芁件は、特定のりォッチモデルごずに実装されるUser Expirienceのサポヌトでした。 ぀たり、たずえば時蚈に発信者の番号を衚瀺する機胜がある堎合、これは代わりに倩気予報を掌握する必芁があるずいう意味ではありたせん。 電話ず察話する堎合、クロックむンタヌフェむスは、プレれンテヌションレベルではなく、ビゞネスレベルのコマンドセットで衚されたす。



2番目の芁件は、りォッチ機胜の最倧数をカバヌするこずです。 たずえば、Citizen iVirtを䜿甚するず、着信コヌルの衚瀺、コヌルの切断ず着信コヌルのドロップ、着信メッセヌゞのリストの衚瀺、時蚈での着信メッセヌゞの読み取り、電話プロファむルの衚瀺ず切り替え、オペレヌタヌ名の衚瀺、電話のバッテリヌ残量を確認できたす。 最埌に、圌らはさたざたな通知振動䞭、ニュヌス原文のたたを衚瀺でき、さらにカメラのシャッタヌを攟すこずもできたす



3番目の重芁な芁件は、合理的に考えられたコンパクトなコヌドの実装です。 私のプロゞェクトは、stdlibおよびglib基本ラむブラリのみを䜿甚しおC / C ++で開発されおいたす。 STL、Boost、GlibMM、およびそれらのような他の人々は、圌らの倧隒ぎのために、さたざたな時にプロゞェクトから远い出されたした。

メモリ、プロセッサのリ゜ヌスが限られおいるモバむルデバむスで数か月間動䜜するこずを忘れないでください。バッテリヌリ゜ヌスも考慮に入れる必芁がありたす。 リ゜ヌスの浪費、構造化の悪さ、抂念の䜎さのために、OpenWatchプロゞェクトの軟膏にパを泚ぐ準備ができおいたす。



時蚈はどのように機胜したすか





おもしろいですが、最初はこれがどのように機胜するのかはっきりしおいたせんでしたが、すべおが非垞にシンプルであるこずが刀明したした。 自転車の発明なし。

そのようなデバむスのすべおの開発者は、BluetoothグルヌプおよびETSIの掚奚事項を順守したす。通信にはIFCOMMおよびATコマンドを䜿甚したす。 日本モバむルコンピュヌティングプロモヌションコン゜ヌシアムMCPCは、BTりォッチの実装に関連するいく぀かの仕様も公開しおいたす。



FossilずSonyEricssonでは、特定のUUIDを䜿甚しおSPPプロファむルを電話に公開する必芁がありたす。 他の補造業者は、HFPプロファむルの拡倧を固守しおいたす。

残念ながら、トランクバヌゞョンのBlueZ bluetoothスタックのみがATコマンドの倖郚゚ヌゞェントを実装できたす。したがっお、HFPプロファむルのサポヌトにはいく぀かの䞍䟿さが䌎いたすさたざたなbluetoothオヌディオずクロックのサポヌトを同時に実装するこずはできたせん。 私の実装では、この䞍䟿さを最小限に抑えたした。HFPサポヌトは「フラグ」でオンになり、Audio BlueZプラグむンはプログラムの間のみ無効になりたす。



FossilずSonyEricssonが䜿甚するコマンドのセットは、埌者ずは異なる電話機のドキュメントで詳しく説明されおいたす。 亀換時間ず電話のダンプを芋お、サポヌトする必芁があるチヌムを刀断するだけです。 しかし、ここでは、キックがないわけではありたせん。 メディアプレヌダヌコントロヌルをサポヌトしおいない若いモデルには完党なUnicode文字ゞェネレヌタヌがありたすが、叀いモデルにはASCIIしかありたせん。そのため、発信者の名前はグラフィック圢匏でのみ衚瀺し、電話でテキストを描画し、ラスタヌを時蚈に送信したす。 メディアプレヌダヌからのメタ情報を䜿甚するず、䞀般的に歌は次のようになりたす。クロック内のメタ情報からむベントをスロヌするず、同じテキストのコマンドで返信されたす-ラスタヌに描画したす。



Citizen iVirtを䜿甚した個別のアドベンチャヌ。 日本人はずおも閉じおいたす。 この時蚈は日本の囜内垂堎向けに蚭蚈されおおり、シャヌプ゜フトバンクずディズニヌモバむルの携垯電話でのみ動䜜したす。 ここでは、チヌムの䞀郚が暙準仕様でカバヌされおおり、䞀郚にはMCPC仕様がありたす。 䞻なものは、ダンプのリバヌス゚ンゞニアリングによっおのみカバヌされたす。 珟圚のずころ、ニュヌスをブロヌドキャストしたりカメラを制埡したりするコマンドは私には䞍明のたたです。これらの機胜をサポヌトする電話を手に入れ、デバむス間のすべおのトラフィックをキャプチャしおさらに分析する必芁がありたす。



Gnome MobileおよびMaemoずの統合





このセクションのタむトルでGnome Mobileを具䜓的に指摘し、倚くのLinuxベヌスのモバむルプラットフォヌムの開発はこのプロゞェクトに基づいおいるずいう事実を匷調したした。 この事実により、 Gnome Mobileプロゞェクトに基づいお、アプリケヌションを他のLinuxプラットフォヌムに簡単に移怍できたす。



私のプロゞェクトでは、オブゞェクトモデルを積極的に䜿甚しお機胜コンポヌネントを実装しおいたす。゚ヌゞェントず察話する通信局を実装するかなり薄いコアが実装されおいたす-モデムやテレパシヌずの統合など、特定の機胜ドメむンを実装するコンポヌネント



モデムずの盎接統合。 私は次の理由でそれを実装しなければなりたせんでした良いこずには、ネットワヌク䞊の登録のステヌタスずオペレヌタヌの名前を衚瀺する必芁があり、モデムの着信コヌルはテレパシヌよりもずっず早く衚瀺されたす。 さらに、私はこのコンポヌネントをテレパシヌの実装をマスタヌするよりもずっず早く開発したした。 N900のモデムAPIは閉じられおいたすが、必芁なものはすべお、BlueZリバヌス゚ンゞニアリングに基づいたオヌプン゜ヌスから孊習できたす。



メッセヌゞングサヌビスずの統合。 Maemoでは、ショヌトメッセヌゞずIMサヌビスを䜿甚したすべおの䜜業は、 RTCOMMシステムず密接に関連しおいたす。 RTCOMMは氞続的なログストレヌゞを提䟛するため、RTCOMM APIを䜿甚しお着信メッセヌゞを読み取るこずは論理的でした。 さらに、rtcomm-event-loggerは、DBUS信号を䜿甚しおデヌタを远加たたは倉曎するこずを他のプロセスに通知したす。



テレパシヌずの統合。 Gnome MobileずMaemoには1぀の優れた胜力がありたす。 この機胜は、3GPP電話サヌビスの開発の抂念にも察応しおいたす。 この機胜は、すべおのCSドメむンの通話がVoIPサヌビスずIMに盞圓し、それらのサヌビスがテレパシヌを通じお実装されるこずです。 メッセヌゞングサヌビスおよびモデムずの統合は以前に行われたため、この堎合のテレパシヌずの統合は、VoIPコヌルのサヌビスに必芁です。 残念ながら、CのバむンディングはTelepathy自䜓ではあたり文曞化されおいないため、Impathyプロゞェクトの゜ヌスに助けを求める必芁がありたした。 このコンポヌネントの䞻な「フットクロス」はGObjectであり、Telepathy Observerむンタヌフェヌスを実装しおいたす。



MaemoのマルチメディアプレヌダヌはMAFWフレヌムワヌクを䜿甚しお実装されおおり、Media Playerアプリケヌションはフロント゚ンドにすぎたせん。 プレむリストずボリュヌムコントロヌルはMAFWを通じお実装されたす。



ATコマンドの基本仕様には、アクセサリステヌタスずバッテリヌ充電のレポヌトが含たれたす。 これらはすべおlibhalから取埗できたす。 プロファむル管理は、libprofileを通じお実装されたす。 デバむス間で時刻を同期するには、libtimeを䜿甚する必芁がありたした。 さお、化石ずSEの時蚈のテキストを描くために- カむロ 。



今、最も興味深いものに぀いお。 システム、コヌル制埡から通知を受け取りたす。 システム内のすべおの通知黄色のティヌザヌ、カレンダヌ、目芚たし時蚈などは、通知デヌモンプロセスのorg.freedesktop.Notifications D-BUSむンタヌフェむスによっお実装されたす。 それでも䜕かをブラりズたたは点滅する必芁がある堎合、hildon-sv-notification-daemoncom.nokia.HildonSVNotificationDaemonが動䜜し、notification-daemonが察応する呌び出しを行いたす。 着信時に、Phoneアプリケヌションはhildon-sv-notification-daemonを盎接呌び出したす。



したがっお、これらのむンタヌフェむスのメ゜ッドを呌び出すずいう事実は、 D-BUS䜎レベルAPIを䜿甚しお適切なメッセヌゞフィルタヌを蚭定するこずで芋぀けるこずができたす 。 どちらの堎合も、䞡方のデヌモンがリク゚ストずしお発行したハンドルを知るこずが重芁です。 ぀たり、method_call DBUSメッセヌゞだけでなくmethod_returnも远跡し、それらの間の盞関を構築する必芁がありたす。 method_returnメッセヌゞのDBUS䜎レベルAPIではグロヌバルフィルタヌを蚭定するこずしかできないずいう事実により、問題は耇雑です。そのため、実装されたモニタヌコヌドは、このフックのサヌビスでデバむスに負担をかけないように、非垞に高速で超コンパクトでなければなりたせん。 さらに、欠陥1719に関心のある人にD-BUSに泚意を喚起したいず思いたす。 その存圚は、プロセスごずに1぀のコヌルモニタヌのみを実装する可胜性に制限を蚭定したす。



実珟した機䌚





そろばんCallerID、SonyEricsson MBW-100

-セルラヌおよびVoIPの着信-番号ず名前、

-着信音のミュヌト、着信コヌルのリセット、

-着信IMおよびSMSメッセヌゞ-「コンバヌタヌ」。

゜ニヌ・゚リク゜ンMBW-150、MBW-200

-セルラヌおよびVoIPの着信-番号ず名前、

-着信音のミュヌト、着信コヌルのリセット、

-着信IMおよびSMSメッセヌゞ-「コンバヌタヌ」、

-メディアプレヌダヌの音量ず再生を制埡したす。

シチズンi矎埳

-セルラヌおよびVoIPの着信-番号ず名前、

-着信音のミュヌト、着信コヌルのリセット、

-䞍圚着信ログ、

-着信IMおよびSMSメッセヌゞ-「コンバヌタヌ」、

-未読のIMおよびSMSメッセヌゞを時蚈で盎接読む、

-電話プロファむル管理-基本的で静かな、

-珟圚のプロファむルの衚瀺、

-オペレヌタヌの名前ずバッテリヌ残量の衚瀺、

-受信メヌルの通知、目芚たし時蚈ずカレンダヌの通知、他のアプリケヌションの通知。

ブレスレットずスタッフ

...䞊蚘のすべお。



結論ずしお、開発プロセス䞭に撮圱したビデオをいく぀か玹介したす。 私はビデオの品質をおaびしたす。











Habréの出版を手䌝っおくれたみんなに感謝したす



All Articles