Frequently Asked Questions
How to use Sequential Shutter.
#5400-0439

Version 1.0.1.1

Information contained in this document is subject to change without prior notice.

FAQ How to use Sequential Shutter.
Document in Japanese
このドキュメントはシーケンシャルシャッタ機能の使用方法について記述したドキュメントです。日本語ドキュメントは英語ドキュメントの後にあります。
End of document in JapaneseThis document describes about how to use Sequential Shutter function.

1. What is Sequential Shutter?
Sequential Shutter is a function for capturing images of a target object under multiple camera
settings, for example, changing exposure time, gain, image offset, and so on.
Sequential Shutter utilizes UserSet memory function for storing and loading camera settings used in
Sequential Shutter mode capturing sequence. TeliCamAPI will change camera settings by loading
camera settings in UserSet memory specified by SequentialShutterSequenceTable register arrayvalue (SequentialShutterEntry node) before the beginning of each exposure process.
The sequence length of Sequential Shutter mode is controlled by SequentialShutterTerminateAt
register value. On incrementing Sequential Shutter sequence index, which starts from 1, the index
will be cleared to 1 when the index value is equal to SequentialShutterTerminateAt register value.
The following figure shows how Sequential Shutter works.
This example assumes that 3 kind of exposure time settings are stored in UserSet memory (index 1,
2 and 4), and 3 is set to sequence length (SequentialShutterTerminateAt register), beforehand.
Register values
SequentialShutterEnable
SequentialShutterTerminateAt
SequentialShutterEntry (index=1)
SequentialShutterEntry (index=2)
SequentialShutterEntry (index=3)
Exposure time in UserSet1
Exposure time in UserSet2
Exposure time in UserSet4

Acquisition

Continuous
DisabledSequence Index

SensorFrame

USB BusSequentialShutterTerminateAt = 3

1

SequenceShutterEntry[Sequence Index]

Exposure: On:3: 1 (Use UserSet1): 4 (Use UserSet4): 2 (Use UserSet2): 10msec: 20msec: 2msec

Working

1

Load
UserSet1

2
4

Load
UserSet4

3
2

Load
UserSet2

1
1

Load
UserSet1

2

3

4

1

2

Load
UserSet4

Load
UserSet2

1

Load
UserSet1

Stop
10msecExposure1

2msec

20msec10msec2msec

20msec10msecExposure2 Exposure3

Exposure4

Exposure5

Exposure1

Exposure2

Frame1

Frame2

Frame3

Frame4

Frame5

Frame1

Note that sequence index starts from 1 and it will not be cleared to 1 even if image acquisition is
stopped. Sequence index will be cleared to 1 by disabling SequentialShutterEnable and enabling it
again during image acquisition is not active.

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

2. Camera registers relating to Sequential Shutter mode.
The following table shows camera registers (32bit registers) relating to Sequential Shutter mode.
Sequential Shutter mode is often used in combination with BulkTrigger mode.
Register name
Description
SequentialShutterEnable_Inquiry
Inquiry information of Sequential Shutter feature.
0x21F300
When msb is 1, Sequential Shutter is implemented.
RegMapBU::ADR_ VENDOR_SEQ_SHT_ENABLE_ENUM32B This register is read-only register.
SequentialShutterEnable
Enables / disables Sequential Shutter mode.
0x21F31C
1: On (Enabled)
RegMapBU::ADR_VENDOR_SEQ_SHT_ENABLE_I 0: Off (Disabled)
SequentialShutterTerminateAt
Sequence length of Sequential Shutter mode.
0x21F33C

UserSetSequential Shutter

RegMapBU::ADR_VENDOR_SEQ_SHT_TRMNAT_AT_I

SequentialShutterTerminateAt_Min
0x21F334

The minimum sequence length value.
This register is read-only register.

SequentialShutterTerminateAt_Max
0x21F338

The maximum sequence length value.
This register is read-only register.

RegMapBU::ADR_VENDOR_SEQ_SHT_TRMNAT_AT_INT32B+ RegMapBU::OFS_FCSR_INT32_MIN_I

RegMapBU::ADR_VENDOR_SEQ_SHT_TRMNAT_AT_INT32B+ RegMapBU::OFS_FCSR_INT32_MAX_I

SequentialShutterSequenceTable_0
The first member (sequence index = 1) of
0x500040
SequentialShutterTable register array.
SequentialShutterSequenceTable_Len Member count of SequentialShutterTable register
0x50002C
array.
SequentialShutterSequenceTableVMin The minimum value available in
0x500038
SequentialShutterTable (SequentialShutterEntry).
SequentialShutterSequenceTableVMax The maximum value available in
0x50003C
SequentialShutterTable (SequentialShutterEntry).
UserSetSelector
Specifies index of UserSet memory accessed through0x20807C
UserSetCommand register.
RegMapBU::ADR_ USET_SEL_I
UserSetCommand
Accesses UserSet memory specified by value of
UserSetSelector register.
0x20809C
RegMapBU::ADR_USET_USERSET_CMD_I

TriggerMode0x20703C

RegMapBU::ADR_TRG_TRG_MODE_I

TriggerSequence
0x20705C
Trigger

RegMapBU::ADR_TRG_TRG_SEQUENCE_I

TriggerSource
0x20707C

RegMapBU::ADR_TRG_TRG_SOURCE_I

TriggerAdditionalParameter
0x20709C

