CAN Bus Monitoring

I have a CAN Bus (not Car but Home Automation) I like to Monitor. I know the speed, and the Frame length is taken from CAN but the Frame content is none standard. I like to monitor to understand whats going on. So I attached an CAN controller to an Arduino UNO. In NORMAL mode I receive nothing, but in LISTENONLY mode, as of the datasheet the mode for monitoring I receive data. but something in the code I took from a sample seem to be wrong. It receives the frame display it, but instead of waiting for the next frame it loops displaying the same data on and on.
Need help whats going wrong. The code I have:
// CAN Receive Example
//

#include <mcp_can.h>
#include <SPI.h>

long unsigned int rxId;
unsigned char len = 0;
unsigned char rxBuf[8];
char msgString[128]; // Array to store serial string

#define CAN0_INT 2 // Set INT to pin 2
MCP_CAN CAN0(10); // Set CS to pin 10

void setup()
{
Serial.begin(115200);

// Initialize MCP2515 running at 16MHz with a baudrate of 500kb/s and the masks and filters disabled.
if(CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_16MHZ) == CAN_OK)
Serial.println("MCP2515 Initialized Successfully!");
else
Serial.println("Error Initializing MCP2515...");

CAN0.setMode(MCP_NORMAL); // Set operation mode to normal so the MCP2515 sends acks to received data.

pinMode(CAN0_INT, INPUT); // Configuring pin for /INT input

Serial.println("MCP2515 Library Receive Example...");
}

void loop()
{
if(!digitalRead(CAN0_INT)) // If CAN0_INT pin is low, read receive buffer
{
CAN0.readMsgBuf(&rxId, &len, rxBuf); // Read data: len = data length, buf = data byte(s)

if((rxId & 0x80000000) == 0x80000000) // Determine if ID is standard (11 bits) or extended (29 bits)
sprintf(msgString, "Extended ID: 0x%.8lX DLC: %1d Data:", (rxId & 0x1FFFFFFF), len);
else
sprintf(msgString, "Standard ID: 0x%.3lX DLC: %1d Data:", rxId, len);

Serial.print(msgString);

if((rxId & 0x40000000) == 0x40000000){ // Determine if message is a remote request frame.
sprintf(msgString, " REMOTE REQUEST FRAME");
Serial.print(msgString);
} else {
for(byte i = 0; i<len; i++){
sprintf(msgString, " 0x%.2X", rxBuf*);*

  • Serial.print(msgString);*

  • }*

  • }*

  • Serial.println();*

  • }*
    }
    /*********************************************************************************************************

  • END FILE*
    *********************************************************************************************************/
    Thanks for any help
    Rainer