|
|
|
先ずサンプルプログラムのコードをコンパイルしてみる
|
ニコンのSDKはWebで「ニコン SDK」などのキーワードで一発に引っかかります。サイトで質問事項に答えて誓約書を通ると確認があって、ダウンロード画面に行けます。圧縮ファイルを開くとCommandとModuleのフォルダがありWinとMacがあるので自分のOSに合った方を開くと、Module-Type00XX_CtrlSample_Win(XXは適当な数字が入っています)があり、C++ソースやヘッダファイルの並んだ所に行きつきます。winというフォルダがあるので中を見るとプロジェクトファイルなどがあり、x64、x86というフォルダのOSに合った方を選択、DebugとReleaseを開き、Type00XXCtrlがデモソフトとなります。
自前でwinにあったType0017Sample.vcxprojを例えばVisual Studio 2017 Community等でビルドするのですが、ビルド先のフォルダにはNkdPTP.dllとType0017.md3がないとエラーでアプリケーションが作られません。 |
|
どんなふうに動かしていくか
|
①先ずはデバイスを選ぶので、1+Enter
②デジイチを選ぶのでID = 1で、1+Enter
③ISO感度は撮像関連のため、4+Enter
④Sensitivityを選んで、4+Enter
⑤そして感度がずらっと(ここでは1/3ステップで)並ぶ。第2,3接触のダイヤモンドリングは1/500秒にしたいのでISO200、多段階露光は1/8000秒~1/2秒でISO800としたいから、4か10を入力してEnter
という事で、手抜き感度設定ソフトを作るなら、手動で入れた入力値を格納する変数に、1とか4とかをプリセットしておけば良い。そして自動終了(0を2回入力する)するように仕掛ければOKの筈である。
ここで、④までの工程が記載されているのはデモソフトのソースの中の「main.cpp」である。これを弄るのは簡単だった。
そして⑤で感度をずらっと並べて入力待ちをするのは「function.cpp」であったが、そのコード内にあるサブルーチン
BOOL SetEnumPackedStringCapability( LPRefObj pRefObj, ULONG ulCapID, LPNkMAIDEnum
pstEnum )
であることを突き止めた。
デモソフトに置いて"%s"が文字として入力値を得て、これを数値変換してwSelとして入力した値を格納していることはどの部分でも同じようなので、コードの流れをを適当に読んでwSelに数字を代入しておけばよい。具体的にどんな流れで進んでいき、どう変えていったかは次のページにて。 |
6.Dec.'18書き込み |
|