TNB Library
クラス | 公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CBluetoothCom クラス

Bluetooth(CE) クライアントシリアルアクセスクラス. [詳解]

#include <TnbCeBluetoothCom.h>

+ CBluetoothCom の継承関係図

クラス

struct  TChannel
 Bluetooth(CE) クライアントシリアルアクセスのチャネル情報. [詳解]
 

公開型

enum  { LOW = true , HI = false }
 信号線状態. [詳解]
 
typedef CVectorT< TChannelCChannels
 チャネル情報リスト型 [詳解]
 
enum  EParity {
  Parity_Non = NOPARITY , Parity_Odd = ODDPARITY , Parity_Even = EVENPARITY , Parity_Mark = MARKPARITY ,
  Parity_Space = SPACEPARITY
}
 パリティ設定値 [詳解]
 
enum  EState { OPENNING , CONNECTING , CLOSED }
 状態 [詳解]
 
enum  EStopBits { StopBits_1 = ONESTOPBIT , StopBits_1_5 = ONE5STOPBITS , StopBits_2 = TWOSTOPBITS }
 ストップビット設定値 [詳解]
 
typedef CVectorT< TDeviceTDeviceVector
 デバイス情報配列. [詳解]
 

公開メンバ関数

virtual bool CanReceive (void) const
 [確認] 受信可能確認. [詳解]
 
virtual bool CanSend (void) const
 [確認] 送信可能確認. [詳解]
 
 CBluetoothCom (void)
 コンストラクタ [詳解]
 
virtual EState Check (void) const
 [確認] チェック. [詳解]
 
virtual void Close (void)
 [処理] クローズ. [詳解]
 
HANDLE GetHandle (void) const
 [取得] ハンドル取得 [詳解]
 
void GetParameter (CPort &_comPort, DWORD &_dwBaudRate, BYTE &_bByteSize, EParity &_eParity, EStopBits &_eStopBits) const
 [取得] オープン設定取得. [詳解]
 
bool GetPeerAddress (BT_ADDR &_btAddr) const
 [取得] 相手アドレス取得. [詳解]
 
virtual const TPropertyGetProperty (void) const
 [取得] 性能取得 [詳解]
 
virtual size_t GetReceivingDataSize (void) const
 [確認] 受信データ確認. [詳解]
 
virtual bool IsConnect (void) const
 [確認] 接続確認. [詳解]
 
bool IsCtsSignalLow (void) const
 [取得] CTS 確認. [詳解]
 
bool IsCtsSignalOn (void) const
 [取得] CTS 確認. [詳解]
 
bool IsDsrSignalLow (void) const
 [取得] DSR 確認. [詳解]
 
bool IsDsrSignalOn (void) const
 [取得] DSR 確認. [詳解]
 
virtual bool IsOpened (void) const
 [確認] オープン確認. [詳解]
 
bool IsRingSignalLow (void) const
 [取得] RING 確認. [詳解]
 
bool IsRingSignalOn (void) const
 [取得] RING 確認. [詳解]
 
bool IsRlsdSignalLow (void) const
 [取得] RLSD 確認. [詳解]
 
bool IsRlsdSignalOn (void) const
 [取得] RLSD 確認. [詳解]
 
virtual bool Open (void)
 [処理] オープン. [詳解]
 
bool PaddingReceive (DWORD dwTime)
 [操作] パディング読み込み [詳解]
 
virtual void Purge (void)
 [設定] パージ. [詳解]
 
virtual size_t Receive (size_t size, LPVOID _P)
 [処理] 受信. [詳解]
 
virtual size_t Send (size_t size, LPCVOID P)
 [処理] 送信. [詳解]
 
void SetCheckCtsMode (bool r=true)
 [設定] CTSチェック設定. [詳解]
 
void SetClientParameter (const BT_ADDR &btAddr, int channel=-1)
 [設定] クライアント設定. [詳解]
 
bool SetDtrSignal (bool isLow)
 [設定] DTR 設定. [詳解]
 