RegMapBU:: ADR_TRG_ADDITIONAL_PARAM_RAW_I

TriggerDelay_Raw
0x2070B0

RegMapBU:: ADR_TRG_TRIGGER_DELAY_RAW_I

The following values are available.
0 : Done (for checking that access completed.)
8 : Load
9 : Save
120 : QuickSave (Saves in RAM)
*1
Enables / disables Random Trigger Shutter mode.
1: On (Enabled)
0: Off (Disabled)
Sets sequence type of Random Trigger Shutter mode.
The following values are available.
0 : Edge mode (TriggerSequence0)
1 : Level mode (TriggerSequence1)
6 : Bulk mode (TriggerSequence6)
Selects signal source of Random Trigger Shutter.
0 : Line0(IOLine0)
64 : SoftwareTrigger(SoftwareTrigger)
Sets the number of frames to exposure in Bulk mode.
Sets delay time from trigger edge to exposure start.
Delay in seconds = TriggerDelay_Raw / TriggerDelay_Div

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.
Register name
TriggerDelay_Div
0x2070BC

Description
Division constant for converting TriggerDelay_Raw
register value to TriggerDelay value in seconds.

TriggerSoftware
0x2070DC

Sends trigger signal.
The following values are available.
0: Inactive
1: Active
8: Impulse (register value will be changed to 0 after
activating trigger action.)

RegMapBU:: ADR_TRG_TRIGGER_DELAY_INT32B+ RegMapBU::OFS_FCSR_INT32_DIV_I
RegMapBU::ADR_TRG_SOFT_TRG_I*1: When “QuickSave” command is written, the camera will save current camera settings in RAM
instead of writing in flash memory. The written camera parameters will be lost on power down
but user application can save parameters quickly. It will take less than 100 microseconds towrite in RAM, on the other hand, it will take about 700 milliseconds to write in flash memory.
This command value was appended in the recent generation models.
The following tables show functions, methods, and node name for accessing registers in the abovetable.

Trigger

Sequential Shutter< Controlling camera feature functions> (native C++)
Controlling camera feature functions
GetCamSequentialShutterEnable ()SetCamSequentialShutterEnable ()GetCamSequentialShutterTerminateAtMinMax()
GetCamSequentialShutterTerminateAt()
SetCamSequentialShutterTerminateAt()
GetCamSequentialShutterIndexMinMax()
GetCamSequentialShutterEntryMinMax()
GetCamSequentialShutterEntry()
SetCamSequentialShutterEntry()
ExecuteCamUserSetLoad()
ExecuteCamUserSetSave()
GetCamTriggerMode()
SetCamTriggerMode()
GetCamTriggerSequence()
SetCamTriggerSequence()
GetCamTriggerSource()
SetCamTriggerSource()
GetCamTriggerAdditionalParameterMinMax()
GetCamTriggerAdditionalParameter()
SetCamTriggerAdditionalParameter()
GetCamTriggerDelayMinMax()
GetCamTriggerDelay()
SetCamTriggerDelay()
ExecuteCamSoftwareTrigger()

Target register

SequentialShutterEnable

SequentialShutterTerminateAt_Min and Max
SeauentialShutterTerminateAt
SequentialShutterSequenceTable_Len
SequentialShutterSequenceTableVMin and VMax
SequentialShutterSequenceTable
UserSetSelector*2 UsersetCommand
TriggerMode
TriggerSequence
TriggerSource
TriggerAdditionalParameter
TriggerDelay_Raw
TriggerDelay_Div
TriggerSoftware*2: If writing “QuickSave” command is required, write 120 to UserSetCommand register after
writing UserSet memory index to UserSetSelector register, using Cam_WriteReg() function.

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

Trigger

Sequential Shutter<CameraControl class> (.NET framework)
Methods
CameraControl.GetSequentialShutterEnable()
CameraControl.SetSequentialShutterEnable()
CameraControl.GetSequentialShutterTerminateAtMinMax()
CameraControl.GetSequentialShutterTerminateAt()
CameraControl.SetSequentialShutterTerminateAt()
CameraControl.GetSequentialShutterIndexMinMax
CameraControl.GetSequentialShutterEntryMinMax()
CameraControl.GetSequentialShutterEntry()
CameraControl.SetSequentialShutterEntry()
CameraControl.ExecuteUserSetLoad()
CameraControl.ExecuteUserSetSave()*3
CameraControl.GetTriggerMode()
CameraControl.SetTriggerMode()
CameraControl.GetTriggerSequence()
CameraControl.SetTriggerSequence()
CameraControl.GetTriggerSource()
CameraControl.SetTriggerSource()
CameraControl.GetTriggerAdditionalParameterMinMax()
CameraControl.GetTriggerAdditionalParameter()CameraControl.SetTriggerAdditionalParameter()CameraControl.GetTriggerDelayMinMax()
CameraControl.GetTriggerDelay()
CameraControl.SetTriggerDelay()
CameraControl.ExecuteSoftwareTrigger()

Target register
SequentialShutterEnable
SequentialShutterTerminateAt_Min and Max
SeauentialShutterTerminateAt
SequentialShutterSequenceTable_Len
SequentialShutterSequenceTableVMin, VMax
SequentialShutterSequenceTable
UserSetSelector
UserSetCommand
TriggerMode
TriggerSequence
TriggerSource
TriggerAdditionalParameter
TriggerDelay
TriggerSoftware*3: If writing “QuickSave” command is required, write 120 to UserSetCommand register after writing
UserSet memory index to UserSetSelector register, using CameraDevice.WriteRegister() method.

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.
<Node for GenICam functions and methods>
Node type
Node name

