|
Open Model Railroad Network (OpenMRN)
|
Public Member Functions | |
| Pic32mxUart (const char *name, UART_MODULE periph, uint32_t int_vec, unsigned baud=115200, bool enable_rts_cts=false) | |
| void | enable () override |
| This will be called once when reference-count goes from 0 to positive. | |
| void | disable () override |
| This will be called when reference count goes from non-zero to 0. | |
| void | interrupt_handler () |
| void | tx_char () override |
| Function to try and transmit a character. | |
Public Member Functions inherited from Device | |
| Device (const char *name) | |
| Constructor. | |
| virtual | ~Device () |
| Destructor. | |
Private Member Functions | |
| bool | receive_some_data () |
| Copies data from the RX fifo into the receive ring buffer. | |
| bool | send_some_data () |
| Copies data from the tx buffer to the hardware send register / fifo. | |
| unsigned | get_pclk () |
| INT_SOURCE | tx_int () |
| INT_SOURCE | rx_int () |
| INT_VECTOR | int_vector () |
Private Attributes | |
| UART_MODULE | hw_ |
| Enum describing which uart module we are using. | |
| unsigned | intVector_ |
| This is the hardware vector number for the UART module. | |
| unsigned | numIrq_ = 0 |
| Stats variable. | |
| unsigned | numIrqTx_ = 0 |
| Stats variable. | |
| unsigned | numIrqRx_ = 0 |
| Stats variable. | |
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. | |
Protected Member Functions inherited from Serial | |
| Serial (const char *name, size_t tx_buffer_size=config_serial_tx_buffer_size(), size_t rx_buffer_size=config_serial_rx_buffer_size()) | |
| Constructor. | |
| ~Serial () | |
| Destructor. | |
| 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. | |
| int | ioctl (File *file, unsigned long int key, unsigned long data) OVERRIDE |
| Request an ioctl transaction. | |
| bool | select (File *file, int mode) OVERRIDE |
| Device select method. | |
| void | flush_buffers () OVERRIDE |
| Discards all pending buffers. | |
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. | |
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. | |
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 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. | |
Protected Attributes inherited from Serial | |
| DeviceBuffer< uint8_t > * | txBuf |
| transmit buffer | |
| DeviceBuffer< uint8_t > * | rxBuf |
| receive buffer | |
| unsigned int | overrunCount |
| overrun count | |
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 | |
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 | |
Definition at line 47 of file Pic32mxUart.hxx.
|
inline |
Definition at line 50 of file Pic32mxUart.hxx.
|
inlineoverridevirtual |
This will be called when reference count goes from non-zero to 0.
Called with lock_ held.
Implements Node.
Definition at line 85 of file Pic32mxUart.hxx.
|
inlineoverridevirtual |
This will be called once when reference-count goes from 0 to positive.
Called with lock_ held.
Implements Node.
Definition at line 75 of file Pic32mxUart.hxx.
|
inlineprivate |
Definition at line 172 of file Pic32mxUart.hxx.
|
inlineprivate |
Definition at line 187 of file Pic32mxUart.hxx.
|
inline |
Definition at line 93 of file Pic32mxUart.hxx.
|
inlineprivate |
Copies data from the RX fifo into the receive ring buffer.
Must be called from critical section or interrupt. Throws away data if the receive buffer is full (marking overrunCount).
Definition at line 129 of file Pic32mxUart.hxx.
|
inlineprivate |
Definition at line 182 of file Pic32mxUart.hxx.
|
inlineprivate |
Copies data from the tx buffer to the hardware send register / fifo.
Updates the TX interrupt enable flag depending on why we stopped. Must be called from a critical section or interrupt.
Definition at line 148 of file Pic32mxUart.hxx.
|
inlineoverridevirtual |
Function to try and transmit a character.
Implements Serial.
Definition at line 116 of file Pic32mxUart.hxx.
|
inlineprivate |
Definition at line 177 of file Pic32mxUart.hxx.
|
private |
Enum describing which uart module we are using.
We need to pass this to the middleware calls.
Definition at line 194 of file Pic32mxUart.hxx.
|
private |
This is the hardware vector number for the UART module.
That is NOT the same as the INT_VECTOR enum.
Definition at line 197 of file Pic32mxUart.hxx.
|
private |
Stats variable.
Definition at line 199 of file Pic32mxUart.hxx.
|
private |
Stats variable.
Definition at line 203 of file Pic32mxUart.hxx.
|
private |
Stats variable.
Definition at line 201 of file Pic32mxUart.hxx.