# Packet output

Packet output, in general, is performed by functions with 'print' in their names.

Basic functions for packet output:

- print() Print a string, or a number in various formats, to all faces (that are available for serial output)
- println() To all available faces, print a string, or a number in various formats, or nothing, and then end the packet.
- facePrint() To the specified face, print a string, or a number in various formats.
- facePrintln() To the specified face, print a string, or a number in various formats, or nothing, and then end the packet.
- In addition, output can be directed to a specific face by calling a `print` method on the face, such as

       NorthFace.println("cold");

Intermediate functions for packet output:

- printlnCheckByte() To all faces available for output, print a 'check byte' and then terminate the current packet.
- facePrintlnCheckByte() To the specified face, print a 'check byte' and then terminate the current packet.
- pprintf() Print, according to a given format, part of a packet, or a whole packet or multiple packets, to all faces available for output.
- facePrintf() To the specified face, print according to the given format.

Advanced, low-level, or internal functions affecting packet output:

- faceFindFreeFace() Find an unused 'virtual face code', if possible
- faceSetPrinter() Assign a custom printer to a virtual face.
- faceUnsetPrinter() Deassign any custom printer from a virtual face.