C#のWrappeは以下のような構成になっています。
先ずは単写で撮像することを目的としました。そのデモソフトがdemo_captureです。
プロジェクトの中にあるprogram.csの"Type0003.md3"とある部分を”Type0008"にします。プロジェクトをコンパイルすると.exeファイルが生成されます。そこにType0008.md3とNkdPTP.dllをNikon
D600のSDKからコピーすると、D600のシャッターが切れて、画像がPCのピクチャライブラリに収納されます。が、これだと1ショットごとの待ち時間が長いので、本体のSDカードにセーブしたい。そのやり方は・・・とwikiを調べていたら、ありました。コレです。
それによると、元のWrapperの下の方にある部分で、
void manager_DeviceAdded(NikonManager sender, NikonDevice device)
{
if (_device == null)
{
// Save device
_device = device;
// Signal that we got a device
_waitForDevice.Set();
}
}
を
void manager_DeviceAdded(NikonManager sender, NikonDevice device)
{
this._device = device;
// Save device
device.SetUnsigned(eNkMAIDCapability.kNkMAIDCapability_SaveMedia,(uint)eNkMAIDSaveMedia.kNkMAIDSaveMedia_Card);
// Signal that we got a device
_waitForDevice.Set();
}
のように書き直すとカメラのSDカードに画像が保存されるようになります。
多分カメラとのネゴシエーションが1ショットごとに行われるのでその分少し時間がかかるようですが、画像ファイルをPCに保存するよりは早く次の撮像が出来ます。でも連写には向かないのでそれは「demo_continuouscapture」のフォルダの中身を弄ることで実現できるでしょう。、1ショット用のこのデモは多段階露光には使えると思います。
|