arm/JavaからARMマイコンパーフェクト学習基板にアクセス
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
2011/02/08 からのアクセス回数 &counter;
#contents
** はじめに [#w04c3010]
以前libusbを使ってオリジナルのUSB機器のアクセスする記事[[...
[[arm/libhidでARMマイコンパーフェクト学習基板にアクセス]]...
操作する方法をご紹介します。
** LibusbJavaを使う [#h53570b8]
[[avr/javaからLibusbを使う]]のでもご紹介したように、libus...
これを使ってARMマイコンパーフェクト学習基板への1バイトの...
*** Generic1ByteHIDの作成 [#l41cbc29]
Generic1ByteHIDの機能はきわめて単純です。
- Generic1ByteHIDのコンストラクタ
- 1バイトの出力メソッド putByte
- 1バイトの入力メソッド getByte
です。
Generic1ByteHIDのコンストラクタは、USBデバイスをオープン...
#pre{{
public Generic1ByteHID(short vid, short pid) throws USBE...
device = usbOpenDevice(vid, pid);
if (device == 0)
throw new USBException("Device not found");
}
}}
入出力きわめて単純です。
#pre{{
/**
* USB HIDに1バイト出力する
* @param out 出力値
* @return usb_control_msgの戻り値
*/
public int putByte(byte out) {
int ret;
outpacket[0] = out;
ret = LibusbJava.usb_control_msg(device,
USB_ENDPOINT_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFA...
HID_REPORT_SET,
0x00 + (HID_RT_OUTPUT << 8),
0x00,
outpacket, 1, 5000);
return (ret);
}
/**
* USB HIDから1バイト入力する
* @return usb_control_msgの戻り値
*/
public int getByte() {
int ret;
inpackate[0] = 0;
ret = LibusbJava.usb_control_msg(device,
USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
HID_REPORT_GET,
0x00 + (HID_RT_INPUT << 8),
0x00,
inpackate, 1, 5000);
if (ret > 0)
return (inpackate[0]);
else
return (ret);
}
}}
*** どうしてこんなに簡単にできたのか [#t123b3db]
これまで、USBのHIDの紹介記事ではとても煩雑な処理をして、H...
どうして、こんなに簡単にできたのでしょう。その解は
- 自分で作ったHIDなので、アクセスするレポートID、レポート...
- libhidを使ってオリジナルHIDのレポートID、レポートindex...
[[arm/libhidでARMマイコンパーフェクト学習基板にアクセス]]...
この結果を使ってHIDの必要な情報にアクセスすることができる...
ARMマイコンパーフェクト学習基板のUSBRomHidでは、
- レポートIDは、0
- レポートindexは、0
となっています。
Generic1ByteHIDでは、この結果を使ってARMマイコンパーフェ...
getByteを例にすると、
#pre{{
ret = LibusbJava.usb_control_msg(device,
USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
HID_REPORT_GET,
0x00 + (HID_RT_INPUT << 8),
0x00,
inpackate, 1, 5000);
}}
の
- 4行目:0x00 + (HID_RT_INPUT << 8)の0x00がレポートID
- 5行目:0x00がレポートindex
をセットする場所です。
*** ソース [#j79cf7a8]
Generic1ByteHIDのソースを以下に置きます。
- &ref(Generic1ByteHID.java);
実行には、libusbJavaが必要となります。詳しくは、[[avr/jav...
** コメント [#p2833ce8]
この記事は、
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
- 例題を[[arm/JavaからUSB HIDデバイスを制御する]]にアップ...
#comment_kcaptcha
終了行:
[[FrontPage]]
2011/02/08 からのアクセス回数 &counter;
#contents
** はじめに [#w04c3010]
以前libusbを使ってオリジナルのUSB機器のアクセスする記事[[...
[[arm/libhidでARMマイコンパーフェクト学習基板にアクセス]]...
操作する方法をご紹介します。
** LibusbJavaを使う [#h53570b8]
[[avr/javaからLibusbを使う]]のでもご紹介したように、libus...
これを使ってARMマイコンパーフェクト学習基板への1バイトの...
*** Generic1ByteHIDの作成 [#l41cbc29]
Generic1ByteHIDの機能はきわめて単純です。
- Generic1ByteHIDのコンストラクタ
- 1バイトの出力メソッド putByte
- 1バイトの入力メソッド getByte
です。
Generic1ByteHIDのコンストラクタは、USBデバイスをオープン...
#pre{{
public Generic1ByteHID(short vid, short pid) throws USBE...
device = usbOpenDevice(vid, pid);
if (device == 0)
throw new USBException("Device not found");
}
}}
入出力きわめて単純です。
#pre{{
/**
* USB HIDに1バイト出力する
* @param out 出力値
* @return usb_control_msgの戻り値
*/
public int putByte(byte out) {
int ret;
outpacket[0] = out;
ret = LibusbJava.usb_control_msg(device,
USB_ENDPOINT_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFA...
HID_REPORT_SET,
0x00 + (HID_RT_OUTPUT << 8),
0x00,
outpacket, 1, 5000);
return (ret);
}
/**
* USB HIDから1バイト入力する
* @return usb_control_msgの戻り値
*/
public int getByte() {
int ret;
inpackate[0] = 0;
ret = LibusbJava.usb_control_msg(device,
USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
HID_REPORT_GET,
0x00 + (HID_RT_INPUT << 8),
0x00,
inpackate, 1, 5000);
if (ret > 0)
return (inpackate[0]);
else
return (ret);
}
}}
*** どうしてこんなに簡単にできたのか [#t123b3db]
これまで、USBのHIDの紹介記事ではとても煩雑な処理をして、H...
どうして、こんなに簡単にできたのでしょう。その解は
- 自分で作ったHIDなので、アクセスするレポートID、レポート...
- libhidを使ってオリジナルHIDのレポートID、レポートindex...
[[arm/libhidでARMマイコンパーフェクト学習基板にアクセス]]...
この結果を使ってHIDの必要な情報にアクセスすることができる...
ARMマイコンパーフェクト学習基板のUSBRomHidでは、
- レポートIDは、0
- レポートindexは、0
となっています。
Generic1ByteHIDでは、この結果を使ってARMマイコンパーフェ...
getByteを例にすると、
#pre{{
ret = LibusbJava.usb_control_msg(device,
USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
HID_REPORT_GET,
0x00 + (HID_RT_INPUT << 8),
0x00,
inpackate, 1, 5000);
}}
の
- 4行目:0x00 + (HID_RT_INPUT << 8)の0x00がレポートID
- 5行目:0x00がレポートindex
をセットする場所です。
*** ソース [#j79cf7a8]
Generic1ByteHIDのソースを以下に置きます。
- &ref(Generic1ByteHID.java);
実行には、libusbJavaが必要となります。詳しくは、[[avr/jav...
** コメント [#p2833ce8]
この記事は、
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
- 例題を[[arm/JavaからUSB HIDデバイスを制御する]]にアップ...
#comment_kcaptcha
ページ名:
SmartDoc