64bit と Timestamp

今まで

だったのを

にしたのです。
すでに32bitのSDKが入っているところに64bitのSDKを入れたら、別々のディレクトリにインストールされて("Program Files (x86)"と"Program Files"、しかしめんどくさい名前だ)、スタートメニューにも両方表示されました。
32bit版のFlyCap2ではカメラ情報は取得できるものの肝心の画像データが取得できなくなり、当然自作のC++のプログラムも同様の状態になりました。ドライバとかが変わってしまったんでしょうか。。。困ります。

仕方ないのでVC++のプロジェクトもx64でリビルドしてみました。すると、ちゃんと動いてくれました。

それから、タイムスタンプについても??状態だったのがわかりました。
ググって出会ったページ:スペースソフト IEEE1394解説 プロトコル*1
引用はややこしくなりそうなのでしませんが、上の記事の「アービトレーション」の「アイソクロナスアービトレーション」の節にある、12bit、13bit、7bitの値のそれぞれが、FlyCapture2でのTimeStamp構造体のメンバに対応しているようです。記事からわかるとおり

ビット数 メンバ名 備考
12bit cycleOffset 12bitだが3072のモジュロで、24.576MHzのクロックでカウントアップ
13bit cycleCount cycleOffsetがあふれるごとにカウントアップ、つまり8kHz、これは8000のモジュロ
7bit cycleSeconds cycleCountがあふれるごとにカウントアップ、つまり1Hz、これは128のモジュロ

のようです。USB接続のカメラでもIEEE 1394の仕様を踏襲しているのだと思います。

*1:IEEE 1394についてわかりやすく書いてあって大変ありがたいです^^