PropWare
3.0.0.229
C++ objects and CMake build system for Parallax Propeller
|
This library provides a collection of functions for communicating with text devices such as SimpleIDE Terminal, serial peripheral devices, and even VGA displays. Libraries like serial, fdserial, and vgatext return pointer/identifiers that can be used with this library's dprint, dscan, and write/read function parameters that have text_t types. The identifier allows the application's code to specify which connection to use for sending and receiving formatted text. More...
Go to the source code of this file.
Classes | |
struct | text_struct |
Structure that contains data used by simple text device libraries. More... | |
Macros | |
#define | SIMPLETEXT_ECS |
#define | ECHO_RX_TO_TX 32 |
Typedefs | |
typedef struct text_struct | text_t |
Structure that contains data used by simple text device libraries. | |
typedef text_t | terminal |
Functions | |
void | set_endChars (text_t *text, char cA, char cB) |
void | set_endCharSequence (text_t *text, char cA, char cB) |
void | putByte (char c) |
int | getByte (void) |
int | readByte (text_t *text) |
void | writeByte (text_t *p, char c) |
void | terminal_setEcho (text_t *text, int state) |
int | terminal_checkEcho (text_t *text) |
int | print (const char *format,...) __attribute__((format(printf |
Print format "..." args to the default simple terminal device. The output is limited to 256 bytes. More... | |
int int | scan (const char *fmt,...) __attribute__((format(printf |
Convert formatted simple terminal input to the "..." args. The input is limited to 256 bytes. More... | |
int int int | sprint (char *buffer, const char *format,...) __attribute__((format(printf |
Print format "..." args to the output buffer. The output buffer must be big enough for the output. More... | |
int int int int | sscan (const char *buffer, const char *fmt,...) __attribute__((format(printf |
Convert formatted buffer to the "..." args. More... | |
int int int int int | sscanAfterStr (char *buffer, char *str, char *fmt,...) __attribute__((format(printf |
Store values represented by characters in a buffer in variable list using "..." args. More... | |
Print/Scan for Device Communication | |
int | dprint (text_t *device, const char *format,...) __attribute__((format(printf |
Print format "..." args to the device The output is limited to 256 bytes. More... | |
int int | dscan (text_t *device, const char *fmt,...) __attribute__((format(printf |
Convert formatted device input to the "..." args. The input is limited to 256 bytes. More... | |
Integer-Only Versions | |
For reduced program sizes if no floating point values are printed/scanned. | |
int | printi (const char *format,...) __attribute__((format(printf |
Print integer and char only format "..." args to the default simple terminal device. This version does not support floating point. The output is limited to 256 bytes. More... | |
int int | scani (const char *fmt,...) __attribute__((format(printf |
Convert formatted simple terminal input to the "..." args. This version does not provide floating point conversions. The input is limited to 256 bytes. More... | |
int int int | dprinti (text_t *device, const char *format,...) __attribute__((format(printf |
Print integer and char only format "..." args to the default simple terminal device. This version does not support floating point. The output is limited to 256 bytes. More... | |
int int int int | dscani (text_t *device, const char *fmt,...) __attribute__((format(printf |
Convert formatted device input to the "..." args. This version does not provide floating point conversions. The input is limited to 256 bytes. More... | |
int int int int int | sprinti (char *buffer, const char *format,...) __attribute__((format(printf |
Print integer and char only format "..." args to the default simple terminal device. This version does not support floating point. The output is limited to 256 bytes. More... | |
int int int int int int | sscani (const char *buffer, const char *fmt,...) __attribute__((format(printf |
Convert formatted buffer to the "..." args. This version does not provide floating point conversions. More... | |
Output to Terminal | |
void | putChar (char c) |
Print a char to the debug port. More... | |
int | putStr (const char *str) |
Print string to the debug port. More... | |
void | putDec (int value) |
Print string representation of a decimal number to the debug port. More... | |
void | putFloat (float value) |
Print string representation of a 32 bit floating point number to the debug port. More... | |
void | putBin (int value) |
Print string representation of a binary number to the debug port. More... | |
void | putHex (int value) |
Print string representation of a hexadecimal number to the debug port. More... | |
int | putStrLen (char *str, int width) |
Send a string with a certain number of characters. More... | |
void | putDecLen (int value, int width) |
Print string representation of a decimal number to the debug port. More... | |
void | putFloatPrecision (float value, int width, int precision) |
Print string representation of a 32 bit floating point number to the debug port with a fixed number of digits. More... | |
void | putBinLen (int value, int digits) |
Print string representation of a binary number to debug port with a fixed number of digits. More... | |
void | putHexLen (int value, int digits) |
Print string representation of a hexadecimal number to the debug port with a fixed number of digits. More... | |
int | putln (const char *str) |
Print string + new line on the transmit debug port. More... | |
int | putLine (const char *str) |
Print string + new line on the transmit debug port. This is an alias of putln. More... | |
int | putStrWithNpcVals (const char *s) |
Print string to the debug port, and display all non printable characters (NPCs) as decimal ASCII values in brackets. For example, delete would be [127]. This function also displays the null [0] terminator. More... | |
Input from Terminal | |
int | getBin (void) |
Get binary number from the debug port. More... | |
int | getChar (void) |
Get char from the debug port. More... | |
int | getDec (void) |
Get decimal number from the debug port. More... | |
float | getFloat (void) |
Get floating point number from the debug port. More... | |
int | getHex (void) |
Get hexadecimal number from the debug port. More... | |
char * | getStr (char *buffer, int max) |
Get string of chars from the debug port. More... | |
Output to Device | |
void | writeChar (text_t *device, char c) |
Send a character to the device. More... | |
int | writeStr (text_t *device, char *str) |
Send a string to the device. More... | |
void | writeDec (text_t *device, int value) |
Print string representation of a decimal number to output. More... | |
void | writeFloat (text_t *device, float value) |
Print string representation of a 32 bit floating point number to device. More... | |
void | writeBin (text_t *device, int value) |
Print string representation of a binary number to the receive device. More... | |
void | writeHex (text_t *device, int value) |
Print string representation of a hexadecimal number to output device. More... | |
int | writeStrLen (text_t *device, char *str, int width) |
Send a string to the device. More... | |
void | writeDecLen (text_t *device, int value, int width) |
Print string representation of a decimal number to output device with a fixed number of digits. More... | |
void | writeFloatPrecision (text_t *device, float value, int width, int precision) |
Print string representation of a 32 bit floating point number to device with a certain number of decimal point digits. More... | |
void | writeBinLen (text_t *device, int value, int digits) |
Print string representation of a binary number to output with a fixed number of digits. More... | |
void | writeHexLen (text_t *device, int value, int digits) |
Print string representation of a hexadecimal number to output device with a fixed number of digits. More... | |
int | writeLine (text_t *device, char *str) |
Send a string + new line to the device. More... | |
Input from Device | |
int | readChar (text_t *device) |
Get char from the device. More... | |
char * | readStr (text_t *device, char *buffer, int max) |
Get string of chars from the device. More... | |
int | readDec (text_t *device) |
Get decimal number from the device. More... | |
float | readFloat (text_t *device) |
Get floating point number from the device. More... | |
int | readBin (text_t *device) |
Get binary number from the device. More... | |
int | readHex (text_t *device) |
Get hexadecimal number from the device. More... | |
For Passing Terminal Control between Cogs and/or Devices | |
terminal * | simpleterm_open (void) |
Reopens the SimpleIDE Terminal connection if it was closed previously. The SimpleIDE Terminal connection transmits on P30 and receives on P31 at 115200 bps. The port is a simple serial driver running in the same cog, and does not buffer bytes. More... | |
void | simpleterm_close (void) |
Closes the SimpleIDE Terminal connection in one cog so that it can be opened in another cog with simpleterm_open, fdserial_open(30, 31, 0, 115200), or some other driver. | |
terminal * | simpleterm_reopen (int rxpin, int txpin, int mode, int baud) |
Closes and the simple terminal connection, and reopens it in the calling cog. Depending on the parameters used, it can also be used to switch from one terminal device to another. More... | |
static void | simpleterm_set (text_t *ptr) |
Sets default debug port device. Make sure to open a connection to the device before calling the function. Please use the simpleterm_reopen() is recommended because this function may cause bad character output in some cases. More... | |
terminal * | simpleterm_pointer (void) |
Get default device pointer to SimpleIDE Terminal. More... | |
This library provides a collection of functions for communicating with text devices such as SimpleIDE Terminal, serial peripheral devices, and even VGA displays. Libraries like serial, fdserial, and vgatext return pointer/identifiers that can be used with this library's dprint, dscan, and write/read function parameters that have text_t types. The identifier allows the application's code to specify which connection to use for sending and receiving formatted text.
Features:
Definition in file simpletext.h.
#define ECHO_RX_TO_TX 32 |
Mode bit 5 can be set to 1 to locally echo characters.
Definition at line 64 of file simpletext.h.
By default the terminal will use simple serial for input/output It can be overloaded.
Definition at line 266 of file simpletext.h.
Print format "..." args to the device The output is limited to 256 bytes.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
format | C printf comparable format string. |
... | Arguments to use with the format string. |
Print integer and char only format "..." args to the default simple terminal device. This version does not support floating point. The output is limited to 256 bytes.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
format | C printf comparable format string. |
... | Arguments to use with the format string. |
Convert formatted device input to the "..." args. The input is limited to 256 bytes.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
*fmt | C printf comparable format string. |
... | Arguments where output will go and must be pointers. |
Convert formatted device input to the "..." args. This version does not provide floating point conversions. The input is limited to 256 bytes.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
*fmt | C printf comparable format string. |
... | Arguments where output will go and must be pointers. |
int getBin | ( | void | ) |
int getChar | ( | void | ) |
int getDec | ( | void | ) |
float getFloat | ( | void | ) |
Get floating point number from the debug port.
Definition at line 10 of file getFloat.c.
int getHex | ( | void | ) |
Get string of chars from the debug port.
*buffer | array of chars with enough elements to hold the input string plus 2 null terminators. |
max | Maximum size to read and should be less or equal buffer size. |
int print | ( | const char * | format, |
... | |||
) |
Print format "..." args to the default simple terminal device. The output is limited to 256 bytes.
Format specifiers for print dprint, and sprint:
%% Prints % sign to the output.
b Prints binary representation of an int parameter.
Note: b is not an ANSI standard format specifier.
c Prints char representation of a char parameter.
d Prints decimal integer representation of an int parameter.
f Prints floating point representation of a float parameter.
s Prints string representation of a char* parameter.
u Prints unsigned integer representation of an unsigned int parameter.
x Prints hexadecimal integer representation of an int parameter.
Width and precision n.p cause n integer digits of a float to print, and p digits to the right of the decimal to print.
format | C printf comparable format string. |
... | Arguments to use with the format string. |
int printi | ( | const char * | format, |
... | |||
) |
Print integer and char only format "..." args to the default simple terminal device. This version does not support floating point. The output is limited to 256 bytes.
format | C printf comparable format string. |
... | Arguments to use with the format string. |
void putBin | ( | int | value | ) |
void putBinLen | ( | int | value, |
int | digits | ||
) |
Print string representation of a binary number to debug port with a fixed number of digits.
value | Number to print. |
digits | Number of characters to print. |
Definition at line 10 of file putBinDigits.c.
void putChar | ( | char | c | ) |
Print a char to the debug port.
c | Char to send. |
Definition at line 30 of file putChar.c.
void putDec | ( | int | value | ) |
Print string representation of a decimal number to the debug port.
value | Number to print. |
Definition at line 10 of file putDec.c.
void putDecLen | ( | int | value, |
int | width | ||
) |
Print string representation of a decimal number to the debug port.
value | Number to print. |
width | Number of characters to print padded by zeroes. |
Definition at line 10 of file putDecDigits.c.
void putFloat | ( | float | value | ) |
Print string representation of a 32 bit floating point number to the debug port.
value | Number to print. |
Definition at line 10 of file putFloat.c.
void putFloatPrecision | ( | float | value, |
int | width, | ||
int | precision | ||
) |
Print string representation of a 32 bit floating point number to the debug port with a fixed number of digits.
value | Number to print. |
width | Number of characters to print. |
precision | Number of decimal point digits to print. |
Definition at line 10 of file putFloatPrecision.c.
void putHex | ( | int | value | ) |
void putHexLen | ( | int | value, |
int | digits | ||
) |
Print string representation of a hexadecimal number to the debug port with a fixed number of digits.
value | Number to print. |
digits | Number of hexadecimal characters to print padded by zeroes. |
Definition at line 10 of file putHexDigits.c.
int putLine | ( | const char * | str | ) |
Print string + new line on the transmit debug port. This is an alias of putln.
*str | Null terminated string to send. |
Definition at line 14 of file putLine.c.
int putln | ( | const char * | str | ) |
Print string + new line on the transmit debug port.
*str | Null terminated string to send. |
Definition at line 13 of file putln.c.
int putStr | ( | const char * | str | ) |
Print string to the debug port.
*str | Null terminated string to send. |
Definition at line 10 of file putStr.c.
int putStrLen | ( | char * | str, |
int | width | ||
) |
Send a string with a certain number of characters.
str | Null terminated string to send. |
width | Number of characters to print padded by spaces. |
Definition at line 11 of file putStrDigits.c.
int putStrWithNpcVals | ( | const char * | s | ) |
Print string to the debug port, and display all non printable characters (NPCs) as decimal ASCII values in brackets. For example, delete would be [127]. This function also displays the null [0] terminator.
*str | Null terminated string to send. |
Definition at line 12 of file putStrWithNpcVals.c.
int readBin | ( | text_t * | device | ) |
Get binary number from the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
Definition at line 16 of file getBin.c.
int readChar | ( | text_t * | device | ) |
Get char from the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
Definition at line 17 of file getChar.c.
int readDec | ( | text_t * | device | ) |
Get decimal number from the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
Definition at line 17 of file getDec.c.
Get floating point number from the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
Definition at line 16 of file getFloat.c.
int readHex | ( | text_t * | device | ) |
Get hexadecimal number from the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
Definition at line 15 of file getHex.c.
Get string of chars from the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
buffer | Char array with enough elements to hold the input string. |
max | Maximum size to read and should be less or equal buffer size. |
int int scan | ( | const char * | fmt, |
... | |||
) |
Convert formatted simple terminal input to the "..." args. The input is limited to 256 bytes.
Format specifiers for scan, dscan, and sscan:
Width and precision n.p cause n integer digits to scan to the left of the decimal point, p digits to the right.
*fmt | C printf comparable format string. |
... | Arguments where output will go and must be pointers. |
int int scani | ( | const char * | fmt, |
... | |||
) |
Convert formatted simple terminal input to the "..." args. This version does not provide floating point conversions. The input is limited to 256 bytes.
*fmt | C printf comparable format string. |
... | Arguments where output will go and must be pointers. |
terminal* simpleterm_open | ( | void | ) |
Reopens the SimpleIDE Terminal connection if it was closed previously. The SimpleIDE Terminal connection transmits on P30 and receives on P31 at 115200 bps. The port is a simple serial driver running in the same cog, and does not buffer bytes.
terminal* simpleterm_pointer | ( | void | ) |
Get default device pointer to SimpleIDE Terminal.
Get the SimpleTerm default text_t pointer
Definition at line 51 of file simpleterm.c.
terminal* simpleterm_reopen | ( | int | rxpin, |
int | txpin, | ||
int | mode, | ||
int | baud | ||
) |
Closes and the simple terminal connection, and reopens it in the calling cog. Depending on the parameters used, it can also be used to switch from one terminal device to another.
rxpin | Serial input pin, receives serial data. The default on start- up is P31 for receiving characters from the host computer's terminal. |
txpin | Serial output pin, transmits serial data. The default on start-up is P30 for sending characters to the host computer's terminal. |
mode | Unused mode field (for fdserial compatibility). |
baud | Bit value transmit rate, 9600, 31250, etc... The default on start-up is 115200. |
Definition at line 35 of file simpleterm_close.c.
|
static |
Sets default debug port device. Make sure to open a connection to the device before calling the function. Please use the simpleterm_reopen() is recommended because this function may cause bad character output in some cases.
*ptr | Device ID pointer to serial, fdserial, or other text_t device. |
Definition at line 1058 of file simpletext.h.
Print format "..." args to the output buffer. The output buffer must be big enough for the output.
buffer | Pointer to memory where formatted output can be stored. |
*format | is a C printf comparable format string. |
... | is the arguments to use with the format string. |
Print integer and char only format "..." args to the default simple terminal device. This version does not support floating point. The output is limited to 256 bytes.
buffer | Pointer to memory where formatted output can be stored. |
*format | C printf comparable format string. |
... | Arguments to use with the format string. |
Convert formatted buffer to the "..." args.
*buffer | Pointer to memory where formatted output can be stored. |
*fmt | C printf comparable format string. |
... | Arguments where output will go and must be pointers. |
Store values represented by characters in a buffer in variable list using "..." args.
*buffer | Pointer to string with formatted values. |
*str | String to find before scanning. Scanning starts after the last character. in this string. |
*fmt | C printf comparable format string. |
... | Arguments where output will go and must be pointers. |
Convert formatted buffer to the "..." args. This version does not provide floating point conversions.
buffer | Pointer to memory where formatted output can be stored. |
*fmt | C printf comparable format string. |
... | Arguments where output will go and must be pointers. |
void writeBin | ( | text_t * | device, |
int | value | ||
) |
Print string representation of a binary number to the receive device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
value | Number to print. |
Definition at line 10 of file writeBin.c.
void writeBinLen | ( | text_t * | device, |
int | value, | ||
int | digits | ||
) |
Print string representation of a binary number to output with a fixed number of digits.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
value | Number to print. |
digits | Number of characters to print. |
Definition at line 10 of file writeBinDigits.c.
Send a character to the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
c | Character to send. |
Definition at line 11 of file writeChar.c.
void writeDec | ( | text_t * | device, |
int | value | ||
) |
Print string representation of a decimal number to output.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
value | Number to print. |
Definition at line 10 of file writeDec.c.
void writeDecLen | ( | text_t * | device, |
int | value, | ||
int | width | ||
) |
Print string representation of a decimal number to output device with a fixed number of digits.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
value | Number to print. |
width | Number of characters to print padded by spaces. |
Definition at line 10 of file writeDecDigits.c.
Print string representation of a 32 bit floating point number to device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
value | Number to print. |
Definition at line 10 of file writeFloat.c.
Print string representation of a 32 bit floating point number to device with a certain number of decimal point digits.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
width | Number of characters to print. |
precision | Number of decimal point digits to print. |
value | Number to print. |
Definition at line 10 of file writeFloatPrecision.c.
void writeHex | ( | text_t * | device, |
int | value | ||
) |
Print string representation of a hexadecimal number to output device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
value | Number to print. |
Definition at line 10 of file writeHex.c.
void writeHexLen | ( | text_t * | device, |
int | value, | ||
int | digits | ||
) |
Print string representation of a hexadecimal number to output device with a fixed number of digits.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
value | Number to print. |
digits | Number of hexadecimal characters to print. |
Definition at line 10 of file writeHexDigits.c.
Send a string + new line to the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
str | Null terminated string to send. |
Definition at line 10 of file writeLine.c.
Send a string to the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
str | Null terminated string to send. |
Definition at line 10 of file writeStr.c.
Send a string to the device.
*device | Connection identifier to serial, fdserial, or other text_t compatible device that has been opened. |
str | Null terminated string to send. |
width | Number of characters to print padded by spaces. |
Definition at line 11 of file writeStrDigits.c.