项目上需要使用罗技(logitech) G29 游戏方向盘来进行演示远程驾驶。

罗技(logitech) G29 游戏方向盘与window系统有专门的“logitech 游戏软件”,可以对其驱动与设置,但是window系统要获取方向盘数据,并进行定制开发好像要借助unity来实现,这个与我们主研方向不一致,所以没必要时就不走这条路。

在linux系统下,有没有办法获取方向盘数据?答案是肯定的。

当我们将G29连接上电脑时,在/proc/bus/input/devices 中会多出一个设备:/dev/input/event11 (或者 /dev/input/js0)

这个设备文件就是我们的G29的input节点,当我们转动方向,或者踩油门时,这个节点上都会有数据产生。

可以通过以下命令查看:

cat /dev/input/js0 | hexdump

但这个打印出来的是原始的hex数据,没有可读性,那现在问题就是:如何将这个数据解析成具体的可读的数据?

从网上找了许久的资料,没有找到可参考的。无意间却发现了一个操纵杆的校准工具:jstest-gtk

可以通过命令进行安装:

apt-get install jstest-gtk

运行后(jstest-gtk /dev/input/js0 ),有一图形界面,可以看到当操作g29时,数据在界面上都有对应的显示,

方向盘、油门、刹车等,都有数据条,也就是说这个工具已经帮我们把 cat /dev/input/js0 | hexdump 进行了转换,

