TNB Library
公開型 | 公開メンバ関数 | 全メンバ一覧
CUsbHid クラス

USB-HIDアクセスクラス [詳解]

#include <TnbUsbHid.h>

+ CUsbHid の継承関係図

公開型

enum  EState { OPENNING , CONNECTING , CLOSED }
 状態 [詳解]
 

公開メンバ関数

virtual bool CanReceive (void) const
 [確認] 受信可能確認. [詳解]
 
virtual bool CanSend (void) const
 [確認] 送信可能確認. [詳解]
 
virtual EState Check (void) const
 [確認] チェック. [詳解]
 
virtual void Close (void)
 [処理] クローズ. [詳解]
 
 CUsbHid (void)
 コンストラクタ [詳解]
 
CByteVector GetFeature (void) const
 [受信] GetFeature [詳解]
 
size_t GetFeatureReportByteLength (void) const
 [取得] Featureレポート長取得 [詳解]
 
CStr GetIndexedString (INDEX index) const
 [取得] INDEXED 文字列取得 [詳解]
 
CByteVector GetInputReport (void) const
 [受信] GetInputReport [詳解]
 
CStr GetManufacturerString (void) const
 [取得] Manufacturer 文字列取得 [詳解]
 
const CUsbHidPathNameGetName (void) const
 [取得] パスネーム情報取得 [詳解]
 
CStr GetProductString (void) const
 [取得] Product 文字列取得 [詳解]
 
virtual const TPropertyGetProperty (void) const
 [取得] 性能取得. [詳解]
 
DWORD GetReceiveBufferCount (void) const
 [取得] 入力バッファ数取得. [詳解]
 
virtual size_t GetReceivingDataSize (void) const
 [確認] 受信データ確認. [詳解]
 
CStr GetSerialNumberString (void) const
 [取得] SerialNumber 文字列取得 [詳解]
 
virtual bool IsConnect (void) const
 [確認] 接続確認. [詳解]
 
virtual bool IsOpened (void) const
 [確認] オープン確認. [詳解]
 
virtual bool Open (void)
 [処理] オープン. [詳解]
 
virtual void Purge (void)
 [処理] パージ. [詳解]
 
virtual size_t Receive (size_t size, LPVOID _P)
 [処理] 受信. [詳解]
 
virtual size_t Send (size_t size, LPCVOID P)
 [処理] 送信. [詳解]
 
bool SetFeature (size_t dataSize, LPCVOID lpcvData)
 [送信] SetFeature [詳解]
 
DWORD SetHidPathName (const CUsbHidPathName &hidName)
 [設定] USB-HIDデバイス指定. [詳解]
 
DWORD SetHidPathName (LPCTSTR lpszPathName)
 [設定] USB-HIDデバイス指定. [詳解]
 
bool SetOutputReport (size_t dataSize, LPCVOID lpcvData)
 [送信] SetOutputReport [詳解]
 
bool SetReceiveBufferCount (DWORD c)
 [設定] 入力バッファ数設定. [詳解]
 
virtual bool SetReceiveTimeout (DWORD to)
 [設定] 受信待ち時間設定. [詳解]
 
void SetReportId (BYTE id)
 [設定] レポートID設定. [詳解]
 
void SetSendTimeout (DWORD to)
 [設定] タイムアウト付き送信モード. [詳解]
 
virtual ~CUsbHid (void)
 デストラクタ [詳解]
 

詳解

USB-HIDアクセスクラス

HIDデバイスの入出力をサポートします。
覚え書き
オープン後に、デバイスが抜かれた場合、 IsConnect() で false が返ります( IsOpened() は true )。
参照
CUsbHidFinder によりHIDネームを取得して使用します。
必要ファイル
TnbUsbHid.h
日付
06/09/04 新規作成
06/09/09 IsAlive() / IsConnect() 追加。 CanAccess() 廃止。 ECE_Connect , ECE_Disconnect イベント、追加。
06/12/08 指定デバイスの存在チェックメソッド、追加。
07/02/09 親クラス変更。
07/04/20 ReadでロックしてClose出来ないのを改善。
07/04/25 検索機能は別クラスへ。DevicePathNameでOpenするように変更。
07/06/11 親クラスの Start() メソッドに対応。
07/09/13 親クラス変更。
08/02/12 Report IDの設定可能に。
09/03/19 読み込みに COverlapReader を使うように修正。
09/04/09 SetReceiveTimeout() を新規。
09/05/15 Send の戻り値が成功しても不正値だった。修正。
10/03/17 GetString系メソッド追加。 
10/05/28 SetReceiveTimeout() を改良。
10/11/26 IsConnect() の改良。
11/10/18 SetWithTimeoutSendMode() を新規。
11/11/29 SetSendTimeout() を新規。 SetWithTimeoutSendMode() を廃止。
12/03/16 ハンドルクローズ処理を改善。
13/01/09 読み込みが占有されているデバイスでも制限付きでオープンできるようにした。

