BlueZ APIを使用してBLEデバイス用のC言語でプログラムを書く方法を教えてきました。しかし、私はsockaddr_l2構造体の1つの特定の側面に困惑しているようです。私が使用しています定義は以下の通りです:Bluetooth LE L2CAP CID vs. PSM
struct sockaddr_l2 {
sa_family_t l2_family;
unsigned short l2_psm;
bdaddr_t l2_bdaddr;
unsigned short l2_cid;
uint8_t l2_bdaddr_type;
};
は今、一部のために私は理解していない:l2_psmとl2_cidの違いは何ですか?これは私が今までに集めたものです:
PSMは "プロトコルサービスマルチプレクサ"の略で、L2CAP接続の "ポート"です。出典:Albert Huang著、プログラマー向けBluetooth
CIDは、「チャネル識別子」の略で、デバイスの論理チャネルのエンドポイントを表すローカル名です。出典:http://ecee.colorado.edu/~ecen4242/marko/Bluetooth/Bluetooth/SPECIFICATION/L2CAP.html
私はこれらの定義に答えがあると確信していますが、私はCIDの定義を頭に入れていないようです。 PSMとCIDの違いをもっと包括的に説明することはできますか?
感謝:)