DWORD SetParameter (CPort comPort, DWORD dwBaudRate, BYTE bByteSize, EParity eParity, EStopBits eStopBits)
 [設定] オープン設定. [詳解]
 
virtual bool SetReceiveTimeout (DWORD to)
 [設定] 受信待ち時間設定. [詳解]
 
bool SetRtsSignal (bool isLow)
 [設定] RTS 設定. [詳解]
 
void SetSendMode (bool canBulk)
 [設定] 送信設定. [詳解]
 
void SetServerParameter (int portFlag=RFCOMM_PORT_FLAGS_AUTHENTICATE|RFCOMM_PORT_FLAGS_ENCRYPT)
 [設定] サーバ設定. [詳解]
 
 ~CBluetoothCom (void)
 デストラクタ [詳解]
 

静的公開メンバ関数

static DWORD CanPortBeOpened (CPort comPort)
 [確認] 指定ポートは開けるか [詳解]
 
static TDeviceVector EnumExistPortDeviceNames (void)
 [取得] 存在するPort一覧 [詳解]
 
static CWordVector EnumExistPorts (void)
 [取得] 存在するPort一覧 [詳解]
 
static CWordVector EnumExistPortsByUsb (WORD vid, WORD pid)
 [取得] USBシリアルPort一覧. [詳解]
 
static CChannels FindChannels (const BT_ADDR &btAddr, WORD classId=SerialPortServiceClassID_UUID16)
 [取得] RFCOMMチャネル検索. [詳解]
 

限定公開メンバ関数

virtual HANDLE CreatePort (LPCTSTR lpszPortName) const
 [通知] ポート作成. [詳解]
 
virtual bool OnRs232cOpening (HANDLE hComPort, DCB &_tDCB, COMMTIMEOUTS &_tCommTimeOuts)
 [通知] オープン通知. [詳解]
 
virtual bool ReadPort (size_t &_redSize, LPVOID _P, size_t len, HANDLE h) const
 [通知] ポート読み込み. [詳解]
 
virtual bool WritePort (size_t &_writtenSize, size_t len, LPCVOID P, HANDLE h) const
 [通知] ポート書き込み. [詳解]
 

詳解

Bluetooth(CE) クライアントシリアルアクセスクラス.

覚え書き
Open設定以外は、 CRs232c と同じです。
相手が切断すると、ハンドルが無効になる可能性があります ( Check() で CLOSED が返る)。
必要ファイル
TnbCeBluetoothCom.h
日付
09/10/01 新規作成
09/12/08 FindRfcommChannel() 追加。

TnbCeBluetoothCom.h333 行目に定義があります。

型定義メンバ詳解

◆ CChannels

チャネル情報リスト型

TnbCeBluetoothCom.h447 行目に定義があります。

◆ TDeviceVector

typedef CVectorT<TDevice> TDeviceVector
inherited

デバイス情報配列.

TnbRs232c.h867 行目に定義があります。

列挙型メンバ詳解

◆ anonymous enum

anonymous enum
inherited

信号線状態.

列挙値
LOW 

LOW (ON)

HI 

HI (OFF)

TnbRs232c.h632 行目に定義があります。

◆ EParity

enum EParity
inherited

パリティ設定値

列挙値
Parity_Non 

なしパリティ

Parity_Odd 

奇数パリティ

Parity_Even 

偶数パリティ

Parity_Mark 

マークパリティ

Parity_Space 

空白パリティ

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

◆ EState

enum EState
inherited

状態

列挙値
OPENNING 

オープン状態

CONNECTING 

オープン&接続状態

CLOSED 

クローズ状態

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

◆ EStopBits

enum EStopBits
inherited

ストップビット設定値

列挙値
StopBits_1 

1bit

StopBits_1_5 

1.5bit

StopBits_2 

2bit

TnbRs232c.h211 行目に定義があります。

構築子と解体子

◆ CBluetoothCom()

CBluetoothCom ( void  )

コンストラクタ

TnbCeBluetoothCom.h339 行目に定義があります。

◆ ~CBluetoothCom()

~CBluetoothCom ( void  )

デストラクタ

