Armadilloフォーラム

Bluetoothデバイス接続時のPINコードについて

yuucchi

2023年10月24日 13時44分

いつも大変お世話になっております。

プリンタ制御プログラム(C言語)を作成しています。

NEX-C200B-01(Nippon Primex社製)プリンタを利用してBluetoothインターフェースで印字制御を行います。
SPPプロファイルでプリンタ状態監視および印字制御を行います。
プリンタのBluetooth検知、接続まではプログラムで行います。

通信成立の流れ:
① デバイス検知(scan): hci.h, hci_lib.hの hci_inquiry()メソッド
⇒ デバイス名及びデバイスアドレスを取得
② rfcomm通信ソケットを作成 
 socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_RFCOMM)メソッドで
③ rfcommデバイス作成
ioctl(...,RFCOMMCREATEDEV,..)
⇒ /dev/rfcomm0 デバイスパスを取得
④ rfcommデバイスとの通信を行うこと(termio.h利用して、シリアルプロファイルを設定)
⑤ rfcommデバイス状態を監視、印字制御する

ただし、プリンタ側のPINコード入力有無設定がありまして、有効にするとPINコード入力が必要になります。
(添付写真を参照)
このPINコードは固定です。
したがって、ArmadilloもプログラムにPINコードの固定値をもって、接続時に利用して認証したいと思いますが、
方法などはございますか?

ファイル ファイルの説明
Bluetooth PIN code.png 接続失敗時のbluetooth.service状態のログ
コメント