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

This class provides a means to write CAN data to an a file descriptor in Grid Connect format. More...

#include <GridConnect.hxx>

Protected Member Functions

 GridConnect ()
 Constructor.
 
 ~GridConnect ()
 Destructor.
 

Static Protected Member Functions

static ssize_t write (int fd, const void *data, size_t len)
 Write a CAN packet to Grid Connect interface in single format.
 
static ssize_t write_double (int fd, const void *data, size_t len)
 Write a CAN packet to Grid Connect interface in double format.
 
static ssize_t read (int fd, void *data, size_t len)
 Read a CAN packet to Grid Connect interface in single format.
 
static ssize_t read_double (int fd, void *data, size_t len)
 Read a CAN packet to Grid Connect interface in double format.
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (GridConnect)
 

Static Private Member Functions

static ssize_t write_generic (int fd, const void *data, size_t len, bool doub)
 Write a CAN packet to Grid Connect interface in single or double format.
 
static ssize_t read_generic (int fd, void *data, size_t len, bool doub)
 Read a CAN packet to Grid Connect interface in single or double format.
 
static ssize_t encode (struct can_frame *frame, unsigned char buf[])
 
static char nibble_to_ascii (int nibble)
 Builds an ASCII character representation of a nibble value.
 
static int ascii_pair_to_byte (const char *pair)
 Take a pair of ASCII characters and convert them to a byte value.
 

Detailed Description

This class provides a means to write CAN data to an a file descriptor in Grid Connect format.

Definition at line 47 of file GridConnect.hxx.

Constructor & Destructor Documentation

◆ GridConnect()

GridConnect::GridConnect ( )
inlineprotected

Constructor.

Definition at line 52 of file GridConnect.hxx.

◆ ~GridConnect()

GridConnect::~GridConnect ( )
inlineprotected

Destructor.

Definition at line 58 of file GridConnect.hxx.

Member Function Documentation

◆ ascii_pair_to_byte()

static int GridConnect::ascii_pair_to_byte ( const char *  pair)
inlinestaticprivate

Take a pair of ASCII characters and convert them to a byte value.

pointer to two ASCII characters

Parameters
pairpoints to two hex digits.
Returns
byte value

Definition at line 152 of file GridConnect.hxx.

◆ encode()

ssize_t GridConnect::encode ( struct can_frame *  frame,
unsigned char  buf[] 
)
staticprivate
Parameters
frameis the binary CAn frame to encode.
bufarray of at least 28 bytes to place encoded data into
Returns
number of bytes making up the final encoded packet

Definition at line 40 of file GridConnect.cxx.

◆ nibble_to_ascii()

static char GridConnect::nibble_to_ascii ( int  nibble)
inlinestaticprivate

Builds an ASCII character representation of a nibble value.

Parameters
nibblevalue to convert
Returns
converted value

Definition at line 135 of file GridConnect.hxx.

◆ read()

static ssize_t GridConnect::read ( int  fd,
void *  data,
size_t  len 
)
inlinestaticprotected

Read a CAN packet to Grid Connect interface in single format.

Parameters
fdfile descriptor for device
datalocation to read can data into
lenlength of data, should be a multiple of sizeof(struct can_frame)
Returns
number of bytes read, or -1 with errno set

Definition at line 90 of file GridConnect.hxx.

◆ read_double()

static ssize_t GridConnect::read_double ( int  fd,
void *  data,
size_t  len 
)
inlinestaticprotected

Read a CAN packet to Grid Connect interface in double format.

Parameters
fdfile descriptor for device
datalocation to read can data into
lenlength of data, should be a multiple of sizeof(struct can_frame)
Returns
number of bytes read, or -1 with errno set

Definition at line 101 of file GridConnect.hxx.

◆ read_generic()

ssize_t GridConnect::read_generic ( int  fd,
void *  data,
size_t  len,
bool  doub 
)
staticprivate

Read a CAN packet to Grid Connect interface in single or double format.

Parameters
fdfile descriptor for device
datalocation to read can data into
lenlength of data, should be a multiple of sizeof(struct can_frame)
doubtrue if this is a double read
Returns
number of bytes read, or -1 with errno set
Todo:
this decode method is simple, but could be optimized.

Definition at line 160 of file GridConnect.cxx.

◆ write()

static ssize_t GridConnect::write ( int  fd,
const void *  data,
size_t  len 
)
inlinestaticprotected

Write a CAN packet to Grid Connect interface in single format.

Parameters
fdfile descriptor for device
datacan data to write
lenlength of data, should be a multiple of sizeof(struct can_frame)
Returns
number of bytes written, or -1 with errno set

Definition at line 68 of file GridConnect.hxx.

◆ write_double()

static ssize_t GridConnect::write_double ( int  fd,
const void *  data,
size_t  len 
)
inlinestaticprotected

Write a CAN packet to Grid Connect interface in double format.

Parameters
fdfile descriptor for device
datacan data to write
lenlength of data, should be a multiple of sizeof(struct can_frame)
Returns
number of bytes written, or -1 with errno set

Definition at line 79 of file GridConnect.hxx.

◆ write_generic()

ssize_t GridConnect::write_generic ( int  fd,
const void *  data,
size_t  len,
bool  doub 
)
staticprivate

Write a CAN packet to Grid Connect interface in single or double format.

Write a CAN packet to Grid Connect interface in double format.

Parameters
fdfile descriptor for device
datacan data to write
lenlength of data, should be a multiple of sizeof(struct can_frame)
doubtrue if this is a double write
Returns
number of bytes written, or -1 with errno set

Definition at line 103 of file GridConnect.cxx.


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