TnbCeBluetoothCom.h344 行目に定義があります。

関数詳解

◆ CanPortBeOpened()

static DWORD CanPortBeOpened ( CPort  comPort)
staticinherited

[確認] 指定ポートは開けるか

引数
comPortCOMポートナンバー。 数値でも文字列でも指定可能です。
戻り値
0成功。
0以外エラー。数値はシステムエラーコードです( SystemErrorToMessageText() で文字列化できます)。

TnbRs232c.h802 行目に定義があります。

◆ CanReceive()

virtual bool CanReceive ( void  ) const
virtualinherited

[確認] 受信可能確認.

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

CCeUsbHid, CFileCommunicator, CVmRs232c, CUsbHidで再実装されています。

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

◆ CanSend()

virtual bool CanSend ( void  ) const
virtualinherited

[確認] 送信可能確認.

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

CCeUsbHid, CFileCommunicator, CVmRs232c, CUsbHidで再実装されています。

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

◆ Check()

virtual EState Check ( void  ) const
virtualinherited

[確認] チェック.

状態を確認します。定期的に呼び出す必要があります。

覚え書き
CONNECTING は、 CTS 信号により判断しますので、 SetCheckCtsMode() で true を指定している必要があります。
戻り値
OPENNINGオープン状態
CONNECTINGオープン&接続状態
CLOSEDクローズ状態

ICommunicationを再実装しています。

TnbRs232c.h432 行目に定義があります。

◆ Close()

virtual void Close ( void  )
virtual

[処理] クローズ.

クローズし、仮想COMポートを破棄します。

覚え書き
オープンしていない時は何もしません。

CRs232cを再実装しています。

TnbCeBluetoothCom.h433 行目に定義があります。

◆ CreatePort()

virtual HANDLE CreatePort ( LPCTSTR  lpszPortName) const
protectedvirtualinherited

[通知] ポート作成.

ポート作成時、コールされます。

引数
lpszPortNameポート名
戻り値
INVALID_HANDLE_VALUE失敗。
上記以外成功。値はハンドル。使用後は CloseHandle() してください。

CRs232cExで再実装されています。

TnbRs232c.h954 行目に定義があります。

◆ EnumExistPortDeviceNames()

static TDeviceVector EnumExistPortDeviceNames ( void  )
staticinherited

[取得] 存在するPort一覧

戻り値
存在するポートNo、名前一覧(Sizeが2でport内容が 1,4 なら "COM1" "COM4"が使用可能)

TnbRs232c.h873 行目に定義があります。

◆ EnumExistPorts()

static CWordVector EnumExistPorts ( void  )
staticinherited

[取得] 存在するPort一覧

戻り値
存在するポートNo一覧(Sizeが2で内容が 1,4 なら "COM1" "COM4"が使用可能)

TnbRs232c.h884 行目に定義があります。

◆ EnumExistPortsByUsb()

static CWordVector EnumExistPortsByUsb ( WORD  vid,
WORD  pid 
)
staticinherited

[取得] USBシリアルPort一覧.

引数
vidVendorID (USB)
pidProductID (USB)
戻り値
存在するポートNo一覧(Sizeが2で内容が 1,4 なら "COM1" "COM4"が使用可能)

TnbRs232c.h913 行目に定義があります。

◆ FindChannels()

static CChannels FindChannels ( const BT_ADDR btAddr,
WORD  classId = SerialPortServiceClassID_UUID16 
)
static

[取得] RFCOMMチャネル検索.

指定の bluetoothアドレスのシリアルポートのチャネルを取得します。

覚え書き
本メソッドは SetClientParameter() の channel を得るために使用できます。
引数
btAddrアドレス。
classIdクラスID。省略すると SerialPortServiceClassID_UUID16 です。
戻り値
チャネル情報リスト。

RFCOMM

TnbCeBluetoothCom.h457 行目に定義があります。

◆ GetHandle()

HANDLE GetHandle ( void  ) const
inherited

[取得] ハンドル取得

戻り値
NULLオープンしていない。
NULL以外ハンドル