TnbUsbHid.h57 行目に定義があります。

列挙型メンバ詳解

◆ EState

enum EState
inherited

状態

列挙値
OPENNING 

オープン状態

CONNECTING 

オープン&接続状態

CLOSED 

クローズ状態

TnbCommunication.h38 行目に定義があります。

構築子と解体子

◆ CUsbHid()

CUsbHid ( void  )
explicit

コンストラクタ

TnbUsbHid.h63 行目に定義があります。

◆ ~CUsbHid()

virtual ~CUsbHid ( void  )
virtual

デストラクタ

TnbUsbHid.h71 行目に定義があります。

関数詳解

◆ CanReceive()

virtual bool CanReceive ( void  ) const
virtual

[確認] 受信可能確認.

戻り値
true受信可能。
false不可能。

ICommunicationを再実装しています。

TnbUsbHid.h185 行目に定義があります。

◆ CanSend()

virtual bool CanSend ( void  ) const
virtual

[確認] 送信可能確認.

戻り値
true送信可能。
false不可能。

ICommunicationを再実装しています。

TnbUsbHid.h175 行目に定義があります。

◆ Check()

virtual EState Check ( void  ) const
virtual

[確認] チェック.

状態を確認します。

戻り値
CONNECTINGオープン&接続状態
CLOSEDクローズ状態

ICommunicationを再実装しています。

TnbUsbHid.h334 行目に定義があります。

◆ Close()

virtual void Close ( void  )
virtual

[処理] クローズ.

ICommunicationを実装しています。

TnbUsbHid.h129 行目に定義があります。

◆ GetFeature()

CByteVector GetFeature ( void  ) const

[受信] GetFeature

todo:
REPORT ID を指定できないとおかしい。
覚え書き
得られる情報長は、 GetFeatureReportByteLength() の戻り値と同じになります。
戻り値
Invalid状態失敗。
それ以外成功。内容は受信データ。

TnbUsbHid.h451 行目に定義があります。

◆ GetFeatureReportByteLength()

size_t GetFeatureReportByteLength ( void  ) const

[取得] Featureレポート長取得

覚え書き
Openしていない時の戻り値は不定です。
戻り値
Featureレポート長。

TnbUsbHid.h482 行目に定義があります。

◆ GetIndexedString()

CStr GetIndexedString ( INDEX  index) const

[取得] INDEXED 文字列取得

引数
[in]indexインデックス
戻り値
Empty状態失敗.
上記以外成功。文字列は SerialNumber.

TnbUsbHid.h532 行目に定義があります。

◆ GetInputReport()

CByteVector GetInputReport ( void  ) const

[受信] GetInputReport

覚え書き
得られる情報長は、 GetInputReportByteLength() の戻り値と同じになります。
戻り値
Invalid状態失敗。
それ以外成功。内容は受信データ。

TnbUsbHid.h412 行目に定義があります。

◆ GetManufacturerString()

CStr GetManufacturerString ( void  ) const

[取得] Manufacturer 文字列取得

戻り値
Empty状態失敗.
上記以外成功。文字列は Manufacturer.

TnbUsbHid.h492 行目に定義があります。

◆ GetName()

const CUsbHidPathName & GetName ( void  ) const

[取得] パスネーム情報取得

覚え書き
Openしていない時の戻り値は不定です。
戻り値
パスネーム情報。

TnbUsbHid.h472 行目に定義があります。

◆ GetProductString()

CStr GetProductString ( void  ) const

[取得] Product 文字列取得

戻り値
Empty状態失敗.
上記以外成功。文字列は Product.

TnbUsbHid.h505 行目に定義があります。

◆ GetProperty()

virtual const TProperty & GetProperty ( void  ) const
virtual

[取得] 性能取得.

覚え書き
正確な情報は Open後に取得できます。
戻り値
性能情報

ICommunicationを実装しています。

TnbUsbHid.h81 行目に定義があります。

◆ GetReceiveBufferCount()

DWORD GetReceiveBufferCount ( void  ) const

[取得] 入力バッファ数取得.

戻り値
0失敗.
0以外成功。値はバッファ数.

TnbUsbHid.h545 行目に定義があります。

◆ GetReceivingDataSize()

virtual size_t GetReceivingDataSize ( void  ) const
virtual

[確認] 受信データ確認.

戻り値
INVALID_SIZE不明。
上記以外受信可能データサイズ。

ICommunicationを再実装しています。

TnbUsbHid.h323 行目に定義があります。

◆ GetSerialNumberString()

CStr GetSerialNumberString ( void  ) const

[取得] SerialNumber 文字列取得

戻り値
Empty状態失敗.
上記以外成功。文字列は SerialNumber.

TnbUsbHid.h518 行目に定義があります。

◆ IsConnect()

virtual bool IsConnect ( void  ) const
virtual

[確認] 接続確認.

戻り値
true接続中。
false切断中。

ICommunicationを再実装しています。

TnbUsbHid.h160 行目に定義があります。

◆ IsOpened()

