Add: optional argument err_ptr for checkError()

This commit is contained in:
turmary
2021-01-29 09:32:40 +08:00
parent 3dff8e3d20
commit 300c1c4a4b
5 changed files with 12 additions and 8 deletions
+4 -1
View File
@@ -1304,8 +1304,11 @@ byte mcp2515_can::checkReceive(void) {
** Function name: checkError
** Descriptions: if something error
*********************************************************************************************************/
byte mcp2515_can::checkError(void) {
byte mcp2515_can::checkError(uint8_t* err_ptr) {
byte eflg = mcp2515_readRegister(MCP_EFLG);
if (err_ptr) {
*err_ptr = eflg;
}
return ((eflg & MCP_EFLG_ERRORMASK) ? CAN_CTRLERROR : CAN_OK);
}
+1 -1
View File
@@ -82,7 +82,7 @@ public:
virtual byte readMsgBuf(byte *len, byte *buf); // read buf
virtual byte readMsgBufID(unsigned long *ID, byte *len, byte *buf); // read buf with object ID
virtual byte checkReceive(void); // if something received
virtual byte checkError(void); // if something error
virtual byte checkError(uint8_t* err_ptr = NULL); // if something error
virtual unsigned long getCanId(void); // get can id when receive
virtual byte isRemoteRequest(void); // get RR flag when receive
virtual byte isExtendedFrame(void); // did we recieve 29bit frame?
+5 -4
View File
@@ -2576,12 +2576,13 @@ byte mcp2518fd::checkReceive(void) {
** Function name: checkError
** Descriptions: if something error
*********************************************************************************************************/
byte mcp2518fd::checkError(void) {
byte mcp2518fd::checkError(uint8_t* err_ptr) {
CAN_ERROR_STATE flags;
mcp2518fd_ErrorStateGet(&flags);
byte eflg = (byte)flags;
return eflg;
if (err_ptr) {
*err_ptr = byte(flags);
}
return (byte)flags;
}
// /*********************************************************************************************************
+1 -1
View File
@@ -117,7 +117,7 @@ public:
virtual byte wake();
virtual byte setMode(const byte opMode);
virtual byte getMode();
virtual byte checkError(void);
virtual byte checkError(uint8_t* err_ptr = NULL);
/* ---- receiving ---- */
virtual byte checkReceive(void);
+1 -1
View File
@@ -34,7 +34,7 @@ public:
virtual byte readMsgBuf(byte *len, byte *buf) = 0; // read buf
virtual byte readMsgBufID(unsigned long *ID, byte *len, byte *buf) = 0; // read buf with object ID
virtual byte checkReceive(void) = 0; // if something received
virtual byte checkError(void) = 0; // if something error
virtual byte checkError(uint8_t* err_ptr = NULL) = 0; // if something error
virtual unsigned long getCanId(void) = 0; // get can id when receive
virtual byte isRemoteRequest(void) = 0; // get RR flag when receive
virtual byte isExtendedFrame(void) = 0; // did we recieve 29bit frame?