The Pedigree Project  0.1
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
SerialIO Class Reference

#include <SerialIO.h>

+ Inheritance diagram for SerialIO:
+ Collaboration diagram for SerialIO:

Public Member Functions

 SerialIO (Serial *pSerial)
 
void setCliUpperLimit (size_t nlines)
 
void setCliLowerLimit (size_t nlines)
 
void enableCli ()
 
void disableCli ()
 
void cls ()
 
char getCharNonBlock ()
 
void readDimensions ()
 
void drawHorizontalLine (char c, size_t row, size_t colStart, size_t colEnd, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour)
 
void drawVerticalLine (char c, size_t col, size_t rowStart, size_t rowEnd, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour)
 
void drawString (const char *str, size_t row, size_t col, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour)
 
size_t getWidth ()
 
size_t getHeight ()
 
void enableRefreshes ()
 
void disableRefreshes ()
 
void forceRefresh ()
 
char getChar ()
 
void initialise ()
 
void destroy ()
 
- Public Member Functions inherited from DebuggerIO
 DebuggerIO ()
 
virtual void writeCli (const char *str, Colour foreColour, Colour backColour)
 
virtual void writeCli (char ch, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour)
 
virtual bool readCli (HugeStaticString &str, DebuggerCommand *pAutoComplete)
 

Protected Member Functions

void scroll ()
 
void moveCursor ()
 
void putChar (char c, DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour)
 
void startColour (DebuggerIO::Colour foreColour, DebuggerIO::Colour backColour)
 
void endColour ()
 
void readCursor ()
 
void setCursor ()
 
void saveCursor ()
 
void unsaveCursor ()
 

Protected Attributes

size_t m_UpperCliLimit
 
size_t m_LowerCliLimit
 
size_t m_nWidth
 
size_t m_nHeight
 
size_t m_nCursorX
 
size_t m_nCursorY
 
size_t m_nOldCursorX
 
size_t m_nOldCursorY
 
DebuggerIO::Colour m_ForeColour
 
DebuggerIO::Colour m_BackColour
 
Serialm_pSerial
 
bool m_bCli
 
- Protected Attributes inherited from DebuggerIO
bool m_bReady
 
char m_pCommand [COMMAND_MAX]
 
bool m_bRefreshesEnabled
 

Private Member Functions

 SerialIO (const SerialIO &)
 
SerialIOoperator= (const SerialIO &)
 

Additional Inherited Members

- Public Types inherited from DebuggerIO
enum  Colour {
  Black = 0, Blue = 1, Green = 2, Cyan = 3,
  Red = 4, Magenta = 5, Orange = 6, LightGrey = 7,
  DarkGrey = 8, LightBlue = 9, LightGreen = 10, LightCyan = 11,
  LightRed = 12, LightMagenta = 13, Yellow = 14, White = 15
}
 

Detailed Description

Provides an implementation of DebuggerIO, using the serial port.

Definition at line 34 of file SerialIO.h.

Constructor & Destructor Documentation

SerialIO::SerialIO ( Serial pSerial)

Default constructor and destructor.

Definition at line 25 of file SerialIO.cc.

References Hex, m_nCursorX, m_pSerial, and NOTICE.

Member Function Documentation

void SerialIO::drawHorizontalLine ( char  c,
size_t  row,
size_t  colStart,
size_t  colEnd,
DebuggerIO::Colour  foreColour,
DebuggerIO::Colour  backColour 
)
virtual

Draw a line of characters in the given fore and back colours, in the horizontal or vertical direction. Note that if the CLI is enabled, anything drawn across the CLI area can be wiped without warning.

Implements DebuggerIO.

Definition at line 154 of file SerialIO.cc.

References m_nWidth, and m_pSerial.

void SerialIO::drawString ( const char *  str,
size_t  row,
size_t  col,
DebuggerIO::Colour  foreColour,
DebuggerIO::Colour  backColour 
)
virtual

