Timer#
機能を使用する#
The implementation of this feature varies by camera series:
ace 2, boost R, dart M/R, and racer 2 Cameras#
仕組み#
Timer 1 and Timer 2の2つのタイマーを使用できます。
タイマーの仕組みは次のとおりです。
- 内部タイマーを開始するトリガーソースイベントが発生します。
- 遅延が期限切れになり始めます。
- アームの遅延が期限切れになり始めます。
- 遅延が期限切れになると、タイマー出力信号は高になり、設定した持続時間の間は高に維持されます。
- 持続時間が経過すると、タイマー出力信号は低になります。
- アームの遅延時間が経過すると、カメラは次のトリガーソースイベントを受信できます。
Timerの設定#
タイマーを設定するには、次の手順に従います。
- パラメーターを
TimerSelector
parameter to the desired timer, e.g.,Timer1
. - パラメーターを
TimerDuration
parameter to the desired timer duration in microseconds. - パラメーターを
TimerDelay
parameter to the desired timer delay in microseconds. - パラメーターを
TimerTriggerArmDelay
parameter to the desired arm delay in microseconds. - パラメーターを
LineSelector
parameter to the output line that you want to use for the timer signal.
If the line is a GPIO line, the line must be configured as output. - If you selected Timer 1 in step 1, set the
LineSource
parameter toTimer1Active
. - If you selected Timer 2 in step 1, set the
LineSource
parameter toTimer2Active
.
Starting a Timer#
タイマーを開始するには次の手順に従います。
- パラメーターを
TimerSelector
parameter to the desired timer, e.g.,Timer1
. - パラメーターを
TimerTriggerSource
parameter to the source that you want to use to start the timer, e.g.,Line2
. - If applicable, set the
TimerTriggerActivation
パラメーターを次のいずれかの値に設定します。RisingEdge
(default): The timer starts when the signal rises, i.e., when the signal status changes from low to high.FallingEdge
: The timer starts when the signal falls, i.e., when the signal status changes from high to low.AnyEdge
: The timer starts when the signal falls or rises.LevelHigh
: The timer starts when the signal is high. When the signal changes to low, the timer stops and must be started again.LevelLow
: The timer starts when the signal is low. When the signal changes to high, the timer stops and must be started again.
- 選択したタイマートリガーソースで信号を送信してタイマーを開始します。
When started, the timer's status immediately changes from TimerTriggerWait
to TimerActive
, regardless of the delay set. However, the timer output signal will only go high after the delay has expired.
情報
イメージ TimerTriggerActivation
parameter is only available for timer trigger sources that can be high (1) or low (0), i.e., an I/O signal or an "Active" signal like ExposureActive
.
Resetting a Timer#
To reset a timer, execute the TimerReset
command.
The timer's status changes from TimerActive
to TimerTriggerWait
.
これで、設定されているアーム遅延に関係なく、タイマーをすぐに再起動できるようになりました。
Getting the Status of a Timer#
To get the current status of a timer, get the value of the TimerStatus
parameter. This parameter is read-only.
可能な値は次のとおりです。
TimerTriggerWait
: The timer is waiting to be started.TimerActive
: The timer has been started. A timer immediately switches to this state when the trigger source event occurs, regardless of the delay set. If an arm delay is set, the timer remains in theTimerActive
state until the arm delay has expired.TimerIdle
: The timer is idle. A timer is in this state whenever theTimerTriggerSource
parameter is set oOff
, i.e., the timer can't be started.
ace Classic/U/Lカメラ#
仕組み#
1つのタイマーが使用できます:Timer 1。タイマーの動作は次のとおりです。
- 内部タイマーを開始するトリガーソースイベント(Exposure Startなど)が発生します。
- 遅延が期限切れになり始めます。
- 遅延が期限切れになると、タイマー出力信号は高になり、設定した持続時間の間は高に維持されます。
- 信号の持続時間が経過すると、タイマー出力信号は低になります。
Timerの設定#
- パラメーターを
LineSelector
parameter to the output line that you want to use for the timer signal.
If the line is a GPIO line, the line must be configured as output. - パラメーターを
LineSource
parameter toTimerActive
. -
パラメーターを
TimerTriggerSource
parameter to one of the available trigger source events:ExposureStart
: The timer starts when the exposure starts.FlashWindowStart
: The timer starts when the flash window opens.
-
パラメーターを
TimerDuration
parameter to the desired timer duration in microseconds. - パラメーターを
TimerDelay
parameter to the desired timer delay in microseconds.
情報
一部のカメラモデルでは、最大タイマー持続時間とタイマー遅延の値を増やす必要があります。
Increasing the Maximum Timer Duration and Delay#
その some camera models, the TimerDuration
and TimerDelay
parameters are limited to a default maximum value of 4 095.
これらのモデルで最大タイマー持続時間を延ばすには、次の手順に従います。
- 希望するタイマー持続時間を4 095で割り、結果を最も近い整数に切り上げます。
例:タイマーの持続時間を50,000µsに設定するとします。50000/4095 = 12.21 ≈ 13。 - パラメーターを
TimerDurationTimebaseAbs
parameter to the value determined in step 1, in this case 13. - パラメーターを
TimerDuration
parameter to the desired timer duration, in this case 50 000.
Internally, the camera calculates the timer duration as follows:TimerDurationRaw
xTimerDurationTimebaseAbs
=TimerDurationAbs
.
これらのモデルで最大タイマー遅延を延ばすには、次の手順に従います。
- 希望するタイマー遅延を4 095で割り、結果を最も近い整数に切り上げます。
例:タイマー遅延を6,000µsに設定するとします。6000/4095 = 1.47 ≈ 2 - パラメーターを
TimerDelayTimebaseAbs
parameter to the value determined in step 1, in this case 2. - パラメーターを
TimerDelay
parameter to the desired timer delay, in this case 6 000.
Internally, the camera calculates the timer delay as follows:TimerDelayRaw
xTimerDelayTimebaseAbs
=TimerDelayAbs
.
情報
Depending on the TimerDurationTimebaseAbs
and TimerDelayTimebaseAbs
parameter values, the camera may not be able to achieve the exact timer duration and delay desired.
For example, if you set the TimerDurationTimebaseAbs
parameter to 13, the camera can only achieve timer durations that are a multiple of 13. Therefore, if you set the TimerDuration
parameter to 50 000 and the TimerDurationTimebaseAbs
parameter to 13, the camera will automatically change the setting to the nearest possible value (e.g., 49 998, which is the nearest multiple of 13).
追加パラメーター#
TimerSelector
: Sets which timer to configure. Because Basler ace Classic/U/L cameras support only one timer, this parameter is preset and can't be changed.
特性#
カメラモデル | Default Maximum Value for Timer Duration and Delay |
---|---|
a2A640-240gmSWIR | 16 777 215 |
a2A640-240umSWIR | 16 777 215 |
a2A1280-80gmSWIR | 16 777 215 |
a2A1280-125umSWIR | 16 777 215 |
a2A1920-51gcBAS | 16 777 215 |
a2A1920-51gcPRO | 16 777 215 |
a2A1920-51gmBAS | 16 777 215 |
a2A1920-51gmPRO | 16 777 215 |
a2A1920-160ucBAS | 16 777 215 |
a2A1920-160ucPRO | 16 777 215 |
a2A1920-160umBAS | 16 777 215 |
a2A1920-160umPRO | 16 777 215 |
a2A1920-165g5cBAS | 16 777 215 |
a2A1920-165g5mBAS | 16 777 215 |
a2A2048-35gmSWIR | 16 777 215 |
a2A2048-110umSWIR | 16 777 215 |
a2A2440-98g5cBAS | 16 777 215 |
a2A2440-98g5mBAS | 16 777 215 |
a2A2448-23gcBAS | 16 777 215 |
a2A2448-23gcPRO | 16 777 215 |
a2A2448-23gmBAS | 16 777 215 |
a2A2448-23gmPRO | 16 777 215 |
a2A2448-75ucBAS | 16 777 215 |
a2A2448-75ucPRO | 16 777 215 |
a2A2448-75umBAS | 16 777 215 |
a2A2448-75umPRO | 16 777 215 |
a2A2448-105g5cBAS | 16 777 215 |
a2A2448-105g5mBAS | 16 777 215 |
a2A2448-120cc | 16 777 215 |
a2A2448-120cm | 16 777 215 |
a2A2448-210cc | 16 777 215 |
a2A2448-210cm | 16 777 215 |
a2A2560-20gmSWIR | 16 777 215 |
a2A2560-70umSWIR | 16 777 215 |
a2A2590-22gcBAS | 16 777 215 |
a2A2590-22gcPRO | 16 777 215 |
a2A2590-22gmBAS | 16 777 215 |
a2A2590-22gmPRO | 16 777 215 |
a2A2590-60ucBAS | 16 777 215 |
a2A2590-60ucPRO | 16 777 215 |
a2A2590-60umBAS | 16 777 215 |
a2A2590-60umPRO | 16 777 215 |
a2A2600-20gcBAS | 16 777 215 |
a2A2600-20gcPRO | 16 777 215 |
a2A2600-20gmBAS | 16 777 215 |
a2A2600-20gmPRO | 16 777 215 |
a2A2600-64ucBAS | 16 777 215 |
a2A2600-64ucPRO | 16 777 215 |
a2A2600-64umBAS | 16 777 215 |
a2A2600-64umPRO | 16 777 215 |
a2A2840-14gcBAS | 16 777 215 |
a2A2840-14gcPRO | 16 777 215 |
a2A2840-14gmBAS | 16 777 215 |
a2A2840-14gmPRO | 16 777 215 |
a2A2840-14gmUV | 16 777 215 |
a2A2840-48ucBAS | 16 777 215 |
a2A2840-48ucPRO | 16 777 215 |
a2A2840-48umBAS | 16 777 215 |
a2A2840-48umPRO | 16 777 215 |
a2A2840-48umUV | 16 777 215 |
a2A2840-67g5cBAS | 16 777 215 |
a2A2840-67g5mBAS | 16 777 215 |
a2A2840-67g5mUV | 16 777 215 |
a2A2840-86cc | 16 777 215 |
a2A2840-86cm | 16 777 215 |
a2A3840-13gcBAS | 16 777 215 |
a2A3840-13gcPRO | 16 777 215 |
a2A3840-13gmBAS | 16 777 215 |
a2A3840-13gmPRO | 16 777 215 |
a2A3840-45ucBAS | 16 777 215 |
a2A3840-45ucPRO | 16 777 215 |
a2A3840-45umBAS | 16 777 215 |
a2A3840-45umPRO | 16 777 215 |
a2A4096-9gcBAS | 16 777 215 |
a2A4096-9gcPRO | 16 777 215 |
a2A4096-9gmBAS | 16 777 215 |
a2A4096-9gmPRO | 16 777 215 |
a2A4096-30ucBAS | 16 777 215 |
a2A4096-30ucPRO | 16 777 215 |
a2A4096-30umBAS | 16 777 215 |
a2A4096-30umPRO | 16 777 215 |
a2A4096-44g5cBAS | 16 777 215 |
a2A4096-44g5mBAS | 16 777 215 |
a2A4096-67cc | 16 777 215 |
a2A4096-67cm | 16 777 215 |
a2A4200-12gcBAS | 16 777 215 |
a2A4200-12gcPRO | 16 777 215 |
a2A4200-12gmBAS | 16 777 215 |
a2A4200-12gmPRO | 16 777 215 |
a2A4200-40ucBAS | 16 777 215 |
a2A4200-40ucPRO | 16 777 215 |
a2A4200-40umBAS | 16 777 215 |
a2A4200-40umPRO | 16 777 215 |
a2A4504-5gcBAS | 16 777 215 |
a2A4504-5gcPRO | 16 777 215 |
a2A4504-5gmBAS | 16 777 215 |
a2A4504-5gmPRO | 16 777 215 |
a2A4504-18ucBAS | 16 777 215 |
a2A4504-18ucPRO | 16 777 215 |
a2A4504-18umBAS | 16 777 215 |
a2A4504-18umPRO | 16 777 215 |
a2A4504-27g5cBAS | 16 777 215 |
a2A4504-27g5mBAS | 16 777 215 |
a2A4504-42cc | 16 777 215 |
a2A4504-42cm | 16 777 215 |
a2A4508-6gcBAS | 16 777 215 |
a2A4508-6gcPRO | 16 777 215 |
a2A4508-6gmBAS | 16 777 215 |
a2A4508-6gmPRO | 16 777 215 |
a2A4508-20ucBAS | 16 777 215 |
a2A4508-20ucPRO | 16 777 215 |
a2A4508-20umBAS | 16 777 215 |
a2A4508-20umPRO | 16 777 215 |
a2A5320-7gcBAS | 16 777 215 |
a2A5320-7gcPRO | 16 777 215 |
a2A5320-7gmBAS | 16 777 215 |
a2A5320-7gmPRO | 16 777 215 |
a2A5320-23ucBAS | 16 777 215 |
a2A5320-23ucPRO | 16 777 215 |
a2A5320-23umBAS | 16 777 215 |
a2A5320-23umPRO | 16 777 215 |
a2A5320-34g5cBAS | 16 777 215 |
a2A5320-34g5mBAS | 16 777 215 |
a2A5320-52cc | 16 777 215 |
a2A5320-52cm | 16 777 215 |
a2A5328-4gcBAS | 16 777 215 |
a2A5328-4gcPRO | 16 777 215 |
a2A5328-4gmBAS | 16 777 215 |
a2A5328-4gmPRO | 16 777 215 |
a2A5328-15ucBAS | 16 777 215 |
a2A5328-15ucPRO | 16 777 215 |
a2A5328-15umBAS | 16 777 215 |
a2A5328-15umPRO | 16 777 215 |
a2A5328-22g5cBAS | 16 777 215 |
a2A5328-22g5mBAS | 16 777 215 |
a2A5328-35cc | 16 777 215 |
a2A5328-35cm | 16 777 215 |
acA640-121gm | 16 777 215 |
acA640-300gc | 16 777 215 |
acA640-300gm | 16 777 215 |
acA640-750uc | 16 777 215 |
acA640-750um | 16 777 215 |
acA720-290gc | 16 777 215 |
acA720-290gm | 16 777 215 |
acA720-520uc | 16 777 215 |
acA720-520um | 16 777 215 |
acA800-200gc | 16 777 215 |
acA800-200gm | 16 777 215 |
acA800-510uc | 16 777 215 |
acA800-510um | 16 777 215 |
acA1280-60gc | 4 095 |
acA1280-60gm | 4 095 |
acA1300-60gc | 4 095 |
acA1300-60gm | 4 095 |
acA1300-60gmNIR | 4 095 |
acA1300-75gc | 16 777 215 |
acA1300-75gm | 16 777 215 |
acA1300-200uc | 16 777 215 |
acA1300-200um | 16 777 215 |
acA1440-73gc | 16 777 215 |
acA1440-73gm | 16 777 215 |
acA1440-220uc | 16 777 215 |
acA1440-220um | 16 777 215 |
acA1600-20gc | 4 095 |
acA1600-20uc | 16 777 215 |
acA1600-60gc | 4 095 |
acA1600-60gm | 4 095 |
acA1920-25gc | 4 095 |
acA1920-25gm | 4 095 |
acA1920-25uc | 16 777 215 |
acA1920-25um | 16 777 215 |
acA1920-40gc | 16 777 215 |
acA1920-40gm | 16 777 215 |
acA1920-40uc | 16 777 215 |
acA1920-40ucMED | 16 777 215 |
acA1920-40um | 16 777 215 |
acA1920-40umMED | 16 777 215 |
acA1920-48gc | 16 777 215 |
acA1920-48gm | 16 777 215 |
acA1920-50gc | 16 777 215 |
acA1920-50gm | 16 777 215 |
acA1920-150uc | 16 777 215 |
acA1920-150um | 16 777 215 |
acA1920-155uc | 16 777 215 |
acA1920-155ucMED | 16 777 215 |
acA1920-155um | 16 777 215 |
acA1920-155umMED | 16 777 215 |
acA2000-50gc | 4 095 |
acA2000-50gm | 4 095 |
acA2000-165uc | 16 777 215 |
acA2000-165um | 16 777 215 |
acA2040-25gc | 4 095 |
acA2040-25gm | 4 095 |
acA2040-25gmNIR | 4 095 |
acA2040-35gc | 16 777 215 |
acA2040-35gm | 16 777 215 |
acA2040-55uc | 16 777 215 |
acA2040-55um | 16 777 215 |
acA2040-90uc | 16 777 215 |
acA2040-90um | 16 777 215 |
acA2040-90umNIR | 16 777 215 |
acA2040-120uc | 16 777 215 |
acA2040-120um | 16 777 215 |
acA2440-20gc | 16 777 215 |
acA2440-20gm | 16 777 215 |
acA2440-35uc | 16 777 215 |
acA2440-35ucMED | 16 777 215 |
acA2440-35um | 16 777 215 |
acA2440-35umMED | 16 777 215 |
acA2440-75uc | 16 777 215 |
acA2440-75ucMED | 16 777 215 |
acA2440-75um | 16 777 215 |
acA2440-75umMED | 16 777 215 |
acA2500-14gc | 4 095 |
acA2500-14gm | 4 095 |
acA2500-14uc | 16 777 215 |
acA2500-14um | 16 777 215 |
acA2500-20gc | 16 777 215 |
acA2500-20gcMED | 16 777 215 |
acA2500-20gm | 16 777 215 |
acA2500-20gmMED | 16 777 215 |
acA2500-60uc | 16 777 215 |
acA2500-60um | 16 777 215 |
acA3088-16gc | 16 777 215 |
acA3088-16gm | 16 777 215 |
acA3088-57uc | 16 777 215 |
acA3088-57ucMED | 16 777 215 |
acA3088-57um | 16 777 215 |
acA3088-57umMED | 16 777 215 |
acA3800-10gc | 4 095 |
acA3800-10gm | 4 095 |
acA3800-14uc | 16 777 215 |
acA3800-14um | 16 777 215 |
acA4024-8gc | 16 777 215 |
acA4024-8gm | 16 777 215 |
acA4024-29uc | 16 777 215 |
acA4024-29um | 16 777 215 |
acA4096-11gc | 16 777 215 |
acA4096-11gm | 16 777 215 |
acA4096-30uc | 16 777 215 |
acA4096-30ucMED | 16 777 215 |
acA4096-30um | 16 777 215 |
acA4096-30umMED | 16 777 215 |
acA4096-40uc | 16 777 215 |
acA4096-40ucMED | 16 777 215 |
acA4096-40um | 16 777 215 |
acA4096-40umMED | 16 777 215 |
acA4112-8gc | 16 777 215 |
acA4112-8gm | 16 777 215 |
acA4112-20uc | 16 777 215 |
acA4112-20ucMED | 16 777 215 |
acA4112-20um | 16 777 215 |
acA4112-20umMED | 16 777 215 |
acA4112-30uc | 16 777 215 |
acA4112-30ucMED | 16 777 215 |
acA4112-30um | 16 777 215 |
acA4112-30umMED | 16 777 215 |
acA5472-5gc | 16 777 215 |
acA5472-5gm | 16 777 215 |
acA5472-17uc | 16 777 215 |
acA5472-17ucMED | 16 777 215 |
acA5472-17um | 16 777 215 |
acA5472-17umMED | 16 777 215 |
boA1936-400cc | 16 777 215 |
boA1936-400cm | 16 777 215 |
boA2448-250cc | 16 777 215 |
boA2448-250cm | 16 777 215 |
boA2832-190cc | 16 777 215 |
boA2832-190cm | 16 777 215 |
boA4096-93cc | 16 777 215 |
boA4096-93cm | 16 777 215 |
boA4096-180cc | 16 777 215 |
boA4096-180cm | 16 777 215 |
boA4112-68cc | 16 777 215 |
boA4112-68cm | 16 777 215 |
boA4500-45cc | 16 777 215 |
boA4500-45cm | 16 777 215 |
boA4504-100cc | 16 777 215 |
boA4504-100cm | 16 777 215 |
boA5120-150cc | Timer機能はサポートされていません |
boA5120-150cm | Timer機能はサポートされていません |
boA5120-230cc | Timer機能はサポートされていません |
boA5120-230cm | Timer機能はサポートされていません |
boA5320-150cc | 16 777 215 |
boA5320-150cm | 16 777 215 |
boA5328-100cc | 16 777 215 |
boA5328-100cm | 16 777 215 |
boA6500-36cc | 16 777 215 |
boA6500-36cm | 16 777 215 |
boA8100-16cc | 16 777 215 |
boA8100-16cm | 16 777 215 |
boA9344-30cc | Timer機能はサポートされていません |
boA9344-30cm | Timer機能はサポートされていません |
boA9344-70cc | Timer機能はサポートされていません |
boA9344-70cm | Timer機能はサポートされていません |
boA13440-17cm | 16 777 215 |
daA720-520uc | 16 777 215 |
daA720-520um | 16 777 215 |
daA1280-54uc | Timer機能はサポートされていません |
daA1280-54um | Timer機能はサポートされていません |
daA1440-220uc | 16 777 215 |
daA1440-220um | 16 777 215 |
daA1600-60uc | Timer機能はサポートされていません |
daA1600-60um | Timer機能はサポートされていません |
daA1920-15um | Timer機能はサポートされていません |
daA1920-30uc | Timer機能はサポートされていません |
daA1920-30um | Timer機能はサポートされていません |
daA1920-160uc | 16 777 215 |
daA1920-160um | 16 777 215 |
daA2448-70uc | 16 777 215 |
daA2448-70um | 16 777 215 |
daA2500-14uc | Timer機能はサポートされていません |
daA2500-14um | Timer機能はサポートされていません |
daA3840-45uc | 16 777 215 |
daA3840-45um | 16 777 215 |
dmA720-290gc | 16 777 215 |
dmA720-290gm | 16 777 215 |
dmA1440-73gc | 16 777 215 |
dmA1440-73gm | 16 777 215 |
dmA1920-51gc | 16 777 215 |
dmA1920-51gm | 16 777 215 |
puA1280-54uc | Timer機能はサポートされていません |
puA1280-54um | Timer機能はサポートされていません |
puA1600-60uc | Timer機能はサポートされていません |
puA1600-60um | Timer機能はサポートされていません |
puA1920-30uc | Timer機能はサポートされていません |
puA1920-30um | Timer機能はサポートされていません |
puA2500-14uc | Timer機能はサポートされていません |
puA2500-14um | Timer機能はサポートされていません |
r2L2048-29gc | 16 777 215 |
r2L2048-58gm | 16 777 215 |
r2L2048-62cc | 16 777 215 |
r2L2048-62g5c | 16 777 215 |
r2L2048-172cm | 16 777 215 |
r2L2048-172g5m | 16 777 215 |
r2L4096-14gc | 16 777 215 |
r2L4096-29gm | 16 777 215 |
r2L4096-42cc | 16 777 215 |
r2L4096-42g5c | 16 777 215 |
r2L4096-84cm | 16 777 215 |
r2L4096-84g5m | 16 777 215 |
r2L8192-200cm | 21 474 836.47 |
r2L16384-120cm | 21 474 836.47 |
サンプルコード#
ace 2, boost R, dart M/R, and racer 2 Cameras#
// Select Timer 1
camera.TimerSelector.SetValue(TimerSelector_Timer1);
// Set the timer duration to 1000 microseconds
camera.TimerDuration.SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.TimerDelay.SetValue(500.0);
// Set the timer trigger arm delay to 5000 microseconds
camera.TimerTriggerArmDelay.SetValue(5000.0);
// Select Line 2 and configure the line as output
camera.LineSelector.SetValue(LineSelector_Line2);
camera.LineMode.SetValue(LineMode_Output);
// Specify that the timer signal is output on Line 2
camera.LineSource.SetValue(LineSource_Timer1Active);
// Specify that the timer starts whenever a rising signal is detected on Line 1
camera.TimerTriggerSource.SetValue(TimerTriggerSource_Line1);
camera.TimerTriggerActivation.SetValue(TimerTriggerActivation_RisingEdge);
// Reset the timer
camera.TimerReset.Execute();
// Get the current status of the timer
TimerStatusEnums timerStatus = camera.TimerStatus.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select Timer 1
CEnumParameter(nodemap, "TimerSelector").SetValue("Timer1");
// Set the timer duration to 1000 microseconds
CFloatParameter(nodemap, "TimerDuration").SetValue(1000.0);
// Set the timer delay to 500 microseconds
CFloatParameter(nodemap, "TimerDelay").SetValue(500.0);
// Set the timer trigger arm delay to 5000 microseconds
CFloatParameter(nodemap, "TimerTriggerArmDelay").SetValue(5000.0);
// Select Line 2 and configure the line as output
CEnumParameter(nodemap, "LineSelector").SetValue("Line2");
CEnumParameter(nodemap, "LineMode").SetValue("Output");
// Specify that the timer signal is output on Line 2
CEnumParameter(nodemap, "LineSource").SetValue("Timer1Active");
// Specify that the timer starts whenever a rising signal is detected on Line 1
CEnumParameter(nodemap, "TimerTriggerSource").SetValue("Line1");
CEnumParameter(nodemap, "TimerTriggerActivation").SetValue("RisingEdge");
// Reset the timer
CCommandParameter(nodemap, "TimerReset").Execute();
// Get the current status of the timer
String_t timerStatus = CEnumParameter(nodemap, "TimerStatus").GetValue();
// Select Timer 1
camera.Parameters[PLCamera.TimerSelector].SetValue(PLCamera.TimerSelector.Timer1);
// Set the timer duration to 1000 microseconds
camera.Parameters[PLCamera.TimerDuration].SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.Parameters[PLCamera.TimerDelay].SetValue(500.0);
// Set the timer trigger arm delay to 5000 microseconds
camera.Parameters[PLCamera.TimerTriggerArmDelay].SetValue(5000.0);
// Select Line 2 and configure the line as output
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line2);
camera.Parameters[PLCamera.LineMode].SetValue(PLCamera.LineMode.Output);
// Specify that the timer signal is output on Line 2
camera.Parameters[PLCamera.LineSource].SetValue(PLCamera.LineSource.Timer1Active);
// Specify that the timer starts whenever a rising signal is detected on Line 1
camera.Parameters[PLCamera.TimerTriggerSource].SetValue(PLCamera.TimerTriggerSource.Line1);
camera.Parameters[PLCamera.TimerTriggerActivation].SetValue(PLCamera.TimerTriggerActivation.RisingEdge);
// Reset the timer
camera.Parameters[PLCamera.TimerReset].Execute();
// Get the current status of the timer
string timerStatus = camera.Parameters[PLCamera.TimerStatus].GetValue();
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
size_t len = 0;
char timerStatus_str[64] = {0};
/* Select Timer 1 */
errRes = PylonDeviceFeatureFromString(hdev, "TimerSelector", "Timer1");
CHECK(errRes);
/* Set the timer duration to 1000 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDuration", 1000.0);
CHECK(errRes);
/* Set the timer delay to 500 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDelay", 500.0);
CHECK(errRes);
/* Set the timer trigger arm delay to 5000 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerTriggerArmDelay", 5000.0);
CHECK(errRes);
/* Select Line 2 and configure the line as output */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line2");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "LineMode", "Output");
CHECK(errRes);
/* Specify that the timer signal is output on Line 2 */
errRes = PylonDeviceFeatureFromString(hdev, "LineSource", "Timer1Active");
CHECK(errRes);
/* Specify that the timer starts whenever a rising signal is detected on Line 1 */
errRes = PylonDeviceFeatureFromString(hdev, "TimerTriggerSource", "Line1");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "TimerTriggerActivation", "RisingEdge");
CHECK(errRes);
/* Reset the timer */
errRes = PylonDeviceExecuteCommandFeature(hdev, "TimerReset");
CHECK(errRes);
/* Get the current status of the timer */
len = sizeof(timerStatus_str);
errRes = PylonDeviceFeatureToString(hdev, "TimerStatus", timerStatus_str, &len);
CHECK(errRes);
# Select Timer 1
camera.TimerSelector.Value = "Timer1"
# Set the timer duration to 1000 microseconds
camera.TimerDuration.Value = 1000.0
# Set the timer delay to 500 microseconds
camera.TimerDelay.Value = 500.0
# Set the timer trigger arm delay to 5000 microseconds
camera.TimerTriggerArmDelay.Value = 5000.0
# Select Line 2 and configure the line as output
camera.LineSelector.Value = "Line2"
camera.LineMode.Value = "Output"
# Specify that the timer signal is output on Line 2
camera.LineSource.Value = "Timer1Active"
# Specify that the timer starts whenever a rising signal is detected on Line 1
camera.TimerTriggerSource.Value = "Line1"
camera.TimerTriggerActivation.Value = "RisingEdge"
# Reset the timer
camera.TimerReset.Execute()
# Get the current status of the timer
timerStatus = camera.TimerStatus.Value
ace Classic/U/L GigEカメラ#
// Select Line 2 (output line)
camera.LineSelector.SetValue(LineSelector_Line2);
// Specify that the timer signal is output on Line 2
camera.LineSource.SetValue(LineSource_TimerActive);
// Specify that the timer starts when exposure starts
camera.TimerTriggerSource.SetValue(TimerTriggerSource_ExposureStart);
// Set the timer duration to 1000 microseconds
camera.TimerDurationAbs.SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.TimerDelayAbs.SetValue(500.0);
INodeMap& nodemap = camera.GetNodeMap();
// Select Line 2 (output line)
CEnumParameter(nodemap, "LineSelector").SetValue("Line2");
// Specify that the timer signal is output on Line 2
CEnumParameter(nodemap, "LineSource").SetValue("TimerActive");
// Specify that the timer starts when exposure starts
CEnumParameter(nodemap, "TimerTriggerSource").SetValue("ExposureStart");
// Set the timer duration to 1000 microseconds
CFloatParameter(nodemap, "TimerDurationAbs").SetValue(1000.0);
// Set the timer delay to 500 microseconds
CFloatParameter(nodemap, "TimerDelayAbs").SetValue(500.0);
// Select Line 2 (output line)
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line2);
// Specify that the timer signal is output on Line 2
camera.Parameters[PLCamera.LineSource].SetValue(PLCamera.LineSource.TimerActive);
// Specify that the timer starts when exposure starts
camera.Parameters[PLCamera.TimerTriggerSource].SetValue(PLCamera.TimerTriggerSource.ExposureStart);
// Set the timer duration to 1000 microseconds
camera.Parameters[PLCamera.TimerDurationAbs].SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.Parameters[PLCamera.TimerDelayAbs].SetValue(500.0);
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Select Line 2 (output line) */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line2");
CHECK(errRes);
/* Specify that the timer signal is output on Line 2 */
errRes = PylonDeviceFeatureFromString(hdev, "LineSource", "TimerActive");
CHECK(errRes);
/* Specify that the timer starts when exposure starts */
errRes = PylonDeviceFeatureFromString(hdev, "TimerTriggerSource", "ExposureStart");
CHECK(errRes);
/* Set the timer duration to 1000 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDurationAbs", 1000.0);
CHECK(errRes);
/* Set the timer delay to 500 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDelayAbs", 500.0);
CHECK(errRes);
# Select Line 2 (output line)
camera.LineSelector.Value = "Line2"
# Specify that the timer signal is output on Line 2
camera.LineSource.Value = "TimerActive"
# Specify that the timer starts when exposure starts
camera.TimerTriggerSource.Value = "ExposureStart"
# Set the timer duration to 1000 microseconds
camera.TimerDurationAbs.Value = 1000.0
# Set the timer delay to 500 microseconds
camera.TimerDelayAbs.Value = 500.0
その他のカメラ#
// Select Line 2 (output line)
camera.LineSelector.SetValue(LineSelector_Line2);
// Specify that the timer signal is output on Line 2
camera.LineSource.SetValue(LineSource_Timer1Active);
// Specify that the timer starts when exposure starts
camera.TimerTriggerSource.SetValue(TimerTriggerSource_ExposureStart);
// Set the timer duration to 1000 microseconds
camera.TimerDuration.SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.TimerDelay.SetValue(500.0);
INodeMap& nodemap = camera.GetNodeMap();
// Select Line 2 (output line)
CEnumParameter(nodemap, "LineSelector").SetValue("Line2");
// Specify that the timer signal is output on Line 2
CEnumParameter(nodemap, "LineSource").SetValue("Timer1Active");
// Specify that the timer starts when exposure starts
CEnumParameter(nodemap, "TimerTriggerSource").SetValue("ExposureStart");
// Set the timer duration to 1000 microseconds
CFloatParameter(nodemap, "TimerDuration").SetValue(1000.0);
// Set the timer delay to 500 microseconds
CFloatParameter(nodemap, "TimerDelay").SetValue(500.0);
// Select Line 2 (output line)
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line2);
// Specify that the timer signal is output on Line 2
camera.Parameters[PLCamera.LineSource].SetValue(PLCamera.LineSource.Timer1Active);
// Specify that the timer starts when exposure starts
camera.Parameters[PLCamera.TimerTriggerSource].SetValue(PLCamera.TimerTriggerSource.ExposureStart);
// Set the timer duration to 1000 microseconds
camera.Parameters[PLCamera.TimerDuration].SetValue(1000.0);
// Set the timer delay to 500 microseconds
camera.Parameters[PLCamera.TimerDelay].SetValue(500.0);
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Select Line 2 (output line) */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line2");
CHECK(errRes);
/* Specify that the timer signal is output on Line 2 */
errRes = PylonDeviceFeatureFromString(hdev, "LineSource", "Timer1Active");
CHECK(errRes);
/* Specify that the timer starts when exposure starts */
errRes = PylonDeviceFeatureFromString(hdev, "TimerTriggerSource", "ExposureStart");
CHECK(errRes);
/* Set the timer duration to 1000 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDuration", 1000.0);
CHECK(errRes);
/* Set the timer delay to 500 microseconds */
errRes = PylonDeviceSetFloatFeature(hdev, "TimerDelay", 500.0);
CHECK(errRes);
# Select Line 2 (output line)
camera.LineSelector.Value = "Line2"
# Specify that the timer signal is output on Line 2
camera.LineSource.Value = "Timer1Active"
# Specify that the timer starts when exposure starts
camera.TimerTriggerSource.Value = "ExposureStart"
# Set the timer duration to 1000 microseconds
camera.TimerDuration.Value = 1000.0
# Set the timer delay to 500 microseconds
camera.TimerDelay.Value = 500.0
pylon Viewerを使用して、パラメーターを簡単に設定することもできます。