Commit Graph

3 Commits

Author SHA1 Message Date
Collin J. Doering bc48704477 First pass setting up doxygen documentation
There are a few things that still need to be commented, furthermore,
usage of the library needs to be explained in more detail. Also things
are still somewhat unorganized as the lcdLib library is packaged up with
the lcdOutput application for testing. Also a tiny USART library is
included but has nothing to do with the lcdLib except that its used by
the lcdOutput demo program. When the lcdLib library is ready it will be
split into its own repository with accompanying examples (one of which
may be the USART echo example (lcdOutput.c as of this commit).

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-10-15 01:23:11 -04:00
Collin J. Doering 89a10c4802 Add remaining ANSI escapes to ansi_escapes.h
All ANSI escapes sequences except "Select graphic rendition" are
supported.

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-10-15 00:27:19 -04:00
Collin J. Doering ea7003ce83 Simplify entry of ANSI escape sequences
Use pre-processor macros to allow for simple entry of ANSI escape
sequences.

Many escape sequences don't require all characters in all cases.
Example: Cursor movement (up down, forward and back) all take one
parameter (natural number) that defaults to 1, and can be omitted in
this case. Calling the associated macros with 1 will generate the
correct escape but not the smallest one. Now for these single argument
cases (there are others also) the macro of choice can be used with an
empty argument which will generate the smallest ANSI escape sequence.
Eg, the following are equivalent: CUD() === CUD(1)

Another example is use of CUP (cursor position). It takes two arguments
which both default to 1. Similarly to the CUD example above, CUP(1,1)
generates a valid ANSI escape sequence, just not the smallest one. The
smallest one can be achieved by omitting the arguments to CUP: CUP(,).

For more information on ANSI escapes see wikipedia:
https://en.wikipedia.org/wiki/ANSI_escape_code

This is just an initial proof of concept and is not complete;
namely:

- Not all ANSI escapes are implemented
- Macros don't error check for the user; that is, invalid escapes can be
  generated (Eg. the argument to ED is constrained to 0, 1, or 2 but
  this is not checked by the ED macro)
- Macro's can generate invalid ANSI escapes when the argument that's
  given is not a natural number (specified as ASCII)

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-10-09 01:35:47 -04:00