Trigger“SequentialShutterEnable”
Enumeration(XmlFeatures::XF_ID_SEQ_SHUTTER_ENABLE)“SequentialShutterTerminateAtMin”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_TRMNT_AT_MIN)“SequentialShutterTerminateAtMax”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_TRMNT_AT_MAX)“SequentialShutterTerminateAt”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_TRMNT_AT)“SequentialShutterIndex”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_SHUTER_INDEX)“SequentialShutterEntry”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_SHUTTER_ENTRY)“UserSetSelector”
Enumeration(XmlFeatures::XF_ID_USERSET_SELECTOR)“UserSetLoad”(XmlFeatures::XF_ID_USERSET_LOAD)“UserSetSave”(XmlFeatures::XF_ID_USERSET_SAVE)“UserSetQuickSave”*4“TriggerMode”(XmlFeatures::XF_ID_TRIGGER_MODE)“TriggerSequence”(XmlFeatures::XF_ID_TRIGGER_SEQUENCE)“TriggerSource”(XmlFeatures::XF_ID_TRIGGER_SOURCE)“TriggerAdditionalParameter”“TriggerDelay”(XmlFeatures::XF_ID_TRIGGER_DELAY)“TriggerSiftware”(XmlFeatures::XF_ID_TRIGGER_SOFTWARE)

Command

Enumeration
value
“On”
“Off”

Target register
SequentialShutterEnable
SequentialShutterTerminateAt_Min
SequentialShutterTerminateAt_Max
SequentialShutterTerminateAt

SequentialShutterSequenceTable“Default”“UserSet1”…..
“UserSet15”

CommandCommand
Enumeration“On”
TriggerMode“Off”
Enumeration “TriggerSequence0” TriggerSequence“TriggerSequence1”“TriggerSequence6”
Enumeration“Line0”
TriggerSource“Software”
Integer
TriggerAdditionalParameter
Float
TriggerDelayRaw
TriggerDelayDiv
Command
TriggerSoftware*4: This node is available in the recent generation model.

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

3. Image acquisition in SequentialShutter mode.
3.1. Saving camera settings in UserSet memory
Camera settings used in Sequential Shutter sequence should be saved in UserSet memory before
starting image acquisition.
It will take about 700 milliseconds to write data in UserSet because UserSet memory is composed of
flash memory.
Camera controlling function ExecuteUserSetSave() will send UserSet saving command to acamera and wait until writing to the UserSet completes. You can write the program without paying
attention to the completion of writing to the flash memory when you use ExecuteUserSetSave().
GenICam functions GenAPI_CmdExecute() or Nd_CmdExecute() will also send UserSet saving
command to a camera, but finish without waiting the completion of writing to the UserSet. You
should write the program paying attention to the completion of writing to the flash memory when you
use GenICam functions for saving in UserSet. GenAPI_GetCmdIsDone() or Nd_GetCmdIsDone() isavailable for checking the state of UserSet saving.
(GenAPI_CmdExecute() and GenAPI_GetCmdIsDone() are available in TeliCamSDK PkgVer3.0.0.1
or later.)Writing ‘Load’ command value to UserSetCommand register is also available for saving parametersin UserSet memory. UserSetCommand register value will return to 0 (‘Done’) when writing to flash
memory completes.
Note that if you start writing register values for the next UserSet save without waiting completion ofcurrent UserSet saving operation, the parameter values saved in the UserSet memory might bedifferent from the intended values.
In recent generation models, “QuickSave” command (0x0078) is available for saving camera
settings in UserSet memory on RAM.
Note that image size setting in UserSet memory will not be loaded in SequentialShutter sequence
while image offset will be loaded. Image size setting at the timing that image acquisition is started
will be used in every SequentialShutter sequence. Never set the image size that will cause ROI
inconsistency in SequentialShutter mode image acquisition.
The example code in the next page is a code for writing camera parameters in UserSet memory.
This example does not contain codes for handling errors.

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.
======================== example code =======================================#include “TeliCamAPI.h”#include “RegisterMap_BU.h”#define QuickSave 120
CAM_API_STATUS
uiSts;
CAM_HANDLE
hCam;
int32_t
iTmp;. . . . . . . . . . .
// Saving UserSet1 settings.
// Sets exposure time 10msec.
uiSts = SetCamExposureTime(hCam, 0.01);. . . . . . . . . . .
// Saves current settings in UserSet1.
uiSts = ExecuteCamUserSetSave(hCam, CAM_USER_SET_SELECTOR_USER_SET1);//// QuickSave command.
//// Selects UserSet1.
// iTmp = 1;// uiSts = CAM_WriteReg(hCam, RegMapBU::ADR_USET_SEL_I, 1, &iTmp);//// Sets QuickSave command.
// iTmp = QuickSave;//// Sends QuickSave command.
// uiSts = CAM_WriteReg(hCam, RegMapBU::ADR_USET_USERSET_CMD_I, 1, &iTmp);// Saving UserSet2 settings.
// Sets exposure time 20msec.
uiSts = SetCamExposureTime(hCam, 0.02);. . . . . . . . . . .
// Saves current settings in UserSet2.
uiSts = ExecuteCamUserSetSave(hCam, CAM_USER_SET_SELECTOR_USER_SET2);// Saving UserSet4 settings.
// Sets exposure time 2msec.
uiSts = SetCamExposureTime(hCam, 0.002);. . . . . . . . . . .
// Saves current settings in UserSet4.
uiSts = ExecuteCamUserSetSave(hCam, CAM_USER_SET_SELECTOR_USER_SET4);======================== end of example code ==================================

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

