日食撮像自動化プロジェクト for 2016

2. 撮像&SDカードに画像をセーブさせるコードの変更

 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ショット用のこのデモは多段階露光には使えると思います。


Index Next
inserted by FC2 system