当前位置: 首页 > news >正文

沧州模板建站开源项盿网站系统环境的搭建

沧州模板建站开源项盿,网站系统环境的搭建,珠海市科速网络技术有限公司,深圳市国外网站建设Ubuntu joystick 测试手柄 xbox 测试使用Ubuntu20.04 测试环境在工控机 安装测试 实际测试使用的手柄是北通阿修罗2pro 兼容xbox Ubuntu20.04主机 连接手柄或者无线接收器后查看是否已经检测到#xff1a; ls /dev/input找到输入中的 js0 即为手柄输入 需要安装joysti…Ubuntu joystick 测试手柄 xbox 测试使用Ubuntu20.04 测试环境在工控机 安装测试 实际测试使用的手柄是北通阿修罗2pro 兼容xbox Ubuntu20.04主机 连接手柄或者无线接收器后查看是否已经检测到 ls /dev/input找到输入中的 js0 即为手柄输入 需要安装joystick安装包 sudo apt install joystick测试手柄的数据输入 jstest /dev/input/js0测试代码 -完整的项目代码 https://gitee.com/tianxiaohuahua/joystick_code driver_Xbox_Joystick.cpp #include stdio.h #include unistd.h #include string.h #include sys/types.h #include sys/stat.h #include fcntl.h #include errno.h #include linux/input.h #include linux/joystick.h#include driver_Xbox_Joystick.h/* 获得手柄设备输入流 */ int xbox_open(char *file_name) {int xbox_fd;xbox_fd open(file_name, O_RDONLY);if (xbox_fd 0){perror(open);return -1;}return xbox_fd; }/* 读取手柄数据 */ int xbox_map_read(int xbox_fd, xbox_map_t *map) {int len, type, number, value;struct js_event js;len read(xbox_fd, js, sizeof(struct js_event));if (len 0){perror(read);return -1;}type js.type;number js.number;value js.value;map-time js.time;if (type JS_EVENT_BUTTON){switch (number){case XBOX_BUTTON_A:map-a value;break;case XBOX_BUTTON_B:map-b value;break;case XBOX_BUTTON_X:map-x value;break;case XBOX_BUTTON_Y:map-y value;break;case XBOX_BUTTON_LB:map-lb value;break;case XBOX_BUTTON_RB:map-rb value;break;case XBOX_BUTTON_SELECT:map-select value;break;case XBOX_BUTTON_START:map-start value;break;case XBOX_BUTTON_HOME:map-home value;break;case XBOX_BUTTON_LO:map-lo value;break;case XBOX_BUTTON_RO:map-ro value;break;default:break;}}else if (type JS_EVENT_AXIS){switch(number){case XBOX_AXIS_LX:map-lx value;break;case XBOX_AXIS_LY:map-ly value;break;case XBOX_AXIS_RX:map-rx value;break;case XBOX_AXIS_RY:map-ry value;break;case XBOX_AXIS_LT:map-lt value;break;case XBOX_AXIS_RT:map-rt value;break;case XBOX_AXIS_XX:map-xx value;break;case XBOX_AXIS_YY:map-yy value;break;default:break;}}else{/* 若出错 */}return len; }/* 关闭手柄设备输入流 */ void xbox_close(int xbox_fd) {close(xbox_fd);return; }int test(void) {int xbox_fd ;xbox_map_t map;int len, type;int axis_value, button_value;int number_of_axis, number_of_buttons ;memset(map, 0, sizeof(xbox_map_t));xbox_fd xbox_open((char*)(/dev/input/js0));if(xbox_fd 0){return -1;}while(1){len xbox_map_read(xbox_fd, map);if (len 0){usleep(10*1000);continue;}printf(\rTime:%8d A:%d B:%d X:%d Y:%d LB:%d RB:%d select:%d start:%d lo:%d ro:%d XX:%-6d YY:%-6d LX:%-6d LY:%-6d RX:%-6d RY:%-6d LT:%-6d RT:%-6d,map.time, map.a, map.b, map.x, map.y, map.lb, map.rb, map.select, map.start, map.lo, map.ro,map.xx, map.yy, map.lx, map.ly, map.rx, map.ry, map.lt, map.rt);fflush(stdout);}xbox_close(xbox_fd);return 0; }JoyStickDriver::JoyStickDriver(){JoyStickInit(); }JoyStickDriver::~JoyStickDriver(){JoyStickClose(); }int JoyStickDriver::JoyStickInit(){JoystickFd xbox_open((char*)(/dev/input/js0));if(JoystickFd 0) {return -1;}return 0; }int JoyStickDriver::JoyStickRead(xbox_map_t *pMap){return xbox_map_read(JoystickFd, pMap); }int JoyStickDriver::JoyStickRead(void){return xbox_map_read(JoystickFd, joystickData); }int JoyStickDriver::JoyStickClose(){xbox_close(JoystickFd);return 0; }driver_Xbox_Joystick.h #ifndef driver_Xbox_Joystick_H #define driver_Xbox_Joystick_h/* 手柄面板上所有可控制按键/轴包括一个时间量 */ typedef struct xbox_map {int time;int a;int b;int x;int y;int lb;int rb;int select;int start;int home;int lo;int ro;int lx;int ly;int rx;int ry;int lt;int rt;int xx;int yy; }xbox_map_t;#define XBOX_TYPE_BUTTON 0x01 #define XBOX_TYPE_AXIS 0x02#define XBOX_BUTTON_A 0x00 #define XBOX_BUTTON_B 0x01 #define XBOX_BUTTON_X 0x02 #define XBOX_BUTTON_Y 0x03 #define XBOX_BUTTON_LB 0x04 #define XBOX_BUTTON_RB 0x05 #define XBOX_BUTTON_SELECT 0x06 #define XBOX_BUTTON_START 0x07 #define XBOX_BUTTON_HOME 0x08 #define XBOX_BUTTON_LO 0x09 /* 左摇杆按键 */ #define XBOX_BUTTON_RO 0x0a /* 右摇杆按键 */#define XBOX_BUTTON_ON 0x01 #define XBOX_BUTTON_OFF 0x00#define XBOX_AXIS_LX 0x00 /* 左摇杆X轴 */ #define XBOX_AXIS_LY 0x01 /* 左摇杆Y轴 */ #define XBOX_AXIS_RX 0x03 /* 右摇杆X轴 */ #define XBOX_AXIS_RY 0x04 /* 右摇杆Y轴 */ #define XBOX_AXIS_LT 0x02 #define XBOX_AXIS_RT 0x05 #define XBOX_AXIS_XX 0x06 /* 方向键X轴 */ #define XBOX_AXIS_YY 0x07 /* 方向键Y轴 */#define XBOX_AXIS_VAL_UP -32767 #define XBOX_AXIS_VAL_DOWN 32767 #define XBOX_AXIS_VAL_LEFT -32767 #define XBOX_AXIS_VAL_RIGHT 32767#define XBOX_AXIS_VAL_MIN -32767 #define XBOX_AXIS_VAL_MAX 32767 #define XBOX_AXIS_VAL_MID 0x00int test(void);class JoyStickDriver { public:xbox_map_t joystickData;JoyStickDriver(void);~JoyStickDriver(void);int JoyStickInit(void);int JoyStickRead(xbox_map_t *pMap);int JoyStickRead(void);int JoyStickClose();private:int JoystickFd ;};#endifmain.cpp #include iostream #include main.hint main(int argc, char *argv[]) {std::cout 123 std::endl;JoyStickDriver joystick;while(1){int len joystick.JoyStickRead();if (len 0){usleep(10*1000);continue;}printf(\rTime:%8d A:%d B:%d X:%d Y:%d LB:%d RB:%d select:%d start:%d lo:%d ro:%d XX:%-6d YY:%-6d LX:%-6d LY:%-6d RX:%-6d RY:%-6d LT:%-6d RT:%-6d,joystick.joystickData.time, joystick.joystickData.a, joystick.joystickData.b, joystick.joystickData.x, joystick.joystickData.y, joystick.joystickData.lb, joystick.joystickData.rb, joystick.joystickData.select, joystick.joystickData.start, joystick.joystickData.lo, joystick.joystickData.ro,joystick.joystickData.xx, joystick.joystickData.yy, joystick.joystickData.lx, joystick.joystickData.ly, joystick.joystickData.rx, joystick.joystickData.ry, joystick.joystickData.lt, joystick.joystickData.rt);fflush(stdout);}return 0; } CMakeList.txt # VERSION需要和本机安装的Cmake对应 cmake_minimum_required(VERSION 3.10.2) # 指定了当前的工程名称最后输出的可执行文件名称赋值给了{PROJECT_NAME}变量 project(app) # c 11 set(CMAKE_CXX_FLAGS -stdc11)# 添加头文件 include_directories(${PROJECT_SOURCE_DIR}/include) include_directories(${PROJECT_SOURCE_DIR}/include/driver)# 查找指定目录下的所有.cpp与.h文件 并存放到指定变量名{SC_FILES}中 FILE(GLOB SC_FILES ${PROJECT_SOURCE_DIR}/src/driver/driver_Xbox_Joystick.cpp )#####生成可执行文件 # 使用指定的源文件创建出一个可执行文件第一个变量必须是可执行文件的名字后面默认是其他源文件 add_executable(${PROJECT_NAME} ${SC_FILES} ${PROJECT_SOURCE_DIR}/src/main.cpp) # 指定链接给定目标和/或其依赖项时要使用的库或标志链接动态库静态库等
http://www.zqtcl.cn/news/292465/