3.2. Starting image acquisition (setting Sequential Shutter mode)
User application should sets Sequential Shutter parameters before starting image acquisition.
The following example is a code for setting Sequential Shutter parameters. This example also sets
software Bulk trigger mode.
This example does not contain codes for handling errors.
======================== example code =======================================#include “TeliCamAPI.h”#include “RegisterMap_BU.h”
CAM_API_STATUS
uiSts;
CAM_HANDLE
hCam;
uint32_t
uiIndex;uint32_t
uiUserSetIndex;. . . . . . . . . . .
// Setting Sequential Shutter mode.
// Enables Sequential Shutter.
uiSts = SetCamSequentialShutterEnable(hCam, TRUE);// Sets sequence length 3.
uiSts = SetCamSequentialShutterTerminateAt(hCam, 3);// Sets SequentialShutterEntries.
// Uses UserSet1 in Sequence index 1. (Sequence index starts from 1.)
uiIndex= 1;
uiUserSetIndex= 1;
uiSts = SetCamSequentialShutterEntry(hCam, uiIndex, uiUserSetIndex);// Uses UserSet4 in Sequence index 2.
uiIndex= 2;
uiUserSetIndex= 4;
uiSts = SetCamSequentialShutterEntry(hCam, uiIndex, uiUserSetIndex);// Uses UserSet2 in Sequence index 3.
uiIndex= 3;
uiUserSetIndex= 2;
uiSts = SetCamSequentialShutterEntry(hCam, uiIndex, uiUserSetIndex);// Sets Software Bulk trigger mode.
// Enables Randam Trigger Shutter.
uiSts = SetCamTriggerMode(hCam, TRUE);// Sets TrigggerSequence6 (Bulk mode).
uiSts = SetCamTriggerSequence(hCam, CAM_TRIGGER_SEQUENCE6);// Sets TriggerSource SoftwareTriggger.
uiSts = SetCamTriggerSource(hCam, CAM_TRIGGER_SOFTWARE);// Starts image acquisition.
. . . . . . . . . . .

======================== end of example code ==================================

3.3. Acquiring image
Image acquiring sequence is exactly same as ordinary image acquisition case. User application canuse ordinary image acquisition code.
Note that user application has no way to detect Sequential Shutter sequence index of a received
image. When each sequence has different mage offset, user application can detect sequence index
using image offset data in CAM_IMAGE_INFO structure,
In the future model camera, camera will have a function to send sequence index with image data asa chunk data.

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

3.4. Clearing Sequential Shutter mode
The following example is a code for disabling Sequential Shutter mode. Never fail to stop image
acquisition before editing Sequential shutter related registers.
This example does not contain codes for handling errors.
======================== example code =======================================#include “TeliCamAPI.h”#include “RegisterMap_BU.h”
CAM_API_STATUS
uiSts;
CAM_HANDLE
hCam;
uint32_t
uiIndex;uint32_t
uiUserSetIndex;. . . . . . . . . . .
// Stops image acquisition.
. . . . . . . . . . .
// Disabling Sequential Shutter mode.
// Disables Sequential Shutter.
uiSts = SetCamSequentialShutterEnable(hCam, FALSE);======================== end of example code ==================================

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.
Document in Japanese

1. シーケンシャルシャッタとはシーケンシャルシャッタは複数の撮像条件下で撮影した被写体画像を取得する機能です。例えば露光時間・ゲイン・画像オフセットなどを変えた複数の画像を取得するときなどに使用します。
シーケンシャルシャッタは UserSet メモリの機能を使用してシーケンシャルシャッタモードの撮像に使用するカメラパラメータの保存・呼び出しを行なっています。TeliCamAPI はセンサの露光プロセスを開始する前に、SequentialShutterSequenceTable レジスタ配列（SequentialShutterEntryノード）のレジスタ値で指定されたインデックスの UserSet メモリの内容をロードすることにより、各種カメラ設定を切り替えます。
シーケンシャルシャッタモードのシーケンス長は SequentialShutterTerminateAt レジスタの値で制御しています。シーケンシャルシャッタのシーケンスインデックス（１から加算を開始する値）を加算するときに、更新前のシーケンスインデックスの値が SequentialShutterTerminateAt レジス
タの値と等しいときはシーケンスインデックスインデックスを１にクリアしています。
以下の図にシーケンシャルシャッタの動作を示します。
この例は、予め３種類の露光時間が１番、２番、４番の UserSet メモリに保存されており、シーケンシャルシャッタのシーケンス長（SequentiaShutterTerminateAt レジスタ値）が３に設定されている前提で動作を示しています。
レジスタ値
SequentialShutterEnable
SequentialShutterTerminateAt
SequentialShutterEntry (index=1)
SequentialShutterEntry (index=2)
SequentialShutterEntry (index=3)
UserSet1 の Exposure time
UserSet2 の Exposure time
UserSet4 の Exposure time

Acquisition

Continuous
Disabled

