linux - input.h中input_absinfo结构中fuzz和flat的解释

标签 linux input event-handling device-driver

我正在尝试使用来自 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;
}

最佳答案

关于 fuzz 值,它似乎是用于 abs 输入设备的值。查看 input.h 中 input_absinfo 的文档 Link to input.h at lxr.linux.no

你可以找到

fuzz: specifies fuzz value that is used to filter noise from the event stream.

这意味着如果与最后一个值的差异小于模糊,则 linux 中的输入系统将丢弃设备驱动程序生成的事件。这是在输入层完成的。

关于linux - input.h中input_absinfo结构中fuzz和flat的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110515/

相关文章:

linux - 当 IT 不允许您在 Windows 工作站上安装任何内容时,如何为 React 设置开发环境

c++ - arm-linux libstdc++ 调试和发布的区别

asp.net - linux dnx(.net执行环境): HTTP 200s with no body content

c++ - 如何让用户输入一个或两个输入?

python - 类作为函数的输入

'C' 中的 CPU 密集型操作

java - 我需要关闭套接字的读取器吗?

Node.js 等待多个事件

c# - 带有 INotifyPropertyChanged 的​​ SortedSet

javascript - 将 dojo Autocompleter 连接到 javascript 函数