90 lines
2.0 KiB
C
90 lines
2.0 KiB
C
![]() |
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#ifndef GENERAL_CAN_123_INCLUDED
|
|||
|
#define GENERAL_CAN_123_INCLUDED
|
|||
|
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C" {
|
|||
|
#endif
|
|||
|
/************************************************************************/
|
|||
|
|
|||
|
#include "glbtypes.h"
|
|||
|
|
|||
|
//<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define CAN_RECVBUF_LEN (256+8)
|
|||
|
//ÿ<><C3BF><EFBFBD><EFBFBD>CAN<41><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define CAN_ATTRIB_LINK_MAX 16
|
|||
|
|
|||
|
|
|||
|
/****<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խṹ<D4BD><E1B9B9>****/
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
//֪ͨ<CDA8>ⲿ<EFBFBD><E2B2BF><EFBFBD>ɹ<F2BFAAB3>
|
|||
|
ST_INT flagOpenSuccess;
|
|||
|
|
|||
|
ST_INT canHandle; /***<2A><><EFBFBD><EFBFBD>**/
|
|||
|
ST_UINT localCanID; /* <20><><EFBFBD><EFBFBD>CAN id */
|
|||
|
|
|||
|
ST_UINT sendCanID;
|
|||
|
ST_UINT recvCanID;
|
|||
|
|
|||
|
ST_INT status; /**<2A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0û<30>д<D0B4>1<EFBFBD>ɹ<F2BFAAB3><C9B9><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>**/
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ST_VOID *canLinkAttrib[CAN_ATTRIB_LINK_MAX];
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>,<2C><><EFBFBD>´ļ<F2BFAAB5><C4BC><EFBFBD>
|
|||
|
ST_DOUBLE record_time_reopen;
|
|||
|
ST_DOUBLE space_reopen;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int canNo;
|
|||
|
int baudrate;
|
|||
|
|
|||
|
} CAN_ATTRIB;
|
|||
|
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
ST_UINT canID; //Ŀ<><C4BF>ID<49><44><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>ID
|
|||
|
|
|||
|
ST_UINT recvCount; /**<2A><><EFBFBD>յ<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>*/
|
|||
|
/***<2A><><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD>Ƚϴ<C8BD><CFB4><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9>û<EFBFBD><C3BB>壬<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>?? ***/
|
|||
|
ST_INT recvDataLen; /***<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>**/
|
|||
|
ST_UCHAR recvDataBuf[CAN_RECVBUF_LEN]; /**<2A><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>**/
|
|||
|
|
|||
|
CAN_ATTRIB *can_attrib;
|
|||
|
} CAN_LINK_ATTRIB;
|
|||
|
|
|||
|
|
|||
|
ST_RET can_attrib_init( CAN_ATTRIB *can_attrib );
|
|||
|
|
|||
|
ST_RET can_attrib_release( CAN_ATTRIB *can_attrib );
|
|||
|
|
|||
|
ST_RET can_attrib_set( CAN_ATTRIB *can_attrib, int canNo,int baudrate, unsigned int localCanID );
|
|||
|
|
|||
|
ST_RET can_link_attrib_set( CAN_LINK_ATTRIB *can_link_attrib, int canID, CAN_ATTRIB *can_attrib );
|
|||
|
|
|||
|
/**** ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> ****/
|
|||
|
ST_RET can_attrib_check( CAN_ATTRIB *can_attrib );
|
|||
|
|
|||
|
ST_RET can_send(CAN_ATTRIB *can_attrib, ST_UCHAR *sendBuf, ST_INT sendLen, ST_INT sendCanId );
|
|||
|
ST_RET can_link_send(CAN_LINK_ATTRIB *can_link, ST_UCHAR *sendBuf, ST_INT sendLen );
|
|||
|
|
|||
|
ST_RET can_bus_reset( CAN_LINK_ATTRIB *can_link_attrib );
|
|||
|
ST_RET can_bus_check_error( CAN_LINK_ATTRIB *can_link_attrib );
|
|||
|
|
|||
|
ST_RET can_bus_reset_attrib( CAN_ATTRIB *can_attrib );
|
|||
|
|
|||
|
/************************************************************************/
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
#endif
|