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状態のログ |
at_makoto.sato
2023年10月25日 18時14分
佐藤です。
> 方法などはございますか?
stackoverflowの記事なのですが、こちらは参考になりませんでしょうか。
https://stackoverflow.com/questions/27632755/how-can-i-set-the-bluetoot…