Timer#
该功能的使用#
The implementation of this feature varies depending on the camera:
ace 2, boost R, dart M/R, and racer 2 Cameras#
运作原理#
有两个计时器可用:计时器 1 和计时器 2。
计时器的工作方式如下:
- 发生启动内部计时器的触发源事件。
- 延迟开始到期。
- arm 延迟开始到期。
- 延迟到期后,计时器输出信号将变为高电平并在您配置的持续时间内保持高电平。
- 持续时间到期时,定时器输出信号变为低电平。
- arm 延迟到期后,相机可以接收下一个触发源事件。
配置计时器#
要配置计时器:
- 设置
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
.
启动计时器#
要启动计时器,请执行以下操作:
- 设置
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
. - 如果适用,请设置
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
.
重置计时器#
To reset a timer, execute the TimerReset
command.
The timer's status changes from TimerActive
to TimerTriggerWait
.
现在,无论 arm 延迟设置如何,都可以立即重启计时器。
获取计时器状态#
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 相机#
运作原理#
一个计时器可用,即 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.
信息
在部分相机机型上,您可能必须延长计时器最长持续时间并增大计时器延迟值。
增加最大计时器持续时间和延迟#
在 some camera models, the TimerDuration
and TimerDelay
parameters are limited to a default maximum value of 4 095.
要延长这些型号的计时器最长持续时间:
- 将所需的计时器持续时间除以 4095,然后将结果四舍五入为最接近的整数。
示例:假设您要将计时器持续时间设置为 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
.
要增加这些型号的计时器最大延迟值:
- 将所需的计时器延迟除以 4095,并将结果四舍五入为最接近的整数。
示例:假设您要将计时器延迟设置为 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.
详情#
相机型号 | 计时器持续时间和延迟的默认最大值 |
---|---|
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 |
a2A3536-9gcBAS | 21 474 836.47 |
a2A3536-9gcPRO | 21 474 836.47 |
a2A3536-9gmBAS | 21 474 836.47 |
a2A3536-9gmPRO | 21 474 836.47 |
a2A3536-31ucBAS | 21 472 152.45 |
a2A3536-31ucPRO | 21 472 152.45 |
a2A3536-31umBAS | 21 472 152.45 |
a2A3536-31umPRO | 21 472 152.45 |
a2A3536-42g5cBAS | 21 474 836.47 |
a2A3536-42g5mBAS | 21 474 836.47 |
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 |
a2A5060-4gcBAS | 16 777 215 |
a2A5060-4gmBAS | 16 777 215 |
a2A5060-15ucBAS | 16 777 215 |
a2A5060-15umBAS | 16 777 215 |
a2A5060-21g5cBAS | 16 777 215 |
a2A5060-21g5mBAS | 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 |
bo2448-250cm | 16 777 215 |
boA2832-190cc | 16 777 215 |
bo2832-190cm | 16 777 215 |
boA4096-93cc | 16 777 215 |
boA4096-93cm | 16 777 215 |
boA4096-180cc | 16 777 215 |
bo4096-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 |
dmA3536-9gc | 21 474 836.47 |
dmA3536-9gm | 21 474 836.47 |
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 轻松设置参数。