2021-01-29 06:31:58 -05:00
|
|
|
|
|
|
|
[![Arduino CI](https://github.com/RobTillaart/ANSI/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)
|
2021-10-18 10:35:48 -04:00
|
|
|
[![Arduino-lint](https://github.com/RobTillaart/ANSI/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/ANSI/actions/workflows/arduino-lint.yml)
|
|
|
|
[![JSON check](https://github.com/RobTillaart/ANSI/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/ANSI/actions/workflows/jsoncheck.yml)
|
2021-01-29 06:31:58 -05:00
|
|
|
[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/ANSI/blob/master/LICENSE)
|
|
|
|
[![GitHub release](https://img.shields.io/github/release/RobTillaart/ANSI.svg?maxAge=3600)](https://github.com/RobTillaart/ANSI/releases)
|
|
|
|
|
|
|
|
|
|
|
|
# ANSI
|
|
|
|
|
|
|
|
Arduino library with basic ANSI display codes for terminal applications.
|
|
|
|
|
|
|
|
|
|
|
|
# Description
|
|
|
|
|
2021-10-18 10:35:48 -04:00
|
|
|
ANSI codes are special codes that are send to a terminal e.g. VT100 to add
|
2021-01-29 06:31:58 -05:00
|
|
|
attributes to displayed characters.
|
2021-10-18 10:35:48 -04:00
|
|
|
Typical examples are bold, blink or colour.
|
2021-01-29 06:31:58 -05:00
|
|
|
Also known as escape codes the set of codes is large, however not
|
|
|
|
all terminal types do support all codes.
|
|
|
|
|
2021-10-18 10:35:48 -04:00
|
|
|
Sending these ANSI codes to a simple ASCII only terminal like the one in the Arduino
|
|
|
|
IDE might result in garbage. So use with care.
|
2021-01-29 06:31:58 -05:00
|
|
|
|
|
|
|
|
|
|
|
## Terminals tested
|
|
|
|
|
|
|
|
Tests are done with
|
2021-10-18 10:35:48 -04:00
|
|
|
- TeraTerm 4.102 + 4.106 (VT100, VT202, VT525 mode)
|
2021-01-29 06:31:58 -05:00
|
|
|
- Putty 0.71
|
|
|
|
|
2021-10-18 10:35:48 -04:00
|
|
|
Other terminal program's exist so please let me know if yours is working too.
|
2021-01-29 06:31:58 -05:00
|
|
|
If not, please open an issue.
|
|
|
|
|
2021-12-13 10:45:59 -05:00
|
|
|
|
|
|
|
## Operation
|
2021-01-29 06:31:58 -05:00
|
|
|
|
|
|
|
See examples
|
2021-12-13 10:45:59 -05:00
|
|
|
|
|
|
|
|
|
|
|
## Performance
|
|
|
|
|
|
|
|
Since 0.1.5 there is some focus on performance.
|
|
|
|
Using **ansi.print()** and **ansi.println()** for printing text and numbers is
|
|
|
|
improved a bit since 0.1.4 by adding the private **write(array, length)**.
|
|
|
|
|
|
|
|
|
2022-08-24 05:00:54 -04:00
|
|
|
## Experimental 0.1.6
|
|
|
|
|
|
|
|
Version 0.1.6 added a number of experimental function that need more testing.
|
|
|
|
Some are working, others are unclear, but the user can uncomment these and
|
|
|
|
experiment with them if needed.
|
|
|
|
|
|
|
|
Also added is the **int deviceType()** function which also need more testing
|
|
|
|
|
|
|
|
As always, constructive feedback is welcome.
|
|
|
|
|
|
|
|
|
2021-12-13 10:45:59 -05:00
|
|
|
## Future
|
|
|
|
|
|
|
|
- test more terminal programs (Linux mac)
|
|
|
|
- write more examples
|
|
|
|
- DOS emulator?
|
|
|
|
- increase functionality
|
|
|
|
- which codes are useful ?
|
|
|
|
- investigate performance. (first step made in 0.1.5 but more possible)
|
|
|
|
- add line buffer in write(c) to improve throughput?
|
|
|
|
- need for flush() with line buffer?
|
|
|
|
- rewrite functions, replace print() by **\_stream->write()** calls? (effect on size?)
|
|
|
|
|