Merge pull request #8 from ipeukes/master

Possibility to handle frames with request bit set
This commit is contained in:
Lowaichung
2014-09-12 14:08:11 +08:00
2 changed files with 17 additions and 6 deletions
+14 -4
View File
@@ -678,12 +678,13 @@ INT8U MCP_CAN::init_Filt(INT8U num, INT8U ext, INT32U ulData)
** Function name: setMsg
** Descriptions: set can message, such as dlc, id, dta[] and so on
*********************************************************************************************************/
INT8U MCP_CAN::setMsg(INT32U id, INT8U ext, INT8U len, INT8U *pData)
INT8U MCP_CAN::setMsg(INT32U id, INT8U ext, INT8U len, INT8U rtr, INT8U *pData)
{
int i = 0;
m_nExtFlg = ext;
m_nID = id;
m_nDlc = len;
m_nRtr = rtr;
for(i = 0; i<MAX_CHAR_IN_MESSAGE; i++)
{
m_nDta[i] = *(pData+i);
@@ -747,9 +748,9 @@ INT8U MCP_CAN::sendMsg()
** Function name: sendMsgBuf
** Descriptions: send buf
*********************************************************************************************************/
INT8U MCP_CAN::sendMsgBuf(INT32U id, INT8U ext, INT8U len, INT8U *buf)
INT8U MCP_CAN::sendMsgBuf(INT32U id, INT8U ext, INT8U rtr, INT8U len, INT8U *buf)
{
setMsg(id, ext, len, buf);
setMsg(id, ext, len, rtr, buf);
sendMsg();
}
@@ -867,7 +868,16 @@ INT8U MCP_CAN::checkError(void)
INT32U MCP_CAN::getCanId(void)
{
return m_nID;
}
}
/*********************************************************************************************************
** Function name: isRemoteRequest
** Descriptions: when receive something ,u can check if it was a request
*********************************************************************************************************/
INT8U MCP_CAN::isRemoteRequest(void)
{
return m_nRtr;
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
+3 -2
View File
@@ -89,7 +89,7 @@ private:
* can operator function
*/
INT8U setMsg(INT32U id, INT8U ext, INT8U len, INT8U *pData); /* set message */
INT8U setMsg(INT32U id, INT8U ext, INT8U len, INT8U rtr, INT8U *pData); /* set message */
INT8U clearMsg(); /* clear all message to zero */
INT8U readMsg(); /* read message */
INT8U sendMsg(); /* send message */
@@ -99,12 +99,13 @@ public:
INT8U begin(INT8U speedset); /* init can */
INT8U init_Mask(INT8U num, INT8U ext, INT32U ulData); /* init Masks */
INT8U init_Filt(INT8U num, INT8U ext, INT32U ulData); /* init filters */
INT8U sendMsgBuf(INT32U id, INT8U ext, INT8U len, INT8U *buf); /* send buf */
INT8U sendMsgBuf(INT32U id, INT8U ext, INT8U rtr, INT8U len, INT8U *buf); /* send buf */
INT8U readMsgBuf(INT8U *len, INT8U *buf); /* read buf */
INT8U readMsgBufID(INT32U *ID, INT8U *len, INT8U *buf); /* read buf with object ID */
INT8U checkReceive(void); /* if something received */
INT8U checkError(void); /* if something error */
INT32U getCanId(void); /* get can id when receive */
INT8U isRemoteRequest(void); /* get RR flag when receive */
};
#endif