那我们就可以基于这个源码去开发了,(源码下载地址:https://download.csdn.net/download/amlinsan/12274982)

拿到jstest-gtk-0.1.0后,要安装以下工具:

apt-get install scons

apt-get install cmake

apt-get install sigc++

apt-get install gtkmm-2.4

apt-get install libboost-all-dev

如果是ubuntu 14.04的话,需要在软件中心安装:gtkglextmm

编译时可能会报错,在joystick.cpp中加下头文件

#include <stdint.h>

#include <unistd.h>

编译方式,执行: scons

运行方式: jstest-gtk /dev/input/event11

关于方向盘与按钮等数据对应的接口是:

joystick_test_widget.cpp中的:

void
JoystickTestWidget::axis_move(int number, int value)
{
  axes.at(number)->set_fraction((value + 32767) / (double)(2*32767));

std::ostringstream str;
  str << value;
  axes.at(number)->set_text(str.str());
  axis_callbacks[number](value / 32767.0);
  std::cout << "amlinsan axis_move-number:" << number << "; value:" << value << std::endl;
}

void
JoystickTestWidget::button_move(int number, bool value)
{
  if (value)
    buttons.at(number)->set_down(true);
  else
    buttons.at(number)->set_down(false);
  std::cout << "amlinsan button_move-number:" << number << "; value:" << value << std::endl;
}

接下来就在这里改就好了。

Linux(Ubuntu 14.04) 罗技(logitech) G29 游戏方向盘数据解析(支持自定义开发)相关推荐

  1. linux游戏吧 minecraft,《我的世界》全面论述minecraft1.8初期如何在linux ubuntu 14.04(64bit)上玩(官服)...

    分成几部分.客户端本身.登录服务器.然后挂forge,上mod,自己用官服架设带forge的服务器,最后服务器和客户端同开,怎么玩.系统的论述一遍. 首先,客户端.linux ubuntu 14.04 ...

  2. 树状笔记软件for linux,Ubuntu 14.04安装开源树状笔记管理软件 WikidPad 2.2

    WikidPad是一款开源免费的wiki风格的树状笔记管理软件,类似于Notepad.基于Python,支持Windows.Mac.Linux等平台.WikidPad 因为有很多强大的插件支持,在国外 ...

  3. 如何在Linux(Ubuntu 14.04 LTS)上安装搜狗拼音输入法

    Ubuntu 14.04 LTS 自带的一些中文输入法都不太好用,因此可以安装搜狗拼音输入法.按照官网的安装指南,Ubuntu / Ubuntu Kylin 14.04 LTS 版本,只需双击下载的 ...

  4. 安装使用简单的linux,Ubuntu 14.04下autojump的安装和简单使用

    autojump的安装和简单使用(环境:Ubuntu 14.04) 一.autojump的安装 1.安装oh-my-zsh 一.sudo apt-get install zsh //第二步执行时可能会 ...

  5. ubuntu线缆被拔出Linux,ubuntu 14.04线缆被拔出解决思路

    问题描述:台式机新装的ubuntu 14.04 系统,有线连不上网络,"网络"--"有线"提示线缆被拔出. 解决思路1: 打开终端(Ctrl+Alt+T),输入 ...

  6. 在Ubuntu 14.04 64bit下用Python搭建数据科学研究环境

    大数据时代已经来临,使用python来研究数据科学这门新崛起的学科已经越来越成为一种潮流. 下面是我根据网上的资料,结合自己的实践整理的文档, 以备参考. 在Ubuntu下安装Python模块通常可以 ...

  7. linux(ubuntu 14.04 lubuntu14.04)下 搜狗拼音法安装后无法运行的解决方法

    症状 通过.deb文件安装之后fcitx运行正常,但是无法切换到 解决方案 首先 im-config 在里边选择fcitx 然后进入fcitx-config-gtk3,如果和我一样,就会是只有一个en ...

  8. linux 爬虫工具,技术|如何在Ubuntu 14.04 LTS安装网络爬虫工具:Scrapy

    这是一款提取网站数据的开源工具.Scrapy框架用Python开发而成,它使抓取工作又快又简单,且可扩展.我们已经在virtual box中创建一台虚拟机(VM)并且在上面安装了Ubuntu 14.0 ...

  9. 安装Ubuntu 14.04后要做的5件事情

    安装Ubuntu 14.04后要做的5件事情 时间2014-04-18 11:36:56  lupaworld 相似文章 (6) 原文  http://www.lupaworld.com/articl ...

  10. 【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅2】...

    在 [原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅1] 环境:Ubuntu 14.04 服务器版 虚拟机:Vmware 10 ...

最新文章

  1. SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
  2. LNMP环境中WordPress程序伪静态解决方案
  3. android界面怎么优化字符串,android应用性能优化
  4. oracle手动启动服务
  5. 功能内聚C语言例子,为每种类型的模块内聚举一个具体的例子
  6. 2021蓝桥直播课-软件类-本科组
  7. vs能运行python吗_vs怎么运行python(vs能运行python吗)
  8. android优雅的一个侧滑
  9. matlab字符串元胞数组,MATLAB字符串数组元胞数组和构架数组
  10. matlab errorbar 例子,科学网—【MATLAB】如何画水平errorbar - 叶瑞杰的博文
  11. Python实现熵权法(正负指标)并计算综合评分—————附增完整代码和测试用例
  12. 瘟疫模拟——技术预演与方案设计(Python技术预演)
  13. access查找出生日期年份_Access时间日期比较查询的方法总结
  14. 电脑桌面便签软件怎么新建内容?
  15. 行测判断推理部分之图形推理(位置)
  16. Java程序控制系统输入法
  17. 百度AI实现图片转文字-python
  18. android 监控app 读写,Android端 APP性能监控实践
  19. Alist小雅超集Docker搭建排坑指南
  20. 2020年10月30日提高组 B 超级蚯蚓

热门文章

  1. 阿里巴巴矢量图标库的使用步骤
  2. 粒子群优化算法(PSO)
  3. JavaScript实现按钮点击上/下一张切换图片
  4. Makefile教程
  5. c++ mysql中文乱码_c++ poco 使用mysql中文乱码问题
  6. Linux下LOIC的下载和应用
  7. php7 libiconv,CentOS 7下编译libiconv
  8. 我不应该用计算机做题,超级计算器:能帮你做题的计算器,就是它了
  9. 天天生鲜Django项目
  10. 用python实现pdf转word(带格式)_python实现pdf转换成word/txt纯文本文件