📄 proto_defs.h
字号:
#ifndef __PROTO_DEFS_H__
#define __PROTO_DEFS_H__
#include "xkcan_defs.h"
// Definitions of COB_ID
#define _GET_NID(x) ( (x) & 0x7f ) // last 7 bits of COBID
#define _GET_FC(x) ( ((x)>>7) & 0x0f ) // first 4 bits of COBID
#define _GET_FRAME_NID(x) ( ((x)->cobid) & 0x7f ) // last 7 bits of COBID in Can frame
#define _GET_FRAME_FC(x) ( (((x)->cobid)>>7) & 0x0f ) // first 4 bits of COBID in Can frame
// Generate COBID from Function Code(x) and Node ID (y)
#define _GEN_COBID(x, y) (((uint)(x)<<7)|(y))
#define _GEN_D_COBID(x, y) ((x) + (y))
// Status Definitions
#define STATUS_OPERATIONAL 0x05
#define STATUS_STOPPED 0x04
#define STATUS_PRE_OPERATIONAL 0x7f
#define STATUS_BOOTUP ` 0x00
#define STATUS_INITIALISING 0x01
#define STATUS_RESET_APP 0x02
#define STATUS_RESET_COMM 0x03
#define STATUS_ERROR 0xff
#define EXP_PRE_INIT 0x00
#define EXP_INITIALISING 0x01
#define EXP_STANDBY 0x02
#define EXP_STOPPED 0x04
#define EXP_RUNNING 0x05
#define EXP_PAUSE 0x06
#define EXP_FAULT 0x10
#define EXP_END_REQUEST 0x0e
#define EXP_END 0x0f
#define EXP_STATUS_ERROR 0xff
// Function Code Definitions
#define FC_NMT_MC 0x00
#define FC_SYNC 0x01
#define FC_TIME_STAMP 0x02
#define FC_EMCY 0x01
#define FC_PDO1_TX 0x03
#define FC_PDO1_RX 0x04
#define FC_PDO2_TX 0x05
#define FC_PDO2_RX 0x06
#define FC_PDO3_TX 0x07
#define FC_PDO3_RX 0x08
#define FC_PDO4_TX 0x09
#define FC_PDO4_RX 0x0A
#define FC_SDO_TX 0x0B
#define FC_SDO_RX 0x0C
#define FC_NMT_EC 0x0E
// FC for decimal generation
#define FC_D_NMT_MC 0
#define FC_D_SYNC 128
#define FC_D_TIME_STAMP 256
#define FC_D_EMCY 128
#define FC_D_PDO1_TX 384
#define FC_D_PDO1_RX 512
#define FC_D_PDO2_TX 640
#define FC_D_PDO2_RX 768
#define FC_D_PDO3_TX 896
#define FC_D_PDO3_RX 1024
#define FC_D_PDO4_TX 1152
#define FC_D_PDO4_RX 1280
#define FC_D_SDO_TX 1408
#define FC_D_SDO_RX 1536
#define FC_D_NMT_EC 1792
// Node ID Definitions
#define NID_MCC 0x7F
#define NID_BROADCAST 0x00
// Definitions of NMT Module Control Frame
//#define _GET_NMT_NID(x) ( ((x)->dat[1]) & 0x7f ) // last 7 bits of COBID in Can frame
#define _GET_NMT_MC_CS(x) ((x)->dat[0])
#define NMT_MC_CS_START_REMOTE 1
#define NMT_MC_CS_STOP_REMOTE 2
#define NMT_MC_CS_ENTER_PRE_OP 128
#define NMT_MC_CS_RESET_NODE 129
#define NMT_MC_CS_RESET_COMM 130
// Definitions of NMT Error Control Frame
#define _GET_NMT_EC_CS(x) ( ((x)->dat[0]) & 0x7f )
// Definitions of TIME stamp
// Definitions of Emergency frame
// Definitions of PDO frams
// PDO1 objects are reserved for all status setting commands
#define PDO1_TX_SET_SWITCH 0x01
#define PDO1_TX_GET_STATUS 0x02
#define PDO1_TX_SET_SPC_SWITCH 0x11
#define PDO1_TX_GET_SPC_STATUS 0x12
// PDO2 objects are reserved for all 485 communications
#define PDO2_485_READ 0x01
#define PDO2_485_CTRL 0x10
#define PDO2_485_CTRL_1 0x11
#define PDO2_485_CTRL_C 0x20
#define PDO2_485_CTRL_C_1 0x21
// PDO3 objects are reserved for all status indications, such as LEDs, LCDs
//#define PDO3_CS_
// Definitions of SDO frams
#define SDO_CS_EXP_TIME 0x24
#define SDO_CS_EXP_START 0x21
#define SDO_CS_EXP_STOP 0x22
#define SDO_CS_EXP_PAUSE 0x23
#define SDO_CS_EXP_RESET 0x28
#define SDO_CS_EXP_RESUME 0x25
#define SDO_CS_EXP_END 0x2f
#define SDO_CS_EXP_FAULT 0x01
#define SDO_CS_EXP_END_REQUEST 0x2f
#endif //__PROTO_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -