Bluetooth通信を備えたハンディスキャナではその通信でプリンタなどへの データの送受信ができます。
Bluetooth通信で外部機器とデータの送受信を行う場合は、以下の一連の命令の実行で行います。
・OPEN命令によりBluetoothデバイスファイルをオープンする。
(リモートデバイスへのシリアルポート接続が行われる)
・シリアル通信処理を行う。
(送信処理:PRINT #命令)
(受信処理:INPUT$関数、LOC関数、EOF関数などを使用)
・バーコードバッファから読込まれた文字列を取得する。
・CLOSE命令によりBluetoothデバイスファイルをクローズする。
Bluetoothデバイスのオープンの OPEN命令 について説明します。
上記の他の詳しい内容については各BHTの取説を見てください。
この例では自分自身をマスタとして、 シリアルポートプロファイルを使用してBluetooth 通信行います。 Bluetooth デバイスアドレスは 112233AABBCC で、接続タイムアウトは30秒です。
このオープン例を使ったプログラムは以下の様になりますが、 各機器に合わせてシリアル送受信処理は組む必要があります。
対応する機器のアドレスが前もってわかっているのであれば、 直接そのアドレスをプログラムに埋め込んでもいいのですが、 実際の場合は機器交換などもありますので、 Bluetoothデバイスから通信で取得できた方がいいと思います。
Bluetoothデバイスアドレス取得を行う簡単なプログラムを以下に示します。
Bluetooth機器が複数あった場合にはその台数分のアドレスが検出できます。 但し、1台だけに絞る場合は、対象Bluetooth機器のみを電源投入し検出すればできるとは思います。
=====
2016/04/02:の時の情報
■Bluetooth機器との送受信について
Bluetooth通信で外部機器とデータの送受信を行う場合は、以下の一連の命令の実行で行います。
・OPEN命令によりBluetoothデバイスファイルをオープンする。
(リモートデバイスへのシリアルポート接続が行われる)
・シリアル通信処理を行う。
(送信処理:PRINT #命令)
(受信処理:INPUT$関数、LOC関数、EOF関数などを使用)
・バーコードバッファから読込まれた文字列を取得する。
・CLOSE命令によりBluetoothデバイスファイルをクローズする。
Bluetoothデバイスのオープンの OPEN命令 について説明します。
[書式] OPEN "COM4:M, サービスプロファイル [, [デバイスアドレス][, [パスキー][, [タイムアウト] [, [セキュリティモード]]]]]" AS [#] ファイル番号 <引き数> ・[COM4:M]は自分自身をマスタとして接続先をスレーブとする ・サービスプロファイル ■SDAP:サービス検索 ■SPP:シリアルポートプロファイル ■DUN:ダイヤルアップ接続プロファイル ・[デバイスアドレス]:Bluetooth デバイスアドレス 12 文字の16 進数文字列で指定 ・[パスキー]:Bluetooth パスキー ・[タイムアウト]:接続が完了までの最大待ち時間(1~255秒) ・[セキュリティモード]:接続時のセキュリティモード 1:セキュリティなし 2:セキュリティあり 3:セキュリティあり、暗号化あり 4:シンプルペアリング
上記の他の詳しい内容については各BHTの取説を見てください。
■オープン指定の例
OPEN "COM4:M,SPP,112233AABBCC,,30,1" AS #2
この例では自分自身をマスタとして、 シリアルポートプロファイルを使用してBluetooth 通信行います。 Bluetooth デバイスアドレスは 112233AABBCC で、接続タイムアウトは30秒です。
このオープン例を使ったプログラムは以下の様になりますが、 各機器に合わせてシリアル送受信処理は組む必要があります。
'Bluetoothオープン OPEN "COM4:M,SPP,112233AABBCC,,30,1" AS #2 'シリアル通信処理 '--データ送信処理-- PRINT #2,"TESTDATA"; '送信データは仮のもの '--データ受信処理-- 'ここにINPUT$関数などでデータを取得し、 '各機器ごとに合わせた処理を記述する 'Bluetoothクローズ CLOSE #2
■Bluetoothデバイスアドレス取得について
対応する機器のアドレスが前もってわかっているのであれば、 直接そのアドレスをプログラムに埋め込んでもいいのですが、 実際の場合は機器交換などもありますので、 Bluetoothデバイスから通信で取得できた方がいいと思います。
Bluetoothデバイスアドレス取得を行う簡単なプログラムを以下に示します。
SCREEN 1 '漢字モード LOCATE , , 2 'カーソルをブロック表示 PRIVATE I% PRIVATE strBtAddr$(7)[12] 'Bluetoothデバイスアドレス PRIVATE intBtNum% 'Bluetoothデバイス数 'Bluetooth検出オープン OPEN "COM4:I,60,1" AS #2 ' デバイス検出時間:60秒 '検出機器数:8台 intBtNum% = 8 '検出結果を読み出し CALL "BT.FN3" .fcBTInqRes intBtNum%, strBtAddr$() 'Bluetooth検出クローズ CLOSE #2 '検出したBluetoothアドレス表示 PRINT "BlueTooth-Addr" FOR I% = 0 TO 7 PRINT "Addr" + STR$(I%) + ":" + strBtAddr$(i%) NEXT I% WAIT 0, &H1 END
Bluetooth機器が複数あった場合にはその台数分のアドレスが検出できます。 但し、1台だけに絞る場合は、対象Bluetooth機器のみを電源投入し検出すればできるとは思います。
=====
2016/04/02:の時の情報
PR
コメント