KSJXS SDK · 触发控制
起始结束触发(何时开始采集)与轮廓触发(每根轮廓何时采集),含滤波、延迟、分频、编码器方向。
本组对应头文件 @defgroup StartTrigger 起始结束触发 与 @defgroup DataTrigger 轮廓触发。两层触发配合工作:
- 起始结束触发决定何时可以开始采集一轮;
- 轮廓触发决定这一轮中每根轮廓按什么节奏采集。
KSJXS_SetStartTriggerMode
int KSJXS_SetStartTriggerMode(IN void* handle, KSJXS_START_TRIGGER_MODE StartTriggerMode)
设置起始结束触发模式。
| 参数 | 方向 | 说明 |
|---|---|---|
StartTriggerMode |
in | 起始结束触发模式,见 KSJXS_START_TRIGGER_MODE |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 连续:无需起始条件,只按轮廓触发采集,达到"采集轮廓数"即完成单次采集。
- 上升沿 / 下降沿:收到对应边沿后开始采集。
- 高电平 / 低电平:在电平期间采集,翻转或提前达到轮廓数即完成。
- 软件触发:收到软件触发信号后开始采集。
KSJXS_GetStartTriggerMode
int KSJXS_GetStartTriggerMode(IN void* handle, KSJXS_START_TRIGGER_MODE* pStartTriggerMode)
获取起始结束触发模式。
| 参数 | 方向 | 说明 |
|---|---|---|
pStartTriggerMode |
out | 起始结束触发模式 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetStartTriggerFilter
int KSJXS_SetStartTriggerFilter(IN void* handle, int nStartTriggerFilter)
设置开始采集信号滤波时间。
| 参数 | 方向 | 说明 |
|---|---|---|
nStartTriggerFilter |
in | 信号滤波时间,单位:微秒 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 滤除起始结束外触发信号的高频干扰:高低电平持续时间在滤波时间内的视为无效信号。
KSJXS_GetStartTriggerFilter
int KSJXS_GetStartTriggerFilter(IN void* handle, int* pStartTriggerFilter)
获取开始采集信号滤波时间。
| 参数 | 方向 | 说明 |
|---|---|---|
pStartTriggerFilter |
out | 信号滤波时间,单位:微秒 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetStartTriggerDelay
int KSJXS_SetStartTriggerDelay(IN void* handle, int nStartTriggerDelay)
设置开始采集信号延迟脉冲。
| 参数 | 方向 | 说明 |
|---|---|---|
nStartTriggerDelay |
in | 延迟脉冲数,单位:个 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 起始结束触发有效后,忽略相应个数的轮廓触发脉冲再开始采集。
KSJXS_GetStartTriggerDelay
int KSJXS_GetStartTriggerDelay(IN void* handle, int* pnStartTriggerDelay)
获取开始采集信号延迟脉冲。
| 参数 | 方向 | 说明 |
|---|---|---|
pnStartTriggerDelay |
out | 延迟脉冲数,单位:个 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SendSoftStartTrigger
int KSJXS_SendSoftStartTrigger(IN void* handle)
发送一个起始触发软触发信号。
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 仅在起始结束触发模式为"软件触发"时使用。
KSJXS_SetMaxNumberOfProfilesToCapture
int KSJXS_SetMaxNumberOfProfilesToCapture(IN void* handle, int nNumberOfProfiles)
设置一次采集(一帧 ZMap / 3D 点云)最多实际采集的轮廓数。
| 参数 | 方向 | 说明 |
|---|---|---|
nNumberOfProfiles |
in | 采集轮廓数 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 计算公式:
N = y / Δy(y 为物体 Y 向尺寸 mm,Δy 为 Y 向轮廓间隔 mm)。 - 设置越大,采集一帧耗时越长。
- 实际采集轮廓数可能与设置不同(不含丢帧丢失的轮廓),详见设备说明书。
KSJXS_GetMaxNumberOfProfilesToCapture
int KSJXS_GetMaxNumberOfProfilesToCapture(IN void* handle, int* pNumberOfProfiles)
获取一次采集最多采集的轮廓数。
| 参数 | 方向 | 说明 |
|---|---|---|
pNumberOfProfiles |
out | 采集轮廓数 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetDataTriggerMode
int KSJXS_SetDataTriggerMode(IN void* handle, KSJXS_DATA_TRIGGER_MODE DataTriggerMode)
设置轮廓触发模式。
| 参数 | 方向 | 说明 |
|---|---|---|
DataTriggerMode |
in | 轮廓触发信号模式,见 KSJXS_DATA_TRIGGER_MODE |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 自由触发:传感器自动以最大速度采集轮廓。
- 内触发:按"内触发频率"采集。
- 外部触发(上升沿 / 下降沿):按外部输入信号 + 分频 + 滤波采集。
- 编码器触发:按外部编码器信号 + 分频 + 滤波采集。
KSJXS_GetDataTriggerMode
int KSJXS_GetDataTriggerMode(IN void* handle, KSJXS_DATA_TRIGGER_MODE* pDataTriggerMode)
获取轮廓触发模式。
| 参数 | 方向 | 说明 |
|---|---|---|
pDataTriggerMode |
out | 轮廓触发信号模式 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetDataTriggerInternalFrequency
int KSJXS_SetDataTriggerInternalFrequency(IN void* handle, float fInternalFrequencyHz)
设置内触发模式(KSJXS_DTM_INTERNAL)的触发频率。
| 参数 | 方向 | 说明 |
|---|---|---|
fInternalFrequencyHz |
in | 触发频率,单位:Hz |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 计算公式:
f = ν / Δy(ν 为 Y 向速度 mm/s,Δy 为 Y 向轮廓间隔 mm)。
KSJXS_GetDataTriggerInternalFrequency
int KSJXS_GetDataTriggerInternalFrequency(IN void* handle, float* pfInternalFrequencyHz)
获取当前内部触发模式的触发频率。
| 参数 | 方向 | 说明 |
|---|---|---|
pfInternalFrequencyHz |
out | 触发频率 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetDataTriggerDivider
int KSJXS_SetDataTriggerDivider(IN void* handle, int nDataTriggerDivider)
设置轮廓触发信号分频参数。
| 参数 | 方向 | 说明 |
|---|---|---|
nDataTriggerDivider |
in | 分频参数:接收多少个轮廓触发脉冲才触发一次轮廓采集 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 仅在外部触发 / 编码器触发模式下有效。
KSJXS_GetDataTriggerDivider
int KSJXS_GetDataTriggerDivider(IN void* handle, int* pnDataTriggerDivider)
获取轮廓触发信号分频参数。
| 参数 | 方向 | 说明 |
|---|---|---|
pnDataTriggerDivider |
out | 分频参数 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetDataTriggerFilter
int KSJXS_SetDataTriggerFilter(IN void* handle, int nDataTriggerFilter)
设置轮廓触发信号滤波。
| 参数 | 方向 | 说明 |
|---|---|---|
nDataTriggerFilter |
in | 滤波时间,单位:微秒 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 防止噪声或边沿抖动导致误触发。仅在外部触发 / 编码器触发模式下有效。
KSJXS_GetDataTriggerFilter
int KSJXS_GetDataTriggerFilter(IN void* handle, int* pnDataTriggerFilter)
获取轮廓触发信号滤波。
| 参数 | 方向 | 说明 |
|---|---|---|
pnDataTriggerFilter |
out | 滤波时间,单位:微秒 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetDataTriggerDelay
int KSJXS_SetDataTriggerDelay(IN void* handle, int nDataTriggerDelay)
设置轮廓触发延迟。
| 参数 | 方向 | 说明 |
|---|---|---|
nDataTriggerDelay |
in | 轮廓触发延迟 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 仅在外部触发 / 编码器触发模式下有效。
KSJXS_GetDataTriggerDelay
int KSJXS_GetDataTriggerDelay(IN void* handle, int* pnDataTriggerDelay)
获取轮廓触发延迟。
| 参数 | 方向 | 说明 |
|---|---|---|
pnDataTriggerDelay |
out | 轮廓触发延迟 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetDataTriggerEncoderDirection
int KSJXS_SetDataTriggerEncoderDirection(IN void* handle, KSJXS_ENCODER_DIRECTION EncoderDirection)
设置编码器触发方向。
| 参数 | 方向 | 说明 |
|---|---|---|
EncoderDirection |
in | 编码器触发方向,见 KSJXS_ENCODER_DIRECTION |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 仅在编码器触发模式下有效。
KSJXS_GetDataTriggerEncoderDirection
int KSJXS_GetDataTriggerEncoderDirection(IN void* handle, KSJXS_ENCODER_DIRECTION* pEncoderDirection)
获取编码器触发方向。
| 参数 | 方向 | 说明 |
|---|---|---|
pEncoderDirection |
out | 编码器触发方向 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetDataTriggerEncoderReversal
int KSJXS_SetDataTriggerEncoderReversal(IN void* handle, unsigned int nReversal)
设置编码器反向防抖脉冲数。
| 参数 | 方向 | 说明 |
|---|---|---|
nReversal |
in | 反向防抖脉冲数 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 编码器改变转向时,运动脉冲数小于该设置则不会触发轮廓采集。仅在编码器触发模式下有效。
KSJXS_GetDataTriggerEncoderReversal
int KSJXS_GetDataTriggerEncoderReversal(IN void* handle, unsigned int* pnReversal)
获取编码器反向防抖脉冲数。
| 参数 | 方向 | 说明 |
|---|---|---|
pnReversal |
out | 反向防抖脉冲数 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
这份文档对您有帮助吗?
发现错误、表述不清或缺少内容?请告诉我们,我们会尽快补充。
您可以通过以下方式反馈: 发送邮件至 service@catchbest.com