シーケンスインデックス
SequenceShutterEntry[Sequence Index]
センサフレーム
露光動作
USB バス: On:3: 1 (Use UserSet1): 4 (Use UserSet4): 2 (Use UserSet2): 10msec: 20msec: 2msec

Working

SequentialShutterTerminateAt = 3

1
1

Load
UserSet1

2
4

Load
UserSet4

3
2

Load
UserSet2

1
1

Load
UserSet1

2

3

4

2

Load
UserSet4

Load
UserSet2

1
1

Load
UserSet1

Stop
10msecExposure1

20msec10msec2msec

20msec10msecExposure2 Exposure3

2msec

Exposure4

Exposure5

Exposure1

Exposure2

Frame1

Frame2

Frame3

Frame4

Frame5

Frame1

シーケンスインデックスは１から加算されていきますが、Aquisition を停止状態にしても１にクリアされません。Aquisition 停止中に SequenceShutterEnable レジスタを一旦ディス栄ぶるにしてから再度イネーブルにすることによりシーケンスインデックスが１にクリアされます。

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

2. シーケンシャルシャッタ関連レジスタ
以下の表にシーケンシャルシャッタ関連のレジスタを示します。各レジスタは 32bit レジスタです。
シーケンシャルシャッタモードはしばしば BulkTrigger モードと同時に使用されます。
内容
シーケンシャルシャッタ機能に関する情報。
msb が 1 のときシーケンシャルシャッタ機能が実装さ
RegMapBU::ADR_ VENDOR_SEQ_SHT_ENABLE_ENUM32B れています。このレジシタは読み出し専用です。
SequentialShutterEnable
シーケンシャルシャッタ機能の有効無効設定。
0x21F31C
1: On (有効)RegMapBU::ADR_VENDOR_SEQ_SHT_ENABLE_I 0: Off (無効).
SequentialShutterTerminateAt
シーケンシャルシャッタモードのシーケンス長。
0x21F33C

UserSetシーケンシャルシャッタ

レジスタ名
SequentialShutterEnable_Inquiry
0x21F300

RegMapBU::ADR_VENDOR_SEQ_SHT_TRMNAT_AT_I

SequentialShutterTerminateAt_Min
0x21F334

シーケンシャルシャッタモードの最小シーケンス長。
このレジシタは読み出し専用です。

SequentialShutterTerminateAt_Max
0x21F338

シーケンシャルシャッタモードの最大シーケンス長。
このレジシタは読み出し専用です。

RegMapBU::ADR_VENDOR_SEQ_SHT_TRMNAT_AT_INT32B+ RegMapBU::OFS_FCSR_INT32_MIN_I

RegMapBU::ADR_VENDOR_SEQ_SHT_TRMNAT_AT_INT32B+ RegMapBU::OFS_FCSR_INT32_MAX_I

SequentialShutterSequenceTable_0
SequentialShutterTable レジスタ配列の先頭レジスタ r
0x500040(シーケンスインデックス=1)。
SequentialShutterSequenceTable_Len SequentialShutterTable レジスタ配列のメンバ数
0x50002C
SequentialShutterSequenceTableVMin SequentialShutterTable（SequentialShutterEntry ノー
0x500038ド）に設定可能な値の最小値。
SequentialShutterSequenceTableVMax SequentialShutterTable（SequentialShutterEntry ノー
0x50003Cド）に設定可能な値の最大値。
UserSetSelector
UserSetCommand レジスタでアクセスする UserSet
0x20807C
メモリのインデックス
RegMapBU::ADR_ USET_SEL_I
UserSetCommand
UserSetSelector で指定された UserSet メモリにアクセスします。
0x20809C
RegMapBU::ADR_USET_USERSET_CMD_I

TriggerMode0x20703C

RegMapBU::ADR_TRG_TRG_MODE_I

トリがTriggerSequence
0x20705C

RegMapBU::ADR_TRG_TRG_SEQUENCE_I

TriggerSource
0x20707C

RegMapBU::ADR_TRG_TRG_SOURCE_I

TriggerAdditionalParameter
0x20709C

RegMapBU:: ADR_TRG_ADDITIONAL_PARAM_RAW_I

以下の値が指定可能です。
0 : Done (アクセス完了確認用。)
8 : Load
9 : Save
120 : QuickSave (RAM に保存します。)*1
ランダムトリガシャッタモードの有効無効設定。
1: On (有効)0: Off (無効).
ランダムトリガシャッタモードの動作シーケンス。
以下の値が指定可能です。
0 : エッジモード(TriggerSequence0)
1 : レベルモード(TriggerSequence1)
6 : バルクモード(TriggerSequence6)
ランダムトリガシャッタの信号源指定。
0 : ライン 0(IOLine0)
64 : ソフトトリが(SoftwareTrigger)
Bulk モードで１回のトリガー入力に対応して露光する
フレーム数の設定。

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.
レジスタ名
TriggerDelay_Raw
0x2070B0

内容
トリガ入力から露光開始までの遅延時間設定内部値。
遅延時間(秒) =) TriggerDelay_Raw / TriggerDelay_Div

TriggerDelay_Div
0x2070BC

TriggerDelay_Raw レジスタ値を秒単位の遅延時間値に変換するための定数。

TriggerSoftware
0x2070DC

トリガ信号を送出します。
0: Inactive
1: Active
8: Impulse (トリガ後にレジスタ値は０に戻ります、)

RegMapBU:: ADR_TRG_TRIGGER_DELAY_RAW_I

RegMapBU:: ADR_TRG_TRIGGER_DELAY_INT32B+ RegMapBU::OFS_FCSR_INT32_DIV_I
RegMapBU::ADR_TRG_SOFT_TRG_I*1: QuickSave コマンドを書き込むと、カメラは現状のカメラ設定をフラッシュメモリではなくRAM に書き込みます。RAM に保存されたカメラ設定はカメラの電源を切ると失われますが、パラメータの書き込み時間を短縮することができます。フラッシュメモリ書き込み時は書き込み時間が約 700msec かかりますが、RAM に書く場合は 100μsec で書き込み完了します。
QuickSave コマンドはこの最近の世代のカメラで使用可能です。
シーケンシャルシャッタ関連レジスタにアクセスする関数、メソッドを以下の表に示します。
【カメラ制御関数】(ネイティブ C++)カ メ ラ 制 御 関 数

トリガ

シーケンシャルシャッ
タ

GetCamSequentialShutterEnable ()SetCamSequentialShutterEnable ()GetCamSequentialShutterTerminateAtMinMax()
GetCamSequentialShutterTerminateAt()
SetCamSequentialShutterTerminateAt()
GetCamSequentialShutterIndexMinMax()
GetCamSequentialShutterEntryMinMax()
GetCamSequentialShutterEntry()
SetCamSequentialShutterEntry()
ExecuteCamUserSetLoad()
ExecuteCamUserSetSave()
ExecuteCamUserSetQuickSave()*2
GetCamTriggerMode()
SetCamTriggerMode()
GetCamTriggerSequence()
SetCamTriggerSequence()
GetCamTriggerSource()
SetCamTriggerSource()
GetCamTriggerAdditionalParameterMinMax()
GetCamTriggerAdditionalParameter()
SetCamTriggerAdditionalParameter()
GetCamTriggerDelayMinMax()
GetCamTriggerDelay()
SetCamTriggerDelay()
ExecuteCamSoftwareTrigger()対 象 カ メ ラ レ ジ ス タ
SequentialShutterEnable
SequentialShutterTerminateAt_Min and Max
SeauentialShutterTerminateAt
SequentialShutterSequenceTable_Len
SequentialShutterSequenceTableVMin and VMax
SequentialShutterSequenceTable
UserSetSelector
UsersetCommand
TriggerMode
TriggerSequence
TriggerSource
TriggerAdditionalParameter
TriggerDelay_Raw
TriggerDelay_Div
TriggerSoftware*2: QuickSave 用関数は PkgVer2.1.0.1 以降の TeliiCamSDK で追加されました。PkgVer2.0.1.1 以
前で QuickSave コマンドを使用する場合は、UserSetSelector レジスタに書き込み先 UserSet
メモリインデックスを書いてから UserSetCommand レジスタに 120 を書いてください。レジ
スタへの値書き込みには Cam_WriteReg()関数を使用してください。
QuickSave コマンドはこの最近の世代のカメラで使用可能です。

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

トリガ

シーケンシャルシャッタ【CameraControl クラス】 (.NET framework)
メ ソ ッ ド対 象 カ メ ラ レ ジ ス タ

CameraControl.GetSequentialShutterEnable()
SequentialShutterEnable
CameraControl.SetSequentialShutterEnable()
CameraControl.GetSequentialShutterTerminateAtMinMax() SequentialShutterTerminateAt_Min and Max
CameraControl.GetSequentialShutterTerminateAt()
SeauentialShutterTerminateAt
CameraControl.SetSequentialShutterTerminateAt()
CameraControl.GetSequentialShutterIndexMinMax
SequentialShutterSequenceTable_Len
CameraControl.GetSequentialShutterEntryMinMax()
SequentialShutterSequenceTableVMin, VMax
CameraControl.GetSequentialShutterEntry()
SequentialShutterSequenceTable
CameraControl.SetSequentialShutterEntry()
CameraControl.ExecuteUserSetLoad()
UserSetSelector
UserSetCommand
CameraControl.ExecuteUserSetSave()
CameraControl.ExecuteUserSetQuickSave()*3
CameraControl.GetTriggerMode()
TriggerMode
CameraControl.SetTriggerMode()
CameraControl.GetTriggerSequence()
TriggerSequence
CameraControl.SetTriggerSequence()
CameraControl.GetTriggerSource()
TriggerSource
CameraControl.SetTriggerSource()
CameraControl.GetTriggerAdditionalParameterMinMax()
CameraControl.GetTriggerAdditionalParameter()
TriggerAdditionalParameter
CameraControl.SetTriggerAdditionalParameter()CameraControl.GetTriggerDelayMinMax()
CameraControl.GetTriggerDelay()
TriggerDelay
CameraControl.SetTriggerDelay()
CameraControl.ExecuteSoftwareTrigger()
TriggerSoftware*3: QuickSave 用関数は PkgVer2.1.0.1 以降の TeliiCamSDK で追加されました。PkgVer2.0.1.1 以
前で QuickSave コマンドを使用する場合は、UserSetSelector レジスタに書き込み先 UserSet
メモリインデックスを書いてから UserSetCommand レジスタに 120 を書いてください。レジ
スタへの値書き込みには CameraDevice.WriteRegister()メソッドを使用してください。
QuickSave コマンドはこの最近の世代のカメラで使用可能です。

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

“SequentialShutterEnable”
Enumeration(XmlFeatures::XF_ID_SEQ_SHUTTER_ENABLE)“SequentialShutterTerminateAtMin”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_TRMNT_AT_MIN)“SequentialShutterTerminateAtMax”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_TRMNT_AT_MAX)“SequentialShutterTerminateAt”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_TRMNT_AT)“SequentialShutterIndex”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_SHUTER_INDEX)“SequentialShutterEntry”
Integer(XmlFeatures::XF_ID_SEQ_SHUTTER_SHUTTER_ENTRY)“UserSetSelector”
Enumeration(XmlFeatures::XF_ID_USERSET_SELECTOR)

UserSetシーケンシャルシャッタ【GenICam 関数および GenApiNode クラスで使用するノード】
列挙型値
ノード名
ノード型

トリガ

“UserSetLoad”(XmlFeatures::XF_ID_USERSET_LOAD)“UserSetSave”(XmlFeatures::XF_ID_USERSET_SAVE)“UserSetQuickSave”*4“TriggerMode”(XmlFeatures::XF_ID_TRIGGER_MODE)“TriggerSequence”(XmlFeatures::XF_ID_TRIGGER_SEQUENCE)“TriggerSource”(XmlFeatures::XF_ID_TRIGGER_SOURCE)“TriggerAdditionalParameter”“TriggerDelay”(XmlFeatures::XF_ID_TRIGGER_DELAY)“TriggerSiftware”(XmlFeatures::XF_ID_TRIGGER_SOFTWARE)

Command

“On”
“Off”

対象カメラレジスタ
SequentialShutterEnable
SequentialShutterTerminateAt_Min
SequentialShutterTerminateAt_Max
SequentialShutterTerminateAt

SequentialShutterSequenceTable“Default”“UserSet1”…..
“UserSet15”

CommandCommand
Enumeration“On”
TriggerMode“Off”
Enumeration “TriggerSequence0” TriggerSequence“TriggerSequence1”“TriggerSequence6”
Enumeration“Line0”
TriggerSource“Software”
Integer
TriggerAdditionalParameter
Float
TriggerDelayRaw
TriggerDelayDiv
Command
TriggerSoftware*4: このノードは最近の世代のカメラで使用可能です。

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

3. シーケンシャルシャッタを使用した撮像処理
3.1. UserSet メモリへのカメラ設定の保存
シーケンシャルシャッタのシーケンスで使用するカメラ設定は、撮像を開始する前に UserSet メモ
リに書き込んでおく必要があります。
UserSet メモリはフラッシュメモリで構成されているため、データの書き込みに 700msec 近く時間がかかる場合があります。
カメラ制御関数 ExecuteCamUserSetSave()は、カメラに UserSet の書き込みを指示した後に
UserSet の書き込みが完了したことを確認してから処理をアプリケーションに戻します。フラッシ
ュメモリの書き込み完了を意識することなくプログラムを記述いただいてかまいません。
GenICam 関数の GenAPI_CmdExecute()または Nd_CmdExecute()を使用して UserSet の書き込みを指示した場合は、フラッシュメモリの書き込み完了を待つことなく処理がアプリケーションに戻ります。フラッシュメモリの書き込みが完了したことを確認するには GenAPI_GetCmdIsDone()または Nd_GetCmdIsDone()をお使いください。(GenAPI_CmdExecute()と GenAPI_GetCmdIsDone()は PkgVer3.0.0.1 以降の TeliCamSDK で使用できる関数です。)
UserSetCommand レジスタに Load コマンド値を直接書き込むことにより UserSet の書き込みを指示することもできます。この場合、フラッシュメモリへの書き込みが完了するとレジスタ値がDone(0)になります。
フラッシュメモリの書き込み完了を待たずに次の UserSet 用のパラメータの変更作業を開始し、UserSet の書き込みを指示した場合には UserSet に保存されたパラメータが意図したものとは異なる値になる場合がありますので注意してください。
最近の世代のカメラでは カメラ設定を RAM 上に保存する QuickSave コマンド(0x0078)が使用可
能になっています。
シーケンシャルシャッタ動作では UserSet メモリ内の画像オフセット設定はロードされますが、画
像サイズ設定はロードされないことに注意してください。シーケンシャルシャッタ動作では撮像開始時点の画像サイズ設定が各シーケンスの画像オフセット設定との組み合わせで使用されます。各
シーケンスの画像オフセット設定との組み合わせで不整合が発生するような画像サイズは設定しないようにしてください。
カメラパラメータを UserSet メモリに書き込むコード例を次ページに示します。この例ではエラー処理は省略しています。

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.
======================== コード例 =======================================#include “TeliCamAPI.h”#include “RegisterMap_BU.h”#define QuickSave 120
CAM_API_STATUS
uiSts;
CAM_HANDLE
hCam;
int32_t
iTmp;. . . . . . . . . . .
// UserSet1 へのカメラ設定保存//
露光時間を 10msec に設定
uiSts = SetCamExposureTime(hCam, 0.01);. . . . . . . . . . .
// 現状のカメラ設定を UserSet1 に保存。
uiSts = ExecuteCamUserSetSave(hCam, CAM_USER_SET_SELECTOR_USER_SET1);//// QuickSave コマンドを使用する場合//// UserSet1 の選択.
// iTmp = 1;// uiSts = CAM_WriteReg(hCam, RegMapBU::ADR_USET_SEL_I, 1, &iTmp);//// QuickSave コマンドの書き込み// iTmp = QuickSave;// uiSts = CAM_WriteReg(hCam, RegMapBU::ADR_USET_USERSET_CMD_I, 1, &iTmp);// UserSet2 へのカメラ設定保存//
露光時間を 20msec に設定
uiSts = SetCamExposureTime(hCam, 0.02);. . . . . . . . . . .
// 現状のカメラ設定を UserSet2 に保存。
uiSts = ExecuteCamUserSetSave(hCam, CAM_USER_SET_SELECTOR_USER_SET2);// UserSet4 へのカメラ設定保存//
露光時間を 2msec に設定
uiSts = SetCamExposureTime(hCam, 0.002);. . . . . . . . . . .
// 現状のカメラ設定を UserSet4 に保存。
uiSts = ExecuteCamUserSetSave(hCam, CAM_USER_SET_SELECTOR_USER_SET4);======================== コード例終了 =====================================

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

