TCP/IP
You can control many program features with actions sent by another program by using the TCP/IP network protocol.
There is a free demo app that is used for testing the trigger. It is a single .exe file. Just run it and follow the instructions. The instructions are also listed here below:
https://s3-us-west-2.amazonaws.com/tetherscript/TCPIPTriggerGenerator.zip
The TCP/IP Trigger receives commands and simulates the execution of shortcuts. These shortcuts are visible in
the Tools/Shortcuts screen.
To test the TCP/IP Trigger in ControlMyNikon:
IN CONTROLMYNIKON
- Go to the Triggers menu and select TCP/IP (this is only available in the PRO edition).
- In the Server section, set the IPV4 address and port that the server will listen to. Make sure your firewall allows connections for TCP/IP protocol to this address and port.
- Enable the server by checking the Enabled checkbox.
IN THE TCPIP TRIGGER GENERATOR APP
- Enter the same IPV4 address and port and check the Enabled box. View the log files in both apps to confirm the connection is successful.
- Select a command, such as ‘Connect’ and click Send, or double-click on a command in the list.
Notes
- The commands are case sensitive.
- All commands sent to the server are ansi text (one byte per character), and the command requires a carriage return and linefeed.
- All responses received from the server are ansi text and have a suffix of a carriage return and linefeed.
- Some commands won’t work, based on the current camera state. For example, you can’t shoot if it isn’t connected.
- In the command list, there some abbreviations. Here is what they mean:
- SM- Stop Motion
- FS – Focus Stacking
- LE – Long Exposure
- LV – Live View
- IB – Image Browser
- LIB – Image Browser Thumbnails
- Send the GETSTATE command to retrieve the state of ControlMyNikon. Here are the possible states. There can be one or more states simultaneously and the list of states is comma-delimited.
- gsNone
- gsNikon
- gsCanon
- gsStandard
- gsPro
- gsIsDebug
- gsIsRelease
- gsSaveToCardExclusive
- gsSaveToCardExclusiveNot
- gsStartingUp
- gsShuttingDown
- gsConnecting
- gsConnected
- gsDisconnecting
- gsDisconnected
- gsCamBusy
- gsInLiveView
- gsNotInLiveView
- gsPhaseAutofocusing
- gsInContinuousMode
- gsInCalibratingWBMode
- gsShootNoAF
- gsShootAF
- gsInLiveViewTransition
- gsInLiveViewBrowser
- gsExpManualMode
- gsExpApertureMode
- gsExpShutterMode
- gsExpProgramMode
- gsExpBadMode
- gsHasLiveView
- gsHasLiveViewNot
- gsInProcessStackingPreview
- gsInProcessStackingCapture
- gsInProcessBracketingCapture
- gsInProcessIntervalometer
- gsInProcessTLCapture
- gsWorkflowNone
- gsWorkflowBatch
- gsWorkflowTimelapse
- gsWorkflowTimelapseActive
- gsWorkflowTimelapseInActive
- gsWorkflowStopMotion
- gsWorkflowFocusStacking
- gsWorkflowStopMotionInActive
- gsWorkflowStopMotionActive
- gsWorkflowStopMotionPlaying
- gsWorkflowStopMotionNotPlaying
- gsWorkflowBurst
- gsWorkflowBurstActive
- gsWorkflowBurstInActive
- gsWorkflowHDR
- gsWorkflowHDRActive
- gsWorkflowHDRInActive
- gsWorkflowPulse
- gsWorkflowBulb
- gsWorkflowPulseActive
- gsWorkflowPulseInActive
- gsWorkflowBulbActive
- gsWorkflowBulbInActive
- gsWorkflowLongExposure
- gsWorkflowLongExposureCap
- gsWorkflowLongExposureCapLight
- gsWorkflowLongExposureCapDark
- gsBatchInternal
- gsBatchExternal
- gsCacheValidating
- gsTriggerNone
- gsTriggerWeb
- gsTriggerWebActive
- gsTriggerWebInActive
- gsTriggerPhidgets
- gsTriggerPhidgetsActive
- gsTriggerPhidgetsInActive
- gsTriggerTCPIP
- gsTriggerTCPIPActive
- gsTriggerTCPIPInActive
- gsTriggerSpeech
- gsTriggerSpeechActive
- gsTriggerSpeechInActive
- gsTriggerMotion
- gsTriggerMotionActive
- gsTriggerMotionInActive
- gsTriggerSound
- gsTriggerSoundActive
- gsTriggerSoundInActive
- gsInBulbMode
- gsInBulbModeNot
- gsBulbModeActive
- gsBulbModeInActive
- gsBulbModeCapLightActive
- gsBulbModeCapLightInActive
- gsBulbModeCapDarkActive
- gsBulbModeCapDarkInActive
- gsWorkflowTLCaptureActive
- gsWorkflowTLCaptureInActive
- gsToolsFlashTabVisible
- gsToolsFlashTabHidden
- gsToolsMetaDataTabVisible
- gsToolsMetaDataTabHidden
- gsInternalFlashUp
- gsInternalFlashDown
- gsToolsLayersTabVisible
- gsToolsLayersTabHidden
- gsHasInternalFlash
- gsHasInternalFlashNot
- gsHasMovie
- gsHasMovieNot
- gsRecordingMovie
- gsRecordingMovieNot
- gsMovieTransferring
- gsContrastFocusInTransit
- gsContrastFocusIdle
- gsContrastFocusResultBad
- gsContrastFocusResultGood
- gsLVModeGDI
- gsLVModeGL
Here is a list of the case-sensitive commands that you can send to ControlMyNikon
- GETSTATE
- Connect
- Disconnect
- AF
- Shoot
- AF Shoot
- Calibrate WB
- Profile – Save
- HDR – Capture
- HDR – Cancel
- Burst – Capture
- Batch – Activate
- Batch – Clear
- Batch – Source
- Timelapse – Capture
- Timelapse – Cancel
- SM – Flip
- SM – Mark Begin
- SM – Mark End
- SM – Clear Marks
- SM – Replay
- SM – Opacity Toggle
- LE – Capture
- LE – Dark – Capture
- LE – Dark – Cancel
- LE – Light – Capture
- LE – Light – Cancel
- FS – Preview
- FS – Capture
- FS – Cancel
- FS – Focus – Far/10
- FS – Focus – Far
- FS – Focus – FarX10
- FS – Focus – Near/10
- FS – Focus – Near
- FS – Focus – NearX10
- FS – StackShot – Zero
- FS – StackShot – Return
- FS – StackShot – Stop
- LV – Enable
- LV – Disable
- LV – Toggle
- LV – Autofocus
- LV – Focus – Near Large
- LV – Focus – Near Small
- LV – Focus – Far Small
- LV – Focus – Far Large
- LV – Shoot
- LV – Zoom 1
- LV – Zoom 2
- LV – Zoom 3
- LV – Zoom 4
- LV – Pan Up
- LV – Pan Down
- LV – Pan Right
- LV – Pan Left
- LV – Toggle Histogram
- LV – Toggle Layers
- LV – DOF Preview
- LV – Monitor – Toggle
- LV – Start Recording
- LV – Action Record by Duration
- LV – Stop Recording
- LV – Toggle Recording
- LIB – First
- LIB – Next
- LIB – Prior
- LIB – Last
- Toggle IB/LV
- IB – Toggle Fullscreen
- IB – Toggle Mag
- IB – Mag 1
- IB – Mag 2
- IB – Mag 3
- IB – Mag 4
- IB – Mag 5
- IB Thumb – High Quality
- IB Thumb – Toggle Flag
- Toggle UI Magnifier
- Post-Capture – Execute