|
Open Model Railroad Network (OpenMRN)
|
Base class for a CAN device for the Arduino environment. More...
#include <Can.hxx>
Public Member Functions | |
| int | available () |
| int | availableForWrite () |
| int | read (struct can_frame *frame) |
| Read a frame if there is one available. | |
| int | write (const struct can_frame *frame) |
| Send a frame if there is space available. | |
| virtual void | enable ()=0 |
| function to enable device | |
| virtual void | disable ()=0 |
| function to disable device | |
Public Member Functions inherited from Device | |
| Device (const char *name) | |
| Constructor. | |
| virtual | ~Device () |
| Destructor. | |
Static Public Attributes | |
| static unsigned | numReceivedPackets_ {0} |
| static unsigned | numTransmittedPackets_ {0} |
Protected Member Functions | |
| Can (const char *ignored) | |
| Constructor. | |
| ~Can () | |
| Destructor. | |
| virtual void | tx_msg ()=0 |
| function to try and transmit a message | |
| Can (const char *name, size_t tx_buffer_size=config_can_tx_buffer_size(), size_t rx_buffer_size=config_can_rx_buffer_size()) | |
| Constructor. | |
| ~Can () | |
| Destructor. | |
| void | enable () override=0 |
| function to enable device | |
| void | disable () override=0 |
| function to disable device | |
| virtual void | tx_msg ()=0 |
| function to try and transmit a message | |
| bool | has_tx_buffer_space () OVERRIDE |
| bool | has_rx_buffer_data () OVERRIDE |
| void | flush_buffers () OVERRIDE |
| called after disable | |
| ssize_t | read (File *file, void *buf, size_t count) OVERRIDE |
| Read from a file or device. | |
| ssize_t | write (File *file, const void *buf, size_t count) OVERRIDE |
| Write to a file or device. | |
| bool | select (File *file, int mode) OVERRIDE |
| Device select method. | |
Protected Member Functions inherited from Atomic | |
| void | lock () |
| void | unlock () |
Protected Member Functions inherited from NonBlockNode | |
| NonBlockNode (const char *name) | |
| Constructor. | |
| int | ioctl (File *file, unsigned long int key, unsigned long data) OVERRIDE |
| Request an ioctl transaction. | |
Protected Member Functions inherited from Node | |
| Node (const char *name) | |
| Constructor. | |
| virtual | ~Node () |
| Destructor. | |
| int | open (File *, const char *, int, int) OVERRIDE |
| Open method. | |
| int | close (File *) OVERRIDE |
| Close method. | |
| virtual int | fstat (File *file, struct stat *stat) override |
| Get the status information of a file or device. | |
| Device (const char *name) | |
| Constructor. | |
| virtual | ~Device () |
| Destructor. | |
Protected Member Functions inherited from FileIO | |
| FileIO (const char *name) | |
| Constructor. | |
| virtual | ~FileIO () |
| Destructor. | |
| virtual off_t | lseek (File *f, off_t offset, int whence) |
| Seek method. | |
| virtual int | fcntl (File *file, int cmd, unsigned long data) |
| Manipulate a file descriptor. | |
Protected Attributes | |
| DeviceBuffer< struct can_frame > * | txBuf |
| transmit buffer | |
| DeviceBuffer< struct can_frame > * | rxBuf |
| receive buffer | |
| unsigned int | overrunCount |
| overrun count | |
| unsigned int | busOffCount |
| bus-off count | |
| unsigned int | softErrorCount |
| soft error count | |
Protected Attributes inherited from NonBlockNode | |
| Notifiable * | readableNotify_ |
| This will be notified if the device has data avilable for read. | |
| Notifiable * | writableNotify_ |
| This will be notified if the device has buffer avilable for write. | |
Protected Attributes inherited from Node | |
| OSMutex | lock_ |
| protects internal structures. | |
| mode_t | mode_ |
| File open mode, such as O_NONBLOCK. | |
| unsigned int | references_ |
| number of open references | |
Protected Attributes inherited from FileIO | |
| const char * | name |
| device name | |
Private Member Functions | |
| DISALLOW_COPY_AND_ASSIGN (Can) | |
| DISALLOW_COPY_AND_ASSIGN (Can) | |
Additional Inherited Members | |
Static Public Member Functions inherited from Device | |
| static int | open (struct _reent *reent, const char *path, int flags, int mode) |
| Open a file or device. | |
| static int | close (struct _reent *reent, int fd) |
| Close a file or device. | |
| static int | stat (struct _reent *reent, const char *path, struct stat *stat) |
| Get the status information of a file or device. | |
| static int | select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, long long timeout) |
| POSIX select(). | |
| static void | select_clear () |
| Clears the current thread's select bits. | |
Static Public Member Functions inherited from FileIO | |
| static ssize_t | read (struct _reent *reent, int fd, void *buf, size_t count) |
| Read from a file or device. | |
| static ssize_t | write (struct _reent *reent, int fd, const void *buf, size_t count) |
| Write to a file or device. | |
| static _off_t | lseek (struct _reent *reent, int fd, _off_t offset, int whence) |
| Change the offset index of a file or device. | |
| static int | fstat (struct _reent *reent, int fd, struct stat *stat) |
| Get the status information of a file or device. | |
| static int | ioctl (int fd, unsigned long int key, unsigned long data) |
| Request and ioctl transaction. | |
| static int | fcntl (int fd, int cmd, unsigned long data) |
| Manipulate a file descriptor. | |
| static bool | is_device (int fd) |
| Test if the file descriptor belongs to a device. | |
Static Protected Member Functions inherited from Device | |
| static void | select_insert (SelectInfo *info) |
| Add client to list of clients needing woken. | |
| static void | select_wakeup (SelectInfo *info) |
| Wakeup the list of clients needing woken. | |
| static void | select_wakeup_from_isr (SelectInfo *info, int *woken) |
| Wakeup the list of clients needing woken. | |
| static int | open (struct _reent *reent, const char *path, int flags, int mode) |
| Open a file or device. | |
| static int | close (struct _reent *reent, int fd) |
| Close a file or device. | |
| static int | stat (struct _reent *reent, const char *path, struct stat *stat) |
| Get the status information of a file or device. | |
| static int | select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, long long timeout) |
| POSIX select(). | |
| static void | select_clear () |
| Clears the current thread's select bits. | |
Static Protected Member Functions inherited from FileIO | |
| static int | fd_alloc (void) |
| Allocate a free file descriptor. | |
| static void | fd_free (int fd) |
| Free up a file descriptor. | |
| static File * | file_lookup (int fd) |
| Looks up a reference to a File corresponding to a given file descriptor. | |
| static int | fd_lookup (File *file) |
| Looks up a file descriptor corresponding to a given File reference. | |
| static ssize_t | read (struct _reent *reent, int fd, void *buf, size_t count) |
| Read from a file or device. | |
| static ssize_t | write (struct _reent *reent, int fd, const void *buf, size_t count) |
| Write to a file or device. | |
| static _off_t | lseek (struct _reent *reent, int fd, _off_t offset, int whence) |
| Change the offset index of a file or device. | |
| static int | fstat (struct _reent *reent, int fd, struct stat *stat) |
| Get the status information of a file or device. | |
| static int | ioctl (int fd, unsigned long int key, unsigned long data) |
| Request and ioctl transaction. | |
| static int | fcntl (int fd, int cmd, unsigned long data) |
| Manipulate a file descriptor. | |
| static bool | is_device (int fd) |
| Test if the file descriptor belongs to a device. | |
Static Protected Attributes inherited from FileIO | |
| static const unsigned int | numOpenFiles = 20 |
| static File | files [] |
| File descriptor pool. | |
| static OSMutex | mutex |
| mutual exclusion for fileio | |
Base class for a CAN device for the Arduino environment.
Private data for a can device.
Definition at line 47 of file arduino/Can.hxx.
|
inlineprotected |
|
inlineprotected |
Destructor.
Definition at line 110 of file arduino/Can.hxx.
|
inlineprotected |
Constructor.
| name | device name in file system |
| tx_buffer_size | transmit buffer size in can frames |
| rx_buffer_size | receive buffer size in can frames |
Definition at line 57 of file common/Can.hxx.
|
inlineprotected |
Destructor.
Definition at line 71 of file common/Can.hxx.
|
inline |
Definition at line 54 of file arduino/Can.hxx.
|
inline |
Definition at line 61 of file arduino/Can.hxx.
|
overrideprotectedpure virtual |
function to disable device
Implements Node.
Implemented in BenchmarkCan, TCAN4550Can, MCP2515Can, TCAN4550Can, LpcCan, MbedCanDriver, Stm32Can, and TivaCan.
|
pure virtual |
function to disable device
Implements Node.
Implemented in BenchmarkCan, TCAN4550Can, MCP2515Can, TCAN4550Can, LpcCan, MbedCanDriver, Stm32Can, and TivaCan.
|
overrideprotectedpure virtual |
function to enable device
Implements Node.
Implemented in BenchmarkCan, TCAN4550Can, MCP2515Can, TCAN4550Can, LpcCan, MbedCanDriver, Stm32Can, and TivaCan.
|
pure virtual |
function to enable device
Implements Node.
Implemented in BenchmarkCan, TCAN4550Can, MCP2515Can, TCAN4550Can, LpcCan, MbedCanDriver, Stm32Can, and TivaCan.
|
protectedvirtual |
called after disable
Flush the receive and transmit buffers for this device.
Implements Node.
Reimplemented in TCAN4550Can, TCAN4550Can, and MbedCanDriver.
Definition at line 46 of file common/Can.cxx.
|
inlineprotectedvirtual |
Implements NonBlockNode.
Definition at line 93 of file common/Can.hxx.
|
inlineprotectedvirtual |
Implements NonBlockNode.
Definition at line 85 of file common/Can.hxx.
|
protectedvirtual |
Read from a file or device.
| file | file reference for this device |
| buf | location to place read data |
| count | number of bytes to read |
Implements FileIO.
Reimplemented in TCAN4550Can, and TCAN4550Can.
Definition at line 58 of file common/Can.cxx.
|
inline |
Read a frame if there is one available.
| frame | will be filled with the input CAN frame. |
Definition at line 69 of file arduino/Can.hxx.
Device select method.
Default impementation returns true.
| file | reference to the file |
| mode | FREAD for read active, FWRITE for write active, 0 for exceptions |
Reimplemented from FileIO.
Reimplemented in TCAN4550Can, and TCAN4550Can.
Definition at line 168 of file common/Can.cxx.
|
protectedpure virtual |
function to try and transmit a message
Implemented in BenchmarkCan, TCAN4550Can, MCP2515Can, TCAN4550Can, LpcCan, MbedCanDriver, Stm32Can, and TivaCan.
|
protectedpure virtual |
function to try and transmit a message
Implemented in BenchmarkCan, TCAN4550Can, MCP2515Can, TCAN4550Can, LpcCan, MbedCanDriver, Stm32Can, and TivaCan.
|
inline |
Send a frame if there is space available.
| frame | the output CAN frame. |
Definition at line 79 of file arduino/Can.hxx.
|
protectedvirtual |
Write to a file or device.
| file | file reference for this device |
| buf | location to find write data |
| count | number of bytes to write |
Implements FileIO.
Reimplemented in TCAN4550Can, and TCAN4550Can.
Definition at line 110 of file common/Can.cxx.
|
protected |
bus-off count
Definition at line 121 of file arduino/Can.hxx.
|
static |
Definition at line 39 of file arduino/Can.hxx.
|
static |
Definition at line 40 of file arduino/Can.hxx.
|
protected |
overrun count
Definition at line 120 of file arduino/Can.hxx.
|
protected |
receive buffer
Definition at line 119 of file arduino/Can.hxx.
|
protected |
|
protected |
transmit buffer
Definition at line 118 of file arduino/Can.hxx.