BLE temperature profile using digital DS1820 or analog LM35 sensors

Dependencies:   DS1820

Embed: (wiki syntax)

« Back to documentation index

CAN Class Reference

CAN Class Reference

A can bus client, used for communicating with can devices. More...

#include <CAN.h>

Public Member Functions

 CAN (PinName rd, PinName td)
 Creates an CAN interface connected to specific pins.
int frequency (int hz)
 Set the frequency of the CAN interface.
int write (CANMessage msg)
 Write a CANMessage to the bus.
int read (CANMessage &msg, int handle=0)
 Read a CANMessage from the bus.
void reset ()
 Reset CAN interface.
void monitor (bool silent)
 Puts or removes the CAN interface into silent monitoring mode.
int mode (Mode mode)
 Change CAN operation to the specified mode.
int filter (unsigned int id, unsigned int mask, CANFormat format=CANAny, int handle=0)
 Filter out incomming messages.
unsigned char rderror ()
 Returns number of read errors to detect read overflow errors.
unsigned char tderror ()
 Returns number of write errors to detect write overflow errors.
void attach (void(*fptr)(void), IrqType type=RxIrq)
 Attach a function to call whenever a CAN frame received interrupt is generated.
template<typename T >
void attach (T *tptr, void(T::*mptr)(void), IrqType type=RxIrq)
 Attach a member function to call whenever a CAN frame received interrupt is generated.

Detailed Description

A can bus client, used for communicating with can devices.

Definition at line 67 of file CAN.h.


Constructor & Destructor Documentation

CAN ( PinName  rd,
PinName  td 
)

Creates an CAN interface connected to specific pins.

Parameters:
rdread from transmitter
tdtransmit to transmitter

Example:

 #include "mbed.h"

 Ticker ticker;
 DigitalOut led1(LED1);
 DigitalOut led2(LED2);
 CAN can1(p9, p10);
 CAN can2(p30, p29);

 char counter = 0;

 void send() {
     if(can1.write(CANMessage(1337, &counter, 1))) {
         printf("Message sent: %d\n", counter);
         counter++;
     }
     led1 = !led1;
 }

 int main() {
     ticker.attach(&send, 1);
    CANMessage msg;
     while(1) {
         if(can2.read(msg)) {
             printf("Message received: %d\n\n", msg.data[0]);
             led2 = !led2;
         }
         wait(0.2);
     }
 }

Member Function Documentation

void attach ( T *  tptr,
void(T::*)(void)  mptr,
IrqType  type = RxIrq 
)

Attach a member function to call whenever a CAN frame received interrupt is generated.

Parameters:
tptrpointer to the object to call the member function on
mptrpointer to the member function to be called
eventWhich CAN interrupt to attach the member function to (CAN::RxIrq for message received, TxIrq for transmitted or aborted, EwIrq for error warning, DoIrq for data overrun, WuIrq for wake-up, EpIrq for error passive, AlIrq for arbitration lost, BeIrq for bus error)

Definition at line 222 of file CAN.h.

void attach ( void(*)(void)  fptr,
IrqType  type = RxIrq 
)

Attach a function to call whenever a CAN frame received interrupt is generated.

Parameters:
fptrA pointer to a void function, or 0 to set as none
eventWhich CAN interrupt to attach the member function to (CAN::RxIrq for message received, CAN::TxIrq for transmitted or aborted, CAN::EwIrq for error warning, CAN::DoIrq for data overrun, CAN::WuIrq for wake-up, CAN::EpIrq for error passive, CAN::AlIrq for arbitration lost, CAN::BeIrq for bus error)
int filter ( unsigned int  id,
unsigned int  mask,
CANFormat  format = CANAny,
int  handle = 0 
)

Filter out incomming messages.

Parameters:
idthe id to filter on
maskthe mask applied to the id
formatformat to filter on (Default CANAny)
handlemessage filter handle (Optional)
Returns:
0 if filter change failed or unsupported, new filter handle if successful
int frequency ( int  hz )

Set the frequency of the CAN interface.

Parameters:
hzThe bus frequency in hertz
Returns:
1 if successful, 0 otherwise
int mode ( Mode  mode )

Change CAN operation to the specified mode.

Parameters:
modeThe new operation mode (CAN::Normal, CAN::Silent, CAN::LocalTest, CAN::GlobalTest, CAN::SilentTest)
Returns:
0 if mode change failed or unsupported, 1 if mode change was successful
void monitor ( bool  silent )

Puts or removes the CAN interface into silent monitoring mode.

Parameters:
silentboolean indicating whether to go into silent mode or not
unsigned char rderror (  )

Returns number of read errors to detect read overflow errors.

int read ( CANMessage msg,
int  handle = 0 
)

Read a CANMessage from the bus.

Parameters:
msgA CANMessage to read to.
handlemessage filter handle (0 for any message)
Returns:
0 if no message arrived, 1 if message arrived
void reset (  )

Reset CAN interface.

To use after error overflow.

unsigned char tderror (  )

Returns number of write errors to detect write overflow errors.

int write ( CANMessage  msg )

Write a CANMessage to the bus.

Parameters:
msgThe CANMessage to write.
Returns:
0 if write failed, 1 if write was successful