# Nikon D3 Application Suite #
## Introduction

The Nikon D3 application suite is a set of tools developed at the Monterey Bay Aquarium Research Institute in order to interact with Nikon D3 model DSLR camera. These are all win32 console applications and build currently under MS Visual Studio 2012 for Desktop. Included solution files will properly build and debug all programs. 

## Applications

The suite consists of three applications:

- **nikonD3Test**: a standalone program test unit for menu based camera interaction for camera functionality testing purposes.
- **nikonD3Server**: a multi-threaded tcp server that also handles hardware triggering through a  serial port and camera interaction through USB using PTPP. 
- **nikonD3Client**: a tcp client for basic interaction and control of the server.
- **spoggle**: a simple tool to open a serial port and test digital output control. This includes using both the TXD line as a pulse trigger and the RTS handshaking line as a digital output.

Files associated uniquely with those three programs are included in folders by their program name. There are a number of common classes and libraries also included in the root/common folder. There is a common MSVS solution file in the root directory that refers to individual project files in each program subdirectory.

## External Binaries

Nikon's SDK has two precompiled binaries that nikonD3Server and nikonD3Test use and load in runtime. They are `Type0001.md3` and `NkdPTP.dll`.  They are located in their project directories and are copied over to their build locations post-build.

## Requirements

Compiling this program requires the use of Microsoft Visual Studio. Initial development was done under *MSVS 2012 for Desktop*. 

Runtime requirements for the executable are Windows 7 or newer on a computer providing USB 1.0+ and a single serial port (server only).
