「Qtの基礎 - Classic Bluetooth」の版間の差分

ナビゲーションに移動 検索に移動
894行目: 894行目:
<code>connect</code>メソッドでソケット接続、<code>write</code>メソッド / <code>read</code>メソッドでデータの送受信を行う。<br>
<code>connect</code>メソッドでソケット接続、<code>write</code>メソッド / <code>read</code>メソッドでデータの送受信を行う。<br>
<br>
<br>
接続の確立と維持を行う処理は、全ての操作が非同期で行われる。<br>
そのため、各段階でのシグナル / スロット接続による状態管理が重要になる。<br>
<br>
==== 接続の確立 ====
<code>QBluetoothSocket</code>クラスのインスタンスを生成する。<br>
この時、RFCOMMプロトコルを指定する。<br>
<br>
デバイスのMACアドレスとポート番号を指定して、<code>QBluetoothSocket::connectToService</code>メソッドを実行する。<br>
接続状態の変化を監視するためのシグナル / スロット接続を設定する。<br>
<br>
==== 接続の維持 ====
<code>QBluetoothSocket::connected</code>シグナルを受信して、接続成功を確認する。<br>
<br>
<code>QBluetoothSocket::stateChanged</code>シグナルを監視して、接続状態の変化を検知する。<br>
<br>
<code>QBluetoothSocket::errorOccurred</code>シグナルを監視してエラーを検知する。<br>
<br>
また、必要に応じて定期的なキープアライブメッセージを送信する。<br>
<br>
==== データの送信 ====
<code>QBluetoothSocket::write</code>メソッドを使用してデータを送信する。<br>
<br>
==== データの受信 ====
# <code>QBluetoothSocket::readyRead</code>シグナルを受信してデータの到着を検知する。
# <code>QBluetoothSocket::readAll</code>メソッド、あるいは、<code>QBluetoothSocket::read</code>メソッドでデータを読む。
<br>
==== 切断処理 ====
# <code>QBluetoothSocket::disconnectFromService</code>メソッドを実行して、接続を終了する。
# <code>QBluetoothSocket::disconnected</code>シグナルを受信して切断完了を確認する。
# 必要に応じて、リソースの解放を実施する。
<br>
==== 組み合わせ ====
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">
  #include <QBluetoothSocket>
  #include <QBluetoothSocket>

案内メニュー