I am using the API associated with Smart Shooter v5.8 with a Nikon Z6iii.
I am capturing photos using the following Python code.
def get_photoInfo(socket):
req = {}
req["msg_type"] = "Request"
req["msg_id"] = "Synchronise"
req["msg_seq_num"] = 0
def take_photo(socket):
req = {}
req["msg_type"] = "Request"
req["msg_id"] = "Shoot"
req["msg_seq_num"] = 0
req["CameraSelection"] = "All"
socket.send_string(json.dumps(req))
rep = socket.recv()
str_msg = rep.decode("utf-8")
json_msg = json.loads(str_msg)
status_photoInfo, responseDict_photoInfo = get_photoInfo(socket)
filepath = responseDict_photoInfo['PhotoInfo'][-1]['PhotoFilename']
return json_msg["msg_result"], json_msg, filepath
I’ve noticed that when my camera is set to use electronic shutter, the filepath reported be above function is actually that of the previously-taken photo. When using the mechanical shutter, the filepath reported matches of the file captured.
“Actual” filepath comes from looking at the filename of the image that appears in my Smart Shooter folder. “Reported” filepath is what was read via the get_photoInfo call above.
This discrepancy is only seen when shooting with electronic shutter. If I switch to mechanical shutter, the actual and reported filenames match up.
Electronic Shutter.
Run 1.
Reported: RemoteControl_20250319_140054.188_JPG.JPG
Actual: RemoteControl_20250319_140103.112_JPG.JPG
Run 2.
Reported: RemoteControl_20250319_140103.112_JPG.JPG
Actual: RemoteControl_20250319_140148.595_JPG.JPG
Manual Shutter reported filename is the same as actual