Draws a string of text at the given location in the given colour. note that wrapping is not performed, the string will be clipped.

Implements DebuggerIO.

Definition at line 254 of file SerialIO.cc.

References m_pSerial.

void SerialIO::enableCli ( )
virtual

Enables or disables the command line interface, allowing full access to the display. disableCli blanks the screen, enableCli blanks it and puts a prompt up.

Implements DebuggerIO.

Definition at line 101 of file SerialIO.cc.

References m_LowerCliLimit, DebuggerIO::m_pCommand, m_pSerial, and m_UpperCliLimit.

void SerialIO::enableRefreshes ( )
virtual

Allows disabling of refreshes, for example when deleting something then writing it back.

Implements DebuggerIO.

Definition at line 275 of file SerialIO.cc.

References DebuggerIO::m_bRefreshesEnabled.

Referenced by getWidth().

+ Here is the caller graph for this function:

char SerialIO::getChar ( )
virtual

Gets a character from the keyboard. Blocking. Returns 0 for a nonprintable character.

Implements DebuggerIO.

Definition at line 138 of file SerialIO.cc.

References ERROR, and m_pSerial.

Referenced by getWidth().

+ Here is the caller graph for this function:

size_t SerialIO::getWidth ( )
inlinevirtual

Returns the width and height respectively of the console.

Implements DebuggerIO.

Definition at line 87 of file SerialIO.h.

References enableRefreshes(), getChar(), m_nWidth, moveCursor(), putChar(), and scroll().

void SerialIO::moveCursor ( )
protectedvirtual

Updates the hardware cursor position.

Implements DebuggerIO.

Definition at line 289 of file SerialIO.cc.

References m_pSerial.

Referenced by getWidth().

+ Here is the caller graph for this function:

void SerialIO::putChar ( char  c,
DebuggerIO::Colour  foreColour,
DebuggerIO::Colour  backColour 
)
protectedvirtual
Todo:
This code below is costly and slow, but without it we can't line-wrap. Sort this out.

Implements DebuggerIO.

Definition at line 299 of file SerialIO.cc.

References ERROR, m_nCursorX, m_nWidth, and m_pSerial.

Referenced by getWidth().

+ Here is the caller graph for this function:

void SerialIO::scroll ( )
protectedvirtual

Scrolls the CLI screen down a line, if needed.

Implements DebuggerIO.

Definition at line 285 of file SerialIO.cc.

Referenced by getWidth().

+ Here is the caller graph for this function:

void SerialIO::setCliUpperLimit ( size_t  nlines)
virtual

Forces the command line interface not to use the specified number of lines from either the top or bottom of the screen, respectively. Can be used to create status lines that aren't destroyed by screen scrolling.

Implements DebuggerIO.

Definition at line 87 of file SerialIO.cc.

References m_LowerCliLimit, and m_UpperCliLimit.

Member Data Documentation

size_t SerialIO::m_LowerCliLimit
protected

How many lines from the top of the screen the top of our CLI area is.

Definition at line 141 of file SerialIO.h.

Referenced by enableCli(), and setCliUpperLimit().

size_t SerialIO::m_nCursorX
protected

Cursor position, temporary.

Definition at line 153 of file SerialIO.h.

Referenced by putChar(), and SerialIO().

size_t SerialIO::m_nWidth
protected

How many lines from the bottom of the screen the bottom of our CLI area is. Width and height.

Definition at line 147 of file SerialIO.h.

Referenced by drawHorizontalLine(), getWidth(), and putChar().

Serial* SerialIO::m_pSerial
protected

Serial device.

Definition at line 164 of file SerialIO.h.

Referenced by drawHorizontalLine(), drawString(), enableCli(), getChar(), moveCursor(), putChar(), and SerialIO().

size_t SerialIO::m_UpperCliLimit
protected

Current upper and lower CLI limits.

Definition at line 139 of file SerialIO.h.

Referenced by enableCli(), and setCliUpperLimit().


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