Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
TivaCdc Class Reference

Private data for this implementation of serial. More...

#include <TivaDev.hxx>

Inheritance diagram for TivaCdc:
Serial Node Device FileIO

Public Member Functions

 TivaCdc (const char *name, uint32_t interrupt)
 Constructor.
 
 ~TivaCdc ()
 Destructor.
 
void interrupt_handler ()
 handle an interrupt.
 
- Public Member Functions inherited from Device
 Device (const char *name)
 Constructor.
 
virtual ~Device ()
 Destructor.
 

Private Member Functions

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.
 
void enable () override
 function to enable device
 
void disable () override
 function to disable device
 
void tx_char () OVERRIDE
 Function to try and transmit a character.
 
 TivaCdc ()
 Default constructor.
 
 DISALLOW_COPY_AND_ASSIGN (TivaCdc)
 

Static Private Member Functions

static uint32_t control_callback (void *data, unsigned long event, unsigned long msg_param, void *msg_data)
 Handles CDC driver notifications related to control and setup of the device.
 
static uint32_t rx_callback (void *data, unsigned long event, unsigned long msg_param, void *msg_data)
 Handles CDC driver notifications related to reception.
 
static uint32_t tx_callback (void *data, unsigned long event, unsigned long msg_param, void *msg_data)
 Handles CDC driver notifications related to transmission.
 

Private Attributes

tUSBDCDCDevice usbdcdcDevice
 CDC serial device instance.
 
uint32_t interrupt
 interrupt number for device
 
bool connected
 connection status
 
bool enabled
 enabled status
 
int woken
 task woken metadata for ISR
 
bool txPending
 true if a transmission is in progress or pending
 
tLineCoding lineCoding
 line encoding for the device
 
SelectInfo selInfoWr
 Metadata for select() logic.
 

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.
 
int ioctl (File *file, unsigned long int key, unsigned long data) OVERRIDE
 Request an ioctl transaction.
 
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 Filefile_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
 

Detailed Description

Private data for this implementation of serial.

Definition at line 60 of file TivaDev.hxx.

Constructor & Destructor Documentation

◆ TivaCdc()

TivaCdc::TivaCdc ( const char *  name,
uint32_t  interrupt 
)

Constructor.

Parameters
namename of this device instance in the file system
interruptinterrupt number used by the device

Definition at line 151 of file TivaUsbCdcDevice.cxx.

◆ ~TivaCdc()

TivaCdc::~TivaCdc ( )
inline

Destructor.

Definition at line 71 of file TivaDev.hxx.

Member Function Documentation

◆ control_callback()

uint32_t TivaCdc::control_callback ( void *  data,
unsigned long  event,
unsigned long  msg_param,
void *  msg_data 
)
staticprivate

Handles CDC driver notifications related to control and setup of the device.

This is called from within interrupt context.

Parameters
dataprivate data
eventidentifies the event we are being notified about
msg_paramevent-specific value
msg_dataevent-specific data
Returns
return value is event specific

This is called from within interrupt context.

Parameters
dataprivate data
eventidentifies the event we are being notified about
msg_valueevent-specific value
msg_dataevent-specific data
Returns
return value is event specific

Definition at line 306 of file TivaUsbCdcDevice.cxx.

◆ disable()

void TivaCdc::disable ( )
overrideprivatevirtual

function to disable device

Disable use of the device interrupts.

Implements Node.

Definition at line 185 of file TivaUsbCdcDevice.cxx.

◆ enable()

void TivaCdc::enable ( )
overrideprivatevirtual

function to enable device

Enable use of the device interrupts.

Implements Node.

Definition at line 178 of file TivaUsbCdcDevice.cxx.

◆ interrupt_handler()

void TivaCdc::interrupt_handler ( void  )

handle an interrupt.

Interrupt Handler in context.

Todo:
(Stuart Baker) this should be made private

Definition at line 416 of file TivaUsbCdcDevice.cxx.

◆ rx_callback()

uint32_t TivaCdc::rx_callback ( void *  data,
unsigned long  event,
unsigned long  msg_param,
void *  msg_data 
)
staticprivate

Handles CDC driver notifications related to reception.

This is called from within interrupt context.

Parameters
dataprivate data
eventidentifies the event we are being notified about
msg_paramevent-specific value
msg_dataevent-specific data
Returns
return value is event specific

This is called from within interrupt context.

Parameters
dataprivate data
eventidentifies the event we are being notified about
msg_valueevent-specific value
msg_dataevent-specific data
Returns
return value is event specific

Definition at line 357 of file TivaUsbCdcDevice.cxx.

◆ select()

bool TivaCdc::select ( File file,
int  mode 
)
privatevirtual

Device select method.

Default impementation returns true.

Parameters
filereference to the file
modeFREAD for read active, FWRITE for write active, 0 for exceptions
Returns
true if active, false if inactive

Reimplemented from Serial.

Definition at line 260 of file TivaUsbCdcDevice.cxx.

◆ tx_callback()

uint32_t TivaCdc::tx_callback ( void *  data,
unsigned long  event,
unsigned long  msg_param,
void *  msg_data 
)
staticprivate

Handles CDC driver notifications related to transmission.

This is called from within interrupt context.

Parameters
dataprivate data
eventidentifies the event we are being notified about
msg_paramevent-specific value
msg_dataevent-specific data
Returns
return value is event specific

This is called from within interrupt context.

Parameters
dataprivate data
eventidentifies the event we are being notified about
msg_valueevent-specific value
msg_dataevent-specific data
Returns
return value is event specific

Definition at line 397 of file TivaUsbCdcDevice.cxx.

◆ tx_char()

void TivaCdc::tx_char ( )
inlineprivatevirtual

Function to try and transmit a character.

Unused by this device driver.

Implements Serial.

Definition at line 102 of file TivaDev.hxx.

◆ write()

ssize_t TivaCdc::write ( File file,
const void *  buf,
size_t  count 
)
privatevirtual

Write to a file or device.

Parameters
filefile reference for this device
buflocation to find write data
countnumber of bytes to write
Returns
number of bytes written upon success, -1 upon failure with errno containing the cause

Reimplemented from Serial.

Definition at line 196 of file TivaUsbCdcDevice.cxx.

Member Data Documentation

◆ connected

bool TivaCdc::connected
private

connection status

Definition at line 139 of file TivaDev.hxx.

◆ enabled

bool TivaCdc::enabled
private

enabled status

Definition at line 140 of file TivaDev.hxx.

◆ interrupt

uint32_t TivaCdc::interrupt
private

interrupt number for device

Definition at line 138 of file TivaDev.hxx.

◆ lineCoding

tLineCoding TivaCdc::lineCoding
private

line encoding for the device

Definition at line 143 of file TivaDev.hxx.

◆ selInfoWr

SelectInfo TivaCdc::selInfoWr
private

Metadata for select() logic.

Definition at line 144 of file TivaDev.hxx.

◆ txPending

bool TivaCdc::txPending
private

true if a transmission is in progress or pending

Definition at line 142 of file TivaDev.hxx.

◆ usbdcdcDevice

tUSBDCDCDevice TivaCdc::usbdcdcDevice
private

CDC serial device instance.

Definition at line 137 of file TivaDev.hxx.

◆ woken

int TivaCdc::woken
private

task woken metadata for ISR

Definition at line 141 of file TivaDev.hxx.


The documentation for this class was generated from the following files: