20#ifndef MBED_INTERFACE_CAN_H_
21#define MBED_INTERFACE_CAN_H_
23#include "hal/can_helper.h"
27#include "platform/Callback.h"
31#ifndef FEATURE_EXPERIMENTAL_API
70 CANMessage(
unsigned int _id,
const unsigned char *_data,
unsigned char _len = 8,
CANType _type = CANData,
CANFormat _format = CANStandard)
72 len = (_len > 8) ? 8 : _len;
90 len = (_len > 8) ? 8 : _len;
137 return !(*
this == b);
169 len = (_len > 64) ? 64 : _len;
187 len = (_len > 64) ? 64 : _len;
234 return !(*
this == b);
278 can(
const can &) =
delete;
279 can &operator=(
const can &) =
delete;
283#ifdef FEATURE_EXPERIMENTAL_API
288 virtual ~CAN() =
default;
289 virtual int frequency(
int hz) = 0;
291 virtual int read(
CANMessage &msg,
int handle = 0) = 0;
292 virtual void reset() = 0;
293 virtual void monitor(
bool silent) = 0;
294 virtual int mode(Mode mode) = 0;
295 virtual int filter(
unsigned int id,
unsigned int mask,
CANFormat format = CANAny,
int handle = 0) = 0;
296 virtual unsigned char rderror() = 0;
297 virtual unsigned char tderror() = 0;
298 virtual void attach(
Callback<
void()> func, IrqType type = IrqType::RxIrq) = 0;
307#if defined(FEATURE_EXPERIMENTAL_API) && !DEVICE_CAN
308using CAN = interface::CAN;
CANFDMessage(unsigned int _id, const char *_data, unsigned char _len=64, CANType _type=CANData, CANFormat _format=CANStandard)
Creates CANFD message with specific content.
CANFDMessage(unsigned int _id, CANFormat _format=CANStandard)
Creates CANFD remote message.
bool operator==(const CANFDMessage &b) const
"Deep" comparison operator (ie: compare value of each data member)
CANFDMessage(unsigned int _id, const unsigned char *_data, unsigned char _len=64, CANType _type=CANData, CANFormat _format=CANStandard)
Creates CANFD message with specific content.
CANFDMessage()
Creates empty CANFD message.
A can bus client, used for communicating with can devices.
CANMessage(unsigned int _id, const char *_data, unsigned char _len=8, CANType _type=CANData, CANFormat _format=CANStandard)
Creates CAN message with specific content.
bool operator==(const CANMessage &b) const
"Deep" comparison operator (ie: compare value of each data member)
CANMessage(unsigned int _id, CANFormat _format=CANStandard)
Creates CAN remote message.
CANMessage()
Creates empty CAN message.
CANMessage(unsigned int _id, const unsigned char *_data, unsigned char _len=8, CANType _type=CANData, CANFormat _format=CANStandard)
Creates CAN message with specific content.
Callback class based on template specialization.
CANType
Values that represent CAN Type.
CANFormat
Values that represent CAN Format.
Holder for single CAN message.
unsigned char data[8]
Data field.
unsigned char len
Length of data field in bytes.
CANFormat format
Format CANFormat.
unsigned int id
29 bit identifier
CANType type
Type CANType.
unsigned char data[64]
Data field.
unsigned char len
Length of data field in bytes.
CANFormat format
Format CANFormat.
unsigned int id
29 bit identifier
CANType type
Type CANType.