virtual bool IsOpened ( void  ) const
virtual

[確認] オープン確認.

戻り値
trueオープン中。
falseクローズ中。

ICommunicationを実装しています。

TnbUsbHid.h150 行目に定義があります。

◆ Open()

virtual bool Open ( void  )
virtual

[処理] オープン.

覚え書き
true が返っても、受信できない( CanReceive() が false を返す)場合もあります。
戻り値
true成功。
false失敗。

ICommunicationを実装しています。

TnbUsbHid.h92 行目に定義があります。

◆ Purge()

virtual void Purge ( void  )
virtual

[処理] パージ.

通信のゴミを浄化

ICommunicationを再実装しています。

TnbUsbHid.h343 行目に定義があります。

◆ Receive()

virtual size_t Receive ( size_t  size,
LPVOID  _P 
)
virtual

[処理] 受信.

引数
[in]sizeサイズ。
[out]_Pデータ。size 分のメモリは確保しておく必要があります。
戻り値
INVALID_SIZEエラー。
0受信データなし。
上記以外受信データサイズ。

ICommunicationを実装しています。

TnbUsbHid.h290 行目に定義があります。

◆ Send()

virtual size_t Send ( size_t  size,
LPCVOID  P 
)
virtual

[処理] 送信.

覚え書き
OutputReport長で割り切れないデータサイズを渡すと、足りないところは0でPaddingされます。
引数
sizeサイズ。
Pデータ。
戻り値
INVALID_SIZEエラー。
上記以外送信データサイズ。

ICommunicationを実装しています。

TnbUsbHid.h220 行目に定義があります。

◆ SetFeature()

bool SetFeature ( size_t  dataSize,
LPCVOID  lpcvData 
)

[送信] SetFeature

引数
dataSize送信するデータ長。 GetFeatureReportByteLength() の戻り値と同じ長さである必要があります。
lpcvData送信するデータ。
戻り値
true成功。
false失敗。

TnbUsbHid.h435 行目に定義があります。

◆ SetHidPathName() [1/2]

DWORD SetHidPathName ( const CUsbHidPathName hidName)

[設定] USB-HIDデバイス指定.

使用するのデバイスを指定します。

引数
hidNameHID情報(使用するのはパスネームのみ)。 CUsbHidFinder を使い、得ることが出来ます。
戻り値
ERROR_SUCCESS成功
ERROR_SUCCESS以外エラー。数値はシステムエラーコードです( SystemErrorToMessageText() で文字列化できます)。

TnbUsbHid.h355 行目に定義があります。

◆ SetHidPathName() [2/2]

DWORD SetHidPathName ( LPCTSTR  lpszPathName)

[設定] USB-HIDデバイス指定.

使用するのデバイスを指定します。

引数
lpszPathNameパスネーム。 CUsbHidFinder を使い、得ることが出来ます。
戻り値
ERROR_SUCCESS成功
ERROR_SUCCESS以外エラー。数値はシステムエラーコードです( SystemErrorToMessageText() で文字列化できます)。

TnbUsbHid.h371 行目に定義があります。

◆ SetOutputReport()

bool SetOutputReport ( size_t  dataSize,
LPCVOID  lpcvData 
)

[送信] SetOutputReport

引数
dataSize送信するデータ長。 GetOutputReportByteLength() の戻り値と同じ長さである必要があります。
lpcvData送信するデータ。
戻り値
true成功。
false失敗。

TnbUsbHid.h397 行目に定義があります。

◆ SetReceiveBufferCount()

bool SetReceiveBufferCount ( DWORD  c)

[設定] 入力バッファ数設定.

覚え書き
XP では最大 512 、 2000 では 最大 200 。最低は 2 。デフォルトは 32 です。
引数
c入力バッファ数.
戻り値
true成功.
false失敗.

TnbUsbHid.h559 行目に定義があります。

◆ SetReceiveTimeout()

virtual bool SetReceiveTimeout ( DWORD  to)
virtual

[設定] 受信待ち時間設定.

Receive() 実行時、受信できるデータが無い時に待つ時間を設定できます。

覚え書き
成功すると、プロパティが変更される可能性があります。
引数
toタイムアウト時間 (ms)。
戻り値
常に true。

ICommunicationを実装しています。

TnbUsbHid.h206 行目に定義があります。

◆ SetReportId()

void SetReportId ( BYTE  id)

[設定] レポートID設定.

引数
id送信レポートID、指定。

TnbUsbHid.h194 行目に定義があります。

◆ SetSendTimeout()

void SetSendTimeout ( DWORD  to)

[設定] タイムアウト付き送信モード.

覚え書き
オープンする前に使用してください。オープン後に使用するとクローズされます。
0 以外を指定すると、送信の際、オーバーラップモードでオープンしたデバイスを使用します。 デフォルトは 0 です(通常にオープンしたデバイスを使用する)。
引数
to送信タイムアウト時間(ms)。

TnbUsbHid.h384 行目に定義があります。