そーたメイ&USB2BTサポートBBS 33656

USB2BT、BitClockについてのご質問・お問い合せをお寄せ下さい。

現在 本業多忙とBitClock発売準備により回答が遅れております、非常に申し訳ございません。


スマートフォンでの利用に関して

1:めい :

2016/08/23 (Tue) 10:09:42

そーたさま

はじめまして。めいと申します。
USB2BTを購入し、ニコ動でやられていたようなタッチパネルに拡大してゲームを利用する方法を試しました。
nexus7では快適に動き感動しています。

ここからが質問になるのですが
androidスマートフォンでホスト機能があるもの(マウス、キーボードは動く)につないでみたのですがタッチパネルが反応しません。
iphoneも同様でしたが、スマートフォンではHIDでもマウスやキーボード、ゲームパッドなど以外は動かない制限をかけられているのでしょうか?

解決する方法をご存知であれば教えていただければ幸いです。
2:そーた :

2016/09/28 (Wed) 08:26:58

めい様、
ご回答遅れて大変申し訳ございません!

>スマートフォンではHIDでもマウスやキーボード、ゲームパッドなど以外は動かない制限をかけられているのでしょうか?
>解決する方法をご存知であれば教えていただければ幸いです。
iOSは非対応、androidはkernelのhid-multitouch.cというファイルを変更してbuild&書き込む必要があるため、
残念ながら無理と考えたほうが良さそうです。

※以下長文注意

●Windowsでのタッチスクリーンモニタ対応について
HIDの規格ではDigitizer (いわゆるペンタブ) は定義されているのですがタッチスクリーンモニタ (いわゆる液タブ) は
定義されておらず、以前はタッチスクリーンモニタごとにVID/PID指定の専用デバイスドライバを用意して
対応していたようです。

これじゃあかん、標準ドライバでタッチスクリーンモニタ対応するため、Microsoftが2009年(Win8発売のころ)に
いくつかの条件を満たすHID-Digitizerの場合タッチスクリーンモニタとして判別しましょう、という提案を行いました。
(以下ガイドラインHUTRR34)

http://www.usb.org/developers/hidpage/
の Review Request 34: Multi-touch digitizers
http://www.usb.org/developers/hidpage/HUTRR34.zip

現在の市販タッチスクリーンモニタはこのガイドラインHUTRR34に従っているようです。

●Linuxとandroidの場合(USB接続)
最新のkernelでは確認していませんが、以前確認した範囲ではまだガイドラインHUTRR34に対応していないようです。
そのため対応するタッチスクリーンごとにkernelのドライバhid-multitouch.cにVID/PIDを登録する必要があります。

https://www.google.co.jp/#q=hid-multitouch.c
http://lxr.free-electrons.com/source/drivers/hid/hid-multitouch.c
1217行目 static const struct hid_device_id mt_devices[] の部分

この中でBluetoothでは唯一 USB_VENDOR_ID_FRUCTEL(25B6)/USB_DEVICE_ID_GAMETEL_MT_MODE(0002) が登録されています。
1367 /* Gametel game controller */
1368 { .driver_data = MT_CLS_NSMU,
1369 MT_BT_DEVICE(USB_VENDOR_ID_FRUCTEL,
1370 USB_DEVICE_ID_GAMETEL_MT_MODE) },

このテーブルは更新されていないため、現在市販されているタッチスクリーンモニタをandroidやLinuxに
つないで動かすことは(たぶん)できません。そのためタッチスクリーンモニタはほとんどの場合windows専用となって
いるようです。android本体のタッチスクリーンモニタはandroid本体の開発メーカーが個別に対応しているようです。

スマフォのkernelを変更してbuild・書き込むのは非常に高度なhackingテクニックが必要で、私も挑戦したことはないです。

●androidの場合 (USB2BT接続、Xperia除く)
USB2BTでは接続されたタッチスクリーンモニタがガイドラインHUTRR34に適合するとき、Bluetooth側のVID/PIDを
上記の USB_VENDOR_ID_FRUCTEL(25B6)/USB_DEVICE_ID_GAMETEL_MT_MODE(0002) に上書きすることで、USB接続できない
タッチスクリーンモニタをandroidに認識させています。

nexus5などもUSB2BT経由でタッチスクリーンモニタが動作するのですが、GaraxyやAquosで動作するかは未確認です。

●Xperiaの場合
Xperiaではつい最近までUSB/Bluetooth接続デバイスについてiphoneなみの制約をかけており、外部タッチスクリーン
モニタ接続を接続することが出来ず、keyboardやゲームパッドなど単純なデバイスしか接続できませんでした。

最近の機種ではこの外部デバイスの制約が若干緩和されたようですが、その代わりにXperiaのMHL端子が廃止されている
機種が多く、やはりタッチスクリーンモニタをつなぐことはできないようです。(泣)

●iOSの場合
source codeや情報公開されていないため正確にはわからないのですが、自社/他社ともに外部タッチスクリーンモニタ
には対応してないようです。
3:めい :

2016/09/29 (Thu) 11:11:05

そーたさま

詳細なご回答ありがとうございました。
別の方法を検討してみます。

  • 名前: E-mail(省略可):
  • 画像:

Copyright © 1999- FC2, inc All Rights Reserved.