TnbRs232c.h339 行目に定義があります。

◆ GetParameter()

void GetParameter ( CPort _comPort,
DWORD &  _dwBaudRate,
BYTE &  _bByteSize,
EParity _eParity,
EStopBits _eStopBits 
) const
inherited

[取得] オープン設定取得.

SetParameter() で設定した値を取得できます。

引数
[out]_comPortポートナンバー。
[out]_dwBaudRate転送速度[bps]
[out]_bByteSizeキャラクタビット[bits]
[out]_eParityパリティ(偶数/奇数)
[out]_eStopBitsストップビット[bits]

TnbRs232c.h251 行目に定義があります。

◆ GetPeerAddress()

bool GetPeerAddress ( BT_ADDR _btAddr) const

[取得] 相手アドレス取得.

クライアントとしてオープンした場合、サーバのアドレスが返ります。 サーバの場合、接続されたデバイスのアドレスを返します。

引数
[out]_btAddrアドレスが格納されます。
戻り値
true成功。クライアントの場合、常に成功します。
false失敗。サーバポートに他のデバイスが接続していない場合、失敗します。

TnbCeBluetoothCom.h385 行目に定義があります。

◆ GetProperty()

virtual const TProperty & GetProperty ( void  ) const
virtualinherited

[取得] 性能取得

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

ICommunicationを実装しています。

CRs232cExで再実装されています。

TnbRs232c.h329 行目に定義があります。

◆ GetReceivingDataSize()

virtual size_t GetReceivingDataSize ( void  ) const
virtualinherited

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

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

ICommunicationを再実装しています。

TnbRs232c.h410 行目に定義があります。

◆ IsConnect()

virtual bool IsConnect ( void  ) const
virtualinherited

[確認] 接続確認.

覚え書き
Check() の結果を返します。
戻り値
true接続中。
false切断中。

ICommunicationを再実装しています。

TnbRs232c.h400 行目に定義があります。

◆ IsCtsSignalLow()

bool IsCtsSignalLow ( void  ) const
inherited

[取得] CTS 確認.

CTS(clear-to-send)信号の状態を確認します。

覚え書き
JIS での名称は「CS(送信可)」。
クロスケーブルの場合
RTS(7) ----------> CTS(8)
CTS(8) <---------- RTS(7)
戻り値
trueLOW(ON)
falseHI(OFF)

TnbRs232c.h686 行目に定義があります。

◆ IsCtsSignalOn()

bool IsCtsSignalOn ( void  ) const
inherited

[取得] CTS 確認.

覚え書き
IsCtsSignalLow() を使用してください。
戻り値
trueON(LOW)
falseOFF(HI)

TnbRs232c.h758 行目に定義があります。

◆ IsDsrSignalLow()

bool IsDsrSignalLow ( void  ) const
inherited

[取得] DSR 確認.

DSR(data-set-ready)信号の状態を確認します。

覚え書き
JIS での名称は「DR(データセットレディ)」。
クロスケーブルの場合
DTR(4) ----------> DSR(6)
DSR(6) <---------- DTR(4)
戻り値
trueLOW(ON)
falseHI(OFF)

TnbRs232c.h708 行目に定義があります。

◆ IsDsrSignalOn()

bool IsDsrSignalOn ( void  ) const
inherited

[取得] DSR 確認.

覚え書き
IsDsrSignalLow() を使用してください。
戻り値
trueON(LOW)
falseOFF(HI)

TnbRs232c.h769 行目に定義があります。

◆ IsOpened()

virtual bool IsOpened ( void  ) const
virtualinherited

[確認] オープン確認.

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

ICommunicationを実装しています。

TnbRs232c.h389 行目に定義があります。

◆ IsRingSignalLow()

bool IsRingSignalLow ( void  ) const
inherited

[取得] RING 確認.

RING 信号の状態を確認します。

覚え書き
別表記として「RI」。
戻り値
trueLOW(ON)
falseHI(OFF)

TnbRs232c.h725 行目に定義があります。

◆ IsRingSignalOn()

bool IsRingSignalOn ( void  ) const
inherited

