SFNC —— 采集控制(四)(中):https://developer.aliyun.com/article/1598544
(3)TriggerSoftware(触发软件)
生成内部触发器。“触发器源(TriggerSource)” 必须设置为 “软件源”(Software) 。
<Command Name="TriggerSoftware" NameSpace="Standard"> <!-- Recommended element --> <ToolTip>Generates an internal trigger.</ToolTip> <Description>Generates an internal trigger. TriggerSource must be set to Software.</Description> <DisplayName>Trigger Software</DisplayName> <Visibility>Beginner</Visibility> <ImposedAccessMode>RW</ImposedAccessMode> <Value>0</Value> <CommandValue>0</CommandValue> </Command>
(4)TriggerSource(触发器源)
指定要用作触发器源的内部信号或物理输入线。所选的触发器必须将其触发模式设置为打开。可能的值是:
Software:指定将由软件使用 TriggerSoftware 命令生成触发源。
SoftwareSignal0, SoftwareSignal1, SoftwareSignal2, …:指定触发源将是软件使用 SoftwareSignalPulse 命令生成的信号。
Line0, Line1, Line2, …:指定要使用哪个物理线(或引脚)和关联的 I/O 控制块作为触发信号的外部源。
UserOutput0, UserOutput1, UserOutput2, …:指定要使用哪个用户输出位信号作为触发器的内部源。
Counter0Start, Counter1Start, Counter2Start, …, Counter0End, Counter1End, Counter2End, …:指定使用哪个计数器信号作为触发器的内部源。
Timer0Start, Timer1Start, Timer2Start, …, Timer0End, Timer1End, Timer2End, …:指定使用哪个计时器信号作为触发器的内部源。
Encoder0, Encoder1, Encoder2, …:指定要使用哪个编码器信号作为触发器的内部源。
LogicBlock0, LogicBlock1, LogicBlock2, …:指定要使用哪个逻辑块信号作为触发器的内部源。
Action0, Action1, Action2, …:指定要使用哪个操作命令作为触发器的内部源。
LinkTrigger0, LinkTrigger1, LinkTrigger2, …:指定要使用哪个链接触发器作为触发器的源(从传输层接收)。
CC1、CC2、CC3、CC4:要使用的摄像头链接物理线和相关的 I/O 控制块的索引。这确保了在帧抓取器上和照相机上的线之间的直接映射。仅适用于照相机链接的产品。
(5)TriggerActivation(触发器激活)
指定触发器的激活模式。可能的值是:
- RisingEdge(上升沿):指定该触发器在源信号的上升边缘上被认为是有效的。
- FallingEdge:指定认为触发器对源信号的下降边缘有效。
- AnyEdge:指定该触发器对源信号的下降或上升边缘有效。
- LevelHigh:指定只要源信号高电平,触发器就被认为有效。
- LevelLow:指定只要源信号的低电平,触发器就被认为是有效的。
<Enumeration NameSpace="Standard" Name="TriggerActivation"> <ToolTip>Specifies the activation mode of the trigger.</ToolTip> <Description>Specifies the activation mode of the trigger.</Description> <DisplayName>Trigger Activation</DisplayName> <Visibility>Beginner</Visibility> <pIsImplemented>TriggerActivationInq_Bit</pIsImplemented> <pIsAvailable>Is_Trigger_Soft_NotAva</pIsAvailable> <ImposedAccessMode>RW</ImposedAccessMode> <Streamable>Yes</Streamable> <EnumEntry NameSpace="Standard" Name="RisingEdge"> <DisplayName>Rising Edge</DisplayName> <pIsAvailable>IsEdge_Ava</pIsAvailable> <Value>0</Value> </EnumEntry> <EnumEntry NameSpace="Standard" Name="FallingEdge"> <DisplayName>Falling Edge</DisplayName> <pIsAvailable>IsEdge_Ava</pIsAvailable> <Value>1</Value> </EnumEntry> <EnumEntry NameSpace="Standard" Name="LevelHigh"> <DisplayName>Level High</DisplayName> <pIsImplemented>TriggerActivationLevelHighInq_Bit</pIsImplemented> <pIsAvailable>IsLevel_Ava</pIsAvailable> <Value>2</Value> </EnumEntry> <EnumEntry NameSpace="Standard" Name="LevelLow"> <DisplayName>Level Low</DisplayName> <pIsImplemented>TriggerActivationLevelLowInq_Bit</pIsImplemented> <pIsAvailable>IsLevel_Ava</pIsAvailable> <Value>3</Value> </EnumEntry> <EnumEntry NameSpace="Standard" Name="AnyEdge"> <DisplayName>Any Edge</DisplayName> <pIsImplemented>TriggerActivationAnyEdgeInq_Bit</pIsImplemented> <pIsAvailable>IsAnyEdge_Ava</pIsAvailable> <Value>4</Value> </EnumEntry> <pValue>TriggerActivation_Reg</pValue> </Enumeration>
(6)TriggerOverlap(触发器重叠)
指定允许与前一帧或行重叠的触发器类型。这定义了新帧或新行何时接受(或锁定)有效触发器。可能的值是:
- Off:不允许有触发器重叠。
- ReadOut:在曝光期结束后立即接受触发器。
- PreviousFrame:在捕获前一帧期间的任何时间都可以接受触发器(锁定)。
- PreviousLine:在捕获前一行期间,随时接受触发器(锁定)。
(7)TriggerDelay(触发器延迟)
指定触发接收后在激活之前应用的延迟 (以微秒(us)为单位) 。
(8)TriggerDivider
指定输入触发脉冲的除法因子。
(9)TriggerMultiplier
指定输入触发脉冲的乘法因子。它通常与 TriggerDivider 一起使用,以控制被接受的触发器的比例。
7. 曝光控制功能(Exposure Control features)
曝光控制部分描述了在图像采集期间与光敏单元(快门控制)的曝光相关的所有特征。
在帧或线采集期间,光敏电池的曝光可以是 3 种不同的模式。
- 曝光模式(ExposureMode)可以关闭,以禁用快门并让其打开。
曝光模式(ExposureMode)可以定时进行定时(Timed)曝光,并允许使用曝光时间(ExposureTime)或曝光自动(ExposureAuto)功能来编程持续时间。
- 例如,要使固定的曝光时间为1毫秒,请使用以下伪代码:
Camera.ExposureMode = Timed; Camera.ExposureTime = 1000;
- 曝光模式(ExposureMode)可以是触发宽度(TriggerWidth),以使用当前帧的宽度或线触发信号(s)来控制曝光时间。
触发模式(ExposureMode)可以通过触发控制(TriggerControlled),使用一个或多个触发信号独立于当前帧或行触发器控制曝光时间(参见触发选择器功能(TriggerSelector )的启动(ExposureStart)、结束(ExposureEnd )和激活(ExposureActive ))。
例如:要使用 2 个硬件触发器分别启动和停止曝光,请使用以下伪代码:
Camera.ExposureMode = TriggerControlled; Camera.TriggerSelector = ExposureStart; Camera.TriggerMode = On; Camera.TriggerSource = Line1; Camera.TriggerSelector = ExposureEnd; Camera.TriggerMode = On; Camera.TriggerSource = Line2;
(1)ExposureMode(曝光模式)
设置曝光率的操作模式。可能的值是:
- 关闭(Off):禁用曝光,让快门打开。
定时曝光(Timed):定时曝光。曝光持续时间时间使用 ExposureTime 或 ExposureAuto 功能设置,曝光从 FrameStart 或 LineStart 开始。
触发器宽度(TriggerWidth):使用当前帧或线触发信号(s)脉冲的宽度来控制曝光持续时间。请注意,如果帧或线 TriggerActivation 是 RisingEdge 或 LevelHigh,曝光时间将是触发保持高电平的时间。如果 TriggerActivation 是 FallingEdge 或 LevelLow ,曝光时间将是触发保持低电平的时间。
触发器控制(TriggerControlled):使用一个或多个触发信号(s)来独立于当前的帧或线触发器控制曝光持续时间。请参见触发器选择器(TriggerSelector)特性的 ExposureStart,ExposureEnd 和 ExposureActive 。
还要注意,曝光模式(ExposureMode)优先于使用 TriggerSelector = Exposure 定义的曝光触发器设置……并定义哪个触发器(如果有的话)是活动的。
例如,如果:
ExposureMode = Timed; ExposureTime = 200;
然后曝光将使用 ExposureTime 特性控制曝光,即使完成了以下代码:
TriggerSelector = ExposureActive; TriggerMode = On; TriggerActivation = LevelHigh; TriggerSource = Line1;
但只需添加:
ExposureMode = TriggerControlled;
曝光时间将由物理线 1 上的正脉冲的长度来控制。
<Enumeration NameSpace="Standard" Name="ExposureMode"> <ToolTip>Sets the operation mode of the Exposure (or shutter).</ToolTip> <Description>Sets the operation mode of the Exposure (or shutter).</Description> <DisplayName>Exposure Mode</DisplayName> <Visibility>Expert</Visibility> <pIsImplemented>ExposureModeInq_Bit</pIsImplemented> <pIsAvailable>IsLineScanOrAreaScan_NotAva</pIsAvailable> <pIsLocked>IsExposureModeLocked</pIsLocked> <ImposedAccessMode>RW</ImposedAccessMode> <Streamable>Yes</Streamable> <EnumEntry NameSpace="Standard" Name="Timed"> <DisplayName>Timed</DisplayName> <pIsImplemented>ExposureModeTimedInq_Bit</pIsImplemented> <Value>0</Value> </EnumEntry> <EnumEntry NameSpace="Standard" Name="TriggerWidth"> <DisplayName>Trigger Width</DisplayName> <pIsImplemented>ExposureModeTriggerWidthInq_Bit</pIsImplemented> <pIsAvailable>IsLineandFrame_NotAva</pIsAvailable> <Value>1</Value> </EnumEntry> <pValue>ExposureMode_Reg</pValue> </Enumeration>
(2)ExposureTimeMode(曝光时间模式)
设置曝光时间(ExposureTime)特性的配置模式。曝光时间模式(ExposureTimeMode)的可能值为:
- 普通(Common):曝光时间对所有颜色成分都是相同的。常用的 ExposureTime 值可以通过 ExposureTimeSelector[common] 来设置。
- 单独(Individual):曝光时间是单独的每个颜色组件。每个要使用的单独的 ExposureTime 值都可以通过使用 ExposureTimeSelector 进行选择来设置。
(3)ExposureTimeSelector(曝光时间选择器)
选择哪个曝光时间是由 ExposureTime 特性控制的曝光时间。这允许对曝光组件进行独立的控制。ExposureTimeSelector 的可能值为:
Common:选择通用的 ExposureTime。
Red(红色):选择红色的 ExposureTime。
Green(绿色):选择绿色的曝光时间(ExposureTime)。
Blue(蓝色):选择蓝色的曝光时间(ExposureTime)。
Cyan(青色):选择青色的公共曝光时间(ExposureTime)。
Magenta(品红色):选择品红色的曝光时间(ExposureTime)。
Yellow(黄色):选择黄色的曝光时间(ExposureTime)。
Infrared(红外线):选择红外线曝光时间(ExposureTime)。
Ultraviolet(紫外线):选择紫外线曝光时间(ExposureTime)。
Stage1(阶段1):选择第一阶段的曝光时间(ExposureTime)。
Stage2(阶段2):选择第二阶段的曝光时间(ExposureTime)。
- …
(4)ExposureTime(曝光时间)
设置曝光模式(ExposureMode)定时(Timed)和曝光自动(ExposureAuto)关闭时的曝光时间。这就控制了光敏细胞暴露在光下的持续时间。
<Float Name="ExposureTime" NameSpace="Standard"> <!-- Recommended element --> <ToolTip>Sets the Exposure time when ExposureMode is Timed and ExposureAuto is Off.</ToolTip> <Description>Sets the Exposure time when ExposureMode is Timed and ExposureAuto is Off. This controls the duration where the photosensitive cells are exposed to light.</Description> <DisplayName>Exposure Time</DisplayName> <Visibility>Beginner</Visibility> <ImposedAccessMode>RW</ImposedAccessMode> <Value>0.0</Value> <Unit>us</Unit> </Float>
(5)ExposureAuto(自动曝光)
当 ExposureMode = Timed 时,设置自动曝光模式。用于实现此控制的精确算法是特定于设备的。还可以使用其他一些特定于设备的特性来允许选择算法。可能的值是:
关闭(Off):曝光时间是用户使用 ExposureTime 控制。
一次(Once):曝光时间由设备调整一次。一旦它收敛了,它就会返回到关闭状态。
连续(Continuous):设备不断调整曝光持续时间,以使动态范围最大化。
在以前的标准值之上,设备还可以提供设备特定的值。