在input.h中的input_absinfo结构体中,fuzz和flat是什么意思?

7
我正在尝试使用input.h中的EVIOCSABS调用来调整一个与SDL不兼容的操纵杆的灵敏度。我认为input_absinfo结构体中的fuzz和flat成员影响轴的灵敏度,但是经过一些盲目的尝试后,我仍然感到困惑,不知道它们的确切作用。我希望有人能指点我正确的方向。
谢谢您考虑我的问题!这是我在Joystick类中编写的代码:
int Joystick::configure_absinfo(int axis, int fuzz, int flat)
{
    struct input_absinfo jabsx;
    int result_code = ioctl(joystick_fd, EVIOCGABS(axis), &jabsx);
    if (result_code < 0)
    {
        perror("ioctl GABS failed");
    }
    else
    {
        jabsx.fuzz = fuzz;
        jabsx.flat = flat;

        result_code = ioctl(joystick_fd, EVIOCSABS(axis), &jabsx);
        if (result_code < 0)
        {
            perror("ioctl SABS failed");
        }
    }
    return result_code;
}
2个回答

2
关于模糊值,它似乎是用于绝对输入设备的值。查看input.h中input_absinfo的文档,您可以找到链接至lxr.linux.no上的input.h
fuzz: specifies fuzz value that is used to filter noise from the event stream.

这意味着在Linux中,如果设备驱动程序生成的事件与上次值之间的差异小于模糊度,则输入系统会放弃这些事件。这是在输入层完成的。

但是,平坦值是做什么用的? - AldaronLau

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接