GY-63_MS5611/libraries/PrintCharArray/readme.md

70 lines
2.5 KiB
Markdown
Raw Normal View History

2021-01-29 06:31:58 -05:00
[![Arduino CI](https://github.com/RobTillaart/PrintCharArray/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)
2021-11-13 10:35:33 -05:00
[![Arduino-lint](https://github.com/RobTillaart/PrintCharArray/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/PrintCharArray/actions/workflows/arduino-lint.yml)
[![JSON check](https://github.com/RobTillaart/PrintCharArray/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/PrintCharArray/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/PrintCharArray/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/release/RobTillaart/PrintCharArray.svg?maxAge=3600)](https://github.com/RobTillaart/PrintCharArray/releases)
2020-11-27 05:28:57 -05:00
# PrintCharArray
2021-11-13 10:35:33 -05:00
Arduino library to print to a char array.
2020-11-27 05:28:57 -05:00
2017-12-09 14:39:12 -05:00
2021-01-29 06:31:58 -05:00
## Description
2017-12-09 14:39:12 -05:00
2021-11-13 10:35:33 -05:00
PrintCharArray is a class that implements the Print interface and an internal char array.
It will effectively buffer a number of print statements and allows it to be printed or
processed (for real) later.
2021-01-29 06:31:58 -05:00
The internal buffer can be set in the constructor and has a minimum of 20 bytes and
2021-11-13 10:35:33 -05:00
a maximum of 250 bytes. Default size is 100 bytes.
2021-01-29 06:31:58 -05:00
Applications
2021-12-24 07:08:51 -05:00
- Buffer slowly generated data, and send it with minimum time between bytes.
Use it e.g. for faster printing to SD card or Ethernet which can handle larger buffers.
2021-11-13 10:35:33 -05:00
- print to buffer to see how many chars the output will be.
- use to prevent "display line overflow" (e.g. floats).
- use to right align output (see examples).
-
2021-01-29 06:31:58 -05:00
2021-12-24 07:08:51 -05:00
Related to https://github.com/RobTillaart/PrintSize and https://github.com/RobTillaart/PrintString.
2021-01-29 06:31:58 -05:00
## Interface
2021-11-13 10:35:33 -05:00
- **PrintCharArray(uint8_t size = 100)** constructor, default size of 100 bytes.
- **size_t write(uint8_t c)** workhorse I of Print interface.
- **size_t write(uint8_t \* str, uint8_t length)** workhorse II of Print interface.
- **void clear()** wipes the internal buffer.
2021-01-29 06:31:58 -05:00
- **int available()** shows how much space is left in the internal buffer.
Replaces free().
2021-11-13 10:35:33 -05:00
- **int size()** current usage of the buffer.
- **int bufSize()** size of the whole buffer.
Recall that a char array must have a '\0' delimiter.
2021-01-29 06:31:58 -05:00
- **char \* getBuffer()** to access the buffer.
2020-11-27 05:28:57 -05:00
## Operation
2017-12-09 14:39:12 -05:00
2021-12-24 07:08:51 -05:00
See examples.
2021-11-13 10:35:33 -05:00
## Future
2022-11-22 09:51:21 -05:00
#### must
- documentation
#### should
- move code to .cpp file
2021-11-13 10:35:33 -05:00
- testing
2022-11-22 09:51:21 -05:00
#### could
2021-12-24 07:08:51 -05:00
- examples
- inject spaces in "middle align" example? possible?
- rename some
- add real live examples.
2021-11-13 10:35:33 -05:00
- add functions like **repeat(char c)** to inject e.g. 7 spaces etc.
- add error flag
-