📄 can_reader.cpp
字号:
/////////////////////////////////////////////////////////////////author:YslayerY/// upc/////////////////////////////////////////////////////////////#include"can_reader.h"#include<stdio.h>bool need_stop; can_reader * pcan_reader;void * reader(void * data) //checked should have no problem BIG SMILE{ ucmd cc; int can_fd = (int)data; CanData candy; int cmd; while(!need_stop) { read(can_fd,&candy,sizeof(CanData)); if((candy.data)[1] & DOOR_M) { for(int i=0;i<4;i++) { cc.a[i]=candy.data[i+2]; } pcan_reader->emit_cmd(cc.cmd); } } return NULL;}void can_reader::emit_cmd(int cmd){ emit sig_cmd(cmd);}can_reader::can_reader(){ need_stop = true; pcan_reader = this;}can_reader::~can_reader(){}void can_reader::init() //check should be no error{ int id = 0x123; if((can_fd=open(CAN_DEV,O_RDWR))< 0) { printf("error ker board can device open error \n"); } else printf("can opened \n"); ioctl(can_fd, UPCAN_IOCTRL_PRINTRIGISTER, 1); ioctl(can_fd, UPCAN_IOCTRL_SETID, id); ioctl(can_fd, UPCAN_IOCTRL_SETLPBK, 0); printf("can inited \n");}void can_reader::start(){ pthread_create(&th_reader,NULL,reader,(void *)can_fd); need_stop = false;}void can_reader::stop(){ need_stop = true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -