public static extern void xslam_gaze_set_config_path(string coe_path);
Input:
coe_path 配置文件路径,支持自定义,默认路径为"/data/misc/xr/"
public static extern bool xslam_start_gaze();
返回值:
true-成功
false-失败
public static extern bool xslam_set_exposure(int leftGain, float leftTimeMs, int rightGain, float rightTimeMs);
返回值:
true-成功
false-失败
Input:
leftGain 左眼增益,建议为10
leftTimeMs 左眼曝光时间,建议为6
rightGain 右眼增益,建议为10
rightTimeMs 右眼曝光时间,建议为6
public static extern bool xslam_set_bright(int eye, int led, int brightness);
返回值:
true-成功
false-失败
注意:停用眼动功能时,需要关闭led,即设置brightness为0:
xslam_set_bright(2, 8, 0);
Input:
eye 0-左眼,1-右眼,2-both左右眼
led led灯
brightness 亮度
public static extern int xslam_set_gaze_callback(fn_gaze_callback cb);
返回值:
0-成功
-1-失败
fn_gaze_callback定义:
public delegate void fn_gaze_callback(XV_ET_EYE_DATA_EX gazedata);
Output:
XV_ET_EYE_DATA_EX gazedata;
XV_ET_EYE_DATA_EX结构体:
public struct XV_ET_EYE_DATA_EX
{
public ulong timestamp; //时间戳
public int recommend; //是否存在推荐的注视点 0-无推荐注视点, 1-使用左眼作为推荐注视点, 2-使用右眼作为推荐注视点
public XV_ET_GAZE_POINT recomGaze; //推荐注视点的数据
public XV_ET_GAZE_POINT leftGaze; //左眼注视点的数据
public XV_ET_GAZE_POINT rightGaze; //右眼注视点的数据
public XV_ET_PUPIL_INFO leftPupil; //左眼瞳孔数据
public XV_ET_PUPIL_INFO rightPupil; //右眼瞳孔数据
public int leftEyeMove;//0-没有检测到左眼移动. 1-左眼状态为眨眼. 2-左眼状态正常
public int rightEyeMove;//0-没有检测到右眼移动. 1-右眼状态为眨眼. 2-右眼状态正常
public float ipd; //瞳距数据,在眼动校准后数据才会更新
};
XV_ET_GAZE_POINT结构体:
public struct XV_ET_GAZE_POINT
{
public XV_ETPoint3D gazePoint; //注视点坐标
public XV_ETPoint3D gazeOrigin; //注视点中心
public XV_ETPoint3D gazeDirection; //注视点方向
public float re; //注视点置信度
};
XV_ET_PUPIL_INFO结构体:
public struct XV_ET_PUPIL_INFO
{
public xv_ETPoint2D pupilCenter; //瞳孔数值(0-1),归一化数据!
};
XV_ETPoint3D结构体:
public struct XV_ETPoint3D
{
public float x;
public float y;
public float z;
}
public static extern void xslam_gaze_calibration_enter();
public static extern int xslam_gaze_calibration_collect(float x, float y, float z, int index);
返回值:
0-成功
-1-失败
注意:校准平面上预设5个校准点位(中心、左下角、右下角、右上角、左上角)
调用此接口的最佳实践为每帧调用该接口,依次将5个校准点坐标作为参数传入接口
每个校准点需要调用该接口100次 或 接口返回值为0的情况达到5次,即可切换下一个校准点
Input:
x 校准点坐标的x值
y 校准点坐标的y值
z 校准点坐标的z值
index 校准点位的索引号
public static extern int xslam_gaze_calibration_setup();
返回值:
0-成功
-1-失败
public static extern int xslam_gaze_calibration_compute_apply();
返回值:
0-成功
-1-失败
public static extern int xslam_gaze_calibration_leave();
public static extern int xslam_gaze_calibration_retrieve(string file);
返回值:
0-成功
-1-失败
可以通过该接口返回值来判断是否校准成功
Input:
file 自定义校准文件地址,举例:"/data/misc/xr/XVETcaliData.dat"
public static extern bool xslam_unset_gaze_callback();
返回值:
true-成功
false-失败
public static extern bool xslam_stop_gaze();
返回值:
true-成功
false-失败