OICAN

Description

CAN functions. This feature is only available on OICore module. Please check out OICore pinout to see CAN interfaces on OICore module.

CAN Standard Example

#include "OpenIndus.h"
#include "Arduino.h"
#include "CAN.h"

OICanMessage_t rx_msg;
OICanMessage_t tx_msg;


void setup()
{
    CAN.begin();

    tx_msg.id = 11;
    tx_msg.count = 8;
    tx_msg.msg[0] = 'A';
    tx_msg.msg[1] = 'U';
    tx_msg.msg[2] = 'R';
    tx_msg.msg[3] = 'E';
    tx_msg.msg[4] = 'L';
    tx_msg.msg[5] = 'I';
    tx_msg.msg[6] = 'E';
    tx_msg.msg[7] = 'N';

    tx_msg.IDE = false; //Standard ID, not extended
    tx_msg.RTR = false; //No remote request frame
    
    CAN.write(tx_msg);
    CAN.setStandardFilter(0xFF0, 0x0AA);
}

void loop()
{
    if(CAN.available())
    {
        
        rx_msg = CAN.read();
        printf("NEW MESSAGE // ID : %d, length : %d MSG :  ", rx_msg.id, rx_msg.count);
        for(int i =0; i <rx_msg.count; i++)
        {
            printf("%x", rx_msg.msg[i]);
        }
        printf(" // \n");
        
    }
    delay(100);
}

CAN Extended Example

#include "OpenIndus.h"
#include "Arduino.h"
#include "CAN.h"

OICanMessage_t rx_msg;
OICanMessage_t tx_msg;


void setup()
{
    CAN.begin(1000000, true);

    tx_msg.id = 11111;
    tx_msg.count = 8;
    tx_msg.msg[0] = 'A';
    tx_msg.msg[1] = 'U';
    tx_msg.msg[2] = 'R';
    tx_msg.msg[3] = 'E';
    tx_msg.msg[4] = 'L';
    tx_msg.msg[5] = 'I';
    tx_msg.msg[6] = 'E';
    tx_msg.msg[7] = 'N';

    tx_msg.IDE = true; //Extended ID, not standard
    tx_msg.RTR = false; //No remote request frame
    
    CAN.write(tx_msg);
    CAN.setExtendedFilter(0xFFF0, 0xAAA0);
}

void loop()
{
    if(CAN.available())
    {
        
        rx_msg = CAN.read();
        printf("NEW MESSAGE // ID : %d, length : %d MSG :  ", rx_msg.id, rx_msg.count);
        for(int i =0; i <rx_msg.count; i++)
        {
            printf("%x", rx_msg.msg[i]);
        }
        printf(" // \n");
        
    }
    delay(100);
}

Functions

Warning

doxygenfunction: Cannot find function “OICAN::begin” in doxygen xml output for project “OI-Library” from directory: ./../build/xml/

Warning

doxygenfunction: Cannot find function “OICAN::end” in doxygen xml output for project “OI-Library” from directory: ./../build/xml/

Warning

doxygenfunction: Cannot find function “OICAN::write” in doxygen xml output for project “OI-Library” from directory: ./../build/xml/

Warning

doxygenfunction: Cannot find function “OICAN::available” in doxygen xml output for project “OI-Library” from directory: ./../build/xml/

Warning

doxygenfunction: Cannot find function “OICAN::read” in doxygen xml output for project “OI-Library” from directory: ./../build/xml/

Warning

doxygenfunction: Cannot find function “OICAN::setStandardFilter” in doxygen xml output for project “OI-Library” from directory: ./../build/xml/

Warning

doxygenfunction: Cannot find function “OICAN::setExtendedFilter” in doxygen xml output for project “OI-Library” from directory: ./../build/xml/

Warning

doxygenstruct: Cannot find class “OICanMessage_t” in doxygen xml output for project “OI-Library” from directory: ./../build/xml/