相关文章:

  • 长沙有哪些网站建设公司用vue做网站的实例
  • 购物网站模板 php网页设计图片剧中
  • 嘉峪关市建设局网站横沥镇网站建设公司
  • 查找网站软件培训记录
  • 注册网站安全吗制作人漫画
  • jeecms 怎么建设网站嵌入式软件开发兼职
  • 百度怎么自己做网站四川省建设工程交易中心网站
  • 中介如何做网站收客wordpress 运行代码
  • 网页设计与网站建设考试题目如何做建议的网站
  • 网站怎么推广软文政务网站建设存在问题
  • 公司官方网站建设需要多少钱wordpress单页面制作
  • 社群网站建设网站推广的方式有哪几种
  • 培训机构活动策划网站wordpress 改端口
  • 北京网站制作与营销培训用asp做网站视频
  • 江苏丹阳建设公司网站做网站中的剪辑图片
  • 纯静态网站怎样广州工程造价信息网
  • 为什么网页不能打开建设银行网站企业网站开发综合实训
  • 企业网站制作 深圳网站建站行业公司主页建设
  • 外汇直播网站建设开发做网站空间商需要办什么手续
  • 源码哥网站的模板皮肤病在线咨询医生免费咨询
  • 温岭市市住房和城乡建设规划局网站附近的电脑培训班在哪里
  • 网站备案百度站长提交减肥网站源码
  • 网站添加文章机械代加工厂家
  • 学做各种糕点的网站cn网站建设多少钱
  • 首页网站关键词优化教程如何查询网站点击率
  • 文章类型的网站模版北京朝阳区房价2023年最新房价
  • wap网站发布注销主体和注销网站
  • 微信小程序 做网站满足客户的分销管理系统
  • 高佣联盟做成网站怎么做wordpress 更新版本
  • 杭州营销网站建设公司成都网站排名优化报价