📄 can_pxa.h
字号:
//#include <linux/types.h>
#include <linux/ioctl.h>
#ifndef _CAN_H
#define _CAN_H
#ifndef PACKED
#define PACKED __attribute__((packed))
#endif
#define CAN_MSG_LENGTH 8
struct canmsg_t {
short flags;
int cob;
unsigned int id;
unsigned int timestamp;
unsigned int length;
char data[CAN_MSG_LENGTH];
} PACKED;
/* Definitions to use for canmsg_t flags */
#define MSG_RTR (1<<0)
#define MSG_OVR (1<<1)
#define MSG_EXT (1<<2)
#define MSG_STAN 0
/* CAN ioctl magic number */
#define CAN_IOC_MAGIC 'd'
unsigned long bittiming;
unsigned short channel;
enum bau {B1000,B800,B500,B320,B250,B160,B80,B40,B20,B10,B5};
/* CAN ioctl functions */
#define CAN_IOCRESET _IO(CAN_IOC_MAGIC, 0)
#define CAN_SET_BAUDRATE _IOW(CAN_IOC_MAGIC, 10,enum bau)
#define CAN_GET_BAUDRATE _IOR(CAN_IOC_MAGIC, 11,enum bau )
#define CAN_SET_FILTER _IOW(CAN_IOC_MAGIC, 12,filter_struct *)
#define CAN_GET_FILTER _IOR(CAN_IOC_MAGIC, 13,filter)
#define CAN_SET_MODE _IOW(CAN_IOC_MAGIC, 14,int)
#define CAN_GET_MODE _IOR(CAN_IOC_MAGIC, 15,int)
#define DEV_SET_REG _IOW(CAN_IOC_MAGIC, 28,unsigned char *)
#define DEV_GET_REG _IOWR(CAN_IOC_MAGIC, 29,unsigned char *)
#define DEBUG_INFO _IOW(CAN_IOC_MAGIC, 31,int)
/*Define Can mode for function ioctl CAN_SET_MODE and CAN_GET_MODE*/
#define MODE_SM (1<<4) //Sleep Mode 0 (wake-up) 0 (wake-up)
#define MODE_AFM (1<<3) //Acceptance Filter Mode 0 (dual) X
#define MODE_STM (1<<2) //Self Test Mode 0 (normal) X
#define MODE_LOM (1<<1) //Listen Only Mode 0 (normal) X
#define MODE_RM (1<<0) //Reset Mode 1 (present) 1 (present)
typedef struct _filter_struct
{
unsigned int code;
unsigned int mask;
} filter_struct;
#endif //_CAN_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -