SDP用データの配列化ソフトウェア

  独自に作成したSDP用のデータを、PICファーウェアで使うために、配列化(main.cにおけるatt1[3][31]などの中身のデータように)するソフトウェアがあると便利です。それが、sdp.zipです。SDP(service discovery protocol)のデータ構造については、SDP(プロトコル)を参照願います。

さて、sdpフォルダの中にあるdata.hファイルにSDPを書き終わったら(各サービス内容のバイト数は、サービス内容以外をコメントアウトして、sdpDlg.cppの106行目にカーソルをおきデバックモードで、そこまで実行すると、data_numの値として得られます。)、bluesoleilスタックの場合は#define BLUESOLEILをそのまま残し、Microsoftスタックの場合は#define BLUESOLEILをコメントアウト(//#define BLUESOLEILとする)したのち、sdp.exeを実行してください。ダイアログが現れ、そこにあるボタンを押すと、DataArray.txtなるファイルにSDPが配列データとして出力されます。それを、ファームウェアの適当な配列(main.cにおけるatt1[3][31]など)にコピー・ペーストしてください。そして、ファームウェアにおいて、配列内容を適切にPCに返す部分を作成してください。

ところで、配列内容ですが、一番最後に続く0xFFの連続は、実際のサービスのデータではなく、配列を埋めるためだけのデータです(埋めなければ構文エラーになる)。その他の
0x26,0x20,0x1b,0x00,0x44,0x00,0xFF,0xFF,0x07,0xFF,0xFF, .....
のところに現れるような0xFFは、PCとの関係で実際にファームウェアが走っている状態に依存して変わる(動的に変わる)ところです。先頭の0x26も動的に変わります。ファームウェア中

//SDP data initialization
for(step=0;step<3;step++){att2[step][0]=buf[0];}  コネクション・ハンドルの1バイト目:先頭の0x26に相当
att2[0][6]=src_cid[0]; att2[0][7]=src_cid[1];  ソース・チャンネルID:1番目の0xFF,0xFFに相当
att2[0][9]=buf[9]; att2[0][10]=buf[10];  トランザクションID:0x07の後の2番目の0xFF,0xFFに相当

のような所で、必要な値を代入しています。


戻る