[取得] RING 確認.

覚え書き
IsRingSignalLow() を使用してください。
戻り値
trueON(LOW)
falseOFF(HI)

TnbRs232c.h780 行目に定義があります。

◆ IsRlsdSignalLow()

bool IsRlsdSignalLow ( void  ) const
inherited

[取得] RLSD 確認.

RLSD(receive-line-signal-detect)信号の状態を確認します。

覚え書き
別表記として「DCD」。
戻り値
trueLOW(ON)
falseHI(OFF)

TnbRs232c.h742 行目に定義があります。

◆ IsRlsdSignalOn()

bool IsRlsdSignalOn ( void  ) const
inherited

[取得] RLSD 確認.

覚え書き
IsRlsdSignalLow() を使用してください。
戻り値
trueON(LOW)
falseOFF(HI)

TnbRs232c.h791 行目に定義があります。

◆ OnRs232cOpening()

virtual bool OnRs232cOpening ( HANDLE  hComPort,
DCB &  _tDCB,
COMMTIMEOUTS &  _tCommTimeOuts 
)
protectedvirtualinherited

[通知] オープン通知.

オープン時、コールされます。

引数
[in]hComPortハンドル
[in,out]_tDCB現在の DCB が渡されます。変更することで設定を変更できます。
[in,out]_tCommTimeOuts現在の COMMTIMEOUTS が渡されます。変更することで設定を変更できます。
戻り値
trueオープン処理継続。
falseオープン処理中止(Openが失敗します)。

CRs232cHfで再実装されています。

TnbRs232c.h942 行目に定義があります。

◆ Open()

virtual bool Open ( void  )
virtual

[処理] オープン.

仮想COMポートを作成し、それをオープンします。

覚え書き
先に SetClientParameter()SetServerParameter() のいずれかと、 SetParameter() を使って、オープン設定をしておきます。
戻り値
true成功。
false失敗。

CRs232cを再実装しています。

TnbCeBluetoothCom.h403 行目に定義があります。

◆ PaddingReceive()

bool PaddingReceive ( DWORD  dwTime)
inherited

[操作] パディング読み込み

覚え書き
オープンしているポートで空読み込みをします。
引数
dwTime受信情報なしの時間指定。
戻り値
true成功
false失敗

TnbRs232c.h570 行目に定義があります。

◆ Purge()

virtual void Purge ( void  )
virtualinherited

[設定] パージ.

通信のゴミを浄化

ICommunicationを再実装しています。

TnbRs232c.h558 行目に定義があります。

◆ ReadPort()

virtual bool ReadPort ( size_t &  _redSize,
LPVOID  _P,
size_t  len,
HANDLE  h 
) const
protectedvirtualinherited

[通知] ポート読み込み.

ポート読み込み時、コールされます。

引数
[out]_redSize書き込んだサイズが格納されます。
[out]_P読み込みデータが格納されます。
[in]len読み込みデータ最大
[in]hハンドル
戻り値
true成功
false失敗

CRs232cExで再実装されています。

TnbRs232c.h995 行目に定義があります。

◆ Receive()

virtual size_t Receive ( size_t  size,
LPVOID  _P 
)
virtualinherited

[処理] 受信.

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

ICommunicationを実装しています。

CRs232cExで再実装されています。

TnbRs232c.h529 行目に定義があります。

◆ Send()

virtual size_t Send ( size_t  size,
LPCVOID  P 
)
virtualinherited

[処理] 送信.

引数
sizeサイズ。
Pデータ。
戻り値
INVALID_SIZEエラー。
上記以外送信データサイズ。0の可能性もあります。

ICommunicationを実装しています。

TnbRs232c.h462 行目に定義があります。

◆ SetCheckCtsMode()

void SetCheckCtsMode ( bool  r = true)
inherited

[設定] CTSチェック設定.

CTS信号が立っている時だけ接続とするモードと、CTS信号を無視するモードを選択できます。

引数
rture なら CTS信号をチェックします。デフォルトはチェックしません。

TnbRs232c.h319 行目に定義があります。

◆ SetClientParameter()

void SetClientParameter ( const BT_ADDR btAddr,
int  channel = -1 
)

[設定] クライアント設定.

クライアントとしてオープンする設定をします。

引数
btAddrサーバの Bluetoothアドレス。ペアリング接続しているものを指定します。
channelチャネル。省略すると自動で選択されます(最初に見つけたデバイスになる)。

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

◆ SetDtrSignal()

bool SetDtrSignal ( bool  isLow)
inherited

[設定] DTR 設定.

DTR(data-terminal-ready)信号の状態を設定します。

覚え書き
JIS での名称は「ER(データ端末レディ)」。
クロスケーブルの場合
DTR(4) ----------> DSR(6)
DSR(6) <---------- DTR(4)
引数
isLow状態。 CRs232c::LOWCRs232c::HI を指定。
戻り値
true成功
false失敗

TnbRs232c.h651 行目に定義があります。

◆ SetParameter()

DWORD SetParameter ( CPort  comPort,
DWORD  dwBaudRate,
BYTE  bByteSize,
EParity  eParity,
EStopBits  eStopBits 
)
inherited

[設定] オープン設定.

RS232Cの設定を行います。通常、 Open の前に使用します。

覚え書き
Open 前に実行した場合必ず成功します。
オープン中、本メソッドでCOMポートナンバーを変更した場合、クローズされます。
オープン中、本メソッドを使用した場合、エラーになる可能性もあります。
引数
comPortCOMポートナンバー。 数値でも文字列でも指定可能です。
dwBaudRate転送速度[bps]
bByteSizeキャラクタビット[bits]
eParityパリティ(偶数/奇数)
eStopBitsストップビット[bits]
戻り値
0成功。
0以外エラー。数値はシステムエラーコードです( SystemErrorToMessageText() で文字列化できます)。

TnbRs232c.h274 行目に定義があります。

◆ SetReceiveTimeout()

virtual bool SetReceiveTimeout ( DWORD  to)
virtualinherited

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

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

覚え書き
成功すると、プロパティが変更される可能性があります。
引数
toタイムアウト時間 (ms)。
戻り値
false 失敗。サポートできない時もこれが返ります。

ICommunicationを実装しています。

CRs232cExで再実装されています。

TnbRs232c.h299 行目に定義があります。

◆ SetRtsSignal()

bool SetRtsSignal ( bool  isLow)
inherited

[設定] RTS 設定.

RTS(request-to-send)信号の状態を設定します。

覚え書き
JIS での名称は「RS(送信要求)」。
クロスケーブルの場合
RTS(7) ----------> CTS(8)
CTS(8) <---------- RTS(7)
引数
isLow状態。 CRs232c::LOWCRs232c::HI を指定。
戻り値
true成功
false失敗

TnbRs232c.h669 行目に定義があります。

◆ SetSendMode()

void SetSendMode ( bool  canBulk)
inherited

[設定] 送信設定.

送信設定をおこないます。デフォルトはバルク(一括)モードです。

引数
canBulkture ならバルク(一括)モードで送信します。 false なら、一バイトずつ送信します。

TnbRs232c.h309 行目に定義があります。

◆ SetServerParameter()

void SetServerParameter ( int  portFlag = RFCOMM_PORT_FLAGS_AUTHENTICATE | RFCOMM_PORT_FLAGS_ENCRYPT)

[設定] サーバ設定.

サーバとしてオープンする設定をします。

引数
portFlagフラグ。

TnbCeBluetoothCom.h368 行目に定義があります。

◆ WritePort()

virtual bool WritePort ( size_t &  _writtenSize,
size_t  len,
LPCVOID  P,
HANDLE  h 
) const
protectedvirtualinherited

[通知] ポート書き込み.

ポート書き込み時、コールされます。

引数
[out]_writtenSize書き込んだサイズが格納されます。
[in]len書き込みデータサイズ
[in]P書き込みデータ
[in]hハンドル
戻り値
true成功
false失敗

CRs232cExで再実装されています。

TnbRs232c.h973 行目に定義があります。