3.2. 画像取得開始（シーケンシャルシャッタパラメータの設定）
画像取得開始に先立ち、シーケンシャルシャッタの設定を行う必要があります。
シーケンシャルシャッタとソフトウェアバルクトリガモードの設定を行うコード例を以下に示します。この例ではエラー処理は省略しています。
======================== コード例 =======================================#include “TeliCamAPI.h”#include “RegisterMap_BU.h”
CAM_API_STATUS
uiSts;
CAM_HANDLE
hCam;
uint32_t
uiIndex;uint32_t
uiUserSetIndex;. . . . . . . . . . .
// シーケンシャルシャッタモードの設定//
シーケンシャルシャッタの有効化
uiSts = SetCamSequentialShutterEnable(hCam, TRUE);//
シーケンシャルシャッタのシーケンス長を 3 に設定
uiSts = SetCamSequentialShutterTerminateAt(hCam, 3);//
シーケンシャルシャッタテーブルの設定.
//
シーケンスインデックス１では UserSet1 を使用。(シーケンスインデックスは１から加算開始)
uiIndex= 1;
uiUserSetIndex= 1;
uiSts = SetCamSequentialShutterEntry(hCam, uiIndex, uiUserSetIndex);//
シーケンスインデックス 2 では UserSet4 を使用。
uiIndex= 2;
uiUserSetIndex= 4;
uiSts = SetCamSequentialShutterEntry(hCam, uiIndex, uiUserSetIndex);//
シーケンスインデックス 3 では UserSet2 を使用。
uiIndex= 3;
uiUserSetIndex= 2;
uiSts = SetCamSequentialShutterEntry(hCam, uiIndex, uiUserSetIndex);// ソフトウェアバルクトリガモードの設定// ランダムトリガシャッタの有効化
uiSts = SetCamTriggerMode(hCam, TRUE);// TrigggerSequence6 (バルクモード)の設定
uiSts = SetCamTriggerSequence(hCam, CAM_TRIGGER_SEQUENCE6);// ソフトウェアトリガをトリガ信号源に設定.
uiSts = SetCamTriggerSource(hCam, CAM_TRIGGER_SOFTWARE);// 画像取得開始. . . . . . . . . . .

======================== コード例終了 =====================================

3.3. 画像取得
シーケンシャルシャッタモードでの画像取得の手順は通常の画像取得シーケンスとまったく同じです。通常の画像取得コードがシーケンシャルシャッタモードでそのまま使用できます。
受信した画像データからその画像のシーケンシャルシャッタシーケンスインデックスを得ることはできません。各シーケンスで異なる画像オフセットを使用しているときは CAM_IMAGE_INFO 構
造体内の画像オフセットからシーケンスインデックスを得ることができます。
将来機種ではシーケンスインデックスをチャンクデータとして画像と一緒に送信することも可能になる予定です。

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

3.4. シーケンシャルシャッタモードの解除
シーケンシャルシャッタモードを解除するコード例を以下に示します。シーケンシャルシャッタ関
連レジスタの値を編集する前に必ず画像取得を停止させておいてください。
この例ではエラー処理は省略しています。
======================== コード例 =======================================#include “TeliCamAPI.h”#include “RegisterMap_BU.h”
CAM_API_STATUS
uiSts;
CAM_HANDLE
hCam;
uint32_t
uiIndex;uint32_t
uiUserSetIndex;. . . . . . . . . . .
// 画像取得の停止. . . . . . . . . . .
// シーケンシャルシャッターモードの解除。
uiSts = SetCamSequentialShutterEnable(hCam, FALSE);======================== コード例終了 =====================================End of document in Japanese

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp

FAQ How to use Sequential Shutter.

4. Others
4.1. Revision History
Date
2016/07/18
2018/11/14

Version
1.0.0
1.0.1

Description
Created the initial version
 Corrected ‘Done’ value of UserSetCCommand register.
 Added description about waiting completion of flash memory writing action
in section 3.1.

4.2. Disclaimer
The disclaimer of this document including example code is described in “License Agreement
TeliCamSDK Eng.pdf” in TeliCamSDK installation folder.
Make sure to read this Agreement carefully before using it.
Refer to TeliCamSDK installation folder/Documents/License folder

Copyright © 2016-2018 TOSHIBA TELI CORPORATION, All rights reserved.

#5400-0439

www.toshiba-teli.co.jp