Data Fields | |
uint16_t | indToChar |
Index to first character in first (current) string to be output. | |
int8_t | noOfFlashStrings2out |
The number of (flash) strings to be output. | |
pt_t | pt |
The (raw) protothread data structure. | |
char const *const * | theFlashStrings2out |
Pointer to (flash) array of (flash) strings. |
The organisational data for a flash strings array output thread.
int8_t noOfFlashStrings2out |
The number of (flash) strings to be output.
If the original (initialised) value is 1..127 that is the number of 0-terminated flash strings to be output as is (i.e. no return appended) the value will be decremented to 0 in the process if no NULL-pointer in the flash array of flash strings terminates it beforehand.
If the value was initialised to -1 this will act as 1 outputting the 0-terminated flash string pointed to. But additionally, if the bytes after the terminating \0 are \x03 \x01 \x02 (etx, soh, stx) the next byte will be considered as a follow up 0-terminated flash string. Hence by
"line1 \n\0\x03\x01\x02line2 \n\0\x03\x01\x02line3 \n\0 no line4"
a "pseudo flash string array for \ref outFlashTextThreadF() may be constructed that all others would see as just "line1 \n".
Hint 1: Any other sequence after a terminating 0 will end this continuation.
Hint 2: If the stream used does not provide a putS_P (.putS_P_func) function correctly returning the bytes output, this feature will not work (that is stop with the first "real" string). All weAutSys' streams would work.
char const* const* theFlashStrings2out |
Pointer to (flash) array of (flash) strings.
Should be initialised to the string respectively array element to be output first. In the case of multiple string output this pointer will advanced.
uint16_t indToChar |
Index to first character in first (current) string to be output.
This should (and will normaly) be initialised to 0.