KSJXS SDK · 触发控制

版本 1.0 · 更新于 2026-10-21 · 阅读 0

起始结束触发(何时开始采集)与轮廓触发(每根轮廓何时采集),含滤波、延迟、分频、编码器方向。

本组对应头文件